blob: 9a555009fb1a48ff5e54a3b222e7ad1a384193c4 [file] [log] [blame]
Jon Perrittb71a28a2014-09-17 18:16:32 -05001// +build acceptance blockstorage
2
3package v1
4
5import (
Jon Perrittb71a28a2014-09-17 18:16:32 -05006 "testing"
7
Joe Topjian68bed5f2016-08-10 15:30:57 -06008 "github.com/gophercloud/gophercloud/acceptance/clients"
Joe Topjian66a046c2017-01-19 22:07:26 -07009 "github.com/gophercloud/gophercloud/acceptance/tools"
Jon Perritt27249f42016-02-18 10:35:59 -060010 "github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes"
Jon Perrittb71a28a2014-09-17 18:16:32 -050011)
12
Joe Topjian68bed5f2016-08-10 15:30:57 -060013func TestVolumesList(t *testing.T) {
14 client, err := clients.NewBlockStorageV1Client()
15 if err != nil {
16 t.Fatalf("Unable to create a blockstorage client: %v", err)
Jon Perritt97347a02014-09-21 13:34:48 -050017 }
18
Joe Topjian68bed5f2016-08-10 15:30:57 -060019 allPages, err := volumes.List(client, volumes.ListOpts{}).AllPages()
20 if err != nil {
21 t.Fatalf("Unable to retrieve volumes: %v", err)
22 }
23
24 allVolumes, err := volumes.ExtractVolumes(allPages)
25 if err != nil {
26 t.Fatalf("Unable to extract volumes: %v", err)
27 }
28
29 for _, volume := range allVolumes {
Joe Topjian66a046c2017-01-19 22:07:26 -070030 tools.PrintResource(t, volume)
Joe Topjian68bed5f2016-08-10 15:30:57 -060031 }
32}
33
34func TestVolumesCreateDestroy(t *testing.T) {
35 client, err := clients.NewBlockStorageV1Client()
36 if err != nil {
37 t.Fatalf("Unable to create blockstorage client: %v", err)
38 }
39
40 volume, err := CreateVolume(t, client)
41 if err != nil {
42 t.Fatalf("Unable to create volume: %v", err)
43 }
44 defer DeleteVolume(t, client, volume)
45
46 newVolume, err := volumes.Get(client, volume.ID).Extract()
47 if err != nil {
48 t.Errorf("Unable to retrieve volume: %v", err)
49 }
50
Joe Topjian66a046c2017-01-19 22:07:26 -070051 tools.PrintResource(t, newVolume)
Jon Perrittb71a28a2014-09-17 18:16:32 -050052}