Documentation ¶
Overview ¶
Copyright 2019 NetApp, Inc. All Rights Reserved.
Index ¶
- Constants
- func CreateOntapClone(name, source, snapshot string, split bool, ...) error
- func CreateSnapshot(snapConfig *storage.SnapshotConfig, config *drivers.OntapStorageDriverConfig, ...) (*storage.Snapshot, error)
- func DeleteSnapshot(snapConfig *storage.SnapshotConfig, config *drivers.OntapStorageDriverConfig, ...) error
- func EMSHeartbeat(driver StorageDriver)
- func GetISCSITargetInfo(clientAPI *api.Client, config *drivers.OntapStorageDriverConfig) (iSCSINodeName string, iSCSIInterfaces []string, returnError error)
- func GetLUNPathEconomy(bucketName string, volNameInternal string) string
- func GetSnapshot(snapConfig *storage.SnapshotConfig, config *drivers.OntapStorageDriverConfig, ...) (*storage.Snapshot, error)
- func GetSnapshotReserve(snapshotPolicy, snapshotReserve string) (int, error)
- func GetSnapshots(volConfig *storage.VolumeConfig, config *drivers.OntapStorageDriverConfig, ...) ([]*storage.Snapshot, error)
- func GetVolume(name string, client *api.Client, config *drivers.OntapStorageDriverConfig) error
- func GetVolumeSize(sizeBytes uint64, config drivers.OntapStorageDriverConfig) (uint64, error)
- func InitializeOntapAPI(config *drivers.OntapStorageDriverConfig) (*api.Client, error)
- func InitializeOntapConfig(context tridentconfig.DriverContext, configJSON string, ...) (*drivers.OntapStorageDriverConfig, error)
- func InitializeOntapDriver(config *drivers.OntapStorageDriverConfig) (*api.Client, error)
- func InitializeSANDriver(context tridentconfig.DriverContext, clientAPI *api.Client, ...) error
- func PopulateConfigurationDefaults(config *drivers.OntapStorageDriverConfig) error
- func PopulateOntapLunMapping(clientAPI *api.Client, config *drivers.OntapStorageDriverConfig, ips []string, ...) error
- func PublishLUN(clientAPI *api.Client, config *drivers.OntapStorageDriverConfig, ips []string, ...) error
- func RestoreSnapshot(snapConfig *storage.SnapshotConfig, config *drivers.OntapStorageDriverConfig, ...) error
- func SplitVolumeFromBusySnapshot(snapConfig *storage.SnapshotConfig, config *drivers.OntapStorageDriverConfig, ...) error
- func ValidateDataLIF(dataLIF string, dataLIFs []string) ([]string, error)
- func ValidateNASDriver(api *api.Client, config *drivers.OntapStorageDriverConfig) error
- func ValidateSANDriver(api *api.Client, config *drivers.OntapStorageDriverConfig, ips []string) error
- type HousekeepingTask
- type LUNHelper
- func (o *LUNHelper) GetBucketName(lunPath string) string
- func (o *LUNHelper) GetInternalSnapshotName(internalVolName, snapName string) string
- func (o *LUNHelper) GetInternalVolumeName(volName string) string
- func (o *LUNHelper) GetLUNPath(bucketName, volName string) string
- func (o *LUNHelper) GetLUNPathPattern(volName string) string
- func (o *LUNHelper) GetSnapPath(bucketName, internalVolName, snapName string) string
- func (o *LUNHelper) GetSnapPathPattern(bucketName string) string
- func (o *LUNHelper) GetSnapPathPatternForVolume(volName string) string
- func (o *LUNHelper) GetSnapshotName(volName, snapName string) string
- func (o *LUNHelper) GetSnapshotNameFromSnapLUNPath(snapLunPath string) string
- func (o *LUNHelper) GetVolumeName(lunPath string) string
- func (o *LUNHelper) IsValidSnapLUNPath(snapLunPath string) bool
- type NASFlexGroupStorageDriver
- func (d *NASFlexGroupStorageDriver) Create(volConfig *storage.VolumeConfig, storagePool *storage.Pool, ...) error
- func (d *NASFlexGroupStorageDriver) CreateClone(volConfig *storage.VolumeConfig) error
- func (d *NASFlexGroupStorageDriver) CreateFollowup(volConfig *storage.VolumeConfig) error
- func (d *NASFlexGroupStorageDriver) CreatePrepare(volConfig *storage.VolumeConfig) error
- func (d *NASFlexGroupStorageDriver) CreateSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
- func (d *NASFlexGroupStorageDriver) DeleteSnapshot(snapConfig *storage.SnapshotConfig) error
- func (d *NASFlexGroupStorageDriver) Destroy(name string) error
- func (d *NASFlexGroupStorageDriver) Get(name string) error
- func (d *NASFlexGroupStorageDriver) GetAPI() *api.Client
- func (d *NASFlexGroupStorageDriver) GetConfig() *drivers.OntapStorageDriverConfig
- func (d *NASFlexGroupStorageDriver) GetExternalConfig() interface{}
- func (d *NASFlexGroupStorageDriver) GetInternalVolumeName(name string) string
- func (d *NASFlexGroupStorageDriver) GetProtocol() tridentconfig.Protocol
- func (d *NASFlexGroupStorageDriver) GetSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
- func (d *NASFlexGroupStorageDriver) GetSnapshots(volConfig *storage.VolumeConfig) ([]*storage.Snapshot, error)
- func (d *NASFlexGroupStorageDriver) GetStorageBackendSpecs(backend *storage.Backend) error
- func (d *NASFlexGroupStorageDriver) GetTelemetry() *Telemetry
- func (d *NASFlexGroupStorageDriver) GetUpdateType(driverOrig storage.Driver) *roaring.Bitmap
- func (d *NASFlexGroupStorageDriver) GetVolumeExternal(name string) (*storage.VolumeExternal, error)
- func (d *NASFlexGroupStorageDriver) GetVolumeExternalWrappers(channel chan *storage.VolumeExternalWrapper)
- func (d *NASFlexGroupStorageDriver) GetVolumeOpts(volConfig *storage.VolumeConfig, pool *storage.Pool, ...) (map[string]string, error)
- func (d *NASFlexGroupStorageDriver) Import(volConfig *storage.VolumeConfig, originalName string) error
- func (d *NASFlexGroupStorageDriver) Initialize(context tridentconfig.DriverContext, configJSON string, ...) error
- func (d *NASFlexGroupStorageDriver) Initialized() bool
- func (d *NASFlexGroupStorageDriver) Name() string
- func (d *NASFlexGroupStorageDriver) Publish(name string, publishInfo *utils.VolumePublishInfo) error
- func (d *NASFlexGroupStorageDriver) Rename(name string, newName string) error
- func (d *NASFlexGroupStorageDriver) Resize(volConfig *storage.VolumeConfig, sizeBytes uint64) error
- func (d *NASFlexGroupStorageDriver) RestoreSnapshot(snapConfig *storage.SnapshotConfig) error
- func (d *NASFlexGroupStorageDriver) StoreConfig(b *storage.PersistentStorageBackendConfig)
- func (d *NASFlexGroupStorageDriver) Terminate()
- type NASQtreeStorageDriver
- func (d *NASQtreeStorageDriver) Create(volConfig *storage.VolumeConfig, storagePool *storage.Pool, ...) error
- func (d *NASQtreeStorageDriver) CreateClone(volConfig *storage.VolumeConfig) error
- func (d *NASQtreeStorageDriver) CreateFollowup(volConfig *storage.VolumeConfig) error
- func (d *NASQtreeStorageDriver) CreatePrepare(volConfig *storage.VolumeConfig) error
- func (d *NASQtreeStorageDriver) CreateSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
- func (d *NASQtreeStorageDriver) DeleteSnapshot(snapConfig *storage.SnapshotConfig) error
- func (d *NASQtreeStorageDriver) Destroy(name string) error
- func (d *NASQtreeStorageDriver) FlexvolNamePrefix() string
- func (d *NASQtreeStorageDriver) Get(name string) error
- func (d *NASQtreeStorageDriver) GetAPI() *api.Client
- func (d *NASQtreeStorageDriver) GetConfig() *drivers.OntapStorageDriverConfig
- func (d *NASQtreeStorageDriver) GetExternalConfig() interface{}
- func (d *NASQtreeStorageDriver) GetInternalVolumeName(name string) string
- func (d *NASQtreeStorageDriver) GetProtocol() tridentconfig.Protocol
- func (d *NASQtreeStorageDriver) GetSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
- func (d *NASQtreeStorageDriver) GetSnapshots(volConfig *storage.VolumeConfig) ([]*storage.Snapshot, error)
- func (d *NASQtreeStorageDriver) GetStorageBackendSpecs(backend *storage.Backend) error
- func (d *NASQtreeStorageDriver) GetTelemetry() *Telemetry
- func (d *NASQtreeStorageDriver) GetUpdateType(driverOrig storage.Driver) *roaring.Bitmap
- func (d *NASQtreeStorageDriver) GetVolumeExternal(name string) (*storage.VolumeExternal, error)
- func (d *NASQtreeStorageDriver) GetVolumeExternalWrappers(channel chan *storage.VolumeExternalWrapper)
- func (d *NASQtreeStorageDriver) GetVolumeOpts(volConfig *storage.VolumeConfig, pool *storage.Pool, ...) (map[string]string, error)
- func (d *NASQtreeStorageDriver) Import(volConfig *storage.VolumeConfig, originalName string) error
- func (d *NASQtreeStorageDriver) Initialize(context tridentconfig.DriverContext, configJSON string, ...) error
- func (d *NASQtreeStorageDriver) Initialized() bool
- func (d *NASQtreeStorageDriver) Name() string
- func (d *NASQtreeStorageDriver) Publish(name string, publishInfo *utils.VolumePublishInfo) error
- func (d *NASQtreeStorageDriver) Rename(name string, newName string) error
- func (d *NASQtreeStorageDriver) Resize(volConfig *storage.VolumeConfig, sizeBytes uint64) error
- func (d *NASQtreeStorageDriver) RestoreSnapshot(snapConfig *storage.SnapshotConfig) error
- func (d *NASQtreeStorageDriver) StoreConfig(b *storage.PersistentStorageBackendConfig)
- func (d *NASQtreeStorageDriver) Terminate()
- type NASStorageDriver
- func (d *NASStorageDriver) Create(volConfig *storage.VolumeConfig, storagePool *storage.Pool, ...) error
- func (d *NASStorageDriver) CreateClone(volConfig *storage.VolumeConfig) error
- func (d *NASStorageDriver) CreateFollowup(volConfig *storage.VolumeConfig) error
- func (d *NASStorageDriver) CreatePrepare(volConfig *storage.VolumeConfig) error
- func (d *NASStorageDriver) CreateSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
- func (d *NASStorageDriver) DeleteSnapshot(snapConfig *storage.SnapshotConfig) error
- func (d *NASStorageDriver) Destroy(name string) error
- func (d *NASStorageDriver) Get(name string) error
- func (d *NASStorageDriver) GetAPI() *api.Client
- func (d *NASStorageDriver) GetConfig() *drivers.OntapStorageDriverConfig
- func (d *NASStorageDriver) GetExternalConfig() interface{}
- func (d *NASStorageDriver) GetInternalVolumeName(name string) string
- func (d *NASStorageDriver) GetProtocol() tridentconfig.Protocol
- func (d *NASStorageDriver) GetSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
- func (d *NASStorageDriver) GetSnapshots(volConfig *storage.VolumeConfig) ([]*storage.Snapshot, error)
- func (d *NASStorageDriver) GetStorageBackendSpecs(backend *storage.Backend) error
- func (d *NASStorageDriver) GetTelemetry() *Telemetry
- func (d *NASStorageDriver) GetUpdateType(driverOrig storage.Driver) *roaring.Bitmap
- func (d *NASStorageDriver) GetVolumeExternal(name string) (*storage.VolumeExternal, error)
- func (d *NASStorageDriver) GetVolumeExternalWrappers(channel chan *storage.VolumeExternalWrapper)
- func (d *NASStorageDriver) GetVolumeOpts(volConfig *storage.VolumeConfig, pool *storage.Pool, ...) (map[string]string, error)
- func (d *NASStorageDriver) Import(volConfig *storage.VolumeConfig, originalName string) error
- func (d *NASStorageDriver) Initialize(context tridentconfig.DriverContext, configJSON string, ...) error
- func (d *NASStorageDriver) Initialized() bool
- func (d *NASStorageDriver) Name() string
- func (d *NASStorageDriver) Publish(name string, publishInfo *utils.VolumePublishInfo) error
- func (d *NASStorageDriver) Rename(name string, new_name string) error
- func (d *NASStorageDriver) Resize(volConfig *storage.VolumeConfig, sizeBytes uint64) error
- func (d *NASStorageDriver) RestoreSnapshot(snapConfig *storage.SnapshotConfig) error
- func (d *NASStorageDriver) StoreConfig(b *storage.PersistentStorageBackendConfig)
- func (d *NASStorageDriver) Terminate()
- type SANEconomyStorageDriver
- func (d *SANEconomyStorageDriver) Create(volConfig *storage.VolumeConfig, storagePool *storage.Pool, ...) error
- func (d *SANEconomyStorageDriver) CreateClone(volConfig *storage.VolumeConfig) error
- func (d *SANEconomyStorageDriver) CreateFollowup(volConfig *storage.VolumeConfig) error
- func (d *SANEconomyStorageDriver) CreatePrepare(volConfig *storage.VolumeConfig) error
- func (d *SANEconomyStorageDriver) CreateSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
- func (d *SANEconomyStorageDriver) DeleteBucketIfEmpty(bucketVol string) error
- func (d *SANEconomyStorageDriver) DeleteSnapshot(snapConfig *storage.SnapshotConfig) error
- func (d *SANEconomyStorageDriver) Destroy(name string) error
- func (d *SANEconomyStorageDriver) FlexvolNamePrefix() string
- func (d *SANEconomyStorageDriver) Get(name string) error
- func (d *SANEconomyStorageDriver) GetAPI() *api.Client
- func (d *SANEconomyStorageDriver) GetConfig() *drivers.OntapStorageDriverConfig
- func (d *SANEconomyStorageDriver) GetExternalConfig() interface{}
- func (d *SANEconomyStorageDriver) GetInternalVolumeName(name string) string
- func (d *SANEconomyStorageDriver) GetProtocol() tridentconfig.Protocol
- func (d *SANEconomyStorageDriver) GetSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
- func (d *SANEconomyStorageDriver) GetSnapshots(volConfig *storage.VolumeConfig) ([]*storage.Snapshot, error)
- func (d *SANEconomyStorageDriver) GetStorageBackendSpecs(backend *storage.Backend) error
- func (d *SANEconomyStorageDriver) GetTelemetry() *Telemetry
- func (d *SANEconomyStorageDriver) GetUpdateType(driverOrig storage.Driver) *roaring.Bitmap
- func (d *SANEconomyStorageDriver) GetVolumeExternal(name string) (*storage.VolumeExternal, error)
- func (d *SANEconomyStorageDriver) GetVolumeExternalWrappers(channel chan *storage.VolumeExternalWrapper)
- func (d *SANEconomyStorageDriver) GetVolumeOpts(volConfig *storage.VolumeConfig, pool *storage.Pool, ...) (map[string]string, error)
- func (d *SANEconomyStorageDriver) Import(volConfig *storage.VolumeConfig, originalName string) error
- func (d *SANEconomyStorageDriver) Initialize(context tridentconfig.DriverContext, configJSON string, ...) error
- func (d *SANEconomyStorageDriver) Initialized() bool
- func (d *SANEconomyStorageDriver) LUNExists(volName, bucketPrefix string) (bool, string, error)
- func (d *SANEconomyStorageDriver) Name() string
- func (d *SANEconomyStorageDriver) Publish(name string, publishInfo *utils.VolumePublishInfo) error
- func (d *SANEconomyStorageDriver) Rename(name string, newName string) error
- func (d *SANEconomyStorageDriver) Resize(volConfig *storage.VolumeConfig, sizeBytes uint64) error
- func (d *SANEconomyStorageDriver) RestoreSnapshot(snapConfig *storage.SnapshotConfig) error
- func (d *SANEconomyStorageDriver) StoreConfig(b *storage.PersistentStorageBackendConfig)
- func (d *SANEconomyStorageDriver) Terminate()
- type SANStorageDriver
- func (d *SANStorageDriver) Create(volConfig *storage.VolumeConfig, storagePool *storage.Pool, ...) error
- func (d *SANStorageDriver) CreateClone(volConfig *storage.VolumeConfig) error
- func (d *SANStorageDriver) CreateFollowup(volConfig *storage.VolumeConfig) error
- func (d *SANStorageDriver) CreatePrepare(volConfig *storage.VolumeConfig) error
- func (d *SANStorageDriver) CreateSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
- func (d *SANStorageDriver) DeleteSnapshot(snapConfig *storage.SnapshotConfig) error
- func (d *SANStorageDriver) Destroy(name string) error
- func (d *SANStorageDriver) Get(name string) error
- func (d *SANStorageDriver) GetAPI() *api.Client
- func (d *SANStorageDriver) GetConfig() *drivers.OntapStorageDriverConfig
- func (d *SANStorageDriver) GetExternalConfig() interface{}
- func (d *SANStorageDriver) GetInternalVolumeName(name string) string
- func (d *SANStorageDriver) GetProtocol() tridentconfig.Protocol
- func (d *SANStorageDriver) GetSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
- func (d *SANStorageDriver) GetSnapshots(volConfig *storage.VolumeConfig) ([]*storage.Snapshot, error)
- func (d *SANStorageDriver) GetStorageBackendSpecs(backend *storage.Backend) error
- func (d *SANStorageDriver) GetTelemetry() *Telemetry
- func (d *SANStorageDriver) GetUpdateType(driverOrig storage.Driver) *roaring.Bitmap
- func (d *SANStorageDriver) GetVolumeExternal(name string) (*storage.VolumeExternal, error)
- func (d *SANStorageDriver) GetVolumeExternalWrappers(channel chan *storage.VolumeExternalWrapper)
- func (d *SANStorageDriver) GetVolumeOpts(volConfig *storage.VolumeConfig, pool *storage.Pool, ...) (map[string]string, error)
- func (d *SANStorageDriver) Import(volConfig *storage.VolumeConfig, originalName string) error
- func (d *SANStorageDriver) Initialize(context tridentconfig.DriverContext, configJSON string, ...) error
- func (d *SANStorageDriver) Initialized() bool
- func (d SANStorageDriver) Name() string
- func (d *SANStorageDriver) Publish(name string, publishInfo *utils.VolumePublishInfo) error
- func (d *SANStorageDriver) Rename(name string, newName string) error
- func (d *SANStorageDriver) Resize(volConfig *storage.VolumeConfig, sizeBytes uint64) error
- func (d *SANStorageDriver) RestoreSnapshot(snapConfig *storage.SnapshotConfig) error
- func (d *SANStorageDriver) StoreConfig(b *storage.PersistentStorageBackendConfig)
- func (d *SANStorageDriver) Terminate()
- type StorageDriver
- type Telemetry
Constants ¶
const ( MinimumVolumeSizeBytes = 20971520 // 20 MiB HousekeepingStartupDelaySecs = 10 )
const DefaultEncryption = "false"
const DefaultExportPolicy = "default"
const DefaultLimitAggregateUsage = ""
const DefaultLimitVolumeSize = ""
const DefaultNfsMountOptionsDocker = "-o nfsvers=3"
const DefaultNfsMountOptionsKubernetes = ""
const DefaultSecurityStyle = "unix"
const DefaultSnapshotDir = "false"
const DefaultSnapshotPolicy = "none"
const DefaultSnapshotReserve = ""
const DefaultSpaceAllocation = "true"
Enable space-allocation by default. If not enabled, Data ONTAP takes the LUNs offline when they're seen as full. see: https://github.com/NetApp/trident/issues/135
const DefaultSpaceReserve = "none"
const DefaultSplitOnClone = "false"
const DefaultUnixPermissions = "---rwxrwxrwx"
const (
LUNAttributeFSType = "com.netapp.ndvp.fstype"
)
For legacy reasons, these strings mustn't change
const MSecPerHour = 1000 * 60 * 60 // millis * seconds * minutes
Variables ¶
This section is empty.
Functions ¶
func CreateOntapClone ¶
func CreateOntapClone( name, source, snapshot string, split bool, config *drivers.OntapStorageDriverConfig, client *api.Client, ) error
Create a volume clone
func CreateSnapshot ¶
func CreateSnapshot( snapConfig *storage.SnapshotConfig, config *drivers.OntapStorageDriverConfig, client *api.Client, sizeGetter func(string) (int, error), ) (*storage.Snapshot, error)
CreateSnapshot creates a snapshot for the given volume.
func DeleteSnapshot ¶
func DeleteSnapshot( snapConfig *storage.SnapshotConfig, config *drivers.OntapStorageDriverConfig, client *api.Client, ) error
DeleteSnapshot deletes a single snapshot.
func EMSHeartbeat ¶
func EMSHeartbeat(driver StorageDriver)
EMSHeartbeat logs an ASUP message on a timer view them via filer::> event log show -severity NOTICE
func GetISCSITargetInfo ¶
func GetISCSITargetInfo( clientAPI *api.Client, config *drivers.OntapStorageDriverConfig, ) (iSCSINodeName string, iSCSIInterfaces []string, returnError error)
GetISCSITargetInfo returns the iSCSI node name and iSCSI interfaces using the provided client's SVM.
func GetLUNPathEconomy ¶
func GetSnapshot ¶
func GetSnapshot( snapConfig *storage.SnapshotConfig, config *drivers.OntapStorageDriverConfig, client *api.Client, sizeGetter func(string) (int, error), ) (*storage.Snapshot, error)
GetSnapshot gets a snapshot. To distinguish between an API error reading the snapshot and a non-existent snapshot, this method may return (nil, nil).
func GetSnapshotReserve ¶
func GetSnapshots ¶
func GetSnapshots( volConfig *storage.VolumeConfig, config *drivers.OntapStorageDriverConfig, client *api.Client, sizeGetter func(string) (int, error), ) ([]*storage.Snapshot, error)
GetSnapshots returns the list of snapshots associated with the named volume.
func GetVolume ¶
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 GetVolumeSize ¶
func GetVolumeSize(sizeBytes uint64, config drivers.OntapStorageDriverConfig) (uint64, error)
func InitializeOntapAPI ¶
func InitializeOntapAPI(config *drivers.OntapStorageDriverConfig) (*api.Client, error)
InitializeOntapAPI returns an ontap.Client ZAPI client. If the SVM isn't specified in the config file, this method attempts to derive the one to use.
func InitializeOntapConfig ¶
func InitializeOntapConfig( context tridentconfig.DriverContext, configJSON string, commonConfig *drivers.CommonStorageDriverConfig, ) (*drivers.OntapStorageDriverConfig, error)
InitializeOntapConfig parses the ONTAP config, mixing in the specified common config.
func InitializeOntapDriver ¶
func InitializeOntapDriver(config *drivers.OntapStorageDriverConfig) (*api.Client, error)
InitializeOntapDriver sets up the API client and performs all other initialization tasks that are common to all the ONTAP drivers.
func InitializeSANDriver ¶
func InitializeSANDriver(context tridentconfig.DriverContext, clientAPI *api.Client, config *drivers.OntapStorageDriverConfig, validate func() error) error
InitializeSANDriver performs common ONTAP SAN driver initialization.
func PopulateConfigurationDefaults ¶
func PopulateConfigurationDefaults(config *drivers.OntapStorageDriverConfig) error
PopulateConfigurationDefaults fills in default values for configuration settings if not supplied in the config file
func PopulateOntapLunMapping ¶
func PopulateOntapLunMapping( clientAPI *api.Client, config *drivers.OntapStorageDriverConfig, ips []string, volConfig *storage.VolumeConfig, lunID int, ) error
PopulateOntapLunMapping helper function to fill in volConfig with its LUN mapping values.
func PublishLUN ¶
func PublishLUN( clientAPI *api.Client, config *drivers.OntapStorageDriverConfig, ips []string, publishInfo *utils.VolumePublishInfo, lunPath, igroupName string, iSCSINodeName string, ) error
PublishLUN publishes the volume to the host specified in publishInfo from ontap-san or ontap-san-economy. 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 RestoreSnapshot ¶
func RestoreSnapshot( snapConfig *storage.SnapshotConfig, config *drivers.OntapStorageDriverConfig, client *api.Client, ) error
Restore a volume (in place) from a snapshot.
func SplitVolumeFromBusySnapshot ¶
func SplitVolumeFromBusySnapshot( snapConfig *storage.SnapshotConfig, config *drivers.OntapStorageDriverConfig, client *api.Client, ) error
SplitVolumeFromBusySnapshot gets the list of volumes backed by a busy snapshot and starts a split operation on the first one (sorted by volume name).
func ValidateNASDriver ¶
func ValidateNASDriver(api *api.Client, config *drivers.OntapStorageDriverConfig) error
ValidateNASDriver contains the validation logic shared between ontap-nas and ontap-nas-economy.
func ValidateSANDriver ¶
func ValidateSANDriver(api *api.Client, config *drivers.OntapStorageDriverConfig, ips []string) error
ValidateSANDriver contains the validation logic shared between ontap-san and ontap-san-economy.
Types ¶
type HousekeepingTask ¶
type HousekeepingTask struct { Name string Ticker *time.Ticker InitialDelay time.Duration Done chan struct{} Tasks []func() Driver *NASQtreeStorageDriver // contains filtered or unexported fields }
func NewPruneTask ¶
func NewPruneTask(d *NASQtreeStorageDriver, tasks []func()) *HousekeepingTask
func NewResizeTask ¶
func NewResizeTask(d *NASQtreeStorageDriver, tasks []func()) *HousekeepingTask
func (*HousekeepingTask) Start ¶
func (t *HousekeepingTask) Start()
func (*HousekeepingTask) Stop ¶
func (t *HousekeepingTask) Stop()
type LUNHelper ¶
type LUNHelper struct { Config drivers.OntapStorageDriverConfig Context tridentconfig.DriverContext SnapshotRegexp *regexp.Regexp }
func NewLUNHelper ¶
func NewLUNHelper(config drivers.OntapStorageDriverConfig, context tridentconfig.DriverContext) *LUNHelper
func (*LUNHelper) GetBucketName ¶
parameter: snapLunPath=/vol/myBucket/storagePrefix_myLun_snapshot_mySnap result [1] is the bucket name: myBucket
func (*LUNHelper) GetInternalSnapshotName ¶
internalVolName is expected to have the storage prefix included parameters: internalVolName=storagePrefix_my-Lun snapName=my-Snapshot output: storagePrefix_my_Lun_snapshot_my_Snapshot
func (*LUNHelper) GetInternalVolumeName ¶
parameter: volName=my-Lun output: storagePrefix_my_Lun parameter: volName=storagePrefix_my-Lun output: storagePrefix_my_Lun
func (*LUNHelper) GetLUNPath ¶
parameters: bucketName=my-Bucket volName=my-Lun output: /vol/my_Bucket/storagePrefix_my_Lun parameters: bucketName=my-Bucket volName=storagePrefix_my-Lun output: /vol/my_Bucket/storagePrefix_my_Lun
func (*LUNHelper) GetLUNPathPattern ¶
parameter: volName=my-Lun output: /vol/*/storagePrefix_my_Vol
func (*LUNHelper) GetSnapPath ¶
parameters: bucketName=my-Bucket internalVolName=storagePrefix_my-Lun snapName=snap-1 output: /vol/my_Bucket/storagePrefix_my_Lun_snapshot_snap_1
func (*LUNHelper) GetSnapPathPattern ¶
parameter: bucketName=my-Bucket output: /vol/my_Bucket/storagePrefix_*_snapshot_*
func (*LUNHelper) GetSnapPathPatternForVolume ¶
parameter: volName=my-Vol output: /vol/*/storagePrefix_my_Vol_snapshot_*
func (*LUNHelper) GetSnapshotName ¶
volName is expected not to have the storage prefix included parameters: volName=my-Lun snapName=my-Snapshot output: storagePrefix_my_Lun_snapshot_my_Snapshot parameters: volName=my-Lun snapName=snapshot-123 output: storagePrefix_my_Lun_snapshot_snapshot_123
func (*LUNHelper) GetSnapshotNameFromSnapLUNPath ¶
parameter: snapLunPath=/vol/myBucket/storagePrefix_myLun_snapshot_mySnap result [4] is the snapshot name: mySnap
func (*LUNHelper) GetVolumeName ¶
parameter: snapLunPath=/vol/myBucket/storagePrefix_myLun_snapshot_mySnap result [2] is the volume name: myLun
func (*LUNHelper) IsValidSnapLUNPath ¶
identifies if the given snapLunPath has a valid snapshot name
type NASFlexGroupStorageDriver ¶
type NASFlexGroupStorageDriver struct { Config drivers.OntapStorageDriverConfig API *api.Client Telemetry *Telemetry // contains filtered or unexported fields }
NASFlexGroupStorageDriver is for NFS FlexGroup storage provisioning
func (*NASFlexGroupStorageDriver) Create ¶
func (d *NASFlexGroupStorageDriver) Create( volConfig *storage.VolumeConfig, storagePool *storage.Pool, volAttributes map[string]sa.Request, ) error
Create a volume with the specified options
func (*NASFlexGroupStorageDriver) CreateClone ¶
func (d *NASFlexGroupStorageDriver) CreateClone(volConfig *storage.VolumeConfig) error
CreateClone creates a volume clone
func (*NASFlexGroupStorageDriver) CreateFollowup ¶
func (d *NASFlexGroupStorageDriver) CreateFollowup(volConfig *storage.VolumeConfig) error
func (*NASFlexGroupStorageDriver) CreatePrepare ¶
func (d *NASFlexGroupStorageDriver) CreatePrepare(volConfig *storage.VolumeConfig) error
func (*NASFlexGroupStorageDriver) CreateSnapshot ¶
func (d *NASFlexGroupStorageDriver) CreateSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
CreateSnapshot creates a snapshot for the given volume
func (*NASFlexGroupStorageDriver) DeleteSnapshot ¶
func (d *NASFlexGroupStorageDriver) DeleteSnapshot(snapConfig *storage.SnapshotConfig) error
DeleteSnapshot creates a snapshot of a volume.
func (*NASFlexGroupStorageDriver) Destroy ¶
func (d *NASFlexGroupStorageDriver) Destroy(name string) error
Destroy the volume
func (*NASFlexGroupStorageDriver) Get ¶
func (d *NASFlexGroupStorageDriver) Get(name string) error
Tests the existence of a FlexGroup. Returns nil if the FlexGroup exists and an error otherwise.
func (*NASFlexGroupStorageDriver) GetAPI ¶
func (d *NASFlexGroupStorageDriver) GetAPI() *api.Client
func (*NASFlexGroupStorageDriver) GetConfig ¶
func (d *NASFlexGroupStorageDriver) GetConfig() *drivers.OntapStorageDriverConfig
func (*NASFlexGroupStorageDriver) GetExternalConfig ¶
func (d *NASFlexGroupStorageDriver) GetExternalConfig() interface{}
func (*NASFlexGroupStorageDriver) GetInternalVolumeName ¶
func (d *NASFlexGroupStorageDriver) GetInternalVolumeName(name string) string
func (*NASFlexGroupStorageDriver) GetProtocol ¶
func (d *NASFlexGroupStorageDriver) GetProtocol() tridentconfig.Protocol
func (*NASFlexGroupStorageDriver) GetSnapshot ¶
func (d *NASFlexGroupStorageDriver) GetSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
GetSnapshot gets a snapshot. To distinguish between an API error reading the snapshot and a non-existent snapshot, this method may return (nil, nil).
func (*NASFlexGroupStorageDriver) GetSnapshots ¶
func (d *NASFlexGroupStorageDriver) GetSnapshots(volConfig *storage.VolumeConfig) ([]*storage.Snapshot, error)
Return the list of snapshots associated with the specified volume
func (*NASFlexGroupStorageDriver) GetStorageBackendSpecs ¶
func (d *NASFlexGroupStorageDriver) GetStorageBackendSpecs(backend *storage.Backend) error
Retrieve storage backend capabilities
func (*NASFlexGroupStorageDriver) GetTelemetry ¶
func (d *NASFlexGroupStorageDriver) GetTelemetry() *Telemetry
func (*NASFlexGroupStorageDriver) GetUpdateType ¶
func (d *NASFlexGroupStorageDriver) GetUpdateType(driverOrig storage.Driver) *roaring.Bitmap
GetUpdateType returns a bitmap populated with updates to the driver
func (*NASFlexGroupStorageDriver) GetVolumeExternal ¶
func (d *NASFlexGroupStorageDriver) 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 (*NASFlexGroupStorageDriver) GetVolumeExternalWrappers ¶
func (d *NASFlexGroupStorageDriver) 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 (*NASFlexGroupStorageDriver) GetVolumeOpts ¶
func (*NASFlexGroupStorageDriver) Import ¶
func (d *NASFlexGroupStorageDriver) Import(volConfig *storage.VolumeConfig, originalName string) error
Import brings an existing volume under trident's control
func (*NASFlexGroupStorageDriver) Initialize ¶
func (d *NASFlexGroupStorageDriver) Initialize( context tridentconfig.DriverContext, configJSON string, commonConfig *drivers.CommonStorageDriverConfig, ) error
Initialize from the provided config
func (*NASFlexGroupStorageDriver) Initialized ¶
func (d *NASFlexGroupStorageDriver) Initialized() bool
func (*NASFlexGroupStorageDriver) Name ¶
func (d *NASFlexGroupStorageDriver) Name() string
Name is for returning the name of this driver
func (*NASFlexGroupStorageDriver) Publish ¶
func (d *NASFlexGroupStorageDriver) 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 (*NASFlexGroupStorageDriver) Rename ¶
func (d *NASFlexGroupStorageDriver) Rename(name string, newName string) error
Rename changes the name of a volume
func (*NASFlexGroupStorageDriver) Resize ¶
func (d *NASFlexGroupStorageDriver) Resize(volConfig *storage.VolumeConfig, sizeBytes uint64) error
Resize expands the FlexGroup size.
func (*NASFlexGroupStorageDriver) RestoreSnapshot ¶
func (d *NASFlexGroupStorageDriver) RestoreSnapshot(snapConfig *storage.SnapshotConfig) error
RestoreSnapshot restores a volume (in place) from a snapshot.
func (*NASFlexGroupStorageDriver) StoreConfig ¶
func (d *NASFlexGroupStorageDriver) StoreConfig( b *storage.PersistentStorageBackendConfig, )
func (*NASFlexGroupStorageDriver) Terminate ¶
func (d *NASFlexGroupStorageDriver) Terminate()
type NASQtreeStorageDriver ¶
type NASQtreeStorageDriver struct { Config drivers.OntapStorageDriverConfig API *api.Client Telemetry *Telemetry // contains filtered or unexported fields }
NASQtreeStorageDriver is for NFS storage provisioning of qtrees
func (*NASQtreeStorageDriver) Create ¶
func (d *NASQtreeStorageDriver) Create( volConfig *storage.VolumeConfig, storagePool *storage.Pool, volAttributes map[string]sa.Request, ) error
Create a qtree-backed volume with the specified options
func (*NASQtreeStorageDriver) CreateClone ¶
func (d *NASQtreeStorageDriver) CreateClone(volConfig *storage.VolumeConfig) error
Create a volume clone
func (*NASQtreeStorageDriver) CreateFollowup ¶
func (d *NASQtreeStorageDriver) CreateFollowup(volConfig *storage.VolumeConfig) error
func (*NASQtreeStorageDriver) CreatePrepare ¶
func (d *NASQtreeStorageDriver) CreatePrepare(volConfig *storage.VolumeConfig) error
func (*NASQtreeStorageDriver) CreateSnapshot ¶
func (d *NASQtreeStorageDriver) CreateSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
CreateSnapshot creates a snapshot for the given volume
func (*NASQtreeStorageDriver) DeleteSnapshot ¶
func (d *NASQtreeStorageDriver) DeleteSnapshot(snapConfig *storage.SnapshotConfig) error
DeleteSnapshot creates a snapshot of a volume.
func (*NASQtreeStorageDriver) Destroy ¶
func (d *NASQtreeStorageDriver) Destroy(name string) error
Destroy the volume
func (*NASQtreeStorageDriver) FlexvolNamePrefix ¶
func (d *NASQtreeStorageDriver) FlexvolNamePrefix() string
func (*NASQtreeStorageDriver) Get ¶
func (d *NASQtreeStorageDriver) Get(name string) error
Test for the existence of a volume
func (*NASQtreeStorageDriver) GetAPI ¶
func (d *NASQtreeStorageDriver) GetAPI() *api.Client
func (*NASQtreeStorageDriver) GetConfig ¶
func (d *NASQtreeStorageDriver) GetConfig() *drivers.OntapStorageDriverConfig
func (*NASQtreeStorageDriver) GetExternalConfig ¶
func (d *NASQtreeStorageDriver) GetExternalConfig() interface{}
func (*NASQtreeStorageDriver) GetInternalVolumeName ¶
func (d *NASQtreeStorageDriver) GetInternalVolumeName(name string) string
func (*NASQtreeStorageDriver) GetProtocol ¶
func (d *NASQtreeStorageDriver) GetProtocol() tridentconfig.Protocol
func (*NASQtreeStorageDriver) GetSnapshot ¶
func (d *NASQtreeStorageDriver) GetSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
GetSnapshot returns a snapshot of a volume, or an error if it does not exist.
func (*NASQtreeStorageDriver) GetSnapshots ¶
func (d *NASQtreeStorageDriver) GetSnapshots(volConfig *storage.VolumeConfig) ([]*storage.Snapshot, error)
Return the list of snapshots associated with the specified volume
func (*NASQtreeStorageDriver) GetStorageBackendSpecs ¶
func (d *NASQtreeStorageDriver) GetStorageBackendSpecs(backend *storage.Backend) error
Retrieve storage backend capabilities
func (*NASQtreeStorageDriver) GetTelemetry ¶
func (d *NASQtreeStorageDriver) GetTelemetry() *Telemetry
func (*NASQtreeStorageDriver) GetUpdateType ¶
func (d *NASQtreeStorageDriver) GetUpdateType(driverOrig storage.Driver) *roaring.Bitmap
GetUpdateType returns a bitmap populated with updates to the driver
func (*NASQtreeStorageDriver) GetVolumeExternal ¶
func (d *NASQtreeStorageDriver) 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 (*NASQtreeStorageDriver) GetVolumeExternalWrappers ¶
func (d *NASQtreeStorageDriver) 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 (*NASQtreeStorageDriver) GetVolumeOpts ¶
func (*NASQtreeStorageDriver) Import ¶
func (d *NASQtreeStorageDriver) Import(volConfig *storage.VolumeConfig, originalName string) error
func (*NASQtreeStorageDriver) Initialize ¶
func (d *NASQtreeStorageDriver) Initialize( context tridentconfig.DriverContext, configJSON string, commonConfig *drivers.CommonStorageDriverConfig, ) error
Initialize from the provided config
func (*NASQtreeStorageDriver) Initialized ¶
func (d *NASQtreeStorageDriver) Initialized() bool
func (*NASQtreeStorageDriver) Name ¶
func (d *NASQtreeStorageDriver) Name() string
Name is for returning the name of this driver
func (*NASQtreeStorageDriver) Publish ¶
func (d *NASQtreeStorageDriver) 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 (*NASQtreeStorageDriver) Rename ¶
func (d *NASQtreeStorageDriver) Rename(name string, newName string) error
func (*NASQtreeStorageDriver) Resize ¶
func (d *NASQtreeStorageDriver) Resize(volConfig *storage.VolumeConfig, sizeBytes uint64) error
Resize expands the Flexvol containing the Qtree and updates the Qtree quota.
func (*NASQtreeStorageDriver) RestoreSnapshot ¶
func (d *NASQtreeStorageDriver) RestoreSnapshot(snapConfig *storage.SnapshotConfig) error
RestoreSnapshot restores a volume (in place) from a snapshot.
func (*NASQtreeStorageDriver) StoreConfig ¶
func (d *NASQtreeStorageDriver) StoreConfig(b *storage.PersistentStorageBackendConfig)
func (*NASQtreeStorageDriver) Terminate ¶
func (d *NASQtreeStorageDriver) Terminate()
type NASStorageDriver ¶
type NASStorageDriver struct { Config drivers.OntapStorageDriverConfig API *api.Client Telemetry *Telemetry // contains filtered or unexported fields }
NASStorageDriver is for NFS storage provisioning
func (*NASStorageDriver) Create ¶
func (d *NASStorageDriver) Create( volConfig *storage.VolumeConfig, storagePool *storage.Pool, volAttributes map[string]sa.Request, ) error
Create a volume with the specified options
func (*NASStorageDriver) CreateClone ¶
func (d *NASStorageDriver) CreateClone(volConfig *storage.VolumeConfig) error
Create a volume clone
func (*NASStorageDriver) CreateFollowup ¶
func (d *NASStorageDriver) CreateFollowup(volConfig *storage.VolumeConfig) error
func (*NASStorageDriver) CreatePrepare ¶
func (d *NASStorageDriver) CreatePrepare(volConfig *storage.VolumeConfig) error
func (*NASStorageDriver) CreateSnapshot ¶
func (d *NASStorageDriver) CreateSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
CreateSnapshot creates a snapshot for the given volume
func (*NASStorageDriver) DeleteSnapshot ¶
func (d *NASStorageDriver) DeleteSnapshot(snapConfig *storage.SnapshotConfig) error
DeleteSnapshot creates a snapshot of a volume.
func (*NASStorageDriver) Destroy ¶
func (d *NASStorageDriver) Destroy(name string) error
Destroy the volume
func (*NASStorageDriver) Get ¶
func (d *NASStorageDriver) Get(name string) error
Test for the existence of a volume
func (*NASStorageDriver) GetAPI ¶
func (d *NASStorageDriver) GetAPI() *api.Client
func (*NASStorageDriver) GetConfig ¶
func (d *NASStorageDriver) GetConfig() *drivers.OntapStorageDriverConfig
func (*NASStorageDriver) GetExternalConfig ¶
func (d *NASStorageDriver) GetExternalConfig() interface{}
func (*NASStorageDriver) GetInternalVolumeName ¶
func (d *NASStorageDriver) GetInternalVolumeName(name string) string
func (*NASStorageDriver) GetProtocol ¶
func (d *NASStorageDriver) GetProtocol() tridentconfig.Protocol
func (*NASStorageDriver) GetSnapshot ¶
func (d *NASStorageDriver) GetSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
GetSnapshot gets a snapshot. To distinguish between an API error reading the snapshot and a non-existent snapshot, this method may return (nil, nil).
func (*NASStorageDriver) GetSnapshots ¶
func (d *NASStorageDriver) GetSnapshots(volConfig *storage.VolumeConfig) ([]*storage.Snapshot, error)
Return the list of snapshots associated with the specified volume
func (*NASStorageDriver) GetStorageBackendSpecs ¶
func (d *NASStorageDriver) GetStorageBackendSpecs(backend *storage.Backend) error
Retrieve storage backend capabilities
func (*NASStorageDriver) GetTelemetry ¶
func (d *NASStorageDriver) GetTelemetry() *Telemetry
func (*NASStorageDriver) GetUpdateType ¶
func (d *NASStorageDriver) GetUpdateType(driverOrig storage.Driver) *roaring.Bitmap
GetUpdateType returns a bitmap populated with updates to the driver
func (*NASStorageDriver) GetVolumeExternal ¶
func (d *NASStorageDriver) 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 (*NASStorageDriver) GetVolumeExternalWrappers ¶
func (d *NASStorageDriver) 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 (*NASStorageDriver) GetVolumeOpts ¶
func (*NASStorageDriver) Import ¶
func (d *NASStorageDriver) Import(volConfig *storage.VolumeConfig, originalName string) error
func (*NASStorageDriver) Initialize ¶
func (d *NASStorageDriver) Initialize( context tridentconfig.DriverContext, configJSON string, commonConfig *drivers.CommonStorageDriverConfig, ) error
Initialize from the provided config
func (*NASStorageDriver) Initialized ¶
func (d *NASStorageDriver) Initialized() bool
func (*NASStorageDriver) Name ¶
func (d *NASStorageDriver) Name() string
Name is for returning the name of this driver
func (*NASStorageDriver) Publish ¶
func (d *NASStorageDriver) 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 (*NASStorageDriver) Rename ¶
func (d *NASStorageDriver) Rename(name string, new_name string) error
Rename changes the name of a volume
func (*NASStorageDriver) Resize ¶
func (d *NASStorageDriver) Resize(volConfig *storage.VolumeConfig, sizeBytes uint64) error
Resize expands the volume size.
func (*NASStorageDriver) RestoreSnapshot ¶
func (d *NASStorageDriver) RestoreSnapshot(snapConfig *storage.SnapshotConfig) error
RestoreSnapshot restores a volume (in place) from a snapshot.
func (*NASStorageDriver) StoreConfig ¶
func (d *NASStorageDriver) StoreConfig( b *storage.PersistentStorageBackendConfig, )
func (*NASStorageDriver) Terminate ¶
func (d *NASStorageDriver) Terminate()
type SANEconomyStorageDriver ¶
type SANEconomyStorageDriver struct { Config drivers.OntapStorageDriverConfig API *api.Client Telemetry *Telemetry // contains filtered or unexported fields }
SANEconomyStorageDriver is for iSCSI storage provisioning of LUNs
func (*SANEconomyStorageDriver) Create ¶
func (d *SANEconomyStorageDriver) Create( volConfig *storage.VolumeConfig, storagePool *storage.Pool, volAttributes map[string]sa.Request, ) error
Create a volume+LUN with the specified options
func (*SANEconomyStorageDriver) CreateClone ¶
func (d *SANEconomyStorageDriver) CreateClone(volConfig *storage.VolumeConfig) error
Create a volume clone
func (*SANEconomyStorageDriver) CreateFollowup ¶
func (d *SANEconomyStorageDriver) CreateFollowup(volConfig *storage.VolumeConfig) error
func (*SANEconomyStorageDriver) CreatePrepare ¶
func (d *SANEconomyStorageDriver) CreatePrepare(volConfig *storage.VolumeConfig) error
func (*SANEconomyStorageDriver) CreateSnapshot ¶
func (d *SANEconomyStorageDriver) CreateSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
CreateSnapshot creates a snapshot for the given volume.
func (*SANEconomyStorageDriver) DeleteBucketIfEmpty ¶
func (d *SANEconomyStorageDriver) DeleteBucketIfEmpty(bucketVol string) error
DeleteBucketIfEmpty will check if the given bucket volume is empty, if the bucket is empty it will be deleted. Otherwise, it will be resized.
func (*SANEconomyStorageDriver) DeleteSnapshot ¶
func (d *SANEconomyStorageDriver) DeleteSnapshot(snapConfig *storage.SnapshotConfig) error
DeleteSnapshot deletes a LUN snapshot.
func (*SANEconomyStorageDriver) Destroy ¶
func (d *SANEconomyStorageDriver) Destroy(name string) error
Destroy the LUN
func (*SANEconomyStorageDriver) FlexvolNamePrefix ¶
func (d *SANEconomyStorageDriver) FlexvolNamePrefix() string
func (*SANEconomyStorageDriver) Get ¶
func (d *SANEconomyStorageDriver) Get(name string) error
Test for the existence of a volume
func (*SANEconomyStorageDriver) GetAPI ¶
func (d *SANEconomyStorageDriver) GetAPI() *api.Client
func (*SANEconomyStorageDriver) GetConfig ¶
func (d *SANEconomyStorageDriver) GetConfig() *drivers.OntapStorageDriverConfig
func (*SANEconomyStorageDriver) GetExternalConfig ¶
func (d *SANEconomyStorageDriver) GetExternalConfig() interface{}
func (*SANEconomyStorageDriver) GetInternalVolumeName ¶
func (d *SANEconomyStorageDriver) GetInternalVolumeName(name string) string
func (*SANEconomyStorageDriver) GetProtocol ¶
func (d *SANEconomyStorageDriver) GetProtocol() tridentconfig.Protocol
func (*SANEconomyStorageDriver) GetSnapshot ¶
func (d *SANEconomyStorageDriver) GetSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
GetSnapshot gets a snapshot. To distinguish between an API error reading the snapshot and a non-existent snapshot, this method may return (nil, nil).
func (*SANEconomyStorageDriver) GetSnapshots ¶
func (d *SANEconomyStorageDriver) GetSnapshots(volConfig *storage.VolumeConfig) ([]*storage.Snapshot, error)
func (*SANEconomyStorageDriver) GetStorageBackendSpecs ¶
func (d *SANEconomyStorageDriver) GetStorageBackendSpecs(backend *storage.Backend) error
Retrieve storage backend capabilities
func (*SANEconomyStorageDriver) GetTelemetry ¶
func (d *SANEconomyStorageDriver) GetTelemetry() *Telemetry
func (*SANEconomyStorageDriver) GetUpdateType ¶
func (d *SANEconomyStorageDriver) GetUpdateType(driverOrig storage.Driver) *roaring.Bitmap
GetUpdateType returns a bitmap populated with updates to the driver
func (*SANEconomyStorageDriver) GetVolumeExternal ¶
func (d *SANEconomyStorageDriver) 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 (*SANEconomyStorageDriver) GetVolumeExternalWrappers ¶
func (d *SANEconomyStorageDriver) 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 (*SANEconomyStorageDriver) GetVolumeOpts ¶
func (*SANEconomyStorageDriver) Import ¶
func (d *SANEconomyStorageDriver) Import(volConfig *storage.VolumeConfig, originalName string) error
func (*SANEconomyStorageDriver) Initialize ¶
func (d *SANEconomyStorageDriver) Initialize( context tridentconfig.DriverContext, configJSON string, commonConfig *drivers.CommonStorageDriverConfig, ) error
Initialize from the provided config
func (*SANEconomyStorageDriver) Initialized ¶
func (d *SANEconomyStorageDriver) Initialized() bool
func (*SANEconomyStorageDriver) LUNExists ¶
func (d *SANEconomyStorageDriver) LUNExists(volName, bucketPrefix string) (bool, string, error)
LUNExists returns true if the named LUN exists across all buckets
func (*SANEconomyStorageDriver) Name ¶
func (d *SANEconomyStorageDriver) Name() string
Name is for returning the name of this driver
func (*SANEconomyStorageDriver) Publish ¶
func (d *SANEconomyStorageDriver) 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 (*SANEconomyStorageDriver) Rename ¶
func (d *SANEconomyStorageDriver) Rename(name string, newName string) error
func (*SANEconomyStorageDriver) Resize ¶
func (d *SANEconomyStorageDriver) Resize(volConfig *storage.VolumeConfig, sizeBytes uint64) error
Resize expands the Flexvol containing the LUN and updates the LUN size
func (*SANEconomyStorageDriver) RestoreSnapshot ¶
func (d *SANEconomyStorageDriver) RestoreSnapshot(snapConfig *storage.SnapshotConfig) error
RestoreSnapshot restores a volume (in place) from a snapshot.
func (*SANEconomyStorageDriver) StoreConfig ¶
func (d *SANEconomyStorageDriver) StoreConfig(b *storage.PersistentStorageBackendConfig)
func (*SANEconomyStorageDriver) Terminate ¶
func (d *SANEconomyStorageDriver) Terminate()
type SANStorageDriver ¶
type SANStorageDriver struct { Config drivers.OntapStorageDriverConfig API *api.Client Telemetry *Telemetry // contains filtered or unexported fields }
SANStorageDriver is for iSCSI storage provisioning
func (*SANStorageDriver) Create ¶
func (d *SANStorageDriver) Create( volConfig *storage.VolumeConfig, storagePool *storage.Pool, volAttributes map[string]sa.Request, ) error
Create a volume+LUN with the specified options
func (*SANStorageDriver) CreateClone ¶
func (d *SANStorageDriver) CreateClone(volConfig *storage.VolumeConfig) error
Create a volume clone
func (*SANStorageDriver) CreateFollowup ¶
func (d *SANStorageDriver) CreateFollowup(volConfig *storage.VolumeConfig) error
func (*SANStorageDriver) CreatePrepare ¶
func (d *SANStorageDriver) CreatePrepare(volConfig *storage.VolumeConfig) error
func (*SANStorageDriver) CreateSnapshot ¶
func (d *SANStorageDriver) CreateSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
CreateSnapshot creates a snapshot for the given volume
func (*SANStorageDriver) DeleteSnapshot ¶
func (d *SANStorageDriver) DeleteSnapshot(snapConfig *storage.SnapshotConfig) error
DeleteSnapshot creates a snapshot of a volume.
func (*SANStorageDriver) Destroy ¶
func (d *SANStorageDriver) Destroy(name string) error
Destroy the requested (volume,lun) storage tuple
func (*SANStorageDriver) Get ¶
func (d *SANStorageDriver) Get(name string) error
Test for the existence of a volume
func (*SANStorageDriver) GetAPI ¶
func (d *SANStorageDriver) GetAPI() *api.Client
func (*SANStorageDriver) GetConfig ¶
func (d *SANStorageDriver) GetConfig() *drivers.OntapStorageDriverConfig
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) GetSnapshot ¶
func (d *SANStorageDriver) GetSnapshot(snapConfig *storage.SnapshotConfig) (*storage.Snapshot, error)
GetSnapshot gets a snapshot. To distinguish between an API error reading the snapshot and a non-existent snapshot, this method may return (nil, nil).
func (*SANStorageDriver) GetSnapshots ¶
func (d *SANStorageDriver) GetSnapshots(volConfig *storage.VolumeConfig) ([]*storage.Snapshot, error)
Return the list of snapshots associated with the specified volume
func (*SANStorageDriver) GetStorageBackendSpecs ¶
func (d *SANStorageDriver) GetStorageBackendSpecs(backend *storage.Backend) error
Retrieve storage backend capabilities
func (*SANStorageDriver) GetTelemetry ¶
func (d *SANStorageDriver) GetTelemetry() *Telemetry
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 (*SANStorageDriver) Import ¶
func (d *SANStorageDriver) Import(volConfig *storage.VolumeConfig, originalName 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) Name ¶
func (d SANStorageDriver) Name() string
Name is for returning the name of this driver
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) Rename ¶
func (d *SANStorageDriver) Rename(name string, newName string) error
func (*SANStorageDriver) Resize ¶
func (d *SANStorageDriver) Resize(volConfig *storage.VolumeConfig, sizeBytes uint64) error
Resize expands the volume size.
func (*SANStorageDriver) RestoreSnapshot ¶
func (d *SANStorageDriver) RestoreSnapshot(snapConfig *storage.SnapshotConfig) error
RestoreSnapshot restores a volume (in place) from a snapshot.
func (*SANStorageDriver) StoreConfig ¶
func (d *SANStorageDriver) StoreConfig( b *storage.PersistentStorageBackendConfig, )
func (*SANStorageDriver) Terminate ¶
func (d *SANStorageDriver) Terminate()
type StorageDriver ¶
type Telemetry ¶
type Telemetry struct { tridentconfig.Telemetry Plugin string `json:"plugin"` SVM string `json:"svm"` StoragePrefix string `json:"storagePrefix"` Driver StorageDriver `json:"-"` // contains filtered or unexported fields }
func NewOntapTelemetry ¶
func NewOntapTelemetry(d StorageDriver) *Telemetry