volumes

package
v0.0.0-...-38f4f47 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 15, 2024 License: Apache-2.0 Imports: 4 Imported by: 1

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 ExtractVolumesInto

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

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 {
	ServerID     string `json:"server_id"`
	AttachmentID string `json:"attachment_id"`
	VolumeID     string `json:"volume_id"`
	Device       string `json:"device"`
	ID           string `json:"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 volume description
	Description string `json:"description,omitempty"`

	// Whether to do multiple attachments
	// If you set it to 'True', you can attach to multiple instances at the same time.
	MultiAttach bool `json:"multiattach,omitempty"` // Added

	// The availability zone
	AvailabilityZone string `json:"availability_zone,omitempty"`

	// The volume name
	Name string `json:"name,omitempty"`

	// The associated volume type
	VolumeType string `json:"volume_type,omitempty"`

	// the ID of the existing volume snapshot
	SnapshotID string `json:"snapshot_id,omitempty"`

	// One or more metadata key and value pairs to associate with the volume
	Metadata map[string]string `json:"metadata,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

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

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

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

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

func (CreateResult) ExtractInto

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

type DeleteOpts

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

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

ToLoadBalancerDeleteQuery formats a DeleteOpts into a query string.

type DeleteOptsBuilder

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

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, opts DeleteOptsBuilder) (r 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) (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

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

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

func (GetResult) ExtractInto

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

type ListOpts

type ListOpts struct {
	// 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

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 UpdateOpts

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

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

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

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

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

func (UpdateResult) ExtractInto

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

type Volume

type Volume struct {
	// Instances onto which the volume is attached.
	Attachments []Attachment `json:"attachments"`

	// AvailabilityZone is which availability zone the volume is in.
	AvailabilityZone string `json:"availability_zone"`

	// Encrypted denotes if the volume is encrypted.
	Encrypted bool `json:"encrypted"`

	// 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"`

	// Unique identifier for the volume.
	ID string `json:"id"`

	// Size of the volume in GB.
	Size int `json:"size"`

	// UserID is the id of the user who created the volume.
	UserID string `json:"user_id"`

	// Arbitrary key-value pairs defined by the user.
	Metadata map[string]string `json:"metadata"`

	// Current status of the volume.
	Status string `json:"status"`

	// Human-readable description for the volume.
	Description string `json:"description"`

	// Multiattach denotes if the volume is multi-attach capable.
	Multiattach bool `json:"multiattach"`

	// The ID of another block storage volume from which the current volume was created
	SourceVolID string `json:"source_volid"`

	// ConsistencyGroupID is the consistency group ID.
	ConsistencyGroupID string `json:"consistencygroup_id"`

	// Human-readable display name for the volume.
	Name string `json:"name"`

	// Indicates whether this is a bootable volume.
	Bootable string `json:"bootable"`

	// The date when this volume was created.
	CreatedAt time.Time `json:"-"`

	// ReplicationStatus is the status of replication.
	ReplicationStatus string `json:"replication_status"`
}

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

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

type VolumePage

type VolumePage struct {
	pagination.LinkedPageBase
}

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.

func (VolumePage) NextPageURL

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

NextPageURL uses the response's embedded link reference to navigate to the next page of results.

Directories

Path Synopsis
volumes_v2
volumes_v2

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL