func createVAVolume(t *testing.T, blockClient *gophercloud.ServiceClient) (*volumes.Volume, error) { volume, err := volumes.Create(blockClient, &osVolumes.CreateOpts{ Size: 80, Name: "gophercloud-test-volume", }).Extract() th.AssertNoErr(t, err) defer func() { err = osVolumes.WaitForStatus(blockClient, volume.ID, "available", 60) th.AssertNoErr(t, err) }() return volume, err }
// create cloud block storage volume in rackspace public cloud func Create(c *cli.Context) { // assign vars from cli args user := c.String("user") key := c.String("key") region := c.String("region") name := c.String("name") size := c.Int("size") var volType string if c.String("type") != "" { volType = c.String("type") } // step 1, set up auth options ao := gophercloud.AuthOptions{ Username: user, APIKey: key, } // step 2, rax auth to get back provider instance provider, err := rackspace.AuthenticatedClient(ao) if err != nil { fmt.Println(err) } // set rax region serviceClient, err2 := rackspace.NewBlockStorageV1(provider, gophercloud.EndpointOpts{ Region: region, }) if err2 != nil { fmt.Println(err2) } // https://github.com/rackspace/gophercloud/blob/master/openstack/blockstorage/v1/volumes/requests.go opts := osvolumes.CreateOpts{ Name: name, Size: size, VolumeType: volType, } if volType == "" { opts = osvolumes.CreateOpts{ Name: name, Size: size, } } vol, err3 := volumes.Create(serviceClient, opts).Extract() if err3 != nil { fmt.Println(err3) } fmt.Println(vol) }
func testVolumeCreate(t *testing.T, client *gophercloud.ServiceClient) string { vol, err := volumes.Create(client, os.CreateOpts{Size: 75}).Extract() th.AssertNoErr(t, err) t.Logf("Created volume: ID [%s] Size [%s]", vol.ID, vol.Size) return vol.ID }