Ejemplo n.º 1
0
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
}
Ejemplo n.º 2
0
// 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)
}
Ejemplo n.º 3
0
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
}