Split snapshot controller using beta APIs

This commit is contained in:
xing-yang
2019-10-19 14:48:38 +00:00
parent 89889f005c
commit 6308420635
32 changed files with 3050 additions and 1817 deletions

View File

@@ -79,7 +79,6 @@ func TestCreateSnapshot(t *testing.T) {
}
csiVolume := FakeCSIVolume()
volumeWithoutCSI := FakeVolume()
defaultRequest := &csi.CreateSnapshotRequest{
Name: defaultName,
@@ -135,7 +134,7 @@ func TestCreateSnapshot(t *testing.T) {
tests := []struct {
name string
snapshotName string
volume *v1.PersistentVolume
volumeHandle string
parameters map[string]string
secrets map[string]string
input *csi.CreateSnapshotRequest
@@ -147,7 +146,7 @@ func TestCreateSnapshot(t *testing.T) {
{
name: "success",
snapshotName: defaultName,
volume: csiVolume,
volumeHandle: csiVolume.Spec.CSI.VolumeHandle,
input: defaultRequest,
output: defaultResponse,
expectError: false,
@@ -156,7 +155,7 @@ func TestCreateSnapshot(t *testing.T) {
{
name: "attributes",
snapshotName: defaultName,
volume: csiVolume,
volumeHandle: csiVolume.Spec.CSI.VolumeHandle,
parameters: defaultParameter,
input: attributesRequest,
output: defaultResponse,
@@ -166,25 +165,17 @@ func TestCreateSnapshot(t *testing.T) {
{
name: "secrets",
snapshotName: defaultName,
volume: csiVolume,
volumeHandle: csiVolume.Spec.CSI.VolumeHandle,
secrets: createSecrets,
input: secretsRequest,
output: defaultResponse,
expectError: false,
expectResult: result,
},
{
name: "fail for volume without csi source",
snapshotName: defaultName,
volume: volumeWithoutCSI,
input: nil,
output: nil,
expectError: true,
},
{
name: "gRPC transient error",
snapshotName: defaultName,
volume: csiVolume,
volumeHandle: csiVolume.Spec.CSI.VolumeHandle,
input: defaultRequest,
output: nil,
injectError: codes.DeadlineExceeded,
@@ -193,7 +184,7 @@ func TestCreateSnapshot(t *testing.T) {
{
name: "gRPC final error",
snapshotName: defaultName,
volume: csiVolume,
volumeHandle: csiVolume.Spec.CSI.VolumeHandle,
input: defaultRequest,
output: nil,
injectError: codes.NotFound,
@@ -224,7 +215,7 @@ func TestCreateSnapshot(t *testing.T) {
}
s := NewSnapshotter(csiConn)
driverName, snapshotId, timestamp, size, readyToUse, err := s.CreateSnapshot(context.Background(), test.snapshotName, test.volume, test.parameters, test.secrets)
driverName, snapshotId, timestamp, size, readyToUse, err := s.CreateSnapshot(context.Background(), test.snapshotName, test.volumeHandle, test.parameters, test.secrets)
if test.expectError && err == nil {
t.Errorf("test %q: Expected error, got none", test.name)
}
@@ -509,29 +500,3 @@ func FakeCSIVolume() *v1.PersistentVolume {
return &volume
}
func FakeVolume() *v1.PersistentVolume {
volume := v1.PersistentVolume{
ObjectMeta: metav1.ObjectMeta{
Name: "fake-csi-volume",
},
Spec: v1.PersistentVolumeSpec{
ClaimRef: &v1.ObjectReference{
Kind: "PersistentVolumeClaim",
APIVersion: "v1",
UID: types.UID("uid123"),
Namespace: "default",
Name: "test-claim",
},
PersistentVolumeSource: v1.PersistentVolumeSource{
GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{},
},
StorageClassName: "default",
},
Status: v1.PersistentVolumeStatus{
Phase: v1.VolumeBound,
},
}
return &volume
}