| // +build acceptance blockstorage |
| |
| package v1 |
| |
| import ( |
| "os" |
| "strconv" |
| "testing" |
| |
| "github.com/rackspace/gophercloud" |
| "github.com/rackspace/gophercloud/openstack" |
| "github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes" |
| "github.com/rackspace/gophercloud/openstack/utils" |
| "github.com/rackspace/gophercloud/pagination" |
| ) |
| |
| var numVols = 1 |
| |
| func newClient() (*gophercloud.ServiceClient, error) { |
| ao, err := utils.AuthOptions() |
| if err != nil { |
| return nil, err |
| } |
| |
| client, err := openstack.AuthenticatedClient(ao) |
| if err != nil { |
| return nil, err |
| } |
| |
| return openstack.NewBlockStorageV1(client, gophercloud.EndpointOpts{ |
| Region: os.Getenv("OS_REGION_NAME"), |
| }) |
| } |
| |
| func TestVolumes(t *testing.T) { |
| client, err := newClient() |
| if err != nil { |
| t.Fatalf("Failed to create Block Storage v1 client: %v", err) |
| } |
| |
| for i := 0; i < numVols; i++ { |
| _, err = volumes.Create(client, volumes.VolumeOpts{ |
| Size: 1, |
| Name: "gophercloud-test-volume-" + strconv.Itoa(i), |
| }) |
| if err != nil { |
| t.Error(err) |
| return |
| } /* |
| defer func() { |
| time.Sleep(10000 * time.Millisecond) |
| err = volumes.Delete(client, volumes.DeleteOpts{ |
| "id": cv.Id, |
| }) |
| if err != nil { |
| t.Error(err) |
| return |
| } |
| }() |
| */ |
| } |
| |
| pager := volumes.List(client, volumes.ListOpts{}) |
| if err != nil { |
| t.Error(err) |
| return |
| } |
| err = pager.EachPage(func(page pagination.Page) (bool, error) { |
| vols, err := volumes.ExtractVolumes(page) |
| if len(vols) != numVols { |
| t.Errorf("Expected %d volumes, got %d", numVols, len(vols)) |
| } |
| return true, err |
| }) |
| } |