storage_drivers

package
v17.10.2+incompatible Latest Latest
Warning

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

Go to latest
Published: Jan 23, 2018 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const ConfigVersion = 1

ConfigVersion is the expected version specified in the config file

View Source
const DefaultAccessGroupName = "netappdvp"
View Source
const DefaultEncryption = "false"
View Source
const DefaultExportPolicy = "default"
View Source
const DefaultFileSystemType = "ext4"
View Source
const DefaultHostType = "linux_dm_mp"
View Source
const DefaultNfsMountOptions = "-o nfsvers=3"
View Source
const DefaultSecurityStyle = "unix"
View Source
const DefaultSnapshotDir = "false"
View Source
const DefaultSnapshotPolicy = "none"
View Source
const DefaultSpaceReserve = "none"
View Source
const DefaultSplitOnClone = "false"
View Source
const DefaultUnixPermissions = "---rwxrwxrwx"
View Source
const DriverVersion = "17.10.1"

DriverVersion is the actual release version number

View Source
const EseriesIscsiStorageDriverName = "eseries-iscsi"

EseriesIscsiStorageDriverName is the name for this storage driver that is specified in the config file, etc.

View Source
const LS_MIRROR_IDLE_TIMEOUT_SECS = 30
View Source
const MSEC_PER_HOUR = 1000 * 60 * 60 // millis * seconds * minutes
View Source
const OntapLUNAttributeFstype = "com.netapp.ndvp.fstype"
View Source
const OntapNASQtreeStorageDriverName = "ontap-nas-economy"

OntapNASQtreeStorageDriverName is the constant name for this Ontap qtree-based NAS storage driver

View Source
const OntapNASStorageDriverName = "ontap-nas"

OntapNASStorageDriverName is the constant name for this Ontap NAS storage driver

View Source
const OntapSANStorageDriverName = "ontap-san"

OntapSANStorageDriverName is the constant name for this Ontap NAS storage driver

View Source
const SolidfireSANStorageDriverName = "solidfire-san"

SolidfireSANStorageDriverName is the constant name for this Solidfire SAN storage driver

Variables

View Source
var BuildTime = "unknown"

BuildTime is the date and time the binary was built, if known

View Source
var BuildVersion = "unknown"

BuildVersion is the extended release version with build information

View Source
var DefaultStoragePrefix = "netappdvp_"

DefaultStoragePrefix can be overridden by Trident too. God.

View Source
var Drivers = make(map[string]StorageDriver)

Drivers is a map of driver names -> object

View Source
var ExtendedDriverVersion = "native"

ExtendedDriverVersion can be overridden by embeddors such as Trident to uniquify the version string

View Source
var FullDriverVersion = DriverVersion

FullDriverVersion is the DriverVersion as well as any pre-release tags

Functions

func CreateOntapClone added in v1.3.1

func CreateOntapClone(
	name, source, snapshot string, split bool, config *OntapStorageDriverConfig, api *ontap.Driver,
) error

Create a volume clone

func EmsHeartbeat

func EmsHeartbeat(driverName string, api *ontap.Driver, config *OntapStorageDriverConfig)

EmsHeartbeat logs an ASUP message on a timer view them via filer::> event log show -severity NOTICE

func EmsInitialized

func EmsInitialized(driverName string, api *ontap.Driver, config *OntapStorageDriverConfig)

EmsInitialized logs an ASUP message that this docker volume plugin has been initialized view them via filer::> event log show -severity NOTICE

func GetVolume added in v1.3.3

func GetVolume(name string, api *ontap.Driver, config *OntapStorageDriverConfig) error

GetVolume checks for the existence of a volume. It returns nil if the volume exists and an error if it does not (or the API call fails).

func GetVolumeList added in v1.3.3

func GetVolumeList(api *ontap.Driver, config *OntapStorageDriverConfig) ([]string, error)

Return the list of volumes associated with the tenant

func InitializeOntapAPI

