github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/blockstorage/v1/volumes_test.go (about) 1 //go:build acceptance || blockstorage 2 // +build acceptance blockstorage 3 4 package v1 5 6 import ( 7 "testing" 8 9 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 10 "github.com/gophercloud/gophercloud/internal/acceptance/tools" 11 "github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes" 12 th "github.com/gophercloud/gophercloud/testhelper" 13 ) 14 15 func TestVolumesList(t *testing.T) { 16 clients.SkipReleasesAbove(t, "stable/icehouse") 17 client, err := clients.NewBlockStorageV1Client() 18 if err != nil { 19 t.Fatalf("Unable to create a blockstorage client: %v", err) 20 } 21 22 allPages, err := volumes.List(client, volumes.ListOpts{}).AllPages() 23 if err != nil { 24 t.Fatalf("Unable to retrieve volumes: %v", err) 25 } 26 27 allVolumes, err := volumes.ExtractVolumes(allPages) 28 if err != nil { 29 t.Fatalf("Unable to extract volumes: %v", err) 30 } 31 32 for _, volume := range allVolumes { 33 tools.PrintResource(t, volume) 34 } 35 } 36 37 func TestVolumesCreateDestroy(t *testing.T) { 38 clients.SkipReleasesAbove(t, "stable/icehouse") 39 client, err := clients.NewBlockStorageV1Client() 40 if err != nil { 41 t.Fatalf("Unable to create blockstorage client: %v", err) 42 } 43 44 volume, err := CreateVolume(t, client) 45 if err != nil { 46 t.Fatalf("Unable to create volume: %v", err) 47 } 48 defer DeleteVolume(t, client, volume) 49 50 newVolume, err := volumes.Get(client, volume.ID).Extract() 51 if err != nil { 52 t.Errorf("Unable to retrieve volume: %v", err) 53 } 54 55 tools.PrintResource(t, newVolume) 56 th.AssertEquals(t, volume.Name, newVolume.Name) 57 th.AssertEquals(t, volume.Description, newVolume.Description) 58 59 // Update volume 60 updatedVolumeName := "" 61 updatedVolumeDescription := "" 62 updateOpts := volumes.UpdateOpts{ 63 Name: &updatedVolumeName, 64 Description: &updatedVolumeDescription, 65 } 66 updatedVolume, err := volumes.Update(client, volume.ID, updateOpts).Extract() 67 th.AssertNoErr(t, err) 68 69 tools.PrintResource(t, updatedVolume) 70 th.AssertEquals(t, updatedVolume.Name, updatedVolumeName) 71 th.AssertEquals(t, updatedVolume.Description, updatedVolumeDescription) 72 }