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

    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

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

        func MockCreateResponse

        func MockCreateResponse(t *testing.T)

        func MockDeleteResponse

        func MockDeleteResponse(t *testing.T)

        func MockGetResponse

        func MockGetResponse(t *testing.T)

        func MockListResponse

        func MockListResponse(t *testing.T)

        func MockUpdateResponse

        func MockUpdateResponse(t *testing.T)

        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

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

                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

                    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

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

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

                      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.

                              func (GetResult) Extract

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

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

                                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

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

                                    ToVolumeListQuery formats a ListOpts into a query string.

                                    type ListOptsBuilder

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

                                      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

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

                                                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

                                                    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

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

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

                                                      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.