Documentation
¶
Overview ¶
Package sdk provides a high-level interface to the Azure NetApp Files SDK
Package sdk provides a high-level interface to the Azure NetApp Files SDK
Index ¶
- Constants
- type AzureCapacityPoolCookie
- type AzureClient
- type AzureResources
- type CapacityPool
- type Client
- func (d *Client) CreateSnapshot(request *SnapshotCreateRequest) (*Snapshot, error)
- func (d *Client) CreateVolume(request *FilesystemCreateRequest) (*FileSystem, error)
- func (d *Client) DeleteSnapshot(filesystem *FileSystem, snapshot *Snapshot) error
- func (d *Client) DeleteVolume(filesystem *FileSystem) error
- func (d *Client) GetCookieByCapacityPoolName(poolname string) (*AzureCapacityPoolCookie, error)
- func (d *Client) GetCookieByStoragePoolName(spoolname string) (*AzureCapacityPoolCookie, error)
- func (d *Client) GetMountTargetsForVolume(filesystem *FileSystem) (*[]MountTarget, error)
- func (d *Client) GetSnapshotByID(snapshotID string, filesystem *FileSystem) (*Snapshot, error)
- func (d *Client) GetSnapshotForVolume(filesystem *FileSystem, snapshotName string) (*Snapshot, error)
- func (d *Client) GetSnapshotsForVolume(filesystem *FileSystem) (*[]Snapshot, error)
- func (d *Client) GetVolumeByCreationToken(creationToken string) (*FileSystem, error)
- func (d *Client) GetVolumeByID(fileSystemID string) (*FileSystem, error)
- func (d *Client) GetVolumeByName(name string) (*FileSystem, error)
- func (d *Client) GetVolumes() (*[]FileSystem, error)
- func (d *Client) Init(pools map[string]*storage.Pool) (err error)
- func (d *Client) RegisterStoragePool(spool storage.Pool)
- func (d *Client) RelabelVolume(filesystem *FileSystem, labels []string) (*FileSystem, error)
- func (d *Client) RenameRelabelVolume(filesystem *FileSystem, newName string, labels []string) (*FileSystem, error)
- func (d *Client) RenameVolume(filesystem *FileSystem, newName string) (*FileSystem, error)
- func (d *Client) ResizeVolume(filesystem *FileSystem, newSizeBytes int64) (*FileSystem, error)
- func (d *Client) RestoreSnapshot(filesystem *FileSystem, snapshot *Snapshot) error
- func (d *Client) Terminate()
- func (d *Client) VolumeExistsByCreationToken(creationToken string) (bool, *FileSystem, error)
- func (d *Client) WaitForSnapshotState(snapshot *Snapshot, filesystem *FileSystem, desiredState string, ...) error
- func (d *Client) WaitForVolumeState(filesystem *FileSystem, desiredState string, abortStates []string) error
- type ClientConfig
- type ExportPolicy
- type ExportRule
- type FileSystem
- type FilesystemCreateRequest
- type FilesystemRenameRelabelRequest
- type FilesystemRenameRequest
- type FilesystemResizeRequest
- type MountTarget
- type NetAppAccount
- type ResourceGroup
- type Snapshot
- type SnapshotCreateRequest
- type Subnet
- type TerminalStateError
- type VirtualNetwork
Constants ¶
const ( PServiceLevel = "serviceLevel" PLocation = "location" PSubnet = "subnet" DoNotUseSPoolName = "Couldn't do a reverse lookup for storage pool name" )
const ( StateCreating = "InProgress" StateAvailable = "Succeeded" StateDeleting = "Deleting" StateDeleted = "NoSuchState" StateError = "Failed" ProtocolTypeNFSv3 = "NFSv3" ProtocolTypeNFSv4 = "NFSv4" ProtocolTypeCIFS = "CIFS" ServiceLevelStandard = "Standard" ServiceLevelPremium = "Premium" ServiceLevelUltra = "Ultra" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AzureCapacityPoolCookie ¶
type AzureCapacityPoolCookie struct {
ResourceGroup *string
NetAppAccount *string
CapacityPoolName *string
StoragePoolName *string
}
AzureCapacityPoolCookie is a convenience bundle for mapping resources to the SDK API
type AzureClient ¶
type AzureClient struct {
Ctx context.Context
netapp.AccountsClient
netapp.PoolsClient
netapp.VolumesClient
netapp.MountTargetsClient
netapp.SnapshotsClient
AuthConfig azauth.ClientCredentialsConfig
ResourcesClient resources.Client
VirtualNetworksClient network.VirtualNetworksClient
SubnetsClient network.SubnetsClient
AzureResources
}
AzureClient holds operational Azure SDK objects
func NewSDKClient ¶
func NewSDKClient(config *ClientConfig) (c *AzureClient)
NewSDKClient allocates the various clients for the SDK
func (*AzureClient) Authenticate ¶
func (c *AzureClient) Authenticate() (err error)
Authenticate plumbs the authorization through to subclients
type AzureResources ¶
type AzureResources struct {
ResourceGroups []ResourceGroup
StoragePoolMap map[string]*storage.Pool
// contains filtered or unexported fields
}
AzureResources is the toplevel cache for the set of things we discover about our Azure environment
type CapacityPool ¶
type CapacityPool struct {
Location string `json:"location,omitempty"`
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Fullname string `json:"fullname,omitempty"`
ResourceGroup string `json:"resourceGroup,omitempty"`
NetAppAccount string `json:"netAppAccount,omitempty"`
Type string `json:"type,omitempty"`
Tags interface{} `json:"tags,omitempty"`
PoolID string `json:"poolId,omitempty"`
Size int64 `json:"size,omitempty"`
ServiceLevel string `json:"serviceLevel,omitempty"`
ProvisioningState string `json:"provisioningState,omitempty"`
}
type Client ¶
type Client struct {
SDKClient *AzureClient
// contains filtered or unexported fields
}
Client encapsulates connection details
func NewDriver ¶
func NewDriver(config ClientConfig) *Client
NewDriver is a factory method for creating a new instance.
func (*Client) CreateSnapshot ¶
func (d *Client) CreateSnapshot(request *SnapshotCreateRequest) (*Snapshot, error)
CreateSnapshot creates a new snapshot
func (*Client) CreateVolume ¶
func (d *Client) CreateVolume(request *FilesystemCreateRequest) (*FileSystem, error)
CreateVolume creates a new volume
func (*Client) DeleteSnapshot ¶
func (d *Client) DeleteSnapshot(filesystem *FileSystem, snapshot *Snapshot) error
DeleteSnapshot deletes a snapshot
func (*Client) DeleteVolume ¶
func (d *Client) DeleteVolume(filesystem *FileSystem) error
DeleteVolume deletes a volume
func (*Client) GetCookieByCapacityPoolName ¶
func (d *Client) GetCookieByCapacityPoolName(poolname string) (*AzureCapacityPoolCookie, error)
GetCookieByCapacityPoolName searches for a matching capacity pool name and returns an access cookie
func (*Client) GetCookieByStoragePoolName ¶
func (d *Client) GetCookieByStoragePoolName(spoolname string) (*AzureCapacityPoolCookie, error)
GetCookieByStoragePoolName searches for a cookie with a matching storage pool name
func (*Client) GetMountTargetsForVolume ¶
func (d *Client) GetMountTargetsForVolume(filesystem *FileSystem) (*[]MountTarget, error)
GetMountTargetsForVolume returns mount target information for a volume
func (*Client) GetSnapshotByID ¶
func (d *Client) GetSnapshotByID(snapshotID string, filesystem *FileSystem) (*Snapshot, error)
GetSnapshotByID fetches a specific snapshot on a volume by its ID
func (*Client) GetSnapshotForVolume ¶
func (d *Client) GetSnapshotForVolume(filesystem *FileSystem, snapshotName string) (*Snapshot, error)
GetSnapshotForVolume fetches a specific snaphot on a volume by its name
func (*Client) GetSnapshotsForVolume ¶
func (d *Client) GetSnapshotsForVolume(filesystem *FileSystem) (*[]Snapshot, error)
GetSnapshotsForVolume returns a list of snapshots on a volume
func (*Client) GetVolumeByCreationToken ¶
func (d *Client) GetVolumeByCreationToken(creationToken string) (*FileSystem, error)
GetVolumeByCreationToken fetches a Filesystem by its immutable creation token
func (*Client) GetVolumeByID ¶
func (d *Client) GetVolumeByID(fileSystemID string) (*FileSystem, error)
GetVolumeByID returns a Filesystem based on its ID
func (*Client) GetVolumeByName ¶
func (d *Client) GetVolumeByName(name string) (*FileSystem, error)
GetVolumeByName fetches a Filesystem based on its readable name
func (*Client) GetVolumes ¶
func (d *Client) GetVolumes() (*[]FileSystem, error)
GetVolumes returns a list of ALL volumes
func (*Client) RegisterStoragePool ¶
RegisterStoragePool makes a note of pools defined by the driver for later mapping
func (*Client) RelabelVolume ¶
func (d *Client) RelabelVolume(filesystem *FileSystem, labels []string) (*FileSystem, error)
RelabelVolume updates the 'trident' telemetry label on a volume
func (*Client) RenameRelabelVolume ¶
func (d *Client) RenameRelabelVolume(filesystem *FileSystem, newName string, labels []string) (*FileSystem, error)
RenameRelabelVolume is probably not supported on Azure
func (*Client) RenameVolume ¶
func (d *Client) RenameVolume(filesystem *FileSystem, newName string) (*FileSystem, error)
RenameVolume is probably not supported on Azure?
func (*Client) ResizeVolume ¶
func (d *Client) ResizeVolume(filesystem *FileSystem, newSizeBytes int64) (*FileSystem, error)
ResizeVolume sends a VolumePatch to update the Quota
func (*Client) RestoreSnapshot ¶
func (d *Client) RestoreSnapshot(filesystem *FileSystem, snapshot *Snapshot) error
RestoreSnapshot does not seem to have an API on Azure, unless it's the mysterious 'Do'
func (*Client) Terminate ¶
func (d *Client) Terminate()
Terminate signals any running threads to exit at their earliest convenience
func (*Client) VolumeExistsByCreationToken ¶
func (d *Client) VolumeExistsByCreationToken(creationToken string) (bool, *FileSystem, error)
VolumeExistsByCreationToken checks whether a volume exists using its token as a key
func (*Client) WaitForSnapshotState ¶
func (d *Client) WaitForSnapshotState(snapshot *Snapshot, filesystem *FileSystem, desiredState string, abortStates []string) error
WaitForSnapshotState waits for a desired snapshot state and returns once that state is achieved
func (*Client) WaitForVolumeState ¶
func (d *Client) WaitForVolumeState(filesystem *FileSystem, desiredState string, abortStates []string) error
WaitForVolumeState watches for a desired volume state and returns when that state is achieved
type ClientConfig ¶
type ClientConfig struct {
// Azure API authentication parameters
SubscriptionID string
TenantID string
ClientID string
ClientSecret string
// Options
DebugTraceFlags map[string]bool
}
ClientConfig holds configuration data for the API driver object.
type ExportPolicy ¶
type ExportPolicy struct {
Rules []ExportRule `json:"rules"`
}
type ExportRule ¶
type FileSystem ¶
type FileSystem struct {
Created time.Time `json:"created,omitempty"`
ExportPolicy ExportPolicy `json:"exportPolicy,omitempty"`
Labels []string `json:"labels,omitempty"`
FileSystemID string `json:"fileSystemId,omitempty"`
ID string `json:"id,omitempty"`
ProvisioningState string `json:"provisioningState,omitempty"`
Name string `json:"name,omitempty"`
CapacityPoolName string `json:"capacityPoolName,omitempty"`
OwnerID string `json:"ownerId,omitempty"`
Location string `json:"location,omitempty"`
CreationToken string `json:"creationToken,omitempty"`
ProtocolTypes []string `json:"protocolTypes,omitempty"`
QuotaInBytes int64 `json:"quotaInBytes,omitempty"`
ServiceLevel string `json:"serviceLevel,omitempty"`
Timezone string `json:"timezone,omitempty"`
UsedBytes int `json:"usedBytes,omitempty"`
Subnet string `json:"subnet,omitempty"`
}
type FilesystemCreateRequest ¶
type FilesystemCreateRequest struct {
Name string `json:"name"`
Location string `json:"location"`
CapacityPool string `json:"capacityPool"`
VirtualNetwork string `json:"virtualNetwork"`
Subnet string `json:"subnet"`
CreationToken string `json:"creationToken"`
ExportPolicy ExportPolicy `json:"exportPolicy,omitempty"`
Labels []string `json:"labels,omitempty"`
PoolID string `json:"poolId,omitempty"`
ProtocolTypes []string `json:"protocolTypes,omitempty"`
QuotaInBytes int64 `json:"quotaInBytes"`
ServiceLevel string `json:"serviceLevel"`
Timezone string `json:"timezone,omitempty"`
SnapshotID string `json:"snapshotId,omitempty"`
}
type FilesystemRenameRequest ¶
type FilesystemResizeRequest ¶
type MountTarget ¶
type MountTarget struct {
Created time.Time `json:"created"`
FileSystemID string `json:"fileSystemId"`
ProvisioningState string `json:"provisioningState"`
OwnerID string `json:"ownerId"`
Location string `json:"location"`
EndIP string `json:"endIP"`
Gateway string `json:"gateway"`
IPAddress string `json:"ipAddress"`
MountTargetID string `json:"mountTargetId"`
Netmask string `json:"netmask"`
StartIP string `json:"startIP"`
Subnet string `json:"subnet"`
}
type NetAppAccount ¶
type NetAppAccount struct {
Name string
Location string
CapacityPools []CapacityPool
}
NetAppAccount records details of a discovered ANF NetAppAccount
type ResourceGroup ¶
type ResourceGroup struct {
Name string
NetAppAccounts []NetAppAccount
VirtualNetworks []VirtualNetwork
}
ResourceGroup records details of a discovered Azure ResourceGroup
type Snapshot ¶
type Snapshot struct {
Created date.Time `json:"created"`
FileSystemID string `json:"fileSystemId"`
ProvisioningState string `json:"provisioningState"`
Name string `json:"name"`
OwnerID string `json:"ownerId"`
Location string `json:"location"`
SnapshotID string `json:"snapshotId"`
UsedBytes int `json:"usedBytes"`
}
type SnapshotCreateRequest ¶
type SnapshotCreateRequest struct {
FileSystemID string `json:"fileSystemId"`
Volume *FileSystem `json:"fileSystem"`
Name string `json:"name"`
Location string `json:"location"`
}
type Subnet ¶
type Subnet struct {
Name string
VirtualNetwork *VirtualNetwork // backpointer to parent
}
Subnet records details of a discovered Azure Subnet
type TerminalStateError ¶
type TerminalStateError struct {
Err error
}
TerminalStateError signals that the object is in a terminal state. This is used to stop waiting on an object to change state.
func TerminalState ¶
func TerminalState(err error) *TerminalStateError
TerminalState wraps the given err in a *TerminalStateError.
func (*TerminalStateError) Error ¶
func (e *TerminalStateError) Error() string