Upgrade virtualmachin/disk/storageaccount client to use new SDK

This commit is contained in:
Pengfei Ni 2018-04-24 14:32:56 +08:00
parent b1b930a39b
commit 8a0cae8647

View File

@ -22,11 +22,9 @@ import (
"net/http" "net/http"
"time" "time"
"github.com/Azure/azure-sdk-for-go/arm/compute" "github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2017-12-01/compute"
"github.com/Azure/azure-sdk-for-go/arm/disk"
"github.com/Azure/azure-sdk-for-go/arm/storage"
computepreview "github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2017-12-01/compute"
"github.com/Azure/azure-sdk-for-go/services/network/mgmt/2017-09-01/network" "github.com/Azure/azure-sdk-for-go/services/network/mgmt/2017-09-01/network"
"github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2017-10-01/storage"
"github.com/Azure/go-autorest/autorest" "github.com/Azure/go-autorest/autorest"
"github.com/Azure/go-autorest/autorest/adal" "github.com/Azure/go-autorest/autorest/adal"
"github.com/golang/glog" "github.com/golang/glog"
@ -84,10 +82,9 @@ type SubnetListResultPage interface {
// VirtualMachinesClient defines needed functions for azure compute.VirtualMachinesClient // VirtualMachinesClient defines needed functions for azure compute.VirtualMachinesClient
type VirtualMachinesClient interface { type VirtualMachinesClient interface {
CreateOrUpdate(resourceGroupName string, VMName string, parameters compute.VirtualMachine, cancel <-chan struct{}) (<-chan compute.VirtualMachine, <-chan error) CreateOrUpdate(ctx context.Context, resourceGroupName string, VMName string, parameters compute.VirtualMachine) (resp *http.Response, err error)
Get(resourceGroupName string, VMName string, expand compute.InstanceViewTypes) (result compute.VirtualMachine, err error) Get(ctx context.Context, resourceGroupName string, VMName string, expand compute.InstanceViewTypes) (result compute.VirtualMachine, err error)
List(resourceGroupName string) (result compute.VirtualMachineListResult, err error) List(ctx context.Context, resourceGroupName string) (result []compute.VirtualMachine, err error)
ListNextResults(resourceGroupName string, lastResults compute.VirtualMachineListResult) (result compute.VirtualMachineListResult, err error)
} }
// InterfacesClient defines needed functions for azure network.InterfacesClient // InterfacesClient defines needed functions for azure network.InterfacesClient
@ -131,20 +128,20 @@ type SecurityGroupsClient interface {
List(resourceGroupName string) (result SecurityGroupListResultPage, err error) List(resourceGroupName string) (result SecurityGroupListResultPage, err error)
} }
// VirtualMachineScaleSetsClient defines needed functions for azure computepreview.VirtualMachineScaleSetsClient // VirtualMachineScaleSetsClient defines needed functions for azure compute.VirtualMachineScaleSetsClient
type VirtualMachineScaleSetsClient interface { type VirtualMachineScaleSetsClient interface {
CreateOrUpdate(ctx context.Context, resourceGroupName string, VMScaleSetName string, parameters computepreview.VirtualMachineScaleSet) (resp *http.Response, err error) CreateOrUpdate(ctx context.Context, resourceGroupName string, VMScaleSetName string, parameters compute.VirtualMachineScaleSet) (resp *http.Response, err error)
Get(ctx context.Context, resourceGroupName string, VMScaleSetName string) (result computepreview.VirtualMachineScaleSet, err error) Get(ctx context.Context, resourceGroupName string, VMScaleSetName string) (result compute.VirtualMachineScaleSet, err error)
List(ctx context.Context, resourceGroupName string) (result []computepreview.VirtualMachineScaleSet, err error) List(ctx context.Context, resourceGroupName string) (result []compute.VirtualMachineScaleSet, err error)
UpdateInstances(ctx context.Context, resourceGroupName string, VMScaleSetName string, VMInstanceIDs computepreview.VirtualMachineScaleSetVMInstanceRequiredIDs) (resp *http.Response, err error) UpdateInstances(ctx context.Context, resourceGroupName string, VMScaleSetName string, VMInstanceIDs compute.VirtualMachineScaleSetVMInstanceRequiredIDs) (resp *http.Response, err error)
} }
// VirtualMachineScaleSetVMsClient defines needed functions for azure computepreview.VirtualMachineScaleSetVMsClient // VirtualMachineScaleSetVMsClient defines needed functions for azure compute.VirtualMachineScaleSetVMsClient
type VirtualMachineScaleSetVMsClient interface { type VirtualMachineScaleSetVMsClient interface {
Get(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result computepreview.VirtualMachineScaleSetVM, err error) Get(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result compute.VirtualMachineScaleSetVM, err error)
GetInstanceView(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result computepreview.VirtualMachineScaleSetVMInstanceView, err error) GetInstanceView(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result compute.VirtualMachineScaleSetVMInstanceView, err error)
List(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, filter string, selectParameter string, expand string) (result []computepreview.VirtualMachineScaleSetVM, err error) List(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, filter string, selectParameter string, expand string) (result []compute.VirtualMachineScaleSetVM, err error)
Update(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string, parameters computepreview.VirtualMachineScaleSetVM) (resp *http.Response, err error) Update(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string, parameters compute.VirtualMachineScaleSetVM) (resp *http.Response, err error)
} }
// RoutesClient defines needed functions for azure network.RoutesClient // RoutesClient defines needed functions for azure network.RoutesClient
@ -161,18 +158,18 @@ type RouteTablesClient interface {
// StorageAccountClient defines needed functions for azure storage.AccountsClient // StorageAccountClient defines needed functions for azure storage.AccountsClient
type StorageAccountClient interface { type StorageAccountClient interface {
Create(resourceGroupName string, accountName string, parameters storage.AccountCreateParameters, cancel <-chan struct{}) (<-chan storage.Account, <-chan error) Create(ctx context.Context, resourceGroupName string, accountName string, parameters storage.AccountCreateParameters) (result *http.Response, err error)
Delete(resourceGroupName string, accountName string) (result autorest.Response, err error) Delete(ctx context.Context, resourceGroupName string, accountName string) (result autorest.Response, err error)
ListKeys(resourceGroupName string, accountName string) (result storage.AccountListKeysResult, err error) ListKeys(ctx context.Context, resourceGroupName string, accountName string) (result storage.AccountListKeysResult, err error)
ListByResourceGroup(resourceGroupName string) (result storage.AccountListResult, err error) ListByResourceGroup(ctx context.Context, resourceGroupName string) (result storage.AccountListResult, err error)
GetProperties(resourceGroupName string, accountName string) (result storage.Account, err error) GetProperties(ctx context.Context, resourceGroupName string, accountName string) (result storage.Account, err error)
} }
// DisksClient defines needed functions for azure disk.DisksClient // DisksClient defines needed functions for azure compute.DisksClient
type DisksClient interface { type DisksClient interface {
CreateOrUpdate(resourceGroupName string, diskName string, diskParameter disk.Model, cancel <-chan struct{}) (<-chan disk.Model, <-chan error) CreateOrUpdate(ctx context.Context, resourceGroupName string, diskName string, diskParameter compute.Disk) (resp *http.Response, err error)
Delete(resourceGroupName string, diskName string, cancel <-chan struct{}) (<-chan disk.OperationStatusResponse, <-chan error) Delete(ctx context.Context, resourceGroupName string, diskName string) (resp *http.Response, err error)
Get(resourceGroupName string, diskName string) (result disk.Model, err error) Get(ctx context.Context, resourceGroupName string, diskName string) (result compute.Disk, err error)
} }
// azClientConfig contains all essential information to create an Azure client. // azClientConfig contains all essential information to create an Azure client.
@ -211,13 +208,11 @@ func newAzVirtualMachinesClient(config *azClientConfig) *azVirtualMachinesClient
} }
} }
func (az *azVirtualMachinesClient) CreateOrUpdate(resourceGroupName string, VMName string, parameters compute.VirtualMachine, cancel <-chan struct{}) (<-chan compute.VirtualMachine, <-chan error) { func (az *azVirtualMachinesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, VMName string, parameters compute.VirtualMachine) (resp *http.Response, err error) {
/* Write rate limiting */ // /* Write rate limiting */
if !az.rateLimiterWriter.TryAccept() { if !az.rateLimiterWriter.TryAccept() {
errChan := createARMRateLimitErrChannel(true, "NSGCreateOrUpdate") err = createARMRateLimitErr(true, "VMCreateOrUpdate")
resultChan := make(chan compute.VirtualMachine, 1) return
resultChan <- compute.VirtualMachine{}
return resultChan, errChan
} }
glog.V(10).Infof("azVirtualMachinesClient.CreateOrUpdate(%q, %q): start", resourceGroupName, VMName) glog.V(10).Infof("azVirtualMachinesClient.CreateOrUpdate(%q, %q): start", resourceGroupName, VMName)
@ -225,16 +220,18 @@ func (az *azVirtualMachinesClient) CreateOrUpdate(resourceGroupName string, VMNa
glog.V(10).Infof("azVirtualMachinesClient.CreateOrUpdate(%q, %q): end", resourceGroupName, VMName) glog.V(10).Infof("azVirtualMachinesClient.CreateOrUpdate(%q, %q): end", resourceGroupName, VMName)
}() }()
errChan := make(chan error, 1)
mc := newMetricContext("vm", "create_or_update", resourceGroupName, az.client.SubscriptionID) mc := newMetricContext("vm", "create_or_update", resourceGroupName, az.client.SubscriptionID)
resultChan, proxyErrChan := az.client.CreateOrUpdate(resourceGroupName, VMName, parameters, cancel) future, err := az.client.CreateOrUpdate(ctx, resourceGroupName, VMName, parameters)
err := <-proxyErrChan if err != nil {
mc.Observe(err) return future.Response(), err
errChan <- err
return resultChan, errChan
} }
func (az *azVirtualMachinesClient) Get(resourceGroupName string, VMName string, expand compute.InstanceViewTypes) (result compute.VirtualMachine, err error) { err = future.WaitForCompletion(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
}
func (az *azVirtualMachinesClient) Get(ctx context.Context, resourceGroupName string, VMName string, expand compute.InstanceViewTypes) (result compute.VirtualMachine, err error) {
if !az.rateLimiterReader.TryAccept() { if !az.rateLimiterReader.TryAccept() {
err = createARMRateLimitErr(false, "VMGet") err = createARMRateLimitErr(false, "VMGet")
return return
@ -246,12 +243,12 @@ func (az *azVirtualMachinesClient) Get(resourceGroupName string, VMName string,
}() }()
mc := newMetricContext("vm", "get", resourceGroupName, az.client.SubscriptionID) mc := newMetricContext("vm", "get", resourceGroupName, az.client.SubscriptionID)
result, err = az.client.Get(resourceGroupName, VMName, expand) result, err = az.client.Get(ctx, resourceGroupName, VMName, expand)
mc.Observe(err) mc.Observe(err)
return return
} }
func (az *azVirtualMachinesClient) List(resourceGroupName string) (result compute.VirtualMachineListResult, err error) { func (az *azVirtualMachinesClient) List(ctx context.Context, resourceGroupName string) (result []compute.VirtualMachine, err error) {
if !az.rateLimiterReader.TryAccept() { if !az.rateLimiterReader.TryAccept() {
err = createARMRateLimitErr(false, "VMList") err = createARMRateLimitErr(false, "VMList")
return return
@ -263,26 +260,22 @@ func (az *azVirtualMachinesClient) List(resourceGroupName string) (result comput
}() }()
mc := newMetricContext("vm", "list", resourceGroupName, az.client.SubscriptionID) mc := newMetricContext("vm", "list", resourceGroupName, az.client.SubscriptionID)
result, err = az.client.List(resourceGroupName) iterator, err := az.client.ListComplete(ctx, resourceGroupName)
mc.Observe(err) mc.Observe(err)
return if err != nil {
return nil, err
} }
func (az *azVirtualMachinesClient) ListNextResults(resourceGroupName string, lastResults compute.VirtualMachineListResult) (result compute.VirtualMachineListResult, err error) { result = make([]compute.VirtualMachine, 0)
if !az.rateLimiterReader.TryAccept() { for ; iterator.NotDone(); err = iterator.Next() {
err = createARMRateLimitErr(false, "VMListNextResults") if err != nil {
return return nil, err
} }
glog.V(10).Infof("azVirtualMachinesClient.ListNextResults(%q): start", lastResults) result = append(result, iterator.Value())
defer func() { }
glog.V(10).Infof("azVirtualMachinesClient.ListNextResults(%q): end", lastResults)
}()
mc := newMetricContext("vm", "list_next_results", resourceGroupName, az.client.SubscriptionID) return result, nil
result, err = az.client.ListNextResults(lastResults)
mc.Observe(err)
return
} }
// azInterfacesClient implements InterfacesClient. // azInterfacesClient implements InterfacesClient.
@ -941,13 +934,13 @@ func (az *azSecurityGroupsClient) List(resourceGroupName string) (SecurityGroupL
// azVirtualMachineScaleSetsClient implements VirtualMachineScaleSetsClient. // azVirtualMachineScaleSetsClient implements VirtualMachineScaleSetsClient.
type azVirtualMachineScaleSetsClient struct { type azVirtualMachineScaleSetsClient struct {
client computepreview.VirtualMachineScaleSetsClient client compute.VirtualMachineScaleSetsClient
rateLimiterReader flowcontrol.RateLimiter rateLimiterReader flowcontrol.RateLimiter
rateLimiterWriter flowcontrol.RateLimiter rateLimiterWriter flowcontrol.RateLimiter
} }
func newAzVirtualMachineScaleSetsClient(config *azClientConfig) *azVirtualMachineScaleSetsClient { func newAzVirtualMachineScaleSetsClient(config *azClientConfig) *azVirtualMachineScaleSetsClient {
virtualMachineScaleSetsClient := computepreview.NewVirtualMachineScaleSetsClient(config.subscriptionID) virtualMachineScaleSetsClient := compute.NewVirtualMachineScaleSetsClient(config.subscriptionID)
virtualMachineScaleSetsClient.BaseURI = config.resourceManagerEndpoint virtualMachineScaleSetsClient.BaseURI = config.resourceManagerEndpoint
virtualMachineScaleSetsClient.Authorizer = autorest.NewBearerAuthorizer(config.servicePrincipalToken) virtualMachineScaleSetsClient.Authorizer = autorest.NewBearerAuthorizer(config.servicePrincipalToken)
virtualMachineScaleSetsClient.PollingDelay = 5 * time.Second virtualMachineScaleSetsClient.PollingDelay = 5 * time.Second
@ -960,7 +953,7 @@ func newAzVirtualMachineScaleSetsClient(config *azClientConfig) *azVirtualMachin
} }
} }
func (az *azVirtualMachineScaleSetsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, VMScaleSetName string, parameters computepreview.VirtualMachineScaleSet) (resp *http.Response, err error) { func (az *azVirtualMachineScaleSetsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, VMScaleSetName string, parameters compute.VirtualMachineScaleSet) (resp *http.Response, err error) {
/* Write rate limiting */ /* Write rate limiting */
if !az.rateLimiterWriter.TryAccept() { if !az.rateLimiterWriter.TryAccept() {
err = createARMRateLimitErr(true, "VMSSCreateOrUpdate") err = createARMRateLimitErr(true, "VMSSCreateOrUpdate")
@ -984,7 +977,7 @@ func (az *azVirtualMachineScaleSetsClient) CreateOrUpdate(ctx context.Context, r
return future.Response(), err return future.Response(), err
} }
func (az *azVirtualMachineScaleSetsClient) Get(ctx context.Context, resourceGroupName string, VMScaleSetName string) (result computepreview.VirtualMachineScaleSet, err error) { func (az *azVirtualMachineScaleSetsClient) Get(ctx context.Context, resourceGroupName string, VMScaleSetName string) (result compute.VirtualMachineScaleSet, err error) {
if !az.rateLimiterReader.TryAccept() { if !az.rateLimiterReader.TryAccept() {
err = createARMRateLimitErr(false, "VMSSGet") err = createARMRateLimitErr(false, "VMSSGet")
return return
@ -1001,7 +994,7 @@ func (az *azVirtualMachineScaleSetsClient) Get(ctx context.Context, resourceGrou
return return
} }
func (az *azVirtualMachineScaleSetsClient) List(ctx context.Context, resourceGroupName string) (result []computepreview.VirtualMachineScaleSet, err error) { func (az *azVirtualMachineScaleSetsClient) List(ctx context.Context, resourceGroupName string) (result []compute.VirtualMachineScaleSet, err error) {
if !az.rateLimiterReader.TryAccept() { if !az.rateLimiterReader.TryAccept() {
err = createARMRateLimitErr(false, "VMSSList") err = createARMRateLimitErr(false, "VMSSList")
return return
@ -1019,7 +1012,7 @@ func (az *azVirtualMachineScaleSetsClient) List(ctx context.Context, resourceGro
return nil, err return nil, err
} }
result = make([]computepreview.VirtualMachineScaleSet, 0) result = make([]compute.VirtualMachineScaleSet, 0)
for ; iterator.NotDone(); err = iterator.Next() { for ; iterator.NotDone(); err = iterator.Next() {
if err != nil { if err != nil {
return nil, err return nil, err
@ -1031,7 +1024,7 @@ func (az *azVirtualMachineScaleSetsClient) List(ctx context.Context, resourceGro
return result, nil return result, nil
} }
func (az *azVirtualMachineScaleSetsClient) UpdateInstances(ctx context.Context, resourceGroupName string, VMScaleSetName string, VMInstanceIDs computepreview.VirtualMachineScaleSetVMInstanceRequiredIDs) (resp *http.Response, err error) { func (az *azVirtualMachineScaleSetsClient) UpdateInstances(ctx context.Context, resourceGroupName string, VMScaleSetName string, VMInstanceIDs compute.VirtualMachineScaleSetVMInstanceRequiredIDs) (resp *http.Response, err error) {
/* Write rate limiting */ /* Write rate limiting */
if !az.rateLimiterWriter.TryAccept() { if !az.rateLimiterWriter.TryAccept() {
err = createARMRateLimitErr(true, "VMSSUpdateInstances") err = createARMRateLimitErr(true, "VMSSUpdateInstances")
@ -1057,13 +1050,13 @@ func (az *azVirtualMachineScaleSetsClient) UpdateInstances(ctx context.Context,
// azVirtualMachineScaleSetVMsClient implements VirtualMachineScaleSetVMsClient. // azVirtualMachineScaleSetVMsClient implements VirtualMachineScaleSetVMsClient.
type azVirtualMachineScaleSetVMsClient struct { type azVirtualMachineScaleSetVMsClient struct {
client computepreview.VirtualMachineScaleSetVMsClient client compute.VirtualMachineScaleSetVMsClient
rateLimiterReader flowcontrol.RateLimiter rateLimiterReader flowcontrol.RateLimiter
rateLimiterWriter flowcontrol.RateLimiter rateLimiterWriter flowcontrol.RateLimiter
} }
func newAzVirtualMachineScaleSetVMsClient(config *azClientConfig) *azVirtualMachineScaleSetVMsClient { func newAzVirtualMachineScaleSetVMsClient(config *azClientConfig) *azVirtualMachineScaleSetVMsClient {
virtualMachineScaleSetVMsClient := computepreview.NewVirtualMachineScaleSetVMsClient(config.subscriptionID) virtualMachineScaleSetVMsClient := compute.NewVirtualMachineScaleSetVMsClient(config.subscriptionID)
virtualMachineScaleSetVMsClient.BaseURI = config.resourceManagerEndpoint virtualMachineScaleSetVMsClient.BaseURI = config.resourceManagerEndpoint
virtualMachineScaleSetVMsClient.Authorizer = autorest.NewBearerAuthorizer(config.servicePrincipalToken) virtualMachineScaleSetVMsClient.Authorizer = autorest.NewBearerAuthorizer(config.servicePrincipalToken)
virtualMachineScaleSetVMsClient.PollingDelay = 5 * time.Second virtualMachineScaleSetVMsClient.PollingDelay = 5 * time.Second
@ -1076,7 +1069,7 @@ func newAzVirtualMachineScaleSetVMsClient(config *azClientConfig) *azVirtualMach
} }
} }
func (az *azVirtualMachineScaleSetVMsClient) Get(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result computepreview.VirtualMachineScaleSetVM, err error) { func (az *azVirtualMachineScaleSetVMsClient) Get(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result compute.VirtualMachineScaleSetVM, err error) {
if !az.rateLimiterReader.TryAccept() { if !az.rateLimiterReader.TryAccept() {
err = createARMRateLimitErr(false, "VMSSGet") err = createARMRateLimitErr(false, "VMSSGet")
return return
@ -1093,7 +1086,7 @@ func (az *azVirtualMachineScaleSetVMsClient) Get(ctx context.Context, resourceGr
return return
} }
func (az *azVirtualMachineScaleSetVMsClient) GetInstanceView(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result computepreview.VirtualMachineScaleSetVMInstanceView, err error) { func (az *azVirtualMachineScaleSetVMsClient) GetInstanceView(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result compute.VirtualMachineScaleSetVMInstanceView, err error) {
if !az.rateLimiterReader.TryAccept() { if !az.rateLimiterReader.TryAccept() {
err = createARMRateLimitErr(false, "VMSSGetInstanceView") err = createARMRateLimitErr(false, "VMSSGetInstanceView")
return return
@ -1110,7 +1103,7 @@ func (az *azVirtualMachineScaleSetVMsClient) GetInstanceView(ctx context.Context
return return
} }
func (az *azVirtualMachineScaleSetVMsClient) List(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, filter string, selectParameter string, expand string) (result []computepreview.VirtualMachineScaleSetVM, err error) { func (az *azVirtualMachineScaleSetVMsClient) List(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, filter string, selectParameter string, expand string) (result []compute.VirtualMachineScaleSetVM, err error) {
if !az.rateLimiterReader.TryAccept() { if !az.rateLimiterReader.TryAccept() {
err = createARMRateLimitErr(false, "VMSSList") err = createARMRateLimitErr(false, "VMSSList")
return return
@ -1128,7 +1121,7 @@ func (az *azVirtualMachineScaleSetVMsClient) List(ctx context.Context, resourceG
return nil, err return nil, err
} }
result = make([]computepreview.VirtualMachineScaleSetVM, 0) result = make([]compute.VirtualMachineScaleSetVM, 0)
for ; iterator.NotDone(); err = iterator.Next() { for ; iterator.NotDone(); err = iterator.Next() {
if err != nil { if err != nil {
return nil, err return nil, err
@ -1140,7 +1133,7 @@ func (az *azVirtualMachineScaleSetVMsClient) List(ctx context.Context, resourceG
return result, nil return result, nil
} }
func (az *azVirtualMachineScaleSetVMsClient) Update(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string, parameters computepreview.VirtualMachineScaleSetVM) (resp *http.Response, err error) { func (az *azVirtualMachineScaleSetVMsClient) Update(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string, parameters compute.VirtualMachineScaleSetVM) (resp *http.Response, err error) {
if !az.rateLimiterWriter.TryAccept() { if !az.rateLimiterWriter.TryAccept() {
err = createARMRateLimitErr(true, "VMSSUpdate") err = createARMRateLimitErr(true, "VMSSUpdate")
return return
@ -1357,13 +1350,11 @@ func newAzStorageAccountClient(config *azClientConfig) *azStorageAccountClient {
} }
} }
func (az *azStorageAccountClient) Create(resourceGroupName string, accountName string, parameters storage.AccountCreateParameters, cancel <-chan struct{}) (<-chan storage.Account, <-chan error) { func (az *azStorageAccountClient) Create(ctx context.Context, resourceGroupName string, accountName string, parameters storage.AccountCreateParameters) (result *http.Response, err error) {
/* Write rate limiting */ /* Write rate limiting */
if !az.rateLimiterWriter.TryAccept() { if !az.rateLimiterWriter.TryAccept() {
errChan := createARMRateLimitErrChannel(true, "StorageAccountCreate") err = createARMRateLimitErr(true, "StorageAccountCreate")
resultChan := make(chan storage.Account, 1) return
resultChan <- storage.Account{}
return resultChan, errChan
} }
glog.V(10).Infof("azStorageAccountClient.Create(%q,%q): start", resourceGroupName, accountName) glog.V(10).Infof("azStorageAccountClient.Create(%q,%q): start", resourceGroupName, accountName)
@ -1371,16 +1362,18 @@ func (az *azStorageAccountClient) Create(resourceGroupName string, accountName s
glog.V(10).Infof("azStorageAccountClient.Create(%q,%q): end", resourceGroupName, accountName) glog.V(10).Infof("azStorageAccountClient.Create(%q,%q): end", resourceGroupName, accountName)
}() }()
errChan := make(chan error, 1)
mc := newMetricContext("storage_account", "create", resourceGroupName, az.client.SubscriptionID) mc := newMetricContext("storage_account", "create", resourceGroupName, az.client.SubscriptionID)
resultChan, proxyErrChan := az.client.Create(resourceGroupName, accountName, parameters, cancel) future, err := az.client.Create(ctx, resourceGroupName, accountName, parameters)
err := <-proxyErrChan if err != nil {
mc.Observe(err) return future.Response(), err
errChan <- err
return resultChan, errChan
} }
func (az *azStorageAccountClient) Delete(resourceGroupName string, accountName string) (result autorest.Response, err error) { err = future.WaitForCompletion(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
}
func (az *azStorageAccountClient) Delete(ctx context.Context, resourceGroupName string, accountName string) (result autorest.Response, err error) {
if !az.rateLimiterReader.TryAccept() { if !az.rateLimiterReader.TryAccept() {
err = createARMRateLimitErr(false, "DeleteStorageAccount") err = createARMRateLimitErr(false, "DeleteStorageAccount")
return return
@ -1392,12 +1385,12 @@ func (az *azStorageAccountClient) Delete(resourceGroupName string, accountName s
}() }()
mc := newMetricContext("storage_account", "delete", resourceGroupName, az.client.SubscriptionID) mc := newMetricContext("storage_account", "delete", resourceGroupName, az.client.SubscriptionID)
result, err = az.client.Delete(resourceGroupName, accountName) result, err = az.client.Delete(ctx, resourceGroupName, accountName)
mc.Observe(err) mc.Observe(err)
return return
} }
func (az *azStorageAccountClient) ListKeys(resourceGroupName string, accountName string) (result storage.AccountListKeysResult, err error) { func (az *azStorageAccountClient) ListKeys(ctx context.Context, resourceGroupName string, accountName string) (result storage.AccountListKeysResult, err error) {
if !az.rateLimiterReader.TryAccept() { if !az.rateLimiterReader.TryAccept() {
err = createARMRateLimitErr(false, "ListStorageAccountKeys") err = createARMRateLimitErr(false, "ListStorageAccountKeys")
return return
@ -1409,12 +1402,12 @@ func (az *azStorageAccountClient) ListKeys(resourceGroupName string, accountName
}() }()
mc := newMetricContext("storage_account", "list_keys", resourceGroupName, az.client.SubscriptionID) mc := newMetricContext("storage_account", "list_keys", resourceGroupName, az.client.SubscriptionID)
result, err = az.client.ListKeys(resourceGroupName, accountName) result, err = az.client.ListKeys(ctx, resourceGroupName, accountName)
mc.Observe(err) mc.Observe(err)
return return
} }
func (az *azStorageAccountClient) ListByResourceGroup(resourceGroupName string) (result storage.AccountListResult, err error) { func (az *azStorageAccountClient) ListByResourceGroup(ctx context.Context, resourceGroupName string) (result storage.AccountListResult, err error) {
if !az.rateLimiterReader.TryAccept() { if !az.rateLimiterReader.TryAccept() {
err = createARMRateLimitErr(false, "ListStorageAccountsByResourceGroup") err = createARMRateLimitErr(false, "ListStorageAccountsByResourceGroup")
return return
@ -1426,12 +1419,12 @@ func (az *azStorageAccountClient) ListByResourceGroup(resourceGroupName string)
}() }()
mc := newMetricContext("storage_account", "list_by_resource_group", resourceGroupName, az.client.SubscriptionID) mc := newMetricContext("storage_account", "list_by_resource_group", resourceGroupName, az.client.SubscriptionID)
result, err = az.client.ListByResourceGroup(resourceGroupName) result, err = az.client.ListByResourceGroup(ctx, resourceGroupName)
mc.Observe(err) mc.Observe(err)
return return
} }
func (az *azStorageAccountClient) GetProperties(resourceGroupName string, accountName string) (result storage.Account, err error) { func (az *azStorageAccountClient) GetProperties(ctx context.Context, resourceGroupName string, accountName string) (result storage.Account, err error) {
if !az.rateLimiterReader.TryAccept() { if !az.rateLimiterReader.TryAccept() {
err = createARMRateLimitErr(false, "GetStorageAccount/Properties") err = createARMRateLimitErr(false, "GetStorageAccount/Properties")
return return
@ -1443,20 +1436,20 @@ func (az *azStorageAccountClient) GetProperties(resourceGroupName string, accoun
}() }()
mc := newMetricContext("storage_account", "get_properties", resourceGroupName, az.client.SubscriptionID) mc := newMetricContext("storage_account", "get_properties", resourceGroupName, az.client.SubscriptionID)
result, err = az.client.GetProperties(resourceGroupName, accountName) result, err = az.client.GetProperties(ctx, resourceGroupName, accountName)
mc.Observe(err) mc.Observe(err)
return return
} }
// azDisksClient implements DisksClient. // azDisksClient implements DisksClient.
type azDisksClient struct { type azDisksClient struct {
client disk.DisksClient client compute.DisksClient
rateLimiterReader flowcontrol.RateLimiter rateLimiterReader flowcontrol.RateLimiter
rateLimiterWriter flowcontrol.RateLimiter rateLimiterWriter flowcontrol.RateLimiter
} }
func newAzDisksClient(config *azClientConfig) *azDisksClient { func newAzDisksClient(config *azClientConfig) *azDisksClient {
disksClient := disk.NewDisksClientWithBaseURI(config.resourceManagerEndpoint, config.subscriptionID) disksClient := compute.NewDisksClientWithBaseURI(config.resourceManagerEndpoint, config.subscriptionID)
disksClient.Authorizer = autorest.NewBearerAuthorizer(config.servicePrincipalToken) disksClient.Authorizer = autorest.NewBearerAuthorizer(config.servicePrincipalToken)
disksClient.PollingDelay = 5 * time.Second disksClient.PollingDelay = 5 * time.Second
configureUserAgent(&disksClient.Client) configureUserAgent(&disksClient.Client)
@ -1468,13 +1461,11 @@ func newAzDisksClient(config *azClientConfig) *azDisksClient {
} }
} }
func (az *azDisksClient) CreateOrUpdate(resourceGroupName string, diskName string, diskParameter disk.Model, cancel <-chan struct{}) (<-chan disk.Model, <-chan error) { func (az *azDisksClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, diskName string, diskParameter compute.Disk) (resp *http.Response, err error) {
/* Write rate limiting */ /* Write rate limiting */
if !az.rateLimiterWriter.TryAccept() { if !az.rateLimiterWriter.TryAccept() {
errChan := createARMRateLimitErrChannel(true, "DiskCreateOrUpdate") err = createARMRateLimitErr(true, "DiskCreateOrUpdate")
resultChan := make(chan disk.Model, 1) return
resultChan <- disk.Model{}
return resultChan, errChan
} }
glog.V(10).Infof("azDisksClient.CreateOrUpdate(%q,%q): start", resourceGroupName, diskName) glog.V(10).Infof("azDisksClient.CreateOrUpdate(%q,%q): start", resourceGroupName, diskName)
@ -1482,22 +1473,23 @@ func (az *azDisksClient) CreateOrUpdate(resourceGroupName string, diskName strin
glog.V(10).Infof("azDisksClient.CreateOrUpdate(%q,%q): end", resourceGroupName, diskName) glog.V(10).Infof("azDisksClient.CreateOrUpdate(%q,%q): end", resourceGroupName, diskName)
}() }()
errChan := make(chan error, 1)
mc := newMetricContext("disks", "create_or_update", resourceGroupName, az.client.SubscriptionID) mc := newMetricContext("disks", "create_or_update", resourceGroupName, az.client.SubscriptionID)
resultChan, proxyErrChan := az.client.CreateOrUpdate(resourceGroupName, diskName, diskParameter, cancel) future, err := az.client.CreateOrUpdate(ctx, resourceGroupName, diskName, diskParameter)
err := <-proxyErrChan
mc.Observe(err) mc.Observe(err)
errChan <- err if err != nil {
return resultChan, errChan return future.Response(), err
} }
func (az *azDisksClient) Delete(resourceGroupName string, diskName string, cancel <-chan struct{}) (<-chan disk.OperationStatusResponse, <-chan error) { err = future.WaitForCompletion(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
}
func (az *azDisksClient) Delete(ctx context.Context, resourceGroupName string, diskName string) (resp *http.Response, err error) {
/* Write rate limiting */ /* Write rate limiting */
if !az.rateLimiterWriter.TryAccept() { if !az.rateLimiterWriter.TryAccept() {
errChan := createARMRateLimitErrChannel(true, "DiskDelete") err = createARMRateLimitErr(true, "DiskDelete")
resultChan := make(chan disk.OperationStatusResponse, 1) return
resultChan <- disk.OperationStatusResponse{}
return resultChan, errChan
} }
glog.V(10).Infof("azDisksClient.Delete(%q,%q): start", resourceGroupName, diskName) glog.V(10).Infof("azDisksClient.Delete(%q,%q): start", resourceGroupName, diskName)
@ -1505,16 +1497,19 @@ func (az *azDisksClient) Delete(resourceGroupName string, diskName string, cance
glog.V(10).Infof("azDisksClient.Delete(%q,%q): end", resourceGroupName, diskName) glog.V(10).Infof("azDisksClient.Delete(%q,%q): end", resourceGroupName, diskName)
}() }()
errChan := make(chan error, 1)
mc := newMetricContext("disks", "delete", resourceGroupName, az.client.SubscriptionID) mc := newMetricContext("disks", "delete", resourceGroupName, az.client.SubscriptionID)
resultChan, proxyErrChan := az.client.Delete(resourceGroupName, diskName, cancel) future, err := az.client.Delete(ctx, resourceGroupName, diskName)
err := <-proxyErrChan
mc.Observe(err) mc.Observe(err)
errChan <- err if err != nil {
return resultChan, errChan return future.Response(), err
} }
func (az *azDisksClient) Get(resourceGroupName string, diskName string) (result disk.Model, err error) { err = future.WaitForCompletion(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
}
func (az *azDisksClient) Get(ctx context.Context, resourceGroupName string, diskName string) (result compute.Disk, err error) {
if !az.rateLimiterReader.TryAccept() { if !az.rateLimiterReader.TryAccept() {
err = createARMRateLimitErr(false, "GetDisk") err = createARMRateLimitErr(false, "GetDisk")
return return
@ -1526,7 +1521,7 @@ func (az *azDisksClient) Get(resourceGroupName string, diskName string) (result
}() }()
mc := newMetricContext("disks", "get", resourceGroupName, az.client.SubscriptionID) mc := newMetricContext("disks", "get", resourceGroupName, az.client.SubscriptionID)
result, err = az.client.Get(resourceGroupName, diskName) result, err = az.client.Get(ctx, resourceGroupName, diskName)
mc.Observe(err) mc.Observe(err)
return return
} }