Skip to content

Commit 3a752e6

Browse files
armrumnencia
authored andcommitted
chore: make metadata access type safe
Signed-off-by: Armando Ruocco <[email protected]>
1 parent ddb3d38 commit 3a752e6

File tree

3 files changed

+60
-12
lines changed

3 files changed

+60
-12
lines changed

internal/cnpgi/instance/backup.go

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"context"
55
"fmt"
66
"os"
7-
"strconv"
87
"time"
98

109
barmanBackup "github.com/cloudnative-pg/barman-cloud/pkg/backup"
@@ -20,7 +19,6 @@ import (
2019

2120
barmancloudv1 "github.com/cloudnative-pg/plugin-barman-cloud/api/v1"
2221
"github.com/cloudnative-pg/plugin-barman-cloud/internal/cnpgi/common"
23-
"github.com/cloudnative-pg/plugin-barman-cloud/internal/cnpgi/metadata"
2422
"github.com/cloudnative-pg/plugin-barman-cloud/internal/cnpgi/operator/config"
2523
)
2624

@@ -148,13 +146,6 @@ func (b BackupServiceImplementation) Backup(
148146
EndLsn: executedBackupInfo.EndLSN,
149147
InstanceId: b.InstanceName,
150148
Online: true,
151-
Metadata: map[string]string{
152-
"timeline": strconv.Itoa(executedBackupInfo.TimeLine),
153-
"version": metadata.Data.Version,
154-
"name": metadata.Data.Name,
155-
"displayName": metadata.Data.DisplayName,
156-
"clusterUID": string(configuration.Cluster.ObjectMeta.UID),
157-
"pluginName": metadata.PluginName,
158-
},
149+
Metadata: newBackupResultMetadata(configuration.Cluster.ObjectMeta.UID, executedBackupInfo.TimeLine).toMap(),
159150
}, nil
160151
}

internal/cnpgi/instance/retention.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ func useSameBackupLocation(backup *cnpgv1.BackupStatus, cluster *cnpgv1.Cluster)
279279
return false
280280
}
281281

282-
return backup.PluginMetadata["clusterUID"] == string(cluster.UID) &&
283-
backup.PluginMetadata["pluginName"] == metadata.PluginName
282+
meta := newBackupResultMetadataFromMap(backup.PluginMetadata)
283+
284+
return meta.clusterUID == string(cluster.UID) && meta.pluginName == metadata.PluginName
284285
}

internal/cnpgi/instance/types.go

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package instance
2+
3+
import (
4+
"strconv"
5+
6+
"k8s.io/apimachinery/pkg/types"
7+
8+
"github.com/cloudnative-pg/plugin-barman-cloud/internal/cnpgi/metadata"
9+
)
10+
11+
type backupResultMetadata struct {
12+
timeline string
13+
version string
14+
name string
15+
displayName string
16+
clusterUID string
17+
pluginName string
18+
}
19+
20+
func (b backupResultMetadata) toMap() map[string]string {
21+
return map[string]string{
22+
"timeline": b.timeline,
23+
"version": b.version,
24+
"name": b.name,
25+
"displayName": b.displayName,
26+
"clusterUID": b.clusterUID,
27+
"pluginName": b.pluginName,
28+
}
29+
}
30+
31+
func newBackupResultMetadata(clusterUID types.UID, timeline int) backupResultMetadata {
32+
return backupResultMetadata{
33+
timeline: strconv.Itoa(timeline),
34+
clusterUID: string(clusterUID),
35+
// static values
36+
version: metadata.Data.Version,
37+
name: metadata.Data.Name,
38+
displayName: metadata.Data.DisplayName,
39+
pluginName: metadata.PluginName,
40+
}
41+
}
42+
43+
func newBackupResultMetadataFromMap(m map[string]string) backupResultMetadata {
44+
if m == nil {
45+
return backupResultMetadata{}
46+
}
47+
48+
return backupResultMetadata{
49+
timeline: m["timeline"],
50+
version: m["version"],
51+
name: m["name"],
52+
displayName: m["displayName"],
53+
clusterUID: m["clusterUID"],
54+
pluginName: m["pluginName"],
55+
}
56+
}

0 commit comments

Comments
 (0)