func TestVolumeTypes(t *testing.T) { client, err := newClient() th.AssertNoErr(t, err) vt, err := volumetypes.Create(client, &volumetypes.CreateOpts{ ExtraSpecs: map[string]interface{}{ "capabilities": "gpu", "priority": 3, }, Name: "gophercloud-test-volumeType", }).Extract() th.AssertNoErr(t, err) defer func() { time.Sleep(10000 * time.Millisecond) err = volumetypes.Delete(client, vt.ID).ExtractErr() if err != nil { t.Error(err) return } }() t.Logf("Created volume type: %+v\n", vt) vt, err = volumetypes.Get(client, vt.ID).Extract() th.AssertNoErr(t, err) t.Logf("Got volume type: %+v\n", vt) err = volumetypes.List(client).EachPage(func(page pagination.Page) (bool, error) { volTypes, err := volumetypes.ExtractVolumeTypes(page) if len(volTypes) != 1 { t.Errorf("Expected 1 volume type, got %d", len(volTypes)) } t.Logf("Listing volume types: %+v\n", volTypes) return true, err }) th.AssertNoErr(t, err) }
// Get will retrieve the volume type with the provided ID. To extract the volume // type from the result, call the Extract method on the GetResult. func Get(client *gophercloud.ServiceClient, id string) GetResult { return GetResult{os.Get(client, id)} }