Documentation
¶
Overview ¶
Package volumes provides information and interaction with volumes in the OpenStack Block Storage service. A volume is a detachable block storage device, akin to a USB hard drive. It can only be attached to one instance at a time.
Index ¶
- func IDFromName(client *gophercloud.ServiceClient, name string) (string, error)
- func List(client *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager
- func MockCreateResponse(t *testing.T)
- func MockDeleteResponse(t *testing.T)
- func MockGetResponse(t *testing.T)
- func MockListResponse(t *testing.T)
- func MockUpdateResponse(t *testing.T)
- func WaitForStatus(c *gophercloud.ServiceClient, id, status string, secs int) error
- type CreateOpts
- type CreateOptsBuilder
- type CreateResult
- type DeleteResult
- type GetResult
- type ListOpts
- type ListOptsBuilder
- type ListResult
- type UpdateOpts
- type UpdateOptsBuilder
- type UpdateResult
- type Volume
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IDFromName ¶
func IDFromName(client *gophercloud.ServiceClient, name string) (string, error)
IDFromName is a convienience function that returns a server's ID given its name.
func List ¶
func List(client *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager
List returns Volumes optionally limited by the conditions provided in ListOpts.
func MockCreateResponse ¶
func MockDeleteResponse ¶
func MockGetResponse ¶
func MockListResponse ¶
func MockUpdateResponse ¶
func WaitForStatus ¶
func WaitForStatus(c *gophercloud.ServiceClient, id, status string, secs int) error
WaitForStatus will continually poll the resource, checking for a particular status. It will do this for the amount of seconds defined.
Types ¶
type CreateOpts ¶
type CreateOpts struct {
// The availability zone [OPTIONAL]
AvailabilityZone string
// ConsistencyGroupID is the ID of a consistency group [OPTINAL]
ConsistencyGroupID string
// The volume description [OPTIONAL]
Description string
// One or more metadata key and value pairs to associate with the volume [OPTIONAL]
Metadata map[string]string
// The volume name [OPTIONAL]
Name string
// The size of the volume, in gibibytes (GiB) [REQUIRED]
Size int
// the ID of the existing volume snapshot [OPTIONAL]
SnapshotID string
// SourceReplica is a UUID of an existing volume to replicate with [OPTIONAL]
SourceReplica string
// the ID of the existing volume [OPTIONAL]
SourceVolID string
// The ID of the image from which you want to create the volume.
// Required to create a bootable volume.
ImageID string
// The associated volume type [OPTIONAL]
VolumeType string
}
CreateOpts contains options for creating a Volume. This object is passed to the volumes.Create function. For more information about these parameters, see the Volume object.
func (CreateOpts) ToVolumeCreateMap ¶
func (opts CreateOpts) ToVolumeCreateMap() (map[string]interface{}, error)
ToVolumeCreateMap assembles a request body based on the contents of a CreateOpts.
type CreateOptsBuilder ¶
CreateOptsBuilder allows extensions to add additional parameters to the Create request.
type CreateResult ¶
type CreateResult struct {
// contains filtered or unexported fields
}
CreateResult contains the response body and error from a Create request.
func Create ¶
func Create(client *gophercloud.ServiceClient, opts CreateOptsBuilder) CreateResult
Create will create a new Volume based on the values in CreateOpts. To extract the Volume object from the response, call the Extract method on the CreateResult.
type DeleteResult ¶
type DeleteResult struct {
gophercloud.ErrResult
}
DeleteResult contains the response body and error from a Delete request.
func Delete ¶
func Delete(client *gophercloud.ServiceClient, id string) DeleteResult
Delete will delete the existing Volume with the provided ID.
type GetResult ¶
type GetResult struct {
// contains filtered or unexported fields
}
GetResult contains the response body and error from a Get request.
func Get ¶
func Get(client *gophercloud.ServiceClient, id string) GetResult
Get retrieves the Volume with the provided ID. To extract the Volume object from the response, call the Extract method on the GetResult.
type ListOpts ¶
type ListOpts struct {
// admin-only option. Set it to true to see all tenant volumes.
AllTenants bool `q:"all_tenants"`
// List only volumes that contain Metadata.
Metadata map[string]string `q:"metadata"`
// List only volumes that have Name as the display name.
Name string `q:"name"`
// List only volumes that have a status of Status.
Status string `q:"status"`
}
ListOpts holds options for listing Volumes. It is passed to the volumes.List function.
func (ListOpts) ToVolumeListQuery ¶
ToVolumeListQuery formats a ListOpts into a query string.
type ListOptsBuilder ¶
ListOptsBuilder allows extensions to add additional parameters to the List request.
type ListResult ¶
type ListResult struct {
pagination.SinglePageBase
}
ListResult is a pagination.pager that is returned from a call to the List function.
func (ListResult) IsEmpty ¶
func (r ListResult) IsEmpty() (bool, error)
IsEmpty returns true if a ListResult contains no Volumes.
type UpdateOpts ¶
type UpdateOpts struct {
// OPTIONAL
Name string
// OPTIONAL
Description string
// OPTIONAL
Metadata map[string]string
}
UpdateOpts contain options for updating an existing Volume. This object is passed to the volumes.Update function. For more information about the parameters, see the Volume object.
func (UpdateOpts) ToVolumeUpdateMap ¶
func (opts UpdateOpts) ToVolumeUpdateMap() (map[string]interface{}, error)
ToVolumeUpdateMap assembles a request body based on the contents of an UpdateOpts.
type UpdateOptsBuilder ¶
UpdateOptsBuilder allows extensions to add additional parameters to the Update request.
type UpdateResult ¶
type UpdateResult struct {
// contains filtered or unexported fields
}
UpdateResult contains the response body and error from an Update request.
func Update ¶
func Update(client *gophercloud.ServiceClient, id string, opts UpdateOptsBuilder) UpdateResult
Update will update the Volume with provided information. To extract the updated Volume from the response, call the Extract method on the UpdateResult.
type Volume ¶
type Volume struct {
// Instances onto which the volume is attached.
Attachments []map[string]interface{} `mapstructure:"attachments"`
// AvailabilityZone is which availability zone the volume is in.
AvailabilityZone string `mapstructure:"availability_zone"`
// Indicates whether this is a bootable volume.
Bootable string `mapstructure:"bootable"`
// ConsistencyGroupID is the consistency group ID.
ConsistencyGroupID string `mapstructure:"consistencygroup_id"`
// The date when this volume was created.
CreatedAt string `mapstructure:"created_at"`
// Human-readable description for the volume.
Description string `mapstructure:"description"`
// Encrypted denotes if the volume is encrypted.
Encrypted bool `mapstructure:"encrypted"`
// Human-readable display name for the volume.
Name string `mapstructure:"name"`
// The type of volume to create, either SATA or SSD.
VolumeType string `mapstructure:"volume_type"`
// ReplicationDriverData contains data about the replication driver.
ReplicationDriverData string `mapstructure:"os-volume-replication:driver_data"`
// ReplicationExtendedStatus contains extended status about replication.
ReplicationExtendedStatus string `mapstructure:"os-volume-replication:extended_status"`
// ReplicationStatus is the status of replication.
ReplicationStatus string `mapstructure:"replication_status"`
// The ID of the snapshot from which the volume was created
SnapshotID string `mapstructure:"snapshot_id"`
// The ID of another block storage volume from which the current volume was created
SourceVolID string `mapstructure:"source_volid"`
// Current status of the volume.
Status string `mapstructure:"status"`
// TenantID is the id of the project that owns the volume.
TenantID string `mapstructure:"os-vol-tenant-attr:tenant_id"`
// Arbitrary key-value pairs defined by the user.
Metadata map[string]string `mapstructure:"metadata"`
// Multiattach denotes if the volume is multi-attach capable.
Multiattach bool `mapstructure:"multiattach"`
// Unique identifier for the volume.
ID string `mapstructure:"id"`
// Size of the volume in GB.
Size int `mapstructure:"size"`
// UserID is the id of the user who created the volume.
UserID string `mapstructure:"user_id"`
}
Volume contains all the information associated with an OpenStack Volume.
func ExtractVolumes ¶
func ExtractVolumes(page pagination.Page) ([]Volume, error)
ExtractVolumes extracts and returns Volumes. It is used while iterating over a volumes.List call.