Skip to content

Commit 684a1d3

Browse files
authored
Merge pull request #428 from yuxiangqian/pv-drivername
using csi driver from PV instead of from StorageClass
2 parents 95f3197 + 6f237c2 commit 684a1d3

File tree

4 files changed

+81
-161
lines changed

4 files changed

+81
-161
lines changed

pkg/common-controller/framework_test.go

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ import (
3636
storagelisters "github.com/kubernetes-csi/external-snapshotter/client/v3/listers/volumesnapshot/v1beta1"
3737
"github.com/kubernetes-csi/external-snapshotter/v3/pkg/utils"
3838
v1 "k8s.io/api/core/v1"
39-
storagev1 "k8s.io/api/storage/v1"
4039
"k8s.io/apimachinery/pkg/api/resource"
4140
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
4241
"k8s.io/apimachinery/pkg/runtime"
@@ -94,8 +93,6 @@ type controllerTest struct {
9493
initialVolumes []*v1.PersistentVolume
9594
// Initial content of controller claim cache.
9695
initialClaims []*v1.PersistentVolumeClaim
97-
// Initial content of controller StorageClass cache.
98-
initialStorageClasses []*storagev1.StorageClass
9996
// Initial content of controller Secret cache.
10097
initialSecrets []*v1.Secret
10198
// Expected events - any event with prefix will pass, we don't check full
@@ -138,7 +135,6 @@ var noerrors = []reactorError{}
138135
// the list.
139136
type snapshotReactor struct {
140137
secrets map[string]*v1.Secret
141-
storageClasses map[string]*storagev1.StorageClass
142138
volumes map[string]*v1.PersistentVolume
143139
claims map[string]*v1.PersistentVolumeClaim
144140
contents map[string]*crdv1.VolumeSnapshotContent
@@ -372,16 +368,6 @@ func (r *snapshotReactor) React(action core.Action) (handled bool, ret runtime.O
372368
klog.V(4).Infof("saved updated claim %s", claim.Name)
373369
return true, claim, nil
374370

375-
case action.Matches("get", "storageclasses"):
376-
name := action.(core.GetAction).GetName()
377-
storageClass, found := r.storageClasses[name]
378-
if found {
379-
klog.V(4).Infof("GetStorageClass: found %s", storageClass.Name)
380-
return true, storageClass, nil
381-
}
382-
klog.V(4).Infof("GetStorageClass: storageClass %s not found", name)
383-
return true, nil, fmt.Errorf("cannot find storageClass %s", name)
384-
385371
case action.Matches("get", "secrets"):
386372
name := action.(core.GetAction).GetName()
387373
secret, found := r.secrets[name]
@@ -710,7 +696,6 @@ func (r *snapshotReactor) addSnapshotEvent(snapshot *crdv1.VolumeSnapshot) {
710696
func newSnapshotReactor(kubeClient *kubefake.Clientset, client *fake.Clientset, ctrl *csiSnapshotCommonController, fakeVolumeWatch, fakeClaimWatch *watch.FakeWatcher, errors []reactorError) *snapshotReactor {
711697
reactor := &snapshotReactor{
712698
secrets: make(map[string]*v1.Secret),
713-
storageClasses: make(map[string]*storagev1.StorageClass),
714699
volumes: make(map[string]*v1.PersistentVolume),
715700
claims: make(map[string]*v1.PersistentVolumeClaim),
716701
snapshotClasses: make(map[string]*crdv1.VolumeSnapshotClass),
@@ -735,7 +720,6 @@ func newSnapshotReactor(kubeClient *kubefake.Clientset, client *fake.Clientset,
735720
kubeClient.AddReactor("get", "persistentvolumeclaims", reactor.React)
736721
kubeClient.AddReactor("update", "persistentvolumeclaims", reactor.React)
737722
kubeClient.AddReactor("get", "persistentvolumes", reactor.React)
738-
kubeClient.AddReactor("get", "storageclasses", reactor.React)
739723
kubeClient.AddReactor("get", "secrets", reactor.React)
740724

741725
return reactor
@@ -1293,9 +1277,6 @@ func runSyncTests(t *testing.T, tests []controllerTest, snapshotClasses []*crdv1
12931277
for _, volume := range test.initialVolumes {
12941278
reactor.volumes[volume.Name] = volume
12951279
}
1296-
for _, storageClass := range test.initialStorageClasses {
1297-
reactor.storageClasses[storageClass.Name] = storageClass
1298-
}
12991280
for _, secret := range test.initialSecrets {
13001281
reactor.secrets[secret.Name] = secret
13011282
}
@@ -1358,9 +1339,6 @@ func runFinalizerTests(t *testing.T, tests []controllerTest, snapshotClasses []*
13581339
for _, volume := range test.initialVolumes {
13591340
reactor.volumes[volume.Name] = volume
13601341
}
1361-
for _, storageClass := range test.initialStorageClasses {
1362-
reactor.storageClasses[storageClass.Name] = storageClass
1363-
}
13641342
for _, secret := range test.initialSecrets {
13651343
reactor.secrets[secret.Name] = secret
13661344
}
@@ -1498,9 +1476,6 @@ func runUpdateSnapshotClassTests(t *testing.T, tests []controllerTest, snapshotC
14981476
for _, volume := range test.initialVolumes {
14991477
reactor.volumes[volume.Name] = volume
15001478
}
1501-
for _, storageClass := range test.initialStorageClasses {
1502-
reactor.storageClasses[storageClass.Name] = storageClass
1503-
}
15041479
for _, secret := range test.initialSecrets {
15051480
reactor.secrets[secret.Name] = secret
15061481
}

pkg/common-controller/snapshot_controller.go

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323
"time"
2424

2525
v1 "k8s.io/api/core/v1"
26-
storagev1 "k8s.io/api/storage/v1"
2726
apierrs "k8s.io/apimachinery/pkg/api/errors"
2827
"k8s.io/apimachinery/pkg/api/resource"
2928
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -1149,28 +1148,20 @@ func (ctrl *csiSnapshotCommonController) isVolumeBoundToClaim(volume *v1.Persist
11491148
return true
11501149
}
11511150

1152-
func (ctrl *csiSnapshotCommonController) getStorageClassFromVolumeSnapshot(snapshot *crdv1.VolumeSnapshot) (*storagev1.StorageClass, error) {
1153-
// Get storage class from PVC or PV
1154-
pvc, err := ctrl.getClaimFromVolumeSnapshot(snapshot)
1151+
// pvDriverFromSnapshot is a helper function to get the CSI driver name from the targeted PersistentVolume.
1152+
// It looks up the PVC from which the snapshot is specified to be created from, and looks for the PVC's corresponding
1153+
// PV. Bi-directional binding will be verified between PVC and PV before the PV's CSI driver is returned.
1154+
// For an non-CSI volume, it returns an error immediately as it's not supported.
1155+
func (ctrl *csiSnapshotCommonController) pvDriverFromSnapshot(snapshot *crdv1.VolumeSnapshot) (string, error) {
1156+
pv, err := ctrl.getVolumeFromVolumeSnapshot(snapshot)
11551157
if err != nil {
1156-
return nil, err
1157-
}
1158-
storageclassName := *pvc.Spec.StorageClassName
1159-
if len(storageclassName) == 0 {
1160-
volume, err := ctrl.getVolumeFromVolumeSnapshot(snapshot)
1161-
if err != nil {
1162-
return nil, err
1163-
}
1164-
storageclassName = volume.Spec.StorageClassName
1165-
}
1166-
if len(storageclassName) == 0 {
1167-
return nil, fmt.Errorf("cannot figure out the snapshot class automatically, please specify one in snapshot spec")
1158+
return "", err
11681159
}
1169-
storageclass, err := ctrl.client.StorageV1().StorageClasses().Get(context.TODO(), storageclassName, metav1.GetOptions{})
1170-
if err != nil {
1171-
return nil, err
1160+
// supports ONLY CSI volumes
1161+
if pv.Spec.PersistentVolumeSource.CSI == nil {
1162+
return "", fmt.Errorf("snapshotting non-CSI volumes is not supported, snapshot:%s/%s", snapshot.Namespace, snapshot.Name)
11721163
}
1173-
return storageclass, nil
1164+
return pv.Spec.PersistentVolumeSource.CSI.Driver, nil
11741165
}
11751166

11761167
// getSnapshotClass is a helper function to get snapshot class from the class name.
@@ -1186,8 +1177,10 @@ func (ctrl *csiSnapshotCommonController) getSnapshotClass(className string) (*cr
11861177
return class, nil
11871178
}
11881179

1189-
// SetDefaultSnapshotClass is a helper function to figure out the default snapshot class from
1190-
// PVC/PV StorageClass and update VolumeSnapshot with this snapshot class name.
1180+
// SetDefaultSnapshotClass is a helper function to figure out the default snapshot class.
1181+
// For pre-provisioned case, it's an no-op.
1182+
// For dynamic provisioning, it gets the default SnapshotClasses in the system if there is any(could be multiple),
1183+
// and finds the one with the same CSI Driver as the PV from which a snapshot will be taken.
11911184
func (ctrl *csiSnapshotCommonController) SetDefaultSnapshotClass(snapshot *crdv1.VolumeSnapshot) (*crdv1.VolumeSnapshotClass, *crdv1.VolumeSnapshot, error) {
11921185
klog.V(5).Infof("SetDefaultSnapshotClass for snapshot [%s]", snapshot.Name)
11931186

@@ -1197,21 +1190,23 @@ func (ctrl *csiSnapshotCommonController) SetDefaultSnapshotClass(snapshot *crdv1
11971190
return nil, snapshot, nil
11981191
}
11991192

1200-
storageclass, err := ctrl.getStorageClassFromVolumeSnapshot(snapshot)
1193+
// Find default snapshot class if available
1194+
list, err := ctrl.classLister.List(labels.Everything())
12011195
if err != nil {
12021196
return nil, nil, err
12031197
}
1204-
// Find default snapshot class if available
1205-
list, err := ctrl.classLister.List(labels.Everything())
1198+
1199+
pvDriver, err := ctrl.pvDriverFromSnapshot(snapshot)
12061200
if err != nil {
1201+
klog.Errorf("failed to get pv csi driver from snapshot %s/%s: %q", snapshot.Namespace, snapshot.Name, err)
12071202
return nil, nil, err
12081203
}
1209-
defaultClasses := []*crdv1.VolumeSnapshotClass{}
12101204

1205+
defaultClasses := []*crdv1.VolumeSnapshotClass{}
12111206
for _, class := range list {
1212-
if utils.IsDefaultAnnotation(class.ObjectMeta) && storageclass.Provisioner == class.Driver { //&& ctrl.snapshotterName == class.Snapshotter {
1207+
if utils.IsDefaultAnnotation(class.ObjectMeta) && pvDriver == class.Driver {
12131208
defaultClasses = append(defaultClasses, class)
1214-
klog.V(5).Infof("get defaultClass added: %s", class.Name)
1209+
klog.V(5).Infof("get defaultClass added: %s, driver: %s", class.Name, pvDriver)
12151210
}
12161211
}
12171212
if len(defaultClasses) == 0 {

pkg/common-controller/snapshot_create_test.go

Lines changed: 22 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323

2424
crdv1 "github.com/kubernetes-csi/external-snapshotter/client/v3/apis/volumesnapshot/v1beta1"
2525
v1 "k8s.io/api/core/v1"
26-
storage "k8s.io/api/storage/v1"
2726
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2827
)
2928

@@ -39,27 +38,6 @@ var metaTimeNowUnix = &metav1.Time{
3938
var defaultSize int64 = 1000
4039
var deletePolicy = crdv1.VolumeSnapshotContentDelete
4140
var retainPolicy = crdv1.VolumeSnapshotContentRetain
42-
var sameDriverStorageClass = &storage.StorageClass{
43-
TypeMeta: metav1.TypeMeta{
44-
Kind: "StorageClass",
45-
},
46-
ObjectMeta: metav1.ObjectMeta{
47-
Name: sameDriver,
48-
},
49-
Provisioner: mockDriverName,
50-
Parameters: class1Parameters,
51-
}
52-
53-
var diffDriverStorageClass = &storage.StorageClass{
54-
TypeMeta: metav1.TypeMeta{
55-
Kind: "StorageClass",
56-
},
57-
ObjectMeta: metav1.ObjectMeta{
58-
Name: diffDriver,
59-
},
60-
Provisioner: mockDriverName,
61-
Parameters: class1Parameters,
62-
}
6341

6442
// Test single call to SyncSnapshot, expecting create snapshot to happen.
6543
// 1. Fill in the controller with initial data
@@ -73,8 +51,8 @@ func TestCreateSnapshotSync(t *testing.T) {
7351
expectedContents: newContentArrayNoStatus("snapcontent-snapuid6-1", "snapuid6-1", "snap6-1", "sid6-1", classGold, "", "pv-handle6-1", deletionPolicy, nil, nil, false, false),
7452
initialSnapshots: newSnapshotArray("snap6-1", "snapuid6-1", "claim6-1", "", classGold, "", &False, nil, nil, nil, false, true, nil),
7553
expectedSnapshots: newSnapshotArray("snap6-1", "snapuid6-1", "claim6-1", "", classGold, "snapcontent-snapuid6-1", &False, nil, nil, nil, false, true, nil),
76-
initialClaims: newClaimArray("claim6-1", "pvc-uid6-1", "1Gi", "volume6-1", v1.ClaimBound, &classEmpty),
77-
initialVolumes: newVolumeArray("volume6-1", "pv-uid6-1", "pv-handle6-1", "1Gi", "pvc-uid6-1", "claim6-1", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
54+
initialClaims: newClaimArray("claim6-1", "pvc-uid6-1", "1Gi", "volume6-1", v1.ClaimBound, &classGold),
55+
initialVolumes: newVolumeArray("volume6-1", "pv-uid6-1", "pv-handle6-1", "1Gi", "pvc-uid6-1", "claim6-1", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classGold),
7856
errors: noerrors,
7957
test: testSyncSnapshot,
8058
},
@@ -108,26 +86,25 @@ func TestCreateSnapshotSync(t *testing.T) {
10886
test: testSyncSnapshot,
10987
},
11088
{
111-
name: "7-3 - fail to create snapshot without snapshot class ",
112-
initialContents: nocontents,
113-
expectedContents: nocontents,
114-
initialSnapshots: newSnapshotArray("snap7-3", "snapuid7-3", "claim7-3", "", "", "", &False, nil, nil, nil, false, true, nil),
115-
expectedSnapshots: newSnapshotArray("snap7-3", "snapuid7-3", "claim7-3", "", "", "", &False, nil, nil, newVolumeError("Failed to create snapshot content with error failed to get input parameters to create snapshot snap7-3: \"failed to take snapshot snap7-3 without a snapshot class\""), false, true, nil),
116-
initialClaims: newClaimArray("claim7-3", "pvc-uid7-3", "1Gi", "volume7-3", v1.ClaimBound, &classEmpty),
117-
initialVolumes: newVolumeArray("volume7-3", "pv-uid7-3", "pv-handle7-3", "1Gi", "pvc-uid7-3", "claim7-3", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
118-
initialStorageClasses: []*storage.StorageClass{diffDriverStorageClass},
119-
expectedEvents: []string{"Warning SnapshotContentCreationFailed"},
120-
errors: noerrors,
121-
expectSuccess: false,
122-
test: testSyncSnapshot,
89+
name: "7-3 - fail to create snapshot without snapshot class ",
90+
initialContents: nocontents,
91+
expectedContents: nocontents,
92+
initialSnapshots: newSnapshotArray("snap7-3", "snapuid7-3", "claim7-3", "", "", "", &False, nil, nil, nil, false, true, nil),
93+
expectedSnapshots: newSnapshotArray("snap7-3", "snapuid7-3", "claim7-3", "", "", "", &False, nil, nil, newVolumeError("Failed to create snapshot content with error failed to get input parameters to create snapshot snap7-3: \"failed to take snapshot snap7-3 without a snapshot class\""), false, true, nil),
94+
initialClaims: newClaimArray("claim7-3", "pvc-uid7-3", "1Gi", "volume7-3", v1.ClaimBound, &classEmpty),
95+
initialVolumes: newVolumeArray("volume7-3", "pv-uid7-3", "pv-handle7-3", "1Gi", "pvc-uid7-3", "claim7-3", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
96+
expectedEvents: []string{"Warning SnapshotContentCreationFailed"},
97+
errors: noerrors,
98+
expectSuccess: false,
99+
test: testSyncSnapshot,
123100
},
124101
{
125102
name: "7-4 - fail create snapshot with no-existing claim",
126103
initialContents: nocontents,
127104
expectedContents: nocontents,
128105
initialSnapshots: newSnapshotArray("snap7-4", "snapuid7-4", "claim7-4", "", classGold, "", &False, nil, nil, nil, false, true, nil),
129106
expectedSnapshots: newSnapshotArray("snap7-4", "snapuid7-4", "claim7-4", "", classGold, "", &False, nil, nil, newVolumeError("Failed to create snapshot content with error snapshot controller failed to update snap7-4 on API server: cannot get claim from snapshot"), false, true, nil),
130-
initialVolumes: newVolumeArray("volume7-4", "pv-uid7-4", "pv-handle7-4", "1Gi", "pvc-uid7-4", "claim7-4", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
107+
initialVolumes: newVolumeArray("volume7-4", "pv-uid7-4", "pv-handle7-4", "1Gi", "pvc-uid7-4", "claim7-4", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classGold),
131108
expectedEvents: []string{"Warning SnapshotContentCreationFailed"},
132109
errors: noerrors,
133110
expectSuccess: false,
@@ -139,7 +116,7 @@ func TestCreateSnapshotSync(t *testing.T) {
139116
expectedContents: nocontents,
140117
initialSnapshots: newSnapshotArray("snap7-5", "snapuid7-5", "claim7-5", "", classGold, "", &False, nil, nil, nil, false, true, nil),
141118
expectedSnapshots: newSnapshotArray("snap7-5", "snapuid7-5", "claim7-5", "", classGold, "", &False, nil, nil, newVolumeError("Failed to create snapshot content with error failed to get input parameters to create snapshot snap7-5: \"failed to retrieve PV volume7-5 from the API server: \\\"cannot find volume volume7-5\\\"\""), false, true, nil),
142-
initialClaims: newClaimArray("claim7-5", "pvc-uid7-5", "1Gi", "volume7-5", v1.ClaimBound, &classEmpty),
119+
initialClaims: newClaimArray("claim7-5", "pvc-uid7-5", "1Gi", "volume7-5", v1.ClaimBound, &classGold),
143120
expectedEvents: []string{"Warning SnapshotContentCreationFailed"},
144121
errors: noerrors,
145122
expectSuccess: false,
@@ -152,7 +129,7 @@ func TestCreateSnapshotSync(t *testing.T) {
152129
expectedContents: nocontents,
153130
initialSnapshots: newSnapshotArray("snap7-6", "snapuid7-6", "claim7-6", "", classGold, "", &False, nil, nil, nil, false, true, nil),
154131
expectedSnapshots: newSnapshotArray("snap7-6", "snapuid7-6", "claim7-6", "", classGold, "", &False, nil, nil, newVolumeError("Failed to create snapshot content with error failed to get input parameters to create snapshot snap7-6: \"the PVC claim7-6 is not yet bound to a PV, will not attempt to take a snapshot\""), false, true, nil),
155-
initialClaims: newClaimArray("claim7-6", "pvc-uid7-6", "1Gi", "", v1.ClaimPending, &classEmpty),
132+
initialClaims: newClaimArray("claim7-6", "pvc-uid7-6", "1Gi", "", v1.ClaimPending, &classGold),
156133
expectedEvents: []string{"Warning SnapshotContentCreationFailed"},
157134
errors: noerrors,
158135
expectSuccess: false,
@@ -165,8 +142,8 @@ func TestCreateSnapshotSync(t *testing.T) {
165142
expectedContents: newContentArray("snapcontent-snapuid7-7", "snapuid7-7", "snap7-7", "sid7-7", classGold, "", "pv-handle7-7", deletionPolicy, nil, nil, false),
166143
initialSnapshots: newSnapshotArray("snap7-7", "snapuid7-7", "claim7-7", "", classGold, "snapcontent-snapuid7-7", &True, nil, nil, nil, false, true, nil),
167144
expectedSnapshots: newSnapshotArray("snap7-7", "snapuid7-7", "claim7-7", "", classGold, "snapcontent-snapuid7-7", &True, nil, nil, nil, false, true, nil),
168-
initialClaims: newClaimArrayFinalizer("claim7-7", "pvc-uid7-7", "1Gi", "volume7-7", v1.ClaimBound, &classEmpty),
169-
initialVolumes: newVolumeArray("volume7-7", "pv-uid7-7", "pv-handle7-7", "1Gi", "pvc-uid7-7", "claim7-7", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
145+
initialClaims: newClaimArrayFinalizer("claim7-7", "pvc-uid7-7", "1Gi", "volume7-7", v1.ClaimBound, &classGold),
146+
initialVolumes: newVolumeArray("volume7-7", "pv-uid7-7", "pv-handle7-7", "1Gi", "pvc-uid7-7", "claim7-7", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classGold),
170147
errors: []reactorError{
171148
{"update", "persistentvolumeclaims", errors.New("mock update error")},
172149
{"update", "persistentvolumeclaims", errors.New("mock update error")},
@@ -181,8 +158,8 @@ func TestCreateSnapshotSync(t *testing.T) {
181158
expectedContents: newContentArrayNoStatus("snapcontent-snapuid7-9", "snapuid7-9", "snap7-9", "sid7-9", classGold, "", "pv-handle7-9", deletionPolicy, nil, nil, false, false),
182159
initialSnapshots: newSnapshotArray("snap7-9", "snapuid7-9", "claim7-9", "", classGold, "", &False, nil, nil, nil, false, true, nil),
183160
expectedSnapshots: newSnapshotArray("snap7-9", "snapuid7-9", "claim7-9", "", classGold, "", &False, nil, nil, nil, false, true, nil),
184-
initialClaims: newClaimArray("claim7-9", "pvc-uid7-9", "1Gi", "volume7-9", v1.ClaimBound, &classEmpty),
185-
initialVolumes: newVolumeArray("volume7-9", "pv-uid7-9", "pv-handle7-9", "1Gi", "pvc-uid7-9", "claim7-9", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
161+
initialClaims: newClaimArray("claim7-9", "pvc-uid7-9", "1Gi", "volume7-9", v1.ClaimBound, &classGold),
162+
initialVolumes: newVolumeArray("volume7-9", "pv-uid7-9", "pv-handle7-9", "1Gi", "pvc-uid7-9", "claim7-9", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classGold),
186163
errors: []reactorError{
187164
{"update", "volumesnapshots", errors.New("mock update error")},
188165
{"update", "volumesnapshots", errors.New("mock update error")},
@@ -204,17 +181,13 @@ func TestCreateSnapshotSync(t *testing.T) {
204181
test: testSyncSnapshot,
205182
},
206183
{
207-
// TODO(xiangqian): this test case needs to be
208-
// revisited the scenario
209-
// of VolumeSnapshotContent saving failure. Since there will be no content object
210-
// in API server, it could potentially cause leaking issue
211184
name: "7-11 - fail create snapshot due to cannot save snapshot content",
212185
initialContents: nocontents,
213186
expectedContents: nocontents,
214187
initialSnapshots: newSnapshotArray("snap7-11", "snapuid7-11", "claim7-11", "", classGold, "", &False, nil, nil, nil, false, true, nil),
215188
expectedSnapshots: newSnapshotArray("snap7-11", "snapuid7-11", "claim7-11", "", classGold, "", &False, nil, nil, newVolumeError("Failed to create snapshot content with error snapshot controller failed to update default/snap7-11 on API server: mock create error"), false, true, nil),
216-
initialClaims: newClaimArray("claim7-11", "pvc-uid7-11", "1Gi", "volume7-11", v1.ClaimBound, &classEmpty),
217-
initialVolumes: newVolumeArray("volume7-11", "pv-uid7-11", "pv-handle7-11", "1Gi", "pvc-uid7-11", "claim7-11", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classEmpty),
189+
initialClaims: newClaimArray("claim7-11", "pvc-uid7-11", "1Gi", "volume7-11", v1.ClaimBound, &classGold),
190+
initialVolumes: newVolumeArray("volume7-11", "pv-uid7-11", "pv-handle7-11", "1Gi", "pvc-uid7-11", "claim7-11", v1.VolumeBound, v1.PersistentVolumeReclaimDelete, classGold),
218191
errors: []reactorError{
219192
{"create", "volumesnapshotcontents", errors.New("mock create error")},
220193
{"create", "volumesnapshotcontents", errors.New("mock create error")},

0 commit comments

Comments
 (0)