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 ExtractVolumesInto(r pagination.Page, v interface{}) error
- func IDFromName(client *gophercloud.ServiceClient, name string) (string, error)
- func List(client *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager
- func WaitForStatus(c *gophercloud.ServiceClient, id, status string, secs int) error
- type Attachment
- type CreateOpts
- type CreateOptsBuilder
- type CreateResult
- type DeleteOpts
- type DeleteOptsBuilder
- type DeleteResult
- type GetResult
- type ListOpts
- type ListOptsBuilder
- type QuotaSet
- type QuotaSetInfo
- type UpdateOpts
- type UpdateOptsBuilder
- type UpdateResult
- type Volume
- type VolumePage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExtractVolumesInto ¶
func ExtractVolumesInto(r pagination.Page, v interface{}) error
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 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 Attachment ¶
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"`
}
func (*Attachment) UnmarshalJSON ¶
func (r *Attachment) UnmarshalJSON(b []byte) error
type CreateOpts ¶
type CreateOpts struct {
// The size of the volume, in GB
Size int `json:"size" required:"true"`
// The availability zone
AvailabilityZone string `json:"availability_zone" required:"true"`
// 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"`
//The scheduling parameter currently supports the dedicated_storage_id field, indicating that the cloud disk is created in the DSS storage pool.
SchedulerHints map[string]string `json:"OS-SCH-HNT:scheduler_hints,omitempty"`
//Share the cloud drive flag. The default is false.
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 ¶
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) (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) ExtractInto ¶
func (r CreateResult) ExtractInto(v interface{}) error
func (CreateResult) ExtractIntoQuotaSet ¶
func (r CreateResult) ExtractIntoQuotaSet(to interface{}) error
func (CreateResult) ExtractQuotaSet ¶
func (r CreateResult) ExtractQuotaSet() (*QuotaSetInfo, error)
type DeleteOpts ¶
type DeleteOpts struct {
// Delete all snapshots associated with the cloud drive. The default value is false.
Cascade *bool `q:"cascade,omitempty"`
}
DeleteOpts holds options for delete Volumes. It is passed to the volumes.Delete function.
func (DeleteOpts) ToVolumeDeleteQuery ¶
func (opts DeleteOpts) ToVolumeDeleteQuery() (string, error)
ToVolumeDeleteQuery formats a DeleteOpts into a query string.
type DeleteOptsBuilder ¶
DeleteOptsBuilder allows extensions to add additional parameters to the Delete request.
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) (r DeleteResult)
Delete will delete the existing Volume with the provided ID.
func DeleteCascade ¶
func DeleteCascade(client *gophercloud.ServiceClient, id string, opts DeleteOptsBuilder) (r DeleteResult)
Delete will delete the existing Volume with the provided ID,Delete all snapshots associated with the Volume.
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) (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) ExtractInto ¶
func (r GetResult) ExtractInto(v interface{}) error
func (GetResult) ExtractIntoQuotaSet ¶
func (r GetResult) ExtractIntoQuotaSet(to interface{}) error
func (GetResult) ExtractQuotaSet ¶
func (r GetResult) ExtractQuotaSet() (*QuotaSetInfo, error)
type ListOpts ¶
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"`
}
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 QuotaSet ¶
type QuotaSet struct {
//租户id
Id string `json:"id"`
//云硬盘数量,键值对,包含:reserved(预留)、limit(最大)和in_use(已使用)
Volumes map[string]int `json:"volumes"`
//快照数量,键值对,包含:reserved(预留)、limit(最大)和in_use(已使用)
Snapshots map[string]int `json:"snapshots"`
//总大小(快照+云硬盘),单位为GB,键值对,包含:reserved(预留)、limit(最大)和in_use(已使用)
Gigabytes map[string]int `json:"gigabytes"`
//为某个volume_type预留的云硬盘个数,键值对,包含:reserved(预留)、limit(最大)和in_use(已使用)
VolumesType map[string]int `json:"volumes_TYPE"`
//为某个volume_type预留快照个数,键值对,包含:reserved(预留)、limit(最大)和in_use(已使用)
SnapshotsType map[string]int `json:"snapshots_TYPE"`
//为某个volume_type预留的size大小,单位为GB,键值对,包含:reserved(预留)、limit(最大)和in_use(已使用)
GigabytesType map[string]int `json:"gigabytes_TYPE"`
//备份个数,键值对,包含:reserved(预留)、limit(最大)和in_use(已使用)
Backups map[string]int `json:"backups"`
//备份大小,单位为GB,键值对,包含:reserved(预留)、limit(最大)和in_use(已使用)
BackupGigabytes map[string]int `json:"backup_gigabytes"`
//出现错误时,返回的错误码,具体含义参考下面的返回值列表
Code string `json:"code"`
//出现错误时,返回的错误消息
Message string `json:"message"`
}
查询请求返回的配额信息
type QuotaSetInfo ¶
type QuotaSetInfo struct {
//查询请求返回的配额信息
QuoSet QuotaSet `json:"quota_set"`
}
************** 自研 *******************
func GetQuotaSet ¶
func GetQuotaSet(client *gophercloud.ServiceClient, projectId string) (*QuotaSetInfo, error)
************自研**************
type UpdateOpts ¶
type UpdateOpts struct {
// The volume name
Name string `json:"name,omitempty"`
// The volume description
Description string `json:"description,omitempty"`
// Metadata will filter results based on specified metadata.
Metadata map[string]string `json:"metadata,omitempty"`
// The volume name show for users
DisplayName string `json:"display_name,omitempty"`
// The volume description show for users
DisplayDescription string `json:"display_description,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 ¶
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) (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) ExtractInto ¶
func (r UpdateResult) ExtractInto(v interface{}) error
func (UpdateResult) ExtractIntoQuotaSet ¶
func (r UpdateResult) ExtractIntoQuotaSet(to interface{}) error
func (UpdateResult) ExtractQuotaSet ¶
func (r UpdateResult) ExtractQuotaSet() (*QuotaSetInfo, error)
type Volume ¶
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"`
//Cloud hard disk uri self-description information.
Links []map[string]string `json:"links"`
Shareable bool `json:"shareable"`
//Volume image metadata
VolumeImageMetadata map[string]string `json:"volume_image_metadata"`
//The tenant ID to which the cloud drive belongs.
TenantAttr string `json:"os-vol-tenant-attr:tenant_id"`
//The host name to which the cloud drive belongs.
HostAttr string `json:"os-vol-host-attr:host"`
//Reserved attribute
RepAttrDriverData string `json:"os-volume-replication:driver_data"`
//Reserved attribute
RepAttrExtendedStatus string `json:"os-volume-replication:extended_status"`
//Reserved attribute
MigAttrStat string `json:"os-vol-mig-status-attr:migstat"`
//Reserved attribute
MigAttrNameID string `json:"os-vol-mig-status-attr:name_id"`
}
Volume contains all the information associated with an OpenStack Volume.
func ExtractVolumes ¶
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 ¶
type VolumePage ¶
type VolumePage struct {
pagination.SinglePageBase
}
VolumePage is a pagination.pager that is returned from a call to the List function.
func (VolumePage) IsEmpty ¶
func (r VolumePage) IsEmpty() (bool, error)
IsEmpty returns true if a ListResult contains no Volumes.