gophercloud: github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes Index | Files | Directories

package volumes

import "github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes"

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

Package Files

doc.go requests.go results.go urls.go util.go

func ExtractVolumesInto Uses

func ExtractVolumesInto(r pagination.Page, v interface{}) error

ExtractVolumesInto similar to ExtractInto but operates on a `list` of volumes

func IDFromName Uses

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 Uses

func List(client *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager

List returns Volumes optionally limited by the conditions provided in ListOpts.

func WaitForStatus Uses

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.

type Attachment Uses

type Attachment struct {
    AttachedAt   time.Time `json:"-"`
    AttachmentID string    `json:"attachment_id"`
    Device       string    `json:"device"`
    HostName     string    `json:"host_name"`
    ID           string    `json:"id"`
    ServerID     string    `json:"server_id"`
    VolumeID     string    `json:"volume_id"`
}

Attachment represents a Volume Attachment record

func (*Attachment) UnmarshalJSON Uses

func (r *Attachment) UnmarshalJSON(b []byte) error

UnmarshalJSON is our unmarshalling helper

type CreateOpts Uses

type CreateOpts struct {
    // The size of the volume, in GB
    Size int `json:"size" required:"true"`
    // The availability zone
    AvailabilityZone string `json:"availability_zone,omitempty"`
    // ConsistencyGroupID is the ID of a consistency group
    ConsistencyGroupID string `json:"consistencygroup_id,omitempty"`
    // The volume description
    Description string `json:"description,omitempty"`
    // One or more metadata key and value pairs to associate with the volume
    Metadata map[string]string `json:"metadata,omitempty"`
    // The volume name
    Name string `json:"name,omitempty"`
    // the ID of the existing volume snapshot
    SnapshotID string `json:"snapshot_id,omitempty"`
    // SourceReplica is a UUID of an existing volume to replicate with
    SourceReplica string `json:"source_replica,omitempty"`
    // the ID of the existing volume
    SourceVolID string `json:"source_volid,omitempty"`
    // The ID of the image from which you want to create the volume.
    // Required to create a bootable volume.
    ImageID string `json:"imageRef,omitempty"`
    // The associated volume type
    VolumeType string `json:"volume_type,omitempty"`
    // Multiattach denotes if the volume is multi-attach capable.
    Multiattach bool `json:"multiattach,omitempty"`
}

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 Uses

func (opts CreateOpts) ToVolumeCreateMap() (map[string]interface{}, error)

ToVolumeCreateMap assembles a request body based on the contents of a CreateOpts.

type CreateOptsBuilder Uses

type CreateOptsBuilder interface {
    ToVolumeCreateMap() (map[string]interface{}, error)
}

CreateOptsBuilder allows extensions to add additional parameters to the Create request.

type CreateResult Uses

type CreateResult struct {
    // contains filtered or unexported fields
}

CreateResult contains the response body and error from a Create request.

func Create Uses

func Create(client *gophercloud.ServiceClient, opts CreateOptsBuilder) (r 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.

func (CreateResult) Extract Uses

func (r CreateResult) Extract() (*Volume, error)

Extract will get the Volume object out of the commonResult object.

func (CreateResult) ExtractInto Uses

func (r CreateResult) ExtractInto(v interface{}) error

ExtractInto converts our response data into a volume struct

type DeleteOpts Uses

type DeleteOpts struct {
    // Delete all snapshots of this volume as well.
    Cascade bool `q:"cascade"`
}

DeleteOpts contains options for deleting a Volume. This object is passed to the volumes.Delete function.

func (DeleteOpts) ToVolumeDeleteQuery Uses

func (opts DeleteOpts) ToVolumeDeleteQuery() (string, error)

ToLoadBalancerDeleteQuery formats a DeleteOpts into a query string.

type DeleteOptsBuilder Uses

type DeleteOptsBuilder interface {
    ToVolumeDeleteQuery() (string, error)
}

DeleteOptsBuilder allows extensions to add additional parameters to the Delete request.

type DeleteResult Uses

type DeleteResult struct {
    gophercloud.ErrResult
}

DeleteResult contains the response body and error from a Delete request.

func Delete Uses

func Delete(client *gophercloud.ServiceClient, id string, opts DeleteOptsBuilder) (r DeleteResult)

Delete will delete the existing Volume with the provided ID.

type GetResult Uses

type GetResult struct {
    // contains filtered or unexported fields
}

GetResult contains the response body and error from a Get request.

func Get Uses

func Get(client *gophercloud.ServiceClient, id string) (r GetResult)

Get retrieves the Volume with the provided ID. To extract the Volume object from the response, call the Extract method on the GetResult.

func (GetResult) Extract Uses

func (r GetResult) Extract() (*Volume, error)

Extract will get the Volume object out of the commonResult object.

func (GetResult) ExtractInto Uses

func (r GetResult) ExtractInto(v interface{}) error

ExtractInto converts our response data into a volume struct

type ListOpts Uses

type ListOpts struct {
    // AllTenants will retrieve volumes of all tenants/projects.
    AllTenants bool `q:"all_tenants"`

    // Metadata will filter results based on specified metadata.
    Metadata map[string]string `q:"metadata"`

    // Name will filter by the specified volume name.
    Name string `q:"name"`

    // Status will filter by the specified status.
    Status string `q:"status"`

    // TenantID will filter by a specific tenant/project ID.
    // Setting AllTenants is required for this.
    TenantID string `q:"project_id"`

    // Comma-separated list of sort keys and optional sort directions in the
    // form of <key>[:<direction>].
    Sort string `q:"sort"`

    // Requests a page size of items.
    Limit int `q:"limit"`

    // Used in conjunction with limit to return a slice of items.
    Offset int `q:"offset"`

    // The ID of the last-seen item.
    Marker string `q:"marker"`
}

ListOpts holds options for listing Volumes. It is passed to the volumes.List function.

func (ListOpts) ToVolumeListQuery Uses

func (opts ListOpts) ToVolumeListQuery() (string, error)

ToVolumeListQuery formats a ListOpts into a query string.

type ListOptsBuilder Uses

type ListOptsBuilder interface {
    ToVolumeListQuery() (string, error)
}

ListOptsBuilder allows extensions to add additional parameters to the List request.

type UpdateOpts Uses

type UpdateOpts struct {
    Name        *string           `json:"name,omitempty"`
    Description *string           `json:"description,omitempty"`
    Metadata    map[string]string `json:"metadata,omitempty"`
}

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 Uses

func (opts UpdateOpts) ToVolumeUpdateMap() (map[string]interface{}, error)

ToVolumeUpdateMap assembles a request body based on the contents of an UpdateOpts.

type UpdateOptsBuilder Uses

type UpdateOptsBuilder interface {
    ToVolumeUpdateMap() (map[string]interface{}, error)
}

UpdateOptsBuilder allows extensions to add additional parameters to the Update request.

type UpdateResult Uses

type UpdateResult struct {
    // contains filtered or unexported fields
}

UpdateResult contains the response body and error from an Update request.

func Update Uses

func Update(client *gophercloud.ServiceClient, id string, opts UpdateOptsBuilder) (r UpdateResult)

Update will update the Volume with provided information. To extract the updated Volume from the response, call the Extract method on the UpdateResult.

func (UpdateResult) Extract Uses

func (r UpdateResult) Extract() (*Volume, error)

Extract will get the Volume object out of the commonResult object.

func (UpdateResult) ExtractInto Uses

func (r UpdateResult) ExtractInto(v interface{}) error

ExtractInto converts our response data into a volume struct

type Volume Uses

type Volume struct {
    // Unique identifier for the volume.
    ID  string `json:"id"`
    // Current status of the volume.
    Status string `json:"status"`
    // Size of the volume in GB.
    Size int `json:"size"`
    // AvailabilityZone is which availability zone the volume is in.
    AvailabilityZone string `json:"availability_zone"`
    // The date when this volume was created.
    CreatedAt time.Time `json:"-"`
    // The date when this volume was last updated
    UpdatedAt time.Time `json:"-"`
    // Instances onto which the volume is attached.
    Attachments []Attachment `json:"attachments"`
    // Human-readable display name for the volume.
    Name string `json:"name"`
    // Human-readable description for the volume.
    Description string `json:"description"`
    // The type of volume to create, either SATA or SSD.
    VolumeType string `json:"volume_type"`
    // The ID of the snapshot from which the volume was created
    SnapshotID string `json:"snapshot_id"`
    // The ID of another block storage volume from which the current volume was created
    SourceVolID string `json:"source_volid"`
    // Arbitrary key-value pairs defined by the user.
    Metadata map[string]string `json:"metadata"`
    // UserID is the id of the user who created the volume.
    UserID string `json:"user_id"`
    // Indicates whether this is a bootable volume.
    Bootable string `json:"bootable"`
    // Encrypted denotes if the volume is encrypted.
    Encrypted bool `json:"encrypted"`
    // ReplicationStatus is the status of replication.
    ReplicationStatus string `json:"replication_status"`
    // ConsistencyGroupID is the consistency group ID.
    ConsistencyGroupID string `json:"consistencygroup_id"`
    // Multiattach denotes if the volume is multi-attach capable.
    Multiattach bool `json:"multiattach"`
    // Image metadata entries, only included for volumes that were created from an image, or from a snapshot of a volume originally created from an image.
    VolumeImageMetadata map[string]string `json:"volume_image_metadata"`
}

Volume contains all the information associated with an OpenStack Volume.

func ExtractVolumes Uses

func ExtractVolumes(r pagination.Page) ([]Volume, error)

ExtractVolumes extracts and returns Volumes. It is used while iterating over a volumes.List call.

func (*Volume) UnmarshalJSON Uses

func (r *Volume) UnmarshalJSON(b []byte) error

UnmarshalJSON another unmarshalling function

type VolumePage Uses

type VolumePage struct {
    pagination.LinkedPageBase
}

VolumePage is a pagination.pager that is returned from a call to the List function.

func (VolumePage) IsEmpty Uses

func (r VolumePage) IsEmpty() (bool, error)

IsEmpty returns true if a ListResult contains no Volumes.

func (VolumePage) NextPageURL Uses

func (page VolumePage) NextPageURL() (string, error)

Directories

PathSynopsis
testingvolumes_v3

Package volumes imports 4 packages (graph) and is imported by 37 packages. Updated 2019-03-15. Refresh now. Tools for package owners.