func TestVolumes(t *testing.T) { cfg, ok := configFromEnv() if !ok { t.Skipf("No config found in environment") } os, err := newOpenStack(cfg) if err != nil { t.Fatalf("Failed to construct/authenticate OpenStack: %s", err) } tags := map[string]string{ "test": "value", } vol, err := os.CreateVolume("kubernetes-test-volume-"+rand.String(10), 1, "", "", &tags) if err != nil { t.Fatalf("Cannot create a new Cinder volume: %v", err) } t.Logf("Volume (%s) created\n", vol) WaitForVolumeStatus(t, os, vol, volumeAvailableStatus, volumeCreateTimeoutSeconds) diskId, err := os.AttachDisk(os.localInstanceID, vol) if err != nil { t.Fatalf("Cannot AttachDisk Cinder volume %s: %v", vol, err) } t.Logf("Volume (%s) attached, disk ID: %s\n", vol, diskId) WaitForVolumeStatus(t, os, vol, volumeInUseStatus, volumeCreateTimeoutSeconds) devicePath := os.GetDevicePath(diskId) if !strings.HasPrefix(devicePath, "/dev/disk/by-id/") { t.Fatalf("GetDevicePath returned and unexpected path for Cinder volume %s, returned %s", vol, devicePath) } t.Logf("Volume (%s) found at path: %s\n", vol, devicePath) err = os.DetachDisk(os.localInstanceID, vol) if err != nil { t.Fatalf("Cannot DetachDisk Cinder volume %s: %v", vol, err) } t.Logf("Volume (%s) detached\n", vol) WaitForVolumeStatus(t, os, vol, volumeAvailableStatus, volumeCreateTimeoutSeconds) err = os.DeleteVolume(vol) if err != nil { t.Fatalf("Cannot delete Cinder volume %s: %v", vol, err) } t.Logf("Volume (%s) deleted\n", vol) }
func TestVolumes(t *testing.T) { cfg, ok := configFromEnv() if !ok { t.Skipf("No config found in environment") } os, err := newOpenStack(cfg) if err != nil { t.Fatalf("Failed to construct/authenticate OpenStack: %s", err) } tags := map[string]string{ "test": "value", } vol, err := os.CreateVolume("kubernetes-test-volume-"+rand.String(10), 1, &tags) if err != nil { t.Fatalf("Cannot create a new Cinder volume: %v", err) } t.Logf("Volume (%s) created\n", vol) WaitForVolumeStatus(t, os, vol, volumeAvailableStatus, volumeCreateTimeoutSeconds) diskId, err := os.AttachDisk(vol) if err != nil { t.Fatalf("Cannot AttachDisk Cinder volume %s: %v", vol, err) } t.Logf("Volume (%s) attached, disk ID: %s\n", vol, diskId) WaitForVolumeStatus(t, os, vol, volumeInUseStatus, volumeCreateTimeoutSeconds) err = os.DetachDisk(vol) if err != nil { t.Fatalf("Cannot DetachDisk Cinder volume %s: %v", vol, err) } t.Logf("Volume (%s) detached\n", vol) WaitForVolumeStatus(t, os, vol, volumeAvailableStatus, volumeCreateTimeoutSeconds) err = os.DeleteVolume(vol) if err != nil { t.Fatalf("Cannot delete Cinder volume %s: %v", vol, err) } t.Logf("Volume (%s) deleted\n", vol) }