github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/internal/acceptance/openstack/blockstorage/v3/backups_test.go (about) 1 //go:build acceptance || blockstorage || backups 2 3 package v3 4 5 import ( 6 "context" 7 "testing" 8 9 "github.com/vnpaycloud-console/gophercloud/v2/internal/acceptance/clients" 10 "github.com/vnpaycloud-console/gophercloud/v2/openstack/blockstorage/v3/backups" 11 12 th "github.com/vnpaycloud-console/gophercloud/v2/testhelper" 13 ) 14 15 func TestBackupsCRUD(t *testing.T) { 16 blockClient, err := clients.NewBlockStorageV3Client() 17 th.AssertNoErr(t, err) 18 19 volume, err := CreateVolume(t, blockClient) 20 th.AssertNoErr(t, err) 21 defer DeleteVolume(t, blockClient, volume) 22 23 backup, err := CreateBackup(t, blockClient, volume.ID) 24 th.AssertNoErr(t, err) 25 defer DeleteBackup(t, blockClient, backup.ID) 26 27 allPages, err := backups.List(blockClient, nil).AllPages(context.TODO()) 28 th.AssertNoErr(t, err) 29 30 allBackups, err := backups.ExtractBackups(allPages) 31 th.AssertNoErr(t, err) 32 33 var found bool 34 for _, v := range allBackups { 35 if backup.Name == v.Name { 36 found = true 37 } 38 } 39 40 th.AssertEquals(t, found, true) 41 } 42 43 func TestBackupsResetStatus(t *testing.T) { 44 blockClient, err := clients.NewBlockStorageV3Client() 45 th.AssertNoErr(t, err) 46 47 volume, err := CreateVolume(t, blockClient) 48 th.AssertNoErr(t, err) 49 defer DeleteVolume(t, blockClient, volume) 50 51 backup, err := CreateBackup(t, blockClient, volume.ID) 52 th.AssertNoErr(t, err) 53 defer DeleteBackup(t, blockClient, backup.ID) 54 55 err = ResetBackupStatus(t, blockClient, backup, "error") 56 th.AssertNoErr(t, err) 57 58 err = ResetBackupStatus(t, blockClient, backup, "available") 59 th.AssertNoErr(t, err) 60 } 61 62 func TestBackupsForceDelete(t *testing.T) { 63 blockClient, err := clients.NewBlockStorageV3Client() 64 th.AssertNoErr(t, err) 65 66 volume, err := CreateVolume(t, blockClient) 67 th.AssertNoErr(t, err) 68 defer DeleteVolume(t, blockClient, volume) 69 70 backup, err := CreateBackup(t, blockClient, volume.ID) 71 th.AssertNoErr(t, err) 72 defer DeleteBackup(t, blockClient, backup.ID) 73 74 err = WaitForBackupStatus(blockClient, backup.ID, "available") 75 th.AssertNoErr(t, err) 76 77 err = backups.ForceDelete(context.TODO(), blockClient, backup.ID).ExtractErr() 78 th.AssertNoErr(t, err) 79 80 err = WaitForBackupStatus(blockClient, backup.ID, "deleted") 81 th.AssertNoErr(t, err) 82 }