blob: 2dc58db807e3b54b24dff7951c46571d0690c6cf [file] [log] [blame]
Joe Topjian68bed5f2016-08-10 15:30:57 -06001// +build acceptance blockstorage
Jon Perrittd0399572014-09-22 18:03:02 -05002
Jon Perrittb71a28a2014-09-17 18:16:32 -05003package v1
Jon Perrittd0399572014-09-22 18:03:02 -05004
5import (
Jon Perrittd0399572014-09-22 18:03:02 -05006 "testing"
Jon Perrittd0399572014-09-22 18:03:02 -05007
Joe Topjian68bed5f2016-08-10 15:30:57 -06008 "github.com/gophercloud/gophercloud/acceptance/clients"
Jon Perritt27249f42016-02-18 10:35:59 -06009 "github.com/gophercloud/gophercloud/openstack/blockstorage/v1/snapshots"
Jon Perrittd0399572014-09-22 18:03:02 -050010)
11
Joe Topjian68bed5f2016-08-10 15:30:57 -060012func TestSnapshotsList(t *testing.T) {
13 client, err := clients.NewBlockStorageV1Client()
14 if err != nil {
15 t.Fatalf("Unable to create a blockstorage client: %v", err)
16 }
Jon Perrittd4788f92014-09-24 12:05:27 -050017
Joe Topjian68bed5f2016-08-10 15:30:57 -060018 allPages, err := snapshots.List(client, snapshots.ListOpts{}).AllPages()
19 if err != nil {
20 t.Fatalf("Unable to retrieve snapshots: %v", err)
21 }
Jon Perritt46be1a12014-11-03 09:18:24 -060022
Joe Topjian68bed5f2016-08-10 15:30:57 -060023 allSnapshots, err := snapshots.ExtractSnapshots(allPages)
24 if err != nil {
25 t.Fatalf("Unable to extract snapshots: %v", err)
26 }
Jon Perritt57ba7632014-10-02 20:32:22 -050027
Joe Topjian68bed5f2016-08-10 15:30:57 -060028 for _, snapshot := range allSnapshots {
29 PrintSnapshot(t, &snapshot)
30 }
31}
Jon Perritt57ba7632014-10-02 20:32:22 -050032
Joe Topjian68bed5f2016-08-10 15:30:57 -060033func TestSnapshotsCreateDelete(t *testing.T) {
34 client, err := clients.NewBlockStorageV1Client()
35 if err != nil {
36 t.Fatalf("Unable to create a blockstorage client: %v", err)
37 }
Jon Perritt57ba7632014-10-02 20:32:22 -050038
Joe Topjian68bed5f2016-08-10 15:30:57 -060039 volume, err := CreateVolume(t, client)
40 if err != nil {
41 t.Fatalf("Unable to create volume: %v", err)
42 }
43 defer DeleteVolume(t, client, volume)
Jon Perritt57ba7632014-10-02 20:32:22 -050044
Joe Topjian68bed5f2016-08-10 15:30:57 -060045 snapshot, err := CreateSnapshot(t, client, volume)
46 if err != nil {
47 t.Fatalf("Unable to create snapshot: %v", err)
48 }
49 defer DeleteSnapshotshot(t, client, snapshot)
Jon Perritt57ba7632014-10-02 20:32:22 -050050
Joe Topjian68bed5f2016-08-10 15:30:57 -060051 newSnapshot, err := snapshots.Get(client, snapshot.ID).Extract()
52 if err != nil {
53 t.Errorf("Unable to retrieve snapshot: %v", err)
54 }
Jon Perritt57ba7632014-10-02 20:32:22 -050055
Joe Topjian68bed5f2016-08-10 15:30:57 -060056 PrintSnapshot(t, newSnapshot)
Jon Perrittd0399572014-09-22 18:03:02 -050057}