func InitializeOntapAPI(config *OntapStorageDriverConfig) (*ontap.Driver, error)

InitializeOntapAPI returns an ontap.Driver ZAPI client. If the SVM isn't specified in the config file, this method attempts to derive the one to use.

func InitializeOntapDriver

func InitializeOntapDriver(config *OntapStorageDriverConfig) (*ontap.Driver, error)

InitializeOntapDriver sets up the API client and performs all other initialization tasks that are common to all the ONTAP drivers.

func MakeSolidFireName added in v1.3.1

func MakeSolidFireName(name string) string

Make SolidFire name

func MountVolume

func MountVolume(exportPath, mountpoint string, config *OntapStorageDriverConfig) error

MountVolume accepts the mount info for an NFS share and mounts it on the local host.

func PopulateConfigurationDefaults

func PopulateConfigurationDefaults(config *OntapStorageDriverConfig) error

PopulateConfigurationDefaults fills in default values for configuration settings if not supplied in the config file

func StartEmsHeartbeat

func StartEmsHeartbeat(driverName string, api *ontap.Driver, config *OntapStorageDriverConfig)

func UnmountVolume

func UnmountVolume(mountpoint string, config *OntapStorageDriverConfig) error

UnmountVolume unmounts the volume mounted on the specified mountpoint.

func UpdateLoadSharingMirrors

func UpdateLoadSharingMirrors(api *ontap.Driver)

UpdateLoadSharingMirrors checks for the present of LS mirrors on the SVM root volume, and if present, starts an update and waits for them to become idle.

func ValidateAggregate

func ValidateAggregate(api *ontap.Driver, config *OntapStorageDriverConfig) error

ValidateAggregate returns an error if the configured aggregate is not available to the Vserver.

func ValidateEncryptionAttribute

func ValidateEncryptionAttribute(encryption string, api *ontap.Driver) (*bool, error)

ValidateEncryptionAttribute returns true/false if encryption is being requested of a backend that supports NetApp Volume Encryption, and nil otherwise so that the ZAPIs may be sent without any reference to encryption.

func ValidateNASDriver

func ValidateNASDriver(context DriverContext, api *ontap.Driver, config *OntapStorageDriverConfig) error

ValidateNASDriver contains the validation logic shared between ontap-nas and ontap-nas-economy.

Types

type CommonSnapshot added in v1.3.1

type CommonSnapshot struct {
	Name    string // The snapshot name or other identifier you would use to reference it
	Created string // The UTC time that the snapshot was created, in RFC3339 format
}

CommonSnapshot contains the normalized volume snapshot format we report to Docker

func GetSnapshotList added in v1.3.1

func GetSnapshotList(name string, config *OntapStorageDriverConfig, api *ontap.Driver) ([]CommonSnapshot, error)

Return the list of snapshots associated with the named volume

type CommonStorageDriverConfig

type CommonStorageDriverConfig struct {
	Version                           int             `json:"version"`
	StorageDriverName                 string          `json:"storageDriverName"`
	Debug                             bool            `json:"debug"`           // Unsupported!
	DebugTraceFlags                   map[string]bool `json:"debugTraceFlags"` // Example: {"api":false, "method":true}
	DisableDelete                     bool            `json:"disableDelete"`
	StoragePrefixRaw                  json.RawMessage `json:"storagePrefix,string"`
	StoragePrefix                     *string         `json:"-"`
	SerialNumbers                     []string        `json:"-"`
	CommonStorageDriverConfigDefaults `json:"defaults"`
}

CommonStorageDriverConfig holds settings in common across all StorageDrivers

func ValidateCommonSettings

func ValidateCommonSettings(configJSON string) (*CommonStorageDriverConfig, error)

ValidateCommonSettings attempts to "partially" decode the JSON into just the settings in CommonStorageDriverConfig

type CommonStorageDriverConfigDefaults

type CommonStorageDriverConfigDefaults struct {
	Size string `json:"size"`
}

