Documentation
¶
Index ¶
- Constants
- Variables
- type APIVersions
- type AppLock
- type AzureConfig
- type AzureRESTClient
- type AzureStackConfig
- type AzureStorageAccountRESTClient
- type AzureStorageAccountSDKClient
- type AzureStorageSDKClient
- func (c *AzureStorageSDKClient) CreateFileShare(fileShareName string) error
- func (c *AzureStorageSDKClient) DeleteFileShare(fileShareName string) error
- func (c *AzureStorageSDKClient) DeleteStorageAccount() error
- func (c *AzureStorageSDKClient) Exists() (bool, error)
- func (c *AzureStorageSDKClient) GetAccessKey() (string, error)
- func (c *AzureStorageSDKClient) GetShareURL(fileShareName string) (string, error)
- func (c *AzureStorageSDKClient) HasFileShare(fileShareName string) (bool, error)
- type AzureToken
- type BindOptions
- type Broker
- func (b *Broker) Bind(context context.Context, instanceID string, bindingID string, ...) (_ brokerapi.Binding, e error)
- func (b *Broker) Deprovision(context context.Context, instanceID string, ...) (_ brokerapi.DeprovisionServiceSpec, e error)
- func (b *Broker) LastOperation(_ context.Context, instanceID string, operationData string) (brokerapi.LastOperation, error)
- func (b *Broker) Provision(context context.Context, instanceID string, details brokerapi.ProvisionDetails, ...) (_ brokerapi.ProvisionedServiceSpec, e error)
- func (b *Broker) Services(_ context.Context) ([]brokerapi.Service, error)
- func (b *Broker) Unbind(context context.Context, instanceID string, bindingID string, ...) (e error)
- func (b *Broker) Update(context context.Context, instanceID string, details brokerapi.UpdateDetails, ...) (brokerapi.UpdateServiceSpec, error)
- type CloudConfig
- type Config
- type Configuration
- type ControlConfig
- type DBInitialize
- type Environment
- type FileShare
- type MountConfig
- type ServiceInstance
- type SqlConnection
- type SqlStore
- func (s *SqlStore) CreateBindingDetails(id string, details brokerapi.BindDetails, redactRawParameter bool) error
- func (s *SqlStore) CreateFileShare(id string, share FileShare) error
- func (s *SqlStore) CreateServiceInstance(id string, instance ServiceInstance) error
- func (s *SqlStore) DeleteBindingDetails(id string) error
- func (s *SqlStore) DeleteFileShare(id string) error
- func (s *SqlStore) DeleteServiceInstance(id string) error
- func (s *SqlStore) GetLockForUpdate(lockName string, seconds int) error
- func (s *SqlStore) ReleaseLockForUpdate(lockName string) error
- func (s *SqlStore) RetrieveBindingDetails(id string) (brokerapi.BindDetails, error)
- func (s *SqlStore) RetrieveFileShare(id string) (FileShare, error)
- func (s *SqlStore) RetrieveServiceInstance(id string) (ServiceInstance, error)
- func (s *SqlStore) UpdateFileShare(id string, share FileShare) error
- type SqlVariant
- type StorageAccount
- type Store
Constants ¶
const ( AzureCloud = "AzureCloud" AzureChinaCloud = "AzureChinaCloud" AzureGermanCloud = "AzureGermanCloud" AzureUSGovernment = "AzureUSGovernment" AzureStack = "AzureStack" )
Variables ¶
var Environments = map[string]Environment{ AzureCloud: Environment{ ResourceManagerEndpointURL: "https://management.azure.com/", ActiveDirectoryEndpointURL: "https://login.microsoftonline.com", APIVersions: APIVersions{ StorageForREST: "2016-12-01", StorageForSDK: "2016-05-31", ActiveDirectory: "2015-06-15", }, }, AzureChinaCloud: Environment{ ResourceManagerEndpointURL: "https://management.chinacloudapi.cn/", ActiveDirectoryEndpointURL: "https://login.chinacloudapi.cn", APIVersions: APIVersions{ StorageForREST: "2016-12-01", StorageForSDK: "2016-05-31", ActiveDirectory: "2015-06-15", }, }, AzureUSGovernment: Environment{ ResourceManagerEndpointURL: "https://management.usgovcloudapi.net/", ActiveDirectoryEndpointURL: "https://login.microsoftonline.com", APIVersions: APIVersions{ StorageForREST: "2016-12-01", StorageForSDK: "2016-05-31", ActiveDirectory: "2015-06-15", }, }, AzureGermanCloud: Environment{ ResourceManagerEndpointURL: "https://management.microsoftazure.de/", ActiveDirectoryEndpointURL: "https://login.microsoftonline.de", APIVersions: APIVersions{ StorageForREST: "2016-12-01", StorageForSDK: "2016-05-31", ActiveDirectory: "2015-06-15", }, }, AzureStack: Environment{ APIVersions: APIVersions{ StorageForREST: "2016-12-01", StorageForSDK: "2016-05-31", ActiveDirectory: "2015-06-15", }, }, }
Functions ¶
This section is empty.
Types ¶
type APIVersions ¶
type AzureConfig ¶
type AzureConfig struct { Environment string TenanID string ClientID string ClientSecret string DefaultSubscriptionID string DefaultResourceGroupName string DefaultLocation string }
func NewAzureConfig ¶
func NewAzureConfig(environment, tenanID, clientID, clientSecret, defaultSubscriptionID, defaultResourceGroupName, defaultLocation string) *AzureConfig
func (*AzureConfig) IsSupportAzureFileShare ¶
func (config *AzureConfig) IsSupportAzureFileShare() bool
func (*AzureConfig) Validate ¶
func (config *AzureConfig) Validate() error
type AzureRESTClient ¶
type AzureRESTClient struct {
// contains filtered or unexported fields
}
func (*AzureRESTClient) CheckCompletion ¶
func (c *AzureRESTClient) CheckCompletion(asyncURL string) (bool, error)
CheckCompletion Check whether an asynchronous operation finishes or not
func (*AzureRESTClient) CreateStorageAccount ¶
func (c *AzureRESTClient) CreateStorageAccount() (string, error)
CreateStorageAccount Create a storage account. You need to call CheckCompletion to check whether the creation is finished. Return "", nil when the storage account has been created. Return "operation-url", nil when the storage account is still in creating. Reference: https://docs.microsoft.com/en-us/rest/api/storagerp/storageaccounts#StorageAccounts_Create
type AzureStackConfig ¶
type AzureStackConfig struct { AzureStackDomain string AzureStackAuthentication string AzureStackResource string AzureStackEndpointPrefix string }
func NewAzureStackConfig ¶
func NewAzureStackConfig(azureStackDomain, azureStackAuthentication, azureStackResource, azureStackEndpointPrefix string) *AzureStackConfig
func (*AzureStackConfig) Validate ¶
func (config *AzureStackConfig) Validate() error
type AzureStorageAccountRESTClient ¶
type AzureStorageAccountRESTClient interface { CreateStorageAccount() (string, error) CheckCompletion(asyncURL string) (bool, error) }
func NewAzureStorageAccountRESTClient ¶
func NewAzureStorageAccountRESTClient(logger lager.Logger, cloudConfig *CloudConfig, storageAccount *StorageAccount) (AzureStorageAccountRESTClient, error)
type AzureStorageAccountSDKClient ¶
type AzureStorageAccountSDKClient interface { Exists() (bool, error) GetAccessKey() (string, error) DeleteStorageAccount() error }
func NewAzureStorageAccountSDKClient ¶
func NewAzureStorageAccountSDKClient(logger lager.Logger, cloudConfig *CloudConfig, storageAccount *StorageAccount) (AzureStorageAccountSDKClient, error)
type AzureStorageSDKClient ¶
type AzureStorageSDKClient struct { StorageAccount *StorageAccount // contains filtered or unexported fields }
func (*AzureStorageSDKClient) CreateFileShare ¶
func (c *AzureStorageSDKClient) CreateFileShare(fileShareName string) error
func (*AzureStorageSDKClient) DeleteFileShare ¶
func (c *AzureStorageSDKClient) DeleteFileShare(fileShareName string) error
func (*AzureStorageSDKClient) DeleteStorageAccount ¶
func (c *AzureStorageSDKClient) DeleteStorageAccount() error
func (*AzureStorageSDKClient) Exists ¶
func (c *AzureStorageSDKClient) Exists() (bool, error)
func (*AzureStorageSDKClient) GetAccessKey ¶
func (c *AzureStorageSDKClient) GetAccessKey() (string, error)
func (*AzureStorageSDKClient) GetShareURL ¶
func (c *AzureStorageSDKClient) GetShareURL(fileShareName string) (string, error)
func (*AzureStorageSDKClient) HasFileShare ¶
func (c *AzureStorageSDKClient) HasFileShare(fileShareName string) (bool, error)
type AzureToken ¶
type BindOptions ¶
type BindOptions struct { UID string `json:"uid"` GID string `json:"gid"` FileMode string `json:"file_mode"` DirMode string `json:"dir_mode"` Readonly bool `json:"readonly"` Mount string `json:"mount"` Vers string `json:"vers"` // Required for AzureFileShare Domain string `json:"domain"` // Optional for preexisting shares Username string `json:"username"` // Required for preexisting shares Password string `json:"password"` // Optional for preexisting shares Sec string `json:"sec"` // Optional for preexisting shares }
func (BindOptions) ToMap ¶
func (options BindOptions) ToMap() map[string]string
ToMap Omit Mount, FileShareName, Domain, Username and Password
func (BindOptions) Validate ¶
func (options BindOptions) Validate(isPreexisting bool) error
type Broker ¶
type Broker struct {
// contains filtered or unexported fields
}
func (*Broker) Deprovision ¶
func (b *Broker) Deprovision(context context.Context, instanceID string, details brokerapi.DeprovisionDetails, asyncAllowed bool) (_ brokerapi.DeprovisionServiceSpec, e error)
func (*Broker) LastOperation ¶
func (*Broker) Provision ¶
func (b *Broker) Provision(context context.Context, instanceID string, details brokerapi.ProvisionDetails, asyncAllowed bool) (_ brokerapi.ProvisionedServiceSpec, e error)
Provision Create a service instance which is mapped to a storage account or preexisting shares For AzureFileShare: UseHTTPS must be set to false. Otherwise, the mount in Linux will fail. https://docs.microsoft.com/en-us/azure/storage/storage-security-guide
type CloudConfig ¶
type CloudConfig struct { Azure AzureConfig Control ControlConfig AzureStack AzureStackConfig }
func NewAzurefilebrokerCloudConfig ¶
func NewAzurefilebrokerCloudConfig(azure *AzureConfig, control *ControlConfig, azureStack *AzureStackConfig) *CloudConfig
func (*CloudConfig) Validate ¶
func (config *CloudConfig) Validate() error
type Config ¶
type Config struct {
// contains filtered or unexported fields
}
func NewAzurefilebrokerConfig ¶
func NewAzurefilebrokerConfig(mountConfig *MountConfig, cloudConfig *CloudConfig) *Config
type Configuration ¶
type Configuration struct { SubscriptionID string `json:"subscription_id"` ResourceGroupName string `json:"resource_group_name"` StorageAccountName string `json:"storage_account_name"` // Required for AzureFileShare Location string `json:"location"` UseHTTPS string `json:"use_https"` // bool SkuName string `json:"sku_name"` CustomDomainName string `json:"custom_domain_name"` UseSubDomain string `json:"use_sub_domain"` // bool EnableEncryption string `json:"enable_encryption"` // bool }
TBD: custom_domain_name and use_sub_domain are not supported now.
func (*Configuration) ValidateForAzureFileShare ¶
func (config *Configuration) ValidateForAzureFileShare() error
type ControlConfig ¶
func NewControlConfig ¶
func NewControlConfig(allowCreateStorageAccount, allowCreateFileShare, allowDeleteStorageAccount, allowDeleteFileShare bool) *ControlConfig
type DBInitialize ¶
type DBInitialize interface {
GetInitializeDatabaseSQL() []string
}
type Environment ¶
type Environment struct { ResourceManagerEndpointURL string ActiveDirectoryEndpointURL string APIVersions APIVersions }
type MountConfig ¶
func NewAzurefilebrokerMountConfig ¶
func NewAzurefilebrokerMountConfig() *MountConfig
func (*MountConfig) Copy ¶
func (config *MountConfig) Copy() *MountConfig
func (MountConfig) MakeConfig ¶
func (config MountConfig) MakeConfig() map[string]interface{}
func (*MountConfig) ReadConf ¶
func (config *MountConfig) ReadConf(allowedFlag string, defaultFlag string) error
func (*MountConfig) SetEntries ¶
func (config *MountConfig) SetEntries(opts map[string]string) error
type ServiceInstance ¶
type ServiceInstance struct { ServiceID string `json:"service_id"` PlanID string `json:"plan_id"` OrganizationGUID string `json:"organization_guid"` SpaceGUID string `json:"space_guid"` TargetName string `json:"target_name"` // AzureFileShare: StorageAccountName; Preexisting shares: Share URL IsPreexisting bool `json:"is_preexisting"` // True when preexisting shares are used; False when AzureFileShare is used. SubscriptionID string `json:"subscription_id"` ResourceGroupName string `json:"resource_group_name"` UseHTTPS string `json:"use_https"` IsCreatedStorageAccount bool `json:"is_created_storage_account"` OperationURL string `json:"operation_url"` DatabaseVersion string `json:"database_version"` }
type SqlConnection ¶
type SqlConnection interface { Connect() error sqlshim.SqlDB DBInitialize AppLock }
func NewSqlConnection ¶
func NewSqlConnection(variant SqlVariant) SqlConnection
type SqlStore ¶
type SqlStore struct { StoreType string Database SqlConnection }
func (*SqlStore) CreateBindingDetails ¶
func (*SqlStore) CreateFileShare ¶
func (*SqlStore) CreateServiceInstance ¶
func (s *SqlStore) CreateServiceInstance(id string, instance ServiceInstance) error
func (*SqlStore) DeleteBindingDetails ¶
func (*SqlStore) DeleteFileShare ¶
func (*SqlStore) DeleteServiceInstance ¶
func (*SqlStore) GetLockForUpdate ¶
func (*SqlStore) ReleaseLockForUpdate ¶
func (*SqlStore) RetrieveBindingDetails ¶
func (s *SqlStore) RetrieveBindingDetails(id string) (brokerapi.BindDetails, error)
func (*SqlStore) RetrieveFileShare ¶
func (*SqlStore) RetrieveServiceInstance ¶
func (s *SqlStore) RetrieveServiceInstance(id string) (ServiceInstance, error)
type SqlVariant ¶
type SqlVariant interface { Connect() (sqlshim.SqlDB, error) DBInitialize AppLock }
func NewMSSqlVariant ¶
func NewMSSqlVariant(logger lager.Logger, username, password, host, port, dbName, caCert, hostNameInCertificate string) SqlVariant
func NewMySqlVariant ¶
func NewMySqlVariant(logger lager.Logger, username, password, host, port, dbName, caCert, hostNameInCertificate string) SqlVariant
type StorageAccount ¶
type StorageAccount struct { SubscriptionID string ResourceGroupName string StorageAccountName string UseHTTPS bool EnableEncryption bool SkuName storage.SkuName Location string IsCreatedStorageAccount bool AccessKey string BaseURL string OperationURL string SDKClient AzureStorageAccountSDKClient }
func NewStorageAccount ¶
func NewStorageAccount(logger lager.Logger, configuration Configuration) (*StorageAccount, error)
type Store ¶
type Store interface { RetrieveServiceInstance(id string) (ServiceInstance, error) RetrieveBindingDetails(id string) (brokerapi.BindDetails, error) CreateServiceInstance(id string, instance ServiceInstance) error CreateBindingDetails(id string, details brokerapi.BindDetails, redactRawParameter bool) error DeleteServiceInstance(id string) error DeleteBindingDetails(id string) error GetLockForUpdate(lockName string, timeoutInSeconds int) error ReleaseLockForUpdate(lockName string) error }