github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/internal/acceptance/openstack/blockstorage/noauth/snapshots_test.go (about) 1 //go:build acceptance || blockstorage || snapshots 2 3 package noauth 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/internal/acceptance/tools" 11 "github.com/vnpaycloud-console/gophercloud/v2/openstack/blockstorage/v3/snapshots" 12 ) 13 14 func TestSnapshotsList(t *testing.T) { 15 clients.RequireCinderNoAuth(t) 16 17 client, err := clients.NewBlockStorageV3NoAuthClient() 18 if err != nil { 19 t.Fatalf("Unable to create a blockstorage client: %v", err) 20 } 21 22 allPages, err := snapshots.List(client, snapshots.ListOpts{}).AllPages(context.TODO()) 23 if err != nil { 24 t.Fatalf("Unable to retrieve snapshots: %v", err) 25 } 26 27 allSnapshots, err := snapshots.ExtractSnapshots(allPages) 28 if err != nil { 29 t.Fatalf("Unable to extract snapshots: %v", err) 30 } 31 32 for _, snapshot := range allSnapshots { 33 tools.PrintResource(t, snapshot) 34 } 35 } 36 37 func TestSnapshotsCreateDelete(t *testing.T) { 38 clients.RequireCinderNoAuth(t) 39 40 client, err := clients.NewBlockStorageV3NoAuthClient() 41 if err != nil { 42 t.Fatalf("Unable to create a blockstorage client: %v", err) 43 } 44 45 volume, err := CreateVolume(t, client) 46 if err != nil { 47 t.Fatalf("Unable to create volume: %v", err) 48 } 49 defer DeleteVolume(t, client, volume) 50 51 snapshot, err := CreateSnapshot(t, client, volume) 52 if err != nil { 53 t.Fatalf("Unable to create snapshot: %v", err) 54 } 55 defer DeleteSnapshot(t, client, snapshot) 56 57 newSnapshot, err := snapshots.Get(context.TODO(), client, snapshot.ID).Extract() 58 if err != nil { 59 t.Errorf("Unable to retrieve snapshot: %v", err) 60 } 61 62 tools.PrintResource(t, newSnapshot) 63 }