chore: make metadata access type safe

Signed-off-by: Armando Ruocco <armando.ruocco@enterprisedb.com>
This commit is contained in:
Armando Ruocco 2025-03-10 13:39:07 +01:00 committed by Marco Nenciarini
parent d3660c9ee6
commit 6aba7c7502
No known key found for this signature in database
GPG Key ID: 589F03F01BA55038
3 changed files with 60 additions and 12 deletions

View File

@ -4,7 +4,6 @@ import (
"context"
"fmt"
"os"
"strconv"
"time"
barmanBackup "github.com/cloudnative-pg/barman-cloud/pkg/backup"
@ -20,7 +19,6 @@ import (
barmancloudv1 "github.com/cloudnative-pg/plugin-barman-cloud/api/v1"
"github.com/cloudnative-pg/plugin-barman-cloud/internal/cnpgi/common"
"github.com/cloudnative-pg/plugin-barman-cloud/internal/cnpgi/metadata"
"github.com/cloudnative-pg/plugin-barman-cloud/internal/cnpgi/operator/config"
)
@ -148,13 +146,6 @@ func (b BackupServiceImplementation) Backup(
EndLsn: executedBackupInfo.EndLSN,
InstanceId: b.InstanceName,
Online: true,
Metadata: map[string]string{
"timeline": strconv.Itoa(executedBackupInfo.TimeLine),
"version": metadata.Data.Version,
"name": metadata.Data.Name,
"displayName": metadata.Data.DisplayName,
"clusterUID": string(configuration.Cluster.ObjectMeta.UID),
"pluginName": metadata.PluginName,
},
Metadata: newBackupResultMetadata(configuration.Cluster.ObjectMeta.UID, executedBackupInfo.TimeLine).toMap(),
}, nil
}

View File

@ -279,6 +279,7 @@ func useSameBackupLocation(backup *cnpgv1.BackupStatus, cluster *cnpgv1.Cluster)
return false
}
return backup.PluginMetadata["clusterUID"] == string(cluster.UID) &&
backup.PluginMetadata["pluginName"] == metadata.PluginName
meta := newBackupResultMetadataFromMap(backup.PluginMetadata)
return meta.clusterUID == string(cluster.UID) && meta.pluginName == metadata.PluginName
}

View File

@ -0,0 +1,56 @@
package instance
import (
"strconv"
"k8s.io/apimachinery/pkg/types"
"github.com/cloudnative-pg/plugin-barman-cloud/internal/cnpgi/metadata"
)
type backupResultMetadata struct {
timeline string
version string
name string
displayName string
clusterUID string
pluginName string
}
func (b backupResultMetadata) toMap() map[string]string {
return map[string]string{
"timeline": b.timeline,
"version": b.version,
"name": b.name,
"displayName": b.displayName,
"clusterUID": b.clusterUID,
"pluginName": b.pluginName,
}
}
func newBackupResultMetadata(clusterUID types.UID, timeline int) backupResultMetadata {
return backupResultMetadata{
timeline: strconv.Itoa(timeline),
clusterUID: string(clusterUID),
// static values
version: metadata.Data.Version,
name: metadata.Data.Name,
displayName: metadata.Data.DisplayName,
pluginName: metadata.PluginName,
}
}
func newBackupResultMetadataFromMap(m map[string]string) backupResultMetadata {
if m == nil {
return backupResultMetadata{}
}
return backupResultMetadata{
timeline: m["timeline"],
version: m["version"],
name: m["name"],
displayName: m["displayName"],
clusterUID: m["clusterUID"],
pluginName: m["pluginName"],
}
}