Add generic interface for Azure clients

This commit is contained in:
Pengfei Ni 2018-01-05 11:44:22 +08:00
parent 51345dea45
commit fd16e37f44

View File

@ -176,20 +176,48 @@ type VirtualMachineScaleSetVMsClient interface {
ListNextResults(lastResults compute.VirtualMachineScaleSetVMListResult) (result compute.VirtualMachineScaleSetVMListResult, err error) ListNextResults(lastResults compute.VirtualMachineScaleSetVMListResult) (result compute.VirtualMachineScaleSetVMListResult, err error)
} }
// RoutesClient defines needed functions for azure network.RoutesClient
type RoutesClient interface {
CreateOrUpdate(resourceGroupName string, routeTableName string, routeName string, routeParameters network.Route, cancel <-chan struct{}) (<-chan network.Route, <-chan error)
Delete(resourceGroupName string, routeTableName string, routeName string, cancel <-chan struct{}) (<-chan autorest.Response, <-chan error)
}
// RouteTablesClient defines needed functions for azure network.RouteTablesClient
type RouteTablesClient interface {
CreateOrUpdate(resourceGroupName string, routeTableName string, parameters network.RouteTable, cancel <-chan struct{}) (<-chan network.RouteTable, <-chan error)
Get(resourceGroupName string, routeTableName string, expand string) (result network.RouteTable, err error)
}
// StorageAccountClient defines needed functions for azure storage.AccountsClient
type StorageAccountClient interface {
Create(resourceGroupName string, accountName string, parameters storage.AccountCreateParameters, cancel <-chan struct{}) (<-chan storage.Account, <-chan error)
Delete(resourceGroupName string, accountName string) (result autorest.Response, err error)
ListKeys(resourceGroupName string, accountName string) (result storage.AccountListKeysResult, err error)
ListByResourceGroup(resourceGroupName string) (result storage.AccountListResult, err error)
GetProperties(resourceGroupName string, accountName string) (result storage.Account, err error)
}
// DisksClient defines needed functions for azure disk.DisksClient
type DisksClient interface {
CreateOrUpdate(resourceGroupName string, diskName string, diskParameter disk.Model, cancel <-chan struct{}) (<-chan disk.Model, <-chan error)
Delete(resourceGroupName string, diskName string, cancel <-chan struct{}) (<-chan disk.OperationStatusResponse, <-chan error)
Get(resourceGroupName string, diskName string) (result disk.Model, err error)
}
// Cloud holds the config and clients // Cloud holds the config and clients
type Cloud struct { type Cloud struct {
Config Config
Environment azure.Environment Environment azure.Environment
RoutesClient network.RoutesClient RoutesClient RoutesClient
SubnetsClient SubnetsClient SubnetsClient SubnetsClient
InterfacesClient InterfacesClient InterfacesClient InterfacesClient
RouteTablesClient network.RouteTablesClient RouteTablesClient RouteTablesClient
LoadBalancerClient LoadBalancersClient LoadBalancerClient LoadBalancersClient
PublicIPAddressesClient PublicIPAddressesClient PublicIPAddressesClient PublicIPAddressesClient
SecurityGroupsClient SecurityGroupsClient SecurityGroupsClient SecurityGroupsClient
VirtualMachinesClient VirtualMachinesClient VirtualMachinesClient VirtualMachinesClient
StorageAccountClient storage.AccountsClient StorageAccountClient StorageAccountClient
DisksClient disk.DisksClient DisksClient DisksClient
operationPollRateLimiter flowcontrol.RateLimiter operationPollRateLimiter flowcontrol.RateLimiter
resourceRequestBackoff wait.Backoff resourceRequestBackoff wait.Backoff
vmSet VMSet vmSet VMSet
@ -236,17 +264,19 @@ func NewCloud(configReader io.Reader) (cloudprovider.Interface, error) {
configureUserAgent(&subnetsClient.Client) configureUserAgent(&subnetsClient.Client)
az.SubnetsClient = subnetsClient az.SubnetsClient = subnetsClient
az.RouteTablesClient = network.NewRouteTablesClient(az.SubscriptionID) routeTablesClient := network.NewRouteTablesClient(az.SubscriptionID)
az.RouteTablesClient.BaseURI = az.Environment.ResourceManagerEndpoint routeTablesClient.BaseURI = az.Environment.ResourceManagerEndpoint
az.RouteTablesClient.Authorizer = autorest.NewBearerAuthorizer(servicePrincipalToken) routeTablesClient.Authorizer = autorest.NewBearerAuthorizer(servicePrincipalToken)
az.RouteTablesClient.PollingDelay = 5 * time.Second routeTablesClient.PollingDelay = 5 * time.Second
configureUserAgent(&az.RouteTablesClient.Client) configureUserAgent(&routeTablesClient.Client)
az.RouteTablesClient = routeTablesClient
az.RoutesClient = network.NewRoutesClient(az.SubscriptionID) routesClient := network.NewRoutesClient(az.SubscriptionID)
az.RoutesClient.BaseURI = az.Environment.ResourceManagerEndpoint routesClient.BaseURI = az.Environment.ResourceManagerEndpoint
az.RoutesClient.Authorizer = autorest.NewBearerAuthorizer(servicePrincipalToken) routesClient.Authorizer = autorest.NewBearerAuthorizer(servicePrincipalToken)
az.RoutesClient.PollingDelay = 5 * time.Second routesClient.PollingDelay = 5 * time.Second
configureUserAgent(&az.RoutesClient.Client) configureUserAgent(&routesClient.Client)
az.RoutesClient = routesClient
interfacesClient := network.NewInterfacesClient(az.SubscriptionID) interfacesClient := network.NewInterfacesClient(az.SubscriptionID)
interfacesClient.BaseURI = az.Environment.ResourceManagerEndpoint interfacesClient.BaseURI = az.Environment.ResourceManagerEndpoint
@ -297,13 +327,19 @@ func NewCloud(configReader io.Reader) (cloudprovider.Interface, error) {
configureUserAgent(&virtualMachineScaleSetsClient.Client) configureUserAgent(&virtualMachineScaleSetsClient.Client)
az.VirtualMachineScaleSetsClient = virtualMachineScaleSetsClient az.VirtualMachineScaleSetsClient = virtualMachineScaleSetsClient
az.StorageAccountClient = storage.NewAccountsClientWithBaseURI(az.Environment.ResourceManagerEndpoint, az.SubscriptionID) storageAccountClient := storage.NewAccountsClientWithBaseURI(az.Environment.ResourceManagerEndpoint, az.SubscriptionID)
az.StorageAccountClient.Authorizer = autorest.NewBearerAuthorizer(servicePrincipalToken) storageAccountClient.BaseURI = az.Environment.ResourceManagerEndpoint
configureUserAgent(&az.StorageAccountClient.Client) storageAccountClient.Authorizer = autorest.NewBearerAuthorizer(servicePrincipalToken)
storageAccountClient.PollingDelay = 5 * time.Second
configureUserAgent(&storageAccountClient.Client)
az.StorageAccountClient = storageAccountClient
az.DisksClient = disk.NewDisksClientWithBaseURI(az.Environment.ResourceManagerEndpoint, az.SubscriptionID) disksClient := disk.NewDisksClientWithBaseURI(az.Environment.ResourceManagerEndpoint, az.SubscriptionID)
az.DisksClient.Authorizer = autorest.NewBearerAuthorizer(servicePrincipalToken) disksClient.BaseURI = az.Environment.ResourceManagerEndpoint
configureUserAgent(&az.DisksClient.Client) disksClient.Authorizer = autorest.NewBearerAuthorizer(servicePrincipalToken)
disksClient.PollingDelay = 5 * time.Second
configureUserAgent(&disksClient.Client)
az.DisksClient = disksClient
// Conditionally configure rate limits // Conditionally configure rate limits
if az.CloudProviderRateLimit { if az.CloudProviderRateLimit {