type DriverContext

type DriverContext string

Context is how the storage drivers are being used

const (
	ContextNDVP    DriverContext = "ndvp"
	ContextTrident               = "trident"
)

type ESeriesStorageDriver

type ESeriesStorageDriver struct {
	Initialized bool
	Config      ESeriesStorageDriverConfig
	API         *eseries.ESeriesAPIDriver
}

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

func (*ESeriesStorageDriver) Attach

func (d *ESeriesStorageDriver) Attach(name, mountpoint string, opts map[string]string) error

Attach is called by Docker when attaching a container volume to a container. This method is expected to map the volume to the local host, discover it on the SCSI bus, format it with a filesystem, and mount it at the specified mount point. This method has an opts parameter, but no options are presently handled by this method.

func (*ESeriesStorageDriver) Create

func (d *ESeriesStorageDriver) 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 (*ESeriesStorageDriver) CreateClone added in v1.3.1

func (d *ESeriesStorageDriver) 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 (*ESeriesStorageDriver) Destroy

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

Create is called by Docker to delete a container volume.

func (*ESeriesStorageDriver) Detach

func (d *ESeriesStorageDriver) Detach(name, mountpoint string) error

Attach is called by Docker when detaching a container volume from a container. This method merely unmounts the volume; it does not rescan the bus, unmap the volume, or undo any of the other actions taken by the Attach method.

func (*ESeriesStorageDriver) Get added in v1.3.3

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

Test for the existence of a volume

func (*ESeriesStorageDriver) Initialize

func (d *ESeriesStorageDriver) Initialize(
	context DriverContext, configJSON string, commonConfig *CommonStorageDriverConfig,
) error

Initialize from the provided config

func (*ESeriesStorageDriver) List added in v1.3.3

func (d *ESeriesStorageDriver) List() ([]string, error)

Return the list of volumes associated with this tenant

func (*ESeriesStorageDriver) MapVolumeToLocalHost added in v1.4.0

