volumes

package
v2.4.1 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2022 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package volume provides information and interaction with volume in the Storage service. A volume is a detachable block storage device.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExtractVolumesInto

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

ExtractVolumesInto is information expander for volume

func IDFromName

func IDFromName(client *eclcloud.ServiceClient, name string) (string, error)

IDFromName is a convenience function that returns a server's ID given its name.

func List

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

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

func WaitForStatus

func WaitForStatus(c *eclcloud.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 volume name
	Name string `json:"name" required:"true"`
	// The volume description
	Description string `json:"description,omitempty"`
	// The volume size
	Size int `json:"size" required:"true"`
	// The volume IOPS as IOPS/GB
	IOPSPerGB string `json:"iops_per_gb,omitempty"`
	// The volume Throughput
	Throughput string `json:"throughput,omitempty"`
	// The initiator_iqns for volume (in case ISCSI)
	InitiatorIQNs []string `json:"initiator_iqns,omitempty"`
	// The availability zone of volume
	AvailabilityZone string `json:"availability_zone,omitempty"`
	// The parent virtual storage ID to connect volume
	VirtualStorageID string `json:"virtual_storage_id" required:"true"`
}

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 *eclcloud.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 DeleteResult

type DeleteResult struct {
	eclcloud.ErrResult
}

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

func Delete

func Delete(client *eclcloud.ServiceClient, id string) (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 *eclcloud.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 {
}

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"`
	InitiatorIQNs *[]string `json:"initiator_iqns,omitempty"`
}

UpdateOpts contain options for updating an existing Volume. This object is passed to the volume.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. Volume of Storage SDP only allows to send "initiator_iqns" when the service type is "File Storage" type So in "ToVolumeUpdateMap" function, check volume type of virtual storage related to volume first And if service type is "File Storage's one", add initiator_iqns as request parameter

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 *eclcloud.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 {
	// API error in volume creation.
	APIErrorMessage string `json:"api_error_message"`
	// Unique identifier for the volume.
	ID string `json:"id"`
	// Current status of the volume.
	Status string `json:"status"`
	// Human-readable display name for the volume.
	Name string `json:"name"`
	// Human-readable description for the volume.
	Description string `json:"description"`
	// The volume size
	Size int `json:"size"`
	// The volume IOPS GB
	IOPSPerGB string `json:"iops_per_gb"`
	// The volume Throughput
	Throughput string `json:"throughput"`
	// The initiator_iqns for volume (in case ISCSI)
	InitiatorIQNs []string `json:"initiator_iqns"`
	// Relevant snapshot's IDs of this volume
	SnapshotIDs []string `json:"snapshot_ids"`
	// IP Addresses to connect this volume as target device.
	TargetIPs []string `json:"target_ips"`
	// The metadata of volume
	Metadata map[string]string `json:"metadata"`
	// The parent virtual storage ID to connect volume
	VirtualStorageID string `json:"virtual_storage_id"`
	// The availability zone of volume
	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:"-"`
	// Export rule of the volum
	ExportRules []string `json:"export_rules"`
	// Reservation parcentage about snapshot reservation capacity of the volume
	PercentSnapshotReserveUsed int `json:"percent_snapshot_reserve_used"`
	// Error in volume creation.
	ErrorMessage string `json:"error_message"`
}

Volume contains all the information associated with a 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

UnmarshalJSON creates JSON format of volume

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.

Directories

Path Synopsis
Package testing contains volume unit tests
Package testing contains volume unit tests

Jump to

Keyboard shortcuts

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