blob: 37d64d4bd6f25910e586df992f301fd435be4fa4 [file] [log] [blame]
Jon Perrittb71a28a2014-09-17 18:16:32 -05001// +build acceptance blockstorage
2
3package v1
4
5import (
6 "os"
7 "strconv"
8 "testing"
9
10 "github.com/rackspace/gophercloud"
11 "github.com/rackspace/gophercloud/openstack"
12 "github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes"
13 "github.com/rackspace/gophercloud/openstack/utils"
14 "github.com/rackspace/gophercloud/pagination"
15)
16
17var numVols = 1
18
19func newClient() (*gophercloud.ServiceClient, error) {
20 ao, err := utils.AuthOptions()
21 if err != nil {
22 return nil, err
23 }
24
25 client, err := openstack.AuthenticatedClient(ao)
26 if err != nil {
27 return nil, err
28 }
29
30 return openstack.NewBlockStorageV1(client, gophercloud.EndpointOpts{
31 Region: os.Getenv("OS_REGION_NAME"),
32 })
33}
34
35func TestVolumes(t *testing.T) {
36 client, err := newClient()
37 if err != nil {
38 t.Fatalf("Failed to create Block Storage v1 client: %v", err)
39 }
40
41 for i := 0; i < numVols; i++ {
42 _, err = volumes.Create(client, volumes.VolumeOpts{
43 Size: 1,
44 Name: "gophercloud-test-volume-" + strconv.Itoa(i),
45 })
46 if err != nil {
47 t.Error(err)
48 return
49 } /*
50 defer func() {
51 time.Sleep(10000 * time.Millisecond)
52 err = volumes.Delete(client, volumes.DeleteOpts{
53 "id": cv.Id,
54 })
55 if err != nil {
56 t.Error(err)
57 return
58 }
59 }()
60 */
61 }
62
63 pager := volumes.List(client, volumes.ListOpts{})
64 if err != nil {
65 t.Error(err)
66 return
67 }
68 err = pager.EachPage(func(page pagination.Page) (bool, error) {
69 vols, err := volumes.ExtractVolumes(page)
70 if len(vols) != numVols {
71 t.Errorf("Expected %d volumes, got %d", numVols, len(vols))
72 }
73 return true, err
74 })
75}