Skip to content

Commit df07c39

Browse files
authored
Merge pull request velero-io#9368 from shubham-pampattiwar/fix-volume-info-generatename
Track actual resource names for GenerateName in restore status
2 parents f253820 + c2840f1 commit df07c39

4 files changed

Lines changed: 24 additions & 12 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Track actual resource names for GenerateName in restore status

pkg/restore/request.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,9 @@ type Request struct {
6969
}
7070

7171
type restoredItemStatus struct {
72-
action string
73-
itemExists bool
72+
action string
73+
itemExists bool
74+
createdName string // Actual name assigned by K8s for GenerateName resources
7475
}
7576

7677
// GetItemOperationsList returns ItemOperationsList, initializing it if necessary
@@ -87,9 +88,15 @@ func (r *Request) GetItemOperationsList() *[]*itemoperation.RestoreOperation {
8788
func (r *Request) RestoredResourceList() map[string][]string {
8889
resources := map[string][]string{}
8990
for i, item := range r.RestoredItems {
90-
entry := i.name
91+
// Use createdName if available (GenerateName case), otherwise itemKey.name
92+
name := i.name
93+
if item.createdName != "" {
94+
name = item.createdName
95+
}
96+
97+
entry := name
9198
if i.namespace != "" {
92-
entry = fmt.Sprintf("%s/%s", i.namespace, i.name)
99+
entry = fmt.Sprintf("%s/%s", i.namespace, name)
93100
}
94101
entry = fmt.Sprintf("%s(%s)", entry, item.action)
95102
resources[i.resource] = append(resources[i.resource], entry)

pkg/restore/restore.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,7 @@ func (ctx *restoreContext) processSelectedResource(
741741
namespace: ns.Namespace,
742742
name: ns.Name,
743743
}
744-
ctx.restoredItems[itemKey] = restoredItemStatus{action: ItemRestoreResultCreated, itemExists: true}
744+
ctx.restoredItems[itemKey] = restoredItemStatus{action: ItemRestoreResultCreated, itemExists: true, createdName: ns.Name}
745745
}
746746

747747
// Keep track of namespaces that we know exist so we don't
@@ -1142,7 +1142,7 @@ func (ctx *restoreContext) restoreItem(obj *unstructured.Unstructured, groupReso
11421142
namespace: nsToEnsure.Namespace,
11431143
name: nsToEnsure.Name,
11441144
}
1145-
ctx.restoredItems[itemKey] = restoredItemStatus{action: ItemRestoreResultCreated, itemExists: true}
1145+
ctx.restoredItems[itemKey] = restoredItemStatus{action: ItemRestoreResultCreated, itemExists: true, createdName: nsToEnsure.Name}
11461146
}
11471147
} else {
11481148
if boolptr.IsSetToFalse(ctx.restore.Spec.IncludeClusterResources) {
@@ -1514,7 +1514,11 @@ func (ctx *restoreContext) restoreItem(obj *unstructured.Unstructured, groupReso
15141514
createdObj, restoreErr = resourceClient.Create(obj)
15151515
if restoreErr == nil {
15161516
itemExists = true
1517-
ctx.restoredItems[itemKey] = restoredItemStatus{action: ItemRestoreResultCreated, itemExists: itemExists}
1517+
ctx.restoredItems[itemKey] = restoredItemStatus{
1518+
action: ItemRestoreResultCreated,
1519+
itemExists: itemExists,
1520+
createdName: createdObj.GetName(),
1521+
}
15181522
}
15191523
}
15201524

pkg/restore/restore_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,8 +1091,8 @@ func TestRestoreItems(t *testing.T) {
10911091
),
10921092
},
10931093
expectedRestoreItems: map[itemKey]restoredItemStatus{
1094-
{resource: "v1/Namespace", namespace: "", name: "ns-1"}: {action: "created", itemExists: true},
1095-
{resource: "v1/Pod", namespace: "ns-1", name: "pod-1"}: {action: "created", itemExists: true},
1094+
{resource: "v1/Namespace", namespace: "", name: "ns-1"}: {action: "created", itemExists: true, createdName: "ns-1"},
1095+
{resource: "v1/Pod", namespace: "ns-1", name: "pod-1"}: {action: "created", itemExists: true, createdName: "pod-1"},
10961096
},
10971097
},
10981098
{
@@ -1201,7 +1201,7 @@ func TestRestoreItems(t *testing.T) {
12011201
test.ServiceAccounts(builder.ForServiceAccount("ns-1", "sa-1").Result()),
12021202
},
12031203
expectedRestoreItems: map[itemKey]restoredItemStatus{
1204-
{resource: "v1/Namespace", namespace: "", name: "ns-1"}: {action: "created", itemExists: true},
1204+
{resource: "v1/Namespace", namespace: "", name: "ns-1"}: {action: "created", itemExists: true, createdName: "ns-1"},
12051205
{resource: "v1/ServiceAccount", namespace: "ns-1", name: "sa-1"}: {action: "skipped", itemExists: true},
12061206
},
12071207
},
@@ -1220,7 +1220,7 @@ func TestRestoreItems(t *testing.T) {
12201220
test.Secrets(builder.ForSecret("ns-1", "sa-1").ObjectMeta(builder.WithLabels("velero.io/backup-name", "backup-1", "velero.io/restore-name", "restore-1")).Data(map[string][]byte{"key-1": []byte("value-1")}).Result()),
12211221
},
12221222
expectedRestoreItems: map[itemKey]restoredItemStatus{
1223-
{resource: "v1/Namespace", namespace: "", name: "ns-1"}: {action: "created", itemExists: true},
1223+
{resource: "v1/Namespace", namespace: "", name: "ns-1"}: {action: "created", itemExists: true, createdName: "ns-1"},
12241224
{resource: "v1/Secret", namespace: "ns-1", name: "sa-1"}: {action: "updated", itemExists: true},
12251225
},
12261226
},
@@ -1239,7 +1239,7 @@ func TestRestoreItems(t *testing.T) {
12391239
test.Secrets(builder.ForSecret("ns-1", "sa-1").ObjectMeta(builder.WithLabels("velero.io/backup-name", "backup-1", "velero.io/restore-name", "restore-1")).Data(map[string][]byte{"key-1": []byte("value-1")}).Result()),
12401240
},
12411241
expectedRestoreItems: map[itemKey]restoredItemStatus{
1242-
{resource: "v1/Namespace", namespace: "", name: "ns-1"}: {action: "created", itemExists: true},
1242+
{resource: "v1/Namespace", namespace: "", name: "ns-1"}: {action: "created", itemExists: true, createdName: "ns-1"},
12431243
{resource: "v1/Secret", namespace: "ns-1", name: "sa-1"}: {action: "updated", itemExists: true},
12441244
},
12451245
},

0 commit comments

Comments
 (0)