eseries

package
v18.10.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Oct 11, 2018 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultHostType = "linux_dm_mp"
View Source
const MinimumVolumeSizeBytes = 1048576 // 1 MiB

Variables

This section is empty.

Functions

This section is empty.

Types

type SANStorageDriver

type SANStorageDriver struct {
	Config drivers.ESeriesStorageDriverConfig
	API    *api.Client
	// contains filtered or unexported fields
}

SANStorageDriver is for storage provisioning via the Web Services Proxy RESTful interface that communicates with E-Series controllers via the SYMbol API.

func (*SANStorageDriver) Create

func (d *SANStorageDriver) Create(name string, sizeBytes uint64, opts map[string]string) error

Create is called by Docker to create a container volume. Besides the volume name, a few optional parameters such as size and disk media type may be provided in the opts map. If more than one pool on the storage controller can satisfy the request, the one with the most free space is selected.

func (*SANStorageDriver) CreateClone

func (d *SANStorageDriver) CreateClone(name, source, snapshot string, opts map[string]string) error

CreateClone creates a new volume from the named volume, either by direct clone or from the named snapshot. The E-series volume plugin does not support cloning or snapshots, so this method always returns an error.

func (*SANStorageDriver) CreateFollowup

func (d *SANStorageDriver) CreateFollowup(volConfig *storage.VolumeConfig) error

func (*SANStorageDriver) CreateHostForLocalHost

func (d *SANStorageDriver) CreateHostForLocalHost() (api.HostEx, error)

CreateHostForLocalHost ensures a Host definition corresponding to the local host exists on the array, defining a Host & HostGroup if not.

func (*SANStorageDriver) CreatePrepare

func (d *SANStorageDriver) CreatePrepare(volConfig *storage.VolumeConfig) bool

func (*SANStorageDriver) Destroy

func (d *SANStorageDriver) Destroy(name string) error

Destroy is called by Docker to delete a container volume.

func (*SANStorageDriver) Get

func (d *SANStorageDriver) Get(name string) error

Get test for the existence of a volume

func (*SANStorageDriver) GetExternalConfig

func (d *SANStorageDriver) GetExternalConfig() interface{}

func (*SANStorageDriver) GetInternalVolumeName

func (d *SANStorageDriver) GetInternalVolumeName(name string) string

func (*SANStorageDriver) GetProtocol

func (d *SANStorageDriver) GetProtocol() tridentconfig.Protocol

func (*SANStorageDriver) GetStorageBackendSpecs

func (d *SANStorageDriver) GetStorageBackendSpecs(backend *storage.Backend) error

GetStorageBackendSpecs retrieve storage capabilities and register pools with specified backend.

func (*SANStorageDriver) GetUpdateType

func (d *SANStorageDriver) GetUpdateType(driverOrig storage.Driver) *roaring.Bitmap

GetUpdateType returns a bitmap populated with updates to the driver

func (*SANStorageDriver) GetVolumeExternal

func (d *SANStorageDriver) GetVolumeExternal(name string) (*storage.VolumeExternal, error)

GetVolumeExternal queries the storage backend for all relevant info about a single container volume managed by this driver and returns a VolumeExternal representation of the volume.

func (*SANStorageDriver) GetVolumeExternalWrappers

func (d *SANStorageDriver) GetVolumeExternalWrappers(
	channel chan *storage.VolumeExternalWrapper)

GetVolumeExternalWrappers queries the storage backend for all relevant info about container volumes managed by this driver. It then writes a VolumeExternal representation of each volume to the supplied channel, closing the channel when finished.

func (*SANStorageDriver) GetVolumeOpts

func (d *SANStorageDriver) GetVolumeOpts(
	volConfig *storage.VolumeConfig,
	pool *storage.Pool,
	requests map[string]sa.Request,
) (map[string]string, error)

func (*SANStorageDriver) Initialize

func (d *SANStorageDriver) Initialize(
	context tridentconfig.DriverContext, configJSON string, commonConfig *drivers.CommonStorageDriverConfig,
) error

Initialize from the provided config

func (*SANStorageDriver) Initialized

func (d *SANStorageDriver) Initialized() bool

func (*SANStorageDriver) MapVolumeToLocalHost

func (d *SANStorageDriver) MapVolumeToLocalHost(volume api.VolumeEx) (api.LUNMapping, error)

MapVolumeToLocalHost gets the iSCSI identity of the local host, ensures a corresponding Host definition exists on the array (defining a Host & HostGroup if not), maps the specified volume to the host/group (if it isn't already), and returns the mapping info.

func (*SANStorageDriver) Name

func (d *SANStorageDriver) Name() string

func (*SANStorageDriver) Protocol

func (d *SANStorageDriver) Protocol() string

func (*SANStorageDriver) Publish

func (d *SANStorageDriver) Publish(name string, publishInfo *utils.VolumePublishInfo) error

Publish the volume to the host specified in publishInfo. This method may or may not be running on the host where the volume will be mounted, so it should limit itself to updating access rules, initiator groups, etc. that require some host identity (but not locality) as well as storage controller API access.

func (*SANStorageDriver) Resize

func (d *SANStorageDriver) Resize(name string, sizeBytes uint64) error

Resize expands the volume size. This method relies on the desired state model of Kubernetes and will not work with Docker.

func (*SANStorageDriver) SnapshotList

func (d *SANStorageDriver) SnapshotList(name string) ([]storage.Snapshot, error)

SnapshotList returns the list of snapshots associated with the named volume. The E-series volume plugin does not support snapshots, so this method always returns an empty array.

func (*SANStorageDriver) StoreConfig

func (*SANStorageDriver) Terminate

func (d *SANStorageDriver) Terminate()

type SANStorageDriverConfigExternal

type SANStorageDriverConfigExternal struct {
	*drivers.CommonStorageDriverConfigExternal
	Username    string
	ControllerA string
	ControllerB string
	HostDataIP  string
}

Directories

Path Synopsis
This package provides a high-level interface to the E-series Web Services Proxy REST API.
This package provides a high-level interface to the E-series Web Services Proxy REST API.

Jump to

Keyboard shortcuts

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