Skip to content

Commit 4c2fe40

Browse files
committed
Debug logs for verifying metadata check error
1 parent 7de3721 commit 4c2fe40

File tree

1 file changed

+80
-114
lines changed

1 file changed

+80
-114
lines changed

tests/e2e/cns_utils.go

Lines changed: 80 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -28,96 +28,81 @@ import (
2828
"k8s.io/kubernetes/test/e2e/framework"
2929
)
3030

31-
// verifyCnsVolumeMetadata4GCVol verifies cns volume metadata for a GC volume
32-
// if gcPvc, gcPv or pod are nil we skip verification for them altogether and wont check if they are absent in CNS entry
31+
// verifyCnsVolumeMetadata4GCVol verifies CNS volume metadata for a GC volume.
32+
// If gcPvc, gcPv or pod are nil, we skip verification for them altogether and won't check if they are absent in CNS entry.
3333
func verifyCnsVolumeMetadata4GCVol(volumeID string, svcPVCName string, gcPvc *v1.PersistentVolumeClaim,
3434
gcPv *v1.PersistentVolume, pod *v1.Pod) bool {
3535

36+
framework.Logf("[START] Verifying CNS metadata for volumeID: %s", volumeID)
37+
38+
// Query CNS for volume metadata
3639
cnsQueryResult, err := e2eVSphere.queryCNSVolumeWithResult(volumeID)
3740
gomega.Expect(err).NotTo(gomega.HaveOccurred())
3841
if len(cnsQueryResult.Volumes) == 0 {
39-
framework.Logf("CNS volume query yielded no results for volume id: %s", volumeID)
42+
framework.Logf("[ERROR] CNS volume query yielded no results for volume id: %s", volumeID)
4043
return false
4144
}
45+
4246
cnsVolume := cnsQueryResult.Volumes[0]
47+
framework.Logf("[INFO] CNS volume found: %s", spew.Sdump(cnsVolume))
48+
49+
// Initialize verification flags
4350
podEntryFound := false
44-
verifyPvEntry := false
45-
verifyPvcEntry := false
46-
verifyPodEntry := false
47-
gcPVCVerified := false
48-
gcPVVerified := false
51+
verifyPvEntry := gcPv != nil
52+
verifyPvcEntry := gcPvc != nil
53+
verifyPodEntry := pod != nil
54+
gcPVCVerified := !verifyPvcEntry
55+
gcPVVerified := !verifyPvEntry
4956
svcPVCVerified := false
5057
svcPVVerified := false
58+
59+
// Fetch supervisor PVC and PV
5160
svcPVC := getPVCFromSupervisorCluster(svcPVCName)
5261
svcPV := getPvFromSupervisorCluster(svcPVCName)
53-
if gcPvc != nil {
54-
verifyPvcEntry = true
55-
} else {
56-
gcPVCVerified = true
57-
}
58-
if gcPv != nil {
59-
verifyPvEntry = true
60-
} else {
61-
gcPVVerified = true
62-
}
63-
if pod != nil {
64-
verifyPodEntry = true
65-
}
66-
framework.Logf("Found CNS volume with id %v\n"+spew.Sdump(cnsVolume), volumeID)
67-
gomega.Expect(cnsVolume.Metadata).NotTo(gomega.BeNil())
62+
framework.Logf("[INFO] Retrieved svcPVC: %v", spew.Sdump(svcPVC))
63+
framework.Logf("[INFO] Retrieved svcPV: %v", spew.Sdump(svcPV))
64+
65+
// Iterate over CNS entity metadata
6866
for _, entity := range cnsVolume.Metadata.EntityMetadata {
69-
var pvc *v1.PersistentVolumeClaim
70-
var pv *v1.PersistentVolume
7167
entityMetadata := entity.(*cnstypes.CnsKubernetesEntityMetadata)
72-
if entityMetadata.EntityType == string(cnstypes.CnsKubernetesEntityTypePVC) {
73-
verifySvcPvc := false
74-
verifySvcPv := false
75-
if entityMetadata.EntityName == svcPVCName {
68+
framework.Logf("[DEBUG] Processing entity: Type=%s, Name=%s, Namespace=%s", entityMetadata.EntityType, entityMetadata.EntityName, entityMetadata.Namespace)
69+
70+
switch entityMetadata.EntityType {
71+
case string(cnstypes.CnsKubernetesEntityTypePVC):
72+
var pvc *v1.PersistentVolumeClaim
73+
var pv *v1.PersistentVolume
74+
verifySvcPvc := entityMetadata.EntityName == svcPVCName
75+
verifySvcPv := verifySvcPvc
76+
77+
if verifySvcPvc {
7678
pvc = svcPVC
7779
pv = svcPV
78-
verifySvcPvc = true
79-
verifySvcPv = true
8080
} else {
8181
pvc = gcPvc
8282
pv = gcPv
8383
}
84-
if verifyPvcEntry || verifySvcPvc {
84+
85+
if (verifyPvcEntry && pvc != nil) || verifySvcPvc {
8586
if entityMetadata.EntityName != pvc.Name {
86-
framework.Logf("PVC name '%v' does not match PVC name in metadata '%v', for volume id %v",
87-
pvc.Name, entityMetadata.EntityName, volumeID)
87+
framework.Logf("[MISMATCH] PVC name mismatch: expected='%s', actual='%s'", pvc.Name, entityMetadata.EntityName)
8888
break
8989
}
90-
if verifyPvEntry || verifySvcPv {
90+
if (verifyPvEntry && pv != nil) || verifySvcPv {
9191
if entityMetadata.ReferredEntity == nil {
92-
framework.Logf("Missing ReferredEntity in PVC entry for volume id %v", volumeID)
92+
framework.Logf("[MISSING] ReferredEntity missing in PVC metadata for volume id %s", volumeID)
9393
break
9494
}
9595
if entityMetadata.ReferredEntity[0].EntityName != pv.Name {
96-
framework.Logf("PV name '%v' in referred entity does not match PV name '%v', "+
97-
"in PVC metadata for volume id %v", entityMetadata.ReferredEntity[0].EntityName,
98-
pv.Name, volumeID)
96+
framework.Logf("[MISMATCH] PV name mismatch in ReferredEntity: expected='%s', actual='%s'", pv.Name, entityMetadata.ReferredEntity[0].EntityName)
9997
break
10098
}
10199
}
102-
if pvc.Labels == nil {
103-
if entityMetadata.Labels != nil {
104-
framework.Logf("PVC labels '%v' does not match PVC labels in metadata '%v', for volume id %v",
105-
pvc.Labels, entityMetadata.Labels, volumeID)
106-
break
107-
}
108-
} else {
109-
labels := getLabelMap(entityMetadata.Labels)
110-
if !(reflect.DeepEqual(labels, pvc.Labels)) {
111-
framework.Logf(
112-
"Labels on pvc '%v' are not matching with labels in metadata '%v' for volume id %v",
113-
pvc.Labels, entityMetadata.Labels, volumeID)
114-
break
115-
}
100+
if !reflect.DeepEqual(getLabelMap(entityMetadata.Labels), pvc.Labels) {
101+
framework.Logf("[MISMATCH] PVC labels mismatch: expected='%v', actual='%v'", pvc.Labels, entityMetadata.Labels)
102+
break
116103
}
117104
if entityMetadata.Namespace != pvc.Namespace {
118-
framework.Logf(
119-
"PVC namespace '%v' does not match PVC namespace in pvc metadata '%v', for volume id %v",
120-
pvc.Namespace, entityMetadata.Namespace, volumeID)
105+
framework.Logf("[MISMATCH] PVC namespace mismatch: expected='%s', actual='%s'", pvc.Namespace, entityMetadata.Namespace)
121106
break
122107
}
123108
}
@@ -127,110 +112,91 @@ func verifyCnsVolumeMetadata4GCVol(volumeID string, svcPVCName string, gcPvc *v1
127112
} else {
128113
gcPVCVerified = true
129114
}
130-
continue
131-
}
132-
if entityMetadata.EntityType == string(cnstypes.CnsKubernetesEntityTypePV) {
133-
verifySvcPv := false
134-
if entityMetadata.EntityName == svcPV.Name {
115+
116+
case string(cnstypes.CnsKubernetesEntityTypePV):
117+
var pvc *v1.PersistentVolumeClaim
118+
var pv *v1.PersistentVolume
119+
verifySvcPv := entityMetadata.EntityName == svcPV.Name
120+
121+
if verifySvcPv {
135122
pvc = svcPVC
136123
pv = svcPV
137-
verifySvcPv = true
138124
} else {
139125
pvc = gcPvc
140126
pv = gcPv
141127
}
142-
if verifyPvEntry || verifySvcPv {
128+
129+
if (verifyPvEntry && pv != nil) || verifySvcPv {
143130
if entityMetadata.EntityName != pv.Name {
144-
framework.Logf("PV name '%v' does not match PV name in metadata '%v', for volume id %v",
145-
pv.Name, entityMetadata.EntityName, volumeID)
131+
framework.Logf("[MISMATCH] PV name mismatch: expected='%s', actual='%s'", pv.Name, entityMetadata.EntityName)
146132
break
147133
}
148-
if pv.Labels == nil {
149-
if entityMetadata.Labels != nil {
150-
framework.Logf("PV labels '%v' does not match PV labels in metadata '%v', for volume id %v",
151-
pv.Labels, entityMetadata.Labels, volumeID)
152-
break
153-
}
154-
} else {
155-
labels := getLabelMap(entityMetadata.Labels)
156-
if !(reflect.DeepEqual(labels, pv.Labels)) {
157-
framework.Logf(
158-
"Labels on pv '%v' are not matching with labels in pv metadata '%v' for volume id %v",
159-
pv.Labels, entityMetadata.Labels, volumeID)
160-
break
161-
}
134+
if !reflect.DeepEqual(getLabelMap(entityMetadata.Labels), pv.Labels) {
135+
framework.Logf("[MISMATCH] PV labels mismatch: expected='%v', actual='%v'", pv.Labels, entityMetadata.Labels)
136+
break
162137
}
163138
if !verifySvcPv {
164139
if entityMetadata.ReferredEntity == nil {
165-
framework.Logf("Missing ReferredEntity in SVC PV entry for volume id %v", volumeID)
140+
framework.Logf("[MISSING] ReferredEntity missing in PV metadata for volume id %s", volumeID)
166141
break
167142
}
168143
if entityMetadata.ReferredEntity[0].EntityName != svcPVCName {
169-
framework.Logf("SVC PVC name '%v' in referred entity does not match SVC PVC name '%v', "+
170-
"in SVC PV metadata for volume id %v", entityMetadata.ReferredEntity[0].EntityName,
171-
svcPVCName, volumeID)
144+
framework.Logf("[MISMATCH] SVC PVC name mismatch in ReferredEntity: expected='%s', actual='%s'", svcPVCName, entityMetadata.ReferredEntity[0].EntityName)
172145
break
173146
}
174147
if entityMetadata.ReferredEntity[0].Namespace != svcPVC.Namespace {
175-
framework.Logf("SVC PVC namespace '%v' does not match SVC PVC namespace in SVC PV referred "+
176-
"entity metadata '%v', for volume id %v",
177-
pvc.Namespace, entityMetadata.ReferredEntity[0].Namespace, volumeID)
148+
framework.Logf("[MISMATCH] SVC PVC namespace mismatch in ReferredEntity: expected='%s', actual='%s'", svcPVC.Namespace, entityMetadata.ReferredEntity[0].Namespace)
178149
break
179150
}
180151
}
181152
}
153+
182154
if verifySvcPv {
183155
svcPVVerified = true
184156
} else {
185157
gcPVVerified = true
186158
}
187-
continue
188-
}
189-
if entityMetadata.EntityType == string(cnstypes.CnsKubernetesEntityTypePOD) {
190-
pvc = gcPvc
191-
if verifyPodEntry {
159+
160+
case string(cnstypes.CnsKubernetesEntityTypePOD):
161+
if verifyPodEntry && pod != nil {
192162
podEntryFound = true
193163
if entityMetadata.EntityName != pod.Name {
194-
framework.Logf("POD name '%v' does not match Pod name in metadata '%v', for volume id %v",
195-
pod.Name, entityMetadata.EntityName, volumeID)
164+
framework.Logf("[MISMATCH] Pod name mismatch: expected='%s', actual='%s'", pod.Name, entityMetadata.EntityName)
196165
podEntryFound = false
197166
break
198167
}
199-
if verifyPvcEntry {
168+
if entityMetadata.Namespace != pod.Namespace {
169+
framework.Logf("[MISMATCH] Pod namespace mismatch: expected='%s', actual='%s'", pod.Namespace, entityMetadata.Namespace)
170+
podEntryFound = false
171+
break
172+
}
173+
if verifyPvcEntry && gcPvc != nil {
200174
if entityMetadata.ReferredEntity == nil {
201-
framework.Logf("Missing ReferredEntity in pod entry for volume id %v", volumeID)
175+
framework.Logf("[MISSING] ReferredEntity missing in Pod metadata for volume id %s", volumeID)
202176
podEntryFound = false
203177
break
204178
}
205-
if entityMetadata.ReferredEntity[0].EntityName != pvc.Name {
206-
framework.Logf("PVC name '%v' in referred entity does not match PVC name '%v', "+
207-
"in PVC metadata for volume id %v", entityMetadata.ReferredEntity[0].EntityName,
208-
pvc.Name, volumeID)
179+
if entityMetadata.ReferredEntity[0].EntityName != gcPvc.Name {
180+
framework.Logf("[MISMATCH] PVC name mismatch in Pod ReferredEntity: expected='%s', actual='%s'", gcPvc.Name, entityMetadata.ReferredEntity[0].EntityName)
209181
podEntryFound = false
210182
break
211183
}
212-
if entityMetadata.ReferredEntity[0].Namespace != pvc.Namespace {
213-
framework.Logf("PVC namespace '%v' does not match PVC namespace in Pod metadata "+
214-
"referered entity, '%v', for volume id %v",
215-
pvc.Namespace, entityMetadata.ReferredEntity[0].Namespace, volumeID)
184+
if entityMetadata.ReferredEntity[0].Namespace != gcPvc.Namespace {
185+
framework.Logf("[MISMATCH] PVC namespace mismatch in Pod ReferredEntity: expected='%s', actual='%s'", gcPvc.Namespace, entityMetadata.ReferredEntity[0].Namespace)
216186
podEntryFound = false
217187
break
218188
}
219189
}
220-
if entityMetadata.Namespace != pod.Namespace {
221-
framework.Logf(
222-
"Pod namespace '%v' does not match pod namespace in pvc metadata '%v', for volume id %v",
223-
pod.Namespace, entityMetadata.Namespace, volumeID)
224-
podEntryFound = false
225-
break
226-
}
227190
}
228191
}
229192
}
230-
framework.Logf("gcPVVerified: %v, verifyPvEntry: %v, gcPVCVerified: %v, verifyPvcEntry: %v, "+
231-
"podEntryFound: %v, verifyPodEntry: %v, svcPVCVerified: %v, svcPVVerified: %v ", gcPVVerified, verifyPvEntry,
232-
gcPVCVerified, verifyPvcEntry, podEntryFound, verifyPodEntry, svcPVCVerified, svcPVVerified)
233-
return gcPVVerified && gcPVCVerified && podEntryFound == verifyPodEntry && svcPVCVerified && svcPVVerified
193+
194+
framework.Logf("[RESULT] Verification flags — gcPVVerified: %v, verifyPvEntry: %v, gcPVCVerified: %v, verifyPvcEntry: %v, podEntryFound: %v, verifyPodEntry: %v, svcPVCVerified: %v, svcPVVerified: %v",
195+
gcPVVerified, verifyPvEntry, gcPVCVerified, verifyPvcEntry, podEntryFound, verifyPodEntry, svcPVCVerified, svcPVVerified)
196+
197+
finalResult := gcPVVerified && gcPVCVerified && podEntryFound == verifyPodEntry && svcPVCVerified && svcPVVerified
198+
framework.Logf("[END] CNS metadata verification result for volumeID %s: %v", volumeID, finalResult)
199+
return finalResult
234200
}
235201

236202
// waitAndVerifyCnsVolumeMetadata4GCVol verifies cns volume metadata for a GC volume with wait

0 commit comments

Comments
 (0)