func TestVolumesList(t *testing.T) { client, err := clients.NewBlockStorageV2Client() if err != nil { t.Fatalf("Unable to create a blockstorage client: %v", err) } allPages, err := volumes.List(client, volumes.ListOpts{}).AllPages() if err != nil { t.Fatalf("Unable to retrieve volumes: %v", err) } allVolumes, err := volumes.ExtractVolumes(allPages) if err != nil { t.Fatalf("Unable to extract volumes: %v", err) } for _, volume := range allVolumes { PrintVolume(t, &volume) } }
func TestListWithExtensions(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() MockListResponse(t) count := 0 volumes.List(client.ServiceClient(), &volumes.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) { count++ actual, err := volumes.ExtractVolumes(page) if err != nil { t.Errorf("Failed to extract volumes: %v", err) return false, err } expected := []volumes.Volume{ { ID: "289da7f8-6440-407c-9fb4-7db01ec49164", Name: "vol-001", Attachments: []volumes.Attachment{{ ServerID: "83ec2e3b-4321-422b-8706-a84185f52a0a", AttachmentID: "05551600-a936-4d4a-ba42-79a037c1-c91a", AttachedAt: gophercloud.JSONRFC3339MilliNoZ(time.Date(2016, 8, 6, 14, 48, 20, 0, time.UTC)), HostName: "foobar", VolumeID: "d6cacb1a-8b59-4c88-ad90-d70ebb82bb75", Device: "/dev/vdc", ID: "d6cacb1a-8b59-4c88-ad90-d70ebb82bb75", }}, AvailabilityZone: "nova", Bootable: "false", ConsistencyGroupID: "", CreatedAt: gophercloud.JSONRFC3339MilliNoZ(time.Date(2015, 9, 17, 3, 35, 3, 0, time.UTC)), Description: "", Encrypted: false, Metadata: map[string]string{"foo": "bar"}, Multiattach: false, //TenantID: "304dc00909ac4d0da6c62d816bcb3459", //ReplicationDriverData: "", //ReplicationExtendedStatus: "", ReplicationStatus: "disabled", Size: 75, SnapshotID: "", SourceVolID: "", Status: "available", UserID: "ff1ce52c03ab433aaba9108c2e3ef541", VolumeType: "lvmdriver-1", }, { ID: "96c3bda7-c82a-4f50-be73-ca7621794835", Name: "vol-002", Attachments: []volumes.Attachment{}, AvailabilityZone: "nova", Bootable: "false", ConsistencyGroupID: "", CreatedAt: gophercloud.JSONRFC3339MilliNoZ(time.Date(2015, 9, 17, 3, 32, 29, 0, time.UTC)), Description: "", Encrypted: false, Metadata: map[string]string{}, Multiattach: false, //TenantID: "304dc00909ac4d0da6c62d816bcb3459", //ReplicationDriverData: "", //ReplicationExtendedStatus: "", ReplicationStatus: "disabled", Size: 75, SnapshotID: "", SourceVolID: "", Status: "available", UserID: "ff1ce52c03ab433aaba9108c2e3ef541", VolumeType: "lvmdriver-1", }, } th.CheckDeepEquals(t, expected, actual) return true, nil }) if count != 1 { t.Errorf("Expected 1 page, got %d", count) } }