func (d *ESeriesStorageDriver) MapVolumeToLocalHost(volume eseries.VolumeEx) (eseries.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 (*ESeriesStorageDriver) Name

func (d *ESeriesStorageDriver) Name() string

func (*ESeriesStorageDriver) Protocol added in v1.3.1

func (d *ESeriesStorageDriver) Protocol() string

func (*ESeriesStorageDriver) SnapshotList added in v1.3.1

func (d *ESeriesStorageDriver) SnapshotList(name string) ([]CommonSnapshot, 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 (*ESeriesStorageDriver) Validate

func (d *ESeriesStorageDriver) Validate(context DriverContext) error

Validate the driver configuration

type ESeriesStorageDriverConfig

type ESeriesStorageDriverConfig struct {
	*CommonStorageDriverConfig

	// Web Proxy Services Info
	WebProxyHostname  string `json:"webProxyHostname"`
	WebProxyPort      string `json:"webProxyPort"`      // optional
	WebProxyUseHTTP   bool   `json:"webProxyUseHTTP"`   // optional
	WebProxyVerifyTLS bool   `json:"webProxyVerifyTLS"` // optional
	Username          string `json:"username"`
	Password          string `json:"password"`

	// Array Info
	ControllerA   string `json:"controllerA"`
	ControllerB   string `json:"controllerB"`
	PasswordArray string `json:"passwordArray"` //optional

	// Options
	PoolNameSearchPattern string `json:"poolNameSearchPattern"` //optional

	// Host Networking
	HostData_IP string `json:"hostData_IP,omitempty"` // for backward compatibility only
	HostDataIP  string `json:"hostDataIP"`            // for iSCSI can be either port if multipathing is setup
	AccessGroup string `json:"accessGroupName"`       // name for host group, default is 'netappdvp'
	HostType    string `json:"hostType"`              // host type, default is 'linux_dm_mp'
}

ESeriesStorageDriverConfig holds settings for ESeriesStorageDriver

type OntapNASQtreeStorageDriver

type OntapNASQtreeStorageDriver struct {
	Initialized bool
	Config      OntapStorageDriverConfig
	API         *ontap.Driver
	// contains filtered or unexported fields
}

OntapNASQtreeStorageDriver is for NFS storage provisioning of qtrees

func (*OntapNASQtreeStorageDriver) Attach

func (d *OntapNASQtreeStorageDriver) Attach(name, mountpoint string, opts map[string]string) error

Attach the volume

func (*OntapNASQtreeStorageDriver) Create

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

Create a qtree-backed volume with the specified options

func (*OntapNASQtreeStorageDriver) CreateClone

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

Create a volume clone

func (*OntapNASQtreeStorageDriver) Destroy

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

Destroy the volume

func (*OntapNASQtreeStorageDriver) Detach

func (d *OntapNASQtreeStorageDriver) Detach(name, mountpoint string) error

Detach the volume

func (*OntapNASQtreeStorageDriver) FlexvolNamePrefix

func (d *OntapNASQtreeStorageDriver) FlexvolNamePrefix() string

func (*OntapNASQtreeStorageDriver) Get

Test for the existence of a volume

func (*OntapNASQtreeStorageDriver) GetAPI

func (*OntapNASQtreeStorageDriver) GetConfig

func (*OntapNASQtreeStorageDriver) Initialize

func (d *OntapNASQtreeStorageDriver) Initialize(
	context DriverContext, configJSON string, commonConfig *CommonStorageDriverConfig,
) error

Initialize from the provided config

func (*OntapNASQtreeStorageDriver) List

func (d *OntapNASQtreeStorageDriver) List() ([]string, error)

Return the list of volumes associated with this tenant

func (*OntapNASQtreeStorageDriver) Name

Name is for returning the name of this driver

func (*OntapNASQtreeStorageDriver) SnapshotList

func (d *OntapNASQtreeStorageDriver) SnapshotList(name string) ([]CommonSnapshot, error)

Return the list of snapshots associated with the named volume

func (*OntapNASQtreeStorageDriver) Validate

func (d *OntapNASQtreeStorageDriver) Validate(context DriverContext) error

Validate the driver configuration and execution environment

type OntapNASStorageDriver

type OntapNASStorageDriver struct {
	Initialized bool
	Config      OntapStorageDriverConfig
	API         *ontap.Driver
}

OntapNASStorageDriver is for NFS storage provisioning

func (*OntapNASStorageDriver) Attach

func (d *OntapNASStorageDriver) Attach(name, mountpoint string, opts map[string]string) error

Attach the volume

func (*OntapNASStorageDriver) Create

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

Create a volume with the specified options

func (*OntapNASStorageDriver) CreateClone added in v1.3.1

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

Create a volume clone

func (*OntapNASStorageDriver) Destroy

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

Destroy the volume

func (*OntapNASStorageDriver) Detach

func (d *OntapNASStorageDriver) Detach(name, mountpoint string) error

Detach the volume

func (*OntapNASStorageDriver) Get added in v1.3.3

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

Test for the existence of a volume

func (*OntapNASStorageDriver) GetAPI

func (d *OntapNASStorageDriver) GetAPI() *ontap.Driver

func (*OntapNASStorageDriver) GetConfig

func (*OntapNASStorageDriver) Initialize

func (d *OntapNASStorageDriver) Initialize(
	context DriverContext, configJSON string, commonConfig *CommonStorageDriverConfig,
) error

Initialize from the provided config

func (*OntapNASStorageDriver) List added in v1.3.3

func (d *OntapNASStorageDriver) List() ([]string, error)

Return the list of volumes associated with this tenant

func (*OntapNASStorageDriver) Name

func (d *OntapNASStorageDriver) Name() string

Name is for returning the name of this driver

func (*OntapNASStorageDriver) SnapshotList added in v1.3.1

func (d *OntapNASStorageDriver) SnapshotList(name string) ([]CommonSnapshot, error)

Return the list of snapshots associated with the named volume

func (*OntapNASStorageDriver) Validate

func (d *OntapNASStorageDriver) Validate(context DriverContext) error

Validate the driver configuration and execution environment

type OntapSANStorageDriver

type OntapSANStorageDriver struct {
	Initialized bool
	Config      OntapStorageDriverConfig
	API         *ontap.Driver
}

OntapSANStorageDriver is for iSCSI storage provisioning

func (*OntapSANStorageDriver) Attach

func (d *OntapSANStorageDriver) Attach(name, mountpoint string, opts map[string]string) error

Attach the lun

func (*OntapSANStorageDriver) Create

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

Create a volume+LUN with the specified options

func (*OntapSANStorageDriver) CreateClone added in v1.3.1

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

Create a volume clone

func (*OntapSANStorageDriver) Destroy

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

Destroy the requested (volume,lun) storage tuple

func (*OntapSANStorageDriver) Detach

func (d *OntapSANStorageDriver) Detach(name, mountpoint string) error

Detach the volume

func (*OntapSANStorageDriver) Get added in v1.3.3

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

Test for the existence of a volume

func (*OntapSANStorageDriver) GetAPI

func (d *OntapSANStorageDriver) GetAPI() *ontap.Driver

func (*OntapSANStorageDriver) GetConfig

func (*OntapSANStorageDriver) Initialize

func (d *OntapSANStorageDriver) Initialize(
	context DriverContext, configJSON string, commonConfig *CommonStorageDriverConfig,
) error

Initialize from the provided config

func (*OntapSANStorageDriver) List added in v1.3.3

func (d *OntapSANStorageDriver) List() ([]string, error)

Return the list of volumes associated with this tenant

func (OntapSANStorageDriver) Name

func (d OntapSANStorageDriver) Name() string

Name is for returning the name of this driver

func (*OntapSANStorageDriver) SnapshotList added in v1.3.1

func (d *OntapSANStorageDriver) SnapshotList(name string) ([]CommonSnapshot, error)

Return the list of snapshots associated with the named volume

func (*OntapSANStorageDriver) Validate

func (d *OntapSANStorageDriver) Validate(context DriverContext) error

Validate the driver configuration and execution environment

type OntapStorageDriver

type OntapStorageDriver interface {
	GetConfig() *OntapStorageDriverConfig
	GetAPI() *ontap.Driver
	Name() string
}

type OntapStorageDriverConfig

type OntapStorageDriverConfig struct {
	*CommonStorageDriverConfig              // embedded types replicate all fields
	ManagementLIF                    string `json:"managementLIF"`
	DataLIF                          string `json:"dataLIF"`
	IgroupName                       string `json:"igroupName"`
	SVM                              string `json:"svm"`
	Username                         string `json:"username"`
	Password                         string `json:"password"`
	Aggregate                        string `json:"aggregate"`
	UsageHeartbeat                   string `json:"usageHeartbeat"`           // in hours, default to 24.0
	QtreePruneFlexvolsPeriod         string `json:"qtreePruneFlexvolsPeriod"` // in seconds, default to 600
	QtreeQuotaResizePeriod           string `json:"qtreeQuotaResizePeriod"`   // in seconds, default to 60
	NfsMountOptions                  string `json:"nfsMountOptions"`
	OntapStorageDriverConfigDefaults `json:"defaults"`
}

OntapStorageDriverConfig holds settings for OntapStorageDrivers

func InitializeOntapConfig

func InitializeOntapConfig(
	configJSON string, commonConfig *CommonStorageDriverConfig,
) (*OntapStorageDriverConfig, error)

InitializeOntapConfig parses the ONTAP config, mixing in the specified common config.

type OntapStorageDriverConfigDefaults

type OntapStorageDriverConfigDefaults struct {
	SpaceReserve    string `json:"spaceReserve"`
	SnapshotPolicy  string `json:"snapshotPolicy"`
	UnixPermissions string `json:"unixPermissions"`
	SnapshotDir     string `json:"snapshotDir"`
	ExportPolicy    string `json:"exportPolicy"`
	SecurityStyle   string `json:"securityStyle"`
	SplitOnClone    string `json:"splitOnClone"`
	FileSystemType  string `json:"fileSystemType"`
	Encryption      string `json:"encryption"`
}

type SolidfireSANStorageDriver

type SolidfireSANStorageDriver struct {
	Initialized      bool
	Config           SolidfireStorageDriverConfig
	Client           *sfapi.Client
	TenantID         int64
	AccessGroups     []int64
	LegacyNamePrefix string
	InitiatorIFace   string
}

SolidfireSANStorageDriver is for iSCSI storage provisioning

func (*SolidfireSANStorageDriver) Attach

func (d *SolidfireSANStorageDriver) Attach(name, mountpoint string, opts map[string]string) error

Attach the lun

func (*SolidfireSANStorageDriver) Create

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

Create a SolidFire volume

func (*SolidfireSANStorageDriver) CreateClone added in v1.3.1

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

Create a volume clone

func (*SolidfireSANStorageDriver) Destroy

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

Destroy the requested docker volume

func (*SolidfireSANStorageDriver) Detach

func (d *SolidfireSANStorageDriver) Detach(name, mountpoint string) error

Detach the volume

func (*SolidfireSANStorageDriver) Get added in v1.3.3

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

Test for the existence of a volume

func (*SolidfireSANStorageDriver) GetVolume

func (d *SolidfireSANStorageDriver) GetVolume(name string) (sfapi.Volume, error)

func (*SolidfireSANStorageDriver) Initialize

func (d *SolidfireSANStorageDriver) Initialize(
	context DriverContext, configJSON string, commonConfig *CommonStorageDriverConfig,
) error

Initialize from the provided config

func (*SolidfireSANStorageDriver) List added in v1.3.3

func (d *SolidfireSANStorageDriver) List() (vols []string, err error)

Return the list of volumes according to backend device

func (SolidfireSANStorageDriver) Name

Name is for returning the name of this driver

func (*SolidfireSANStorageDriver) SnapshotList added in v1.3.1

func (d *SolidfireSANStorageDriver) SnapshotList(name string) ([]CommonSnapshot, error)

Return the list of snapshots associated with the named volume

func (*SolidfireSANStorageDriver) Validate

func (d *SolidfireSANStorageDriver) Validate(context DriverContext) error

Validate the driver configuration and execution environment

type SolidfireStorageDriverConfig

type SolidfireStorageDriverConfig struct {
	*CommonStorageDriverConfig // embedded types replicate all fields
	TenantName                 string
	EndPoint                   string
	DefaultVolSz               int64 //Default volume size in GiB (deprecated)
	SVIP                       string
	InitiatorIFace             string //iface to use of iSCSI initiator
	Types                      *[]sfapi.VolType
	LegacyNamePrefix           string //name prefix used in earlier ndvp versions
	AccessGroups               []int64
	DefaultBlockSize           int64 //blocksize to use on create when not specified  (512|4096, 512 is default)
}

SolidfireStorageDriverConfig holds settings for SolidfireStorageDrivers

type StorageDriver

type StorageDriver interface {
	Name() string
	Initialize(DriverContext, string, *CommonStorageDriverConfig) error
	Validate(DriverContext) error
	Create(name string, sizeBytes uint64, opts map[string]string) error
	CreateClone(name, source, snapshot string, opts map[string]string) error
	Destroy(name string) error
	Attach(name, mountpoint string, opts map[string]string) error
	Detach(name, mountpoint string) error
	SnapshotList(name string) ([]CommonSnapshot, error)
	List() ([]string, error)
	Get(name string) error
}

StorageDriver provides a common interface for storage related operations

Jump to

Keyboard shortcuts

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