mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 22:17:14 +00:00
Merge pull request #63425 from feiskyer/azclient
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Clean up Azure clients **What this PR does / why we need it**: Follow up of #63278 (Use new Azure SDK APIs for load balancer and public IP operations), clean up all other clients. **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: Follow up of #63278 **Special notes for your reviewer**: **Release note**: ```release-note NONE ```
This commit is contained in:
commit
b976ebd56a
@ -111,11 +111,12 @@ func (az *Cloud) GetIPForMachineWithRetry(name types.NodeName) (string, string,
|
||||
// CreateOrUpdateSGWithRetry invokes az.SecurityGroupsClient.CreateOrUpdate with exponential backoff retry
|
||||
func (az *Cloud) CreateOrUpdateSGWithRetry(sg network.SecurityGroup) error {
|
||||
return wait.ExponentialBackoff(az.requestBackoff(), func() (bool, error) {
|
||||
respChan, errChan := az.SecurityGroupsClient.CreateOrUpdate(az.ResourceGroup, *sg.Name, sg, nil)
|
||||
resp := <-respChan
|
||||
err := <-errChan
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
|
||||
resp, err := az.SecurityGroupsClient.CreateOrUpdate(ctx, az.ResourceGroup, *sg.Name, sg)
|
||||
glog.V(10).Infof("SecurityGroupsClient.CreateOrUpdate(%s): end", *sg.Name)
|
||||
done, err := processRetryResponse(resp.Response, err)
|
||||
done, err := processHTTPRetryResponse(resp, err)
|
||||
if done && err == nil {
|
||||
// Invalidate the cache right after updating
|
||||
az.nsgCache.Delete(*sg.Name)
|
||||
@ -208,11 +209,12 @@ func (az *Cloud) CreateOrUpdatePIPWithRetry(pipResourceGroup string, pip network
|
||||
// CreateOrUpdateInterfaceWithRetry invokes az.PublicIPAddressesClient.CreateOrUpdate with exponential backoff retry
|
||||
func (az *Cloud) CreateOrUpdateInterfaceWithRetry(nic network.Interface) error {
|
||||
return wait.ExponentialBackoff(az.requestBackoff(), func() (bool, error) {
|
||||
respChan, errChan := az.InterfacesClient.CreateOrUpdate(az.ResourceGroup, *nic.Name, nic, nil)
|
||||
resp := <-respChan
|
||||
err := <-errChan
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
|
||||
resp, err := az.InterfacesClient.CreateOrUpdate(ctx, az.ResourceGroup, *nic.Name, nic)
|
||||
glog.V(10).Infof("InterfacesClient.CreateOrUpdate(%s): end", *nic.Name)
|
||||
return processRetryResponse(resp.Response, err)
|
||||
return processHTTPRetryResponse(resp, err)
|
||||
})
|
||||
}
|
||||
|
||||
@ -246,32 +248,35 @@ func (az *Cloud) DeleteLBWithRetry(lbName string) error {
|
||||
// CreateOrUpdateRouteTableWithRetry invokes az.RouteTablesClient.CreateOrUpdate with exponential backoff retry
|
||||
func (az *Cloud) CreateOrUpdateRouteTableWithRetry(routeTable network.RouteTable) error {
|
||||
return wait.ExponentialBackoff(az.requestBackoff(), func() (bool, error) {
|
||||
respChan, errChan := az.RouteTablesClient.CreateOrUpdate(az.ResourceGroup, az.RouteTableName, routeTable, nil)
|
||||
resp := <-respChan
|
||||
err := <-errChan
|
||||
return processRetryResponse(resp.Response, err)
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
|
||||
resp, err := az.RouteTablesClient.CreateOrUpdate(ctx, az.ResourceGroup, az.RouteTableName, routeTable)
|
||||
return processHTTPRetryResponse(resp, err)
|
||||
})
|
||||
}
|
||||
|
||||
// CreateOrUpdateRouteWithRetry invokes az.RoutesClient.CreateOrUpdate with exponential backoff retry
|
||||
func (az *Cloud) CreateOrUpdateRouteWithRetry(route network.Route) error {
|
||||
return wait.ExponentialBackoff(az.requestBackoff(), func() (bool, error) {
|
||||
respChan, errChan := az.RoutesClient.CreateOrUpdate(az.ResourceGroup, az.RouteTableName, *route.Name, route, nil)
|
||||
resp := <-respChan
|
||||
err := <-errChan
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
|
||||
resp, err := az.RoutesClient.CreateOrUpdate(ctx, az.ResourceGroup, az.RouteTableName, *route.Name, route)
|
||||
glog.V(10).Infof("RoutesClient.CreateOrUpdate(%s): end", *route.Name)
|
||||
return processRetryResponse(resp.Response, err)
|
||||
return processHTTPRetryResponse(resp, err)
|
||||
})
|
||||
}
|
||||
|
||||
// DeleteRouteWithRetry invokes az.RoutesClient.Delete with exponential backoff retry
|
||||
func (az *Cloud) DeleteRouteWithRetry(routeName string) error {
|
||||
return wait.ExponentialBackoff(az.requestBackoff(), func() (bool, error) {
|
||||
respChan, errChan := az.RoutesClient.Delete(az.ResourceGroup, az.RouteTableName, routeName, nil)
|
||||
resp := <-respChan
|
||||
err := <-errChan
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
|
||||
resp, err := az.RoutesClient.Delete(ctx, az.ResourceGroup, az.RouteTableName, routeName)
|
||||
glog.V(10).Infof("RoutesClient.Delete(%s): end", az.RouteTableName)
|
||||
return processRetryResponse(resp, err)
|
||||
return processHTTPRetryResponse(resp, err)
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -41,45 +41,6 @@ func createARMRateLimitErr(isWrite bool, opName string) error {
|
||||
return fmt.Errorf("azure - ARM rate limited(%s) for operation:%s", opType, opName)
|
||||
}
|
||||
|
||||
func createARMRateLimitErrChannel(isWrite bool, opName string) chan error {
|
||||
err := createARMRateLimitErr(isWrite, opName)
|
||||
errChan := make(chan error, 1)
|
||||
errChan <- err
|
||||
return errChan
|
||||
}
|
||||
|
||||
// LoadBalancerListResultPage is for faking.
|
||||
type LoadBalancerListResultPage interface {
|
||||
Next() error
|
||||
NotDone() bool
|
||||
Response() network.LoadBalancerListResult
|
||||
Values() []network.LoadBalancer
|
||||
}
|
||||
|
||||
// PublicIPAddressListResultPage is for faking.
|
||||
type PublicIPAddressListResultPage interface {
|
||||
Next() error
|
||||
NotDone() bool
|
||||
Response() network.PublicIPAddressListResult
|
||||
Values() []network.PublicIPAddress
|
||||
}
|
||||
|
||||
// SecurityGroupListResultPage is for faking.
|
||||
type SecurityGroupListResultPage interface {
|
||||
Next() error
|
||||
NotDone() bool
|
||||
Response() network.SecurityGroupListResult
|
||||
Values() []network.SecurityGroup
|
||||
}
|
||||
|
||||
// SubnetListResultPage is for faking.
|
||||
type SubnetListResultPage interface {
|
||||
Next() error
|
||||
NotDone() bool
|
||||
Response() network.SubnetListResult
|
||||
Values() []network.Subnet
|
||||
}
|
||||
|
||||
// VirtualMachinesClient defines needed functions for azure compute.VirtualMachinesClient
|
||||
type VirtualMachinesClient interface {
|
||||
CreateOrUpdate(ctx context.Context, resourceGroupName string, VMName string, parameters compute.VirtualMachine) (resp *http.Response, err error)
|
||||
@ -89,9 +50,9 @@ type VirtualMachinesClient interface {
|
||||
|
||||
// InterfacesClient defines needed functions for azure network.InterfacesClient
|
||||
type InterfacesClient interface {
|
||||
CreateOrUpdate(resourceGroupName string, networkInterfaceName string, parameters network.Interface, cancel <-chan struct{}) (<-chan network.Interface, <-chan error)
|
||||
Get(resourceGroupName string, networkInterfaceName string, expand string) (result network.Interface, err error)
|
||||
GetVirtualMachineScaleSetNetworkInterface(resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string, expand string) (result network.Interface, err error)
|
||||
CreateOrUpdate(ctx context.Context, resourceGroupName string, networkInterfaceName string, parameters network.Interface) (resp *http.Response, err error)
|
||||
Get(ctx context.Context, resourceGroupName string, networkInterfaceName string, expand string) (result network.Interface, err error)
|
||||
GetVirtualMachineScaleSetNetworkInterface(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string, expand string) (result network.Interface, err error)
|
||||
}
|
||||
|
||||
// LoadBalancersClient defines needed functions for azure network.LoadBalancersClient
|
||||
@ -112,18 +73,18 @@ type PublicIPAddressesClient interface {
|
||||
|
||||
// SubnetsClient defines needed functions for azure network.SubnetsClient
|
||||
type SubnetsClient interface {
|
||||
CreateOrUpdate(resourceGroupName string, virtualNetworkName string, subnetName string, subnetParameters network.Subnet, cancel <-chan struct{}) (<-chan network.Subnet, <-chan error)
|
||||
Delete(resourceGroupName string, virtualNetworkName string, subnetName string, cancel <-chan struct{}) (<-chan autorest.Response, <-chan error)
|
||||
Get(resourceGroupName string, virtualNetworkName string, subnetName string, expand string) (result network.Subnet, err error)
|
||||
List(resourceGroupName string, virtualNetworkName string) (result SubnetListResultPage, err error)
|
||||
CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, subnetParameters network.Subnet) (resp *http.Response, err error)
|
||||
Delete(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string) (resp *http.Response, err error)
|
||||
Get(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, expand string) (result network.Subnet, err error)
|
||||
List(ctx context.Context, resourceGroupName string, virtualNetworkName string) (result []network.Subnet, err error)
|
||||
}
|
||||
|
||||
// SecurityGroupsClient defines needed functions for azure network.SecurityGroupsClient
|
||||
type SecurityGroupsClient interface {
|
||||
CreateOrUpdate(resourceGroupName string, networkSecurityGroupName string, parameters network.SecurityGroup, cancel <-chan struct{}) (<-chan network.SecurityGroup, <-chan error)
|
||||
Delete(resourceGroupName string, networkSecurityGroupName string, cancel <-chan struct{}) (<-chan autorest.Response, <-chan error)
|
||||
Get(resourceGroupName string, networkSecurityGroupName string, expand string) (result network.SecurityGroup, err error)
|
||||
List(resourceGroupName string) (result SecurityGroupListResultPage, err error)
|
||||
CreateOrUpdate(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, parameters network.SecurityGroup) (resp *http.Response, err error)
|
||||
Delete(ctx context.Context, resourceGroupName string, networkSecurityGroupName string) (resp *http.Response, err error)
|
||||
Get(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, expand string) (result network.SecurityGroup, err error)
|
||||
List(ctx context.Context, resourceGroupName string) (result []network.SecurityGroup, err error)
|
||||
}
|
||||
|
||||
// VirtualMachineScaleSetsClient defines needed functions for azure compute.VirtualMachineScaleSetsClient
|
||||
@ -144,14 +105,14 @@ type VirtualMachineScaleSetVMsClient interface {
|
||||
|
||||
// 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)
|
||||
CreateOrUpdate(ctx context.Context, resourceGroupName string, routeTableName string, routeName string, routeParameters network.Route) (resp *http.Response, err error)
|
||||
Delete(ctx context.Context, resourceGroupName string, routeTableName string, routeName string) (resp *http.Response, err 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)
|
||||
CreateOrUpdate(ctx context.Context, resourceGroupName string, routeTableName string, parameters network.RouteTable) (resp *http.Response, err error)
|
||||
Get(ctx context.Context, resourceGroupName string, routeTableName string, expand string) (result network.RouteTable, err error)
|
||||
}
|
||||
|
||||
// StorageAccountClient defines needed functions for azure storage.AccountsClient
|
||||
@ -297,13 +258,11 @@ func newAzInterfacesClient(config *azClientConfig) *azInterfacesClient {
|
||||
}
|
||||
}
|
||||
|
||||
func (az *azInterfacesClient) CreateOrUpdate(resourceGroupName string, networkInterfaceName string, parameters network.Interface, cancel <-chan struct{}) (<-chan network.Interface, <-chan error) {
|
||||
func (az *azInterfacesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, networkInterfaceName string, parameters network.Interface) (resp *http.Response, err error) {
|
||||
/* Write rate limiting */
|
||||
if !az.rateLimiterWriter.TryAccept() {
|
||||
errChan := createARMRateLimitErrChannel(true, "NiCreateOrUpdate")
|
||||
resultChan := make(chan network.Interface, 1)
|
||||
resultChan <- network.Interface{}
|
||||
return resultChan, errChan
|
||||
err = createARMRateLimitErr(true, "NiCreateOrUpdate")
|
||||
return
|
||||
}
|
||||
|
||||
glog.V(10).Infof("azInterfacesClient.CreateOrUpdate(%q,%q): start", resourceGroupName, networkInterfaceName)
|
||||
@ -311,31 +270,19 @@ func (az *azInterfacesClient) CreateOrUpdate(resourceGroupName string, networkIn
|
||||
glog.V(10).Infof("azInterfacesClient.CreateOrUpdate(%q,%q): end", resourceGroupName, networkInterfaceName)
|
||||
}()
|
||||
|
||||
ctx := context.TODO()
|
||||
errChan := make(chan error, 1)
|
||||
resultChan := make(chan network.Interface, 1)
|
||||
mc := newMetricContext("interfaces", "create_or_update", resourceGroupName, az.client.SubscriptionID)
|
||||
future, err := az.client.CreateOrUpdate(ctx, resourceGroupName, networkInterfaceName, parameters)
|
||||
if err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return resultChan, errChan
|
||||
return future.Response(), err
|
||||
}
|
||||
go func() {
|
||||
if err := future.WaitForCompletion(ctx, az.client.Client); err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return
|
||||
}
|
||||
result, err := future.Result(az.client)
|
||||
errChan <- err
|
||||
resultChan <- result
|
||||
}()
|
||||
|
||||
return resultChan, errChan
|
||||
err = future.WaitForCompletion(ctx, az.client.Client)
|
||||
mc.Observe(err)
|
||||
return future.Response(), err
|
||||
}
|
||||
|
||||
func (az *azInterfacesClient) Get(resourceGroupName string, networkInterfaceName string, expand string) (result network.Interface, err error) {
|
||||
func (az *azInterfacesClient) Get(ctx context.Context, resourceGroupName string, networkInterfaceName string, expand string) (result network.Interface, err error) {
|
||||
if !az.rateLimiterReader.TryAccept() {
|
||||
err = createARMRateLimitErr(false, "NicGet")
|
||||
return
|
||||
@ -347,12 +294,12 @@ func (az *azInterfacesClient) Get(resourceGroupName string, networkInterfaceName
|
||||
}()
|
||||
|
||||
mc := newMetricContext("interfaces", "get", resourceGroupName, az.client.SubscriptionID)
|
||||
result, err = az.client.Get(context.TODO(), resourceGroupName, networkInterfaceName, expand)
|
||||
result, err = az.client.Get(ctx, resourceGroupName, networkInterfaceName, expand)
|
||||
mc.Observe(err)
|
||||
return
|
||||
}
|
||||
|
||||
func (az *azInterfacesClient) GetVirtualMachineScaleSetNetworkInterface(resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string, expand string) (result network.Interface, err error) {
|
||||
func (az *azInterfacesClient) GetVirtualMachineScaleSetNetworkInterface(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string, expand string) (result network.Interface, err error) {
|
||||
if !az.rateLimiterReader.TryAccept() {
|
||||
err = createARMRateLimitErr(false, "NicGetVirtualMachineScaleSetNetworkInterface")
|
||||
return
|
||||
@ -364,7 +311,7 @@ func (az *azInterfacesClient) GetVirtualMachineScaleSetNetworkInterface(resource
|
||||
}()
|
||||
|
||||
mc := newMetricContext("interfaces", "get_vmss_ni", resourceGroupName, az.client.SubscriptionID)
|
||||
result, err = az.client.GetVirtualMachineScaleSetNetworkInterface(context.TODO(), resourceGroupName, virtualMachineScaleSetName, virtualmachineIndex, networkInterfaceName, expand)
|
||||
result, err = az.client.GetVirtualMachineScaleSetNetworkInterface(ctx, resourceGroupName, virtualMachineScaleSetName, virtualmachineIndex, networkInterfaceName, expand)
|
||||
mc.Observe(err)
|
||||
return
|
||||
}
|
||||
@ -621,13 +568,11 @@ func newAzSubnetsClient(config *azClientConfig) *azSubnetsClient {
|
||||
}
|
||||
}
|
||||
|
||||
func (az *azSubnetsClient) CreateOrUpdate(resourceGroupName string, virtualNetworkName string, subnetName string, subnetParameters network.Subnet, cancel <-chan struct{}) (<-chan network.Subnet, <-chan error) {
|
||||
func (az *azSubnetsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, subnetParameters network.Subnet) (resp *http.Response, err error) {
|
||||
/* Write rate limiting */
|
||||
if !az.rateLimiterWriter.TryAccept() {
|
||||
errChan := createARMRateLimitErrChannel(true, "SubnetCreateOrUpdate")
|
||||
resultChan := make(chan network.Subnet, 1)
|
||||
resultChan <- network.Subnet{}
|
||||
return resultChan, errChan
|
||||
err = createARMRateLimitErr(true, "SubnetCreateOrUpdate")
|
||||
return
|
||||
}
|
||||
|
||||
glog.V(10).Infof("azSubnetsClient.CreateOrUpdate(%q,%q,%q): start", resourceGroupName, virtualNetworkName, subnetName)
|
||||
@ -635,37 +580,23 @@ func (az *azSubnetsClient) CreateOrUpdate(resourceGroupName string, virtualNetwo
|
||||
glog.V(10).Infof("azSubnetsClient.CreateOrUpdate(%q,%q,%q): end", resourceGroupName, virtualNetworkName, subnetName)
|
||||
}()
|
||||
|
||||
ctx := context.TODO()
|
||||
resultChan := make(chan network.Subnet, 1)
|
||||
errChan := make(chan error, 1)
|
||||
mc := newMetricContext("subnets", "create_or_update", resourceGroupName, az.client.SubscriptionID)
|
||||
future, err := az.client.CreateOrUpdate(ctx, resourceGroupName, virtualNetworkName, subnetName, subnetParameters)
|
||||
if err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return resultChan, errChan
|
||||
return future.Response(), err
|
||||
}
|
||||
go func() {
|
||||
if err := future.WaitForCompletion(ctx, az.client.Client); err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return
|
||||
}
|
||||
result, err := future.Result(az.client)
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
resultChan <- result
|
||||
}()
|
||||
return resultChan, errChan
|
||||
|
||||
err = future.WaitForCompletion(ctx, az.client.Client)
|
||||
mc.Observe(err)
|
||||
return future.Response(), err
|
||||
}
|
||||
|
||||
func (az *azSubnetsClient) Delete(resourceGroupName string, virtualNetworkName string, subnetName string, cancel <-chan struct{}) (<-chan autorest.Response, <-chan error) {
|
||||
func (az *azSubnetsClient) Delete(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string) (resp *http.Response, err error) {
|
||||
/* Write rate limiting */
|
||||
if !az.rateLimiterWriter.TryAccept() {
|
||||
errChan := createARMRateLimitErrChannel(true, "SubnetDelete")
|
||||
resultChan := make(chan autorest.Response, 1)
|
||||
resultChan <- autorest.Response{}
|
||||
return resultChan, errChan
|
||||
err = createARMRateLimitErr(true, "SubnetDelete")
|
||||
return
|
||||
}
|
||||
|
||||
glog.V(10).Infof("azSubnetsClient.Delete(%q,%q,%q): start", resourceGroupName, virtualNetworkName, subnetName)
|
||||
@ -673,31 +604,19 @@ func (az *azSubnetsClient) Delete(resourceGroupName string, virtualNetworkName s
|
||||
glog.V(10).Infof("azSubnetsClient.Delete(%q,%q,%q): end", resourceGroupName, virtualNetworkName, subnetName)
|
||||
}()
|
||||
|
||||
ctx := context.TODO()
|
||||
resultChan := make(chan autorest.Response, 1)
|
||||
errChan := make(chan error, 1)
|
||||
mc := newMetricContext("subnets", "delete", resourceGroupName, az.client.SubscriptionID)
|
||||
future, err := az.client.Delete(ctx, resourceGroupName, virtualNetworkName, subnetName)
|
||||
if err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return resultChan, errChan
|
||||
return future.Response(), err
|
||||
}
|
||||
go func() {
|
||||
if err := future.WaitForCompletion(ctx, az.client.Client); err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return
|
||||
}
|
||||
result, err := future.Result(az.client)
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
resultChan <- result
|
||||
}()
|
||||
return resultChan, errChan
|
||||
|
||||
err = future.WaitForCompletion(ctx, az.client.Client)
|
||||
mc.Observe(err)
|
||||
return future.Response(), err
|
||||
}
|
||||
|
||||
func (az *azSubnetsClient) Get(resourceGroupName string, virtualNetworkName string, subnetName string, expand string) (result network.Subnet, err error) {
|
||||
func (az *azSubnetsClient) Get(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, expand string) (result network.Subnet, err error) {
|
||||
if !az.rateLimiterReader.TryAccept() {
|
||||
err = createARMRateLimitErr(false, "SubnetGet")
|
||||
return
|
||||
@ -709,13 +628,12 @@ func (az *azSubnetsClient) Get(resourceGroupName string, virtualNetworkName stri
|
||||
}()
|
||||
|
||||
mc := newMetricContext("subnets", "get", resourceGroupName, az.client.SubscriptionID)
|
||||
ctx := context.TODO()
|
||||
result, err = az.client.Get(ctx, resourceGroupName, virtualNetworkName, subnetName, expand)
|
||||
mc.Observe(err)
|
||||
return
|
||||
}
|
||||
|
||||
func (az *azSubnetsClient) List(resourceGroupName string, virtualNetworkName string) (SubnetListResultPage, error) {
|
||||
func (az *azSubnetsClient) List(ctx context.Context, resourceGroupName string, virtualNetworkName string) ([]network.Subnet, error) {
|
||||
if !az.rateLimiterReader.TryAccept() {
|
||||
return nil, createARMRateLimitErr(false, "SubnetList")
|
||||
}
|
||||
@ -726,10 +644,22 @@ func (az *azSubnetsClient) List(resourceGroupName string, virtualNetworkName str
|
||||
}()
|
||||
|
||||
mc := newMetricContext("subnets", "list", resourceGroupName, az.client.SubscriptionID)
|
||||
ctx := context.TODO()
|
||||
result, err := az.client.List(ctx, resourceGroupName, virtualNetworkName)
|
||||
mc.Observe(err)
|
||||
return &result, err
|
||||
iterator, err := az.client.ListComplete(ctx, resourceGroupName, virtualNetworkName)
|
||||
if err != nil {
|
||||
mc.Observe(err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
result := make([]network.Subnet, 0)
|
||||
for ; iterator.NotDone(); err = iterator.Next() {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
result = append(result, iterator.Value())
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// azSecurityGroupsClient implements SecurityGroupsClient.
|
||||
@ -753,13 +683,11 @@ func newAzSecurityGroupsClient(config *azClientConfig) *azSecurityGroupsClient {
|
||||
}
|
||||
}
|
||||
|
||||
func (az *azSecurityGroupsClient) CreateOrUpdate(resourceGroupName string, networkSecurityGroupName string, parameters network.SecurityGroup, cancel <-chan struct{}) (<-chan network.SecurityGroup, <-chan error) {
|
||||
func (az *azSecurityGroupsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, parameters network.SecurityGroup) (resp *http.Response, err error) {
|
||||
/* Write rate limiting */
|
||||
if !az.rateLimiterWriter.TryAccept() {
|
||||
errChan := createARMRateLimitErrChannel(true, "NSGCreateOrUpdate")
|
||||
resultChan := make(chan network.SecurityGroup, 1)
|
||||
resultChan <- network.SecurityGroup{}
|
||||
return resultChan, errChan
|
||||
err = createARMRateLimitErr(true, "NSGCreateOrUpdate")
|
||||
return
|
||||
}
|
||||
|
||||
glog.V(10).Infof("azSecurityGroupsClient.CreateOrUpdate(%q,%q): start", resourceGroupName, networkSecurityGroupName)
|
||||
@ -767,37 +695,23 @@ func (az *azSecurityGroupsClient) CreateOrUpdate(resourceGroupName string, netwo
|
||||
glog.V(10).Infof("azSecurityGroupsClient.CreateOrUpdate(%q,%q): end", resourceGroupName, networkSecurityGroupName)
|
||||
}()
|
||||
|
||||
ctx := context.TODO()
|
||||
resultChan := make(chan network.SecurityGroup, 1)
|
||||
errChan := make(chan error, 1)
|
||||
mc := newMetricContext("security_groups", "create_or_update", resourceGroupName, az.client.SubscriptionID)
|
||||
future, err := az.client.CreateOrUpdate(ctx, resourceGroupName, networkSecurityGroupName, parameters)
|
||||
if err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return resultChan, errChan
|
||||
return future.Response(), err
|
||||
}
|
||||
go func() {
|
||||
if err := future.WaitForCompletion(ctx, az.client.Client); err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return
|
||||
}
|
||||
result, err := future.Result(az.client)
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
resultChan <- result
|
||||
}()
|
||||
return resultChan, errChan
|
||||
|
||||
err = future.WaitForCompletion(ctx, az.client.Client)
|
||||
mc.Observe(err)
|
||||
return future.Response(), err
|
||||
}
|
||||
|
||||
func (az *azSecurityGroupsClient) Delete(resourceGroupName string, networkSecurityGroupName string, cancel <-chan struct{}) (<-chan autorest.Response, <-chan error) {
|
||||
func (az *azSecurityGroupsClient) Delete(ctx context.Context, resourceGroupName string, networkSecurityGroupName string) (resp *http.Response, err error) {
|
||||
/* Write rate limiting */
|
||||
if !az.rateLimiterWriter.TryAccept() {
|
||||
errChan := createARMRateLimitErrChannel(true, "NSGDelete")
|
||||
resultChan := make(chan autorest.Response, 1)
|
||||
resultChan <- autorest.Response{}
|
||||
return resultChan, errChan
|
||||
err = createARMRateLimitErr(true, "NSGDelete")
|
||||
return
|
||||
}
|
||||
|
||||
glog.V(10).Infof("azSecurityGroupsClient.Delete(%q,%q): start", resourceGroupName, networkSecurityGroupName)
|
||||
@ -805,31 +719,19 @@ func (az *azSecurityGroupsClient) Delete(resourceGroupName string, networkSecuri
|
||||
glog.V(10).Infof("azSecurityGroupsClient.Delete(%q,%q): end", resourceGroupName, networkSecurityGroupName)
|
||||
}()
|
||||
|
||||
ctx := context.TODO()
|
||||
resultChan := make(chan autorest.Response, 1)
|
||||
errChan := make(chan error, 1)
|
||||
mc := newMetricContext("security_groups", "delete", resourceGroupName, az.client.SubscriptionID)
|
||||
future, err := az.client.Delete(ctx, resourceGroupName, networkSecurityGroupName)
|
||||
if err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return resultChan, errChan
|
||||
return future.Response(), err
|
||||
}
|
||||
go func() {
|
||||
if err := future.WaitForCompletion(ctx, az.client.Client); err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return
|
||||
}
|
||||
result, err := future.Result(az.client)
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
resultChan <- result
|
||||
}()
|
||||
return resultChan, errChan
|
||||
|
||||
err = future.WaitForCompletion(ctx, az.client.Client)
|
||||
mc.Observe(err)
|
||||
return future.Response(), err
|
||||
}
|
||||
|
||||
func (az *azSecurityGroupsClient) Get(resourceGroupName string, networkSecurityGroupName string, expand string) (result network.SecurityGroup, err error) {
|
||||
func (az *azSecurityGroupsClient) Get(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, expand string) (result network.SecurityGroup, err error) {
|
||||
if !az.rateLimiterReader.TryAccept() {
|
||||
err = createARMRateLimitErr(false, "NSGGet")
|
||||
return
|
||||
@ -841,13 +743,12 @@ func (az *azSecurityGroupsClient) Get(resourceGroupName string, networkSecurityG
|
||||
}()
|
||||
|
||||
mc := newMetricContext("security_groups", "get", resourceGroupName, az.client.SubscriptionID)
|
||||
ctx := context.TODO()
|
||||
result, err = az.client.Get(ctx, resourceGroupName, networkSecurityGroupName, expand)
|
||||
mc.Observe(err)
|
||||
return
|
||||
}
|
||||
|
||||
func (az *azSecurityGroupsClient) List(resourceGroupName string) (SecurityGroupListResultPage, error) {
|
||||
func (az *azSecurityGroupsClient) List(ctx context.Context, resourceGroupName string) ([]network.SecurityGroup, error) {
|
||||
if !az.rateLimiterReader.TryAccept() {
|
||||
return nil, createARMRateLimitErr(false, "NSGList")
|
||||
}
|
||||
@ -858,10 +759,22 @@ func (az *azSecurityGroupsClient) List(resourceGroupName string) (SecurityGroupL
|
||||
}()
|
||||
|
||||
mc := newMetricContext("security_groups", "list", resourceGroupName, az.client.SubscriptionID)
|
||||
ctx := context.TODO()
|
||||
result, err := az.client.List(ctx, resourceGroupName)
|
||||
iterator, err := az.client.ListComplete(ctx, resourceGroupName)
|
||||
mc.Observe(err)
|
||||
return &result, err
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
result := make([]network.SecurityGroup, 0)
|
||||
for ; iterator.NotDone(); err = iterator.Next() {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
result = append(result, iterator.Value())
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// azVirtualMachineScaleSetsClient implements VirtualMachineScaleSetsClient.
|
||||
@ -1109,13 +1022,11 @@ func newAzRoutesClient(config *azClientConfig) *azRoutesClient {
|
||||
}
|
||||
}
|
||||
|
||||
func (az *azRoutesClient) CreateOrUpdate(resourceGroupName string, routeTableName string, routeName string, routeParameters network.Route, cancel <-chan struct{}) (<-chan network.Route, <-chan error) {
|
||||
func (az *azRoutesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, routeTableName string, routeName string, routeParameters network.Route) (resp *http.Response, err error) {
|
||||
/* Write rate limiting */
|
||||
if !az.rateLimiterWriter.TryAccept() {
|
||||
errChan := createARMRateLimitErrChannel(true, "RouteCreateOrUpdate")
|
||||
resultChan := make(chan network.Route, 1)
|
||||
resultChan <- network.Route{}
|
||||
return resultChan, errChan
|
||||
err = createARMRateLimitErr(true, "RouteCreateOrUpdate")
|
||||
return
|
||||
}
|
||||
|
||||
glog.V(10).Infof("azRoutesClient.CreateOrUpdate(%q,%q,%q): start", resourceGroupName, routeTableName, routeName)
|
||||
@ -1123,37 +1034,23 @@ func (az *azRoutesClient) CreateOrUpdate(resourceGroupName string, routeTableNam
|
||||
glog.V(10).Infof("azRoutesClient.CreateOrUpdate(%q,%q,%q): end", resourceGroupName, routeTableName, routeName)
|
||||
}()
|
||||
|
||||
ctx := context.TODO()
|
||||
resultChan := make(chan network.Route, 1)
|
||||
errChan := make(chan error, 1)
|
||||
mc := newMetricContext("routes", "create_or_update", resourceGroupName, az.client.SubscriptionID)
|
||||
future, err := az.client.CreateOrUpdate(ctx, resourceGroupName, routeTableName, routeName, routeParameters)
|
||||
if err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return resultChan, errChan
|
||||
return future.Response(), err
|
||||
}
|
||||
go func() {
|
||||
if err := future.WaitForCompletion(ctx, az.client.Client); err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return
|
||||
}
|
||||
result, err := future.Result(az.client)
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
resultChan <- result
|
||||
}()
|
||||
return resultChan, errChan
|
||||
|
||||
err = future.WaitForCompletion(ctx, az.client.Client)
|
||||
mc.Observe(err)
|
||||
return future.Response(), err
|
||||
}
|
||||
|
||||
func (az *azRoutesClient) Delete(resourceGroupName string, routeTableName string, routeName string, cancel <-chan struct{}) (<-chan autorest.Response, <-chan error) {
|
||||
func (az *azRoutesClient) Delete(ctx context.Context, resourceGroupName string, routeTableName string, routeName string) (resp *http.Response, err error) {
|
||||
/* Write rate limiting */
|
||||
if !az.rateLimiterWriter.TryAccept() {
|
||||
errChan := createARMRateLimitErrChannel(true, "RouteDelete")
|
||||
resultChan := make(chan autorest.Response, 1)
|
||||
resultChan <- autorest.Response{}
|
||||
return resultChan, errChan
|
||||
err = createARMRateLimitErr(true, "RouteDelete")
|
||||
return
|
||||
}
|
||||
|
||||
glog.V(10).Infof("azRoutesClient.Delete(%q,%q,%q): start", resourceGroupName, routeTableName, routeName)
|
||||
@ -1161,28 +1058,16 @@ func (az *azRoutesClient) Delete(resourceGroupName string, routeTableName string
|
||||
glog.V(10).Infof("azRoutesClient.Delete(%q,%q,%q): end", resourceGroupName, routeTableName, routeName)
|
||||
}()
|
||||
|
||||
ctx := context.TODO()
|
||||
resultChan := make(chan autorest.Response, 1)
|
||||
errChan := make(chan error, 1)
|
||||
mc := newMetricContext("routes", "delete", resourceGroupName, az.client.SubscriptionID)
|
||||
future, err := az.client.Delete(ctx, resourceGroupName, routeTableName, routeName)
|
||||
if err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return resultChan, errChan
|
||||
return future.Response(), err
|
||||
}
|
||||
go func() {
|
||||
if err := future.WaitForCompletion(ctx, az.client.Client); err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return
|
||||
}
|
||||
result, err := future.Result(az.client)
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
resultChan <- result
|
||||
}()
|
||||
return resultChan, errChan
|
||||
|
||||
err = future.WaitForCompletion(ctx, az.client.Client)
|
||||
mc.Observe(err)
|
||||
return future.Response(), err
|
||||
}
|
||||
|
||||
// azRouteTablesClient implements RouteTablesClient.
|
||||
@ -1206,13 +1091,11 @@ func newAzRouteTablesClient(config *azClientConfig) *azRouteTablesClient {
|
||||
}
|
||||
}
|
||||
|
||||
func (az *azRouteTablesClient) CreateOrUpdate(resourceGroupName string, routeTableName string, parameters network.RouteTable, cancel <-chan struct{}) (<-chan network.RouteTable, <-chan error) {
|
||||
func (az *azRouteTablesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, routeTableName string, parameters network.RouteTable) (resp *http.Response, err error) {
|
||||
/* Write rate limiting */
|
||||
if !az.rateLimiterWriter.TryAccept() {
|
||||
errChan := createARMRateLimitErrChannel(true, "RouteTableCreateOrUpdate")
|
||||
resultChan := make(chan network.RouteTable, 1)
|
||||
resultChan <- network.RouteTable{}
|
||||
return resultChan, errChan
|
||||
err = createARMRateLimitErr(true, "RouteTableCreateOrUpdate")
|
||||
return
|
||||
}
|
||||
|
||||
glog.V(10).Infof("azRouteTablesClient.CreateOrUpdate(%q,%q): start", resourceGroupName, routeTableName)
|
||||
@ -1220,31 +1103,19 @@ func (az *azRouteTablesClient) CreateOrUpdate(resourceGroupName string, routeTab
|
||||
glog.V(10).Infof("azRouteTablesClient.CreateOrUpdate(%q,%q): end", resourceGroupName, routeTableName)
|
||||
}()
|
||||
|
||||
ctx := context.TODO()
|
||||
resultChan := make(chan network.RouteTable, 1)
|
||||
errChan := make(chan error, 1)
|
||||
mc := newMetricContext("route_tables", "create_or_update", resourceGroupName, az.client.SubscriptionID)
|
||||
future, err := az.client.CreateOrUpdate(ctx, resourceGroupName, routeTableName, parameters)
|
||||
mc.Observe(err)
|
||||
if err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return resultChan, errChan
|
||||
return future.Response(), err
|
||||
}
|
||||
go func() {
|
||||
if err := future.WaitForCompletion(ctx, az.client.Client); err != nil {
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
return
|
||||
}
|
||||
result, err := future.Result(az.client)
|
||||
mc.Observe(err)
|
||||
errChan <- err
|
||||
resultChan <- result
|
||||
}()
|
||||
return resultChan, errChan
|
||||
|
||||
err = future.WaitForCompletion(ctx, az.client.Client)
|
||||
mc.Observe(err)
|
||||
return future.Response(), err
|
||||
}
|
||||
|
||||
func (az *azRouteTablesClient) Get(resourceGroupName string, routeTableName string, expand string) (result network.RouteTable, err error) {
|
||||
func (az *azRouteTablesClient) Get(ctx context.Context, resourceGroupName string, routeTableName string, expand string) (result network.RouteTable, err error) {
|
||||
if !az.rateLimiterReader.TryAccept() {
|
||||
err = createARMRateLimitErr(false, "GetRouteTable")
|
||||
return
|
||||
@ -1256,7 +1127,6 @@ func (az *azRouteTablesClient) Get(resourceGroupName string, routeTableName stri
|
||||
}()
|
||||
|
||||
mc := newMetricContext("route_tables", "get", resourceGroupName, az.client.SubscriptionID)
|
||||
ctx := context.TODO()
|
||||
result, err = az.client.Get(ctx, resourceGroupName, routeTableName, expand)
|
||||
mc.Observe(err)
|
||||
return
|
||||
|
@ -220,33 +220,19 @@ func newFakeAzureInterfacesClient() *fakeAzureInterfacesClient {
|
||||
return fIC
|
||||
}
|
||||
|
||||
func (fIC *fakeAzureInterfacesClient) CreateOrUpdate(resourceGroupName string, networkInterfaceName string, parameters network.Interface, cancel <-chan struct{}) (<-chan network.Interface, <-chan error) {
|
||||
func (fIC *fakeAzureInterfacesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, networkInterfaceName string, parameters network.Interface) (resp *http.Response, err error) {
|
||||
fIC.mutex.Lock()
|
||||
defer fIC.mutex.Unlock()
|
||||
resultChan := make(chan network.Interface, 1)
|
||||
errChan := make(chan error, 1)
|
||||
var result network.Interface
|
||||
var err error
|
||||
defer func() {
|
||||
resultChan <- result
|
||||
errChan <- err
|
||||
close(resultChan)
|
||||
close(errChan)
|
||||
}()
|
||||
|
||||
if _, ok := fIC.FakeStore[resourceGroupName]; !ok {
|
||||
fIC.FakeStore[resourceGroupName] = make(map[string]network.Interface)
|
||||
}
|
||||
fIC.FakeStore[resourceGroupName][networkInterfaceName] = parameters
|
||||
result = fIC.FakeStore[resourceGroupName][networkInterfaceName]
|
||||
result.Response.Response = &http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
}
|
||||
err = nil
|
||||
|
||||
return resultChan, errChan
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (fIC *fakeAzureInterfacesClient) Get(resourceGroupName string, networkInterfaceName string, expand string) (result network.Interface, err error) {
|
||||
func (fIC *fakeAzureInterfacesClient) Get(ctx context.Context, resourceGroupName string, networkInterfaceName string, expand string) (result network.Interface, err error) {
|
||||
fIC.mutex.Lock()
|
||||
defer fIC.mutex.Unlock()
|
||||
if _, ok := fIC.FakeStore[resourceGroupName]; ok {
|
||||
@ -260,7 +246,7 @@ func (fIC *fakeAzureInterfacesClient) Get(resourceGroupName string, networkInter
|
||||
}
|
||||
}
|
||||
|
||||
func (fIC *fakeAzureInterfacesClient) GetVirtualMachineScaleSetNetworkInterface(resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string, expand string) (result network.Interface, err error) {
|
||||
func (fIC *fakeAzureInterfacesClient) GetVirtualMachineScaleSetNetworkInterface(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string, expand string) (result network.Interface, err error) {
|
||||
return result, nil
|
||||
}
|
||||
|
||||
@ -328,67 +314,37 @@ func newFakeAzureSubnetsClient() *fakeAzureSubnetsClient {
|
||||
return fASC
|
||||
}
|
||||
|
||||
func (fASC *fakeAzureSubnetsClient) CreateOrUpdate(resourceGroupName string, virtualNetworkName string, subnetName string, subnetParameters network.Subnet, cancel <-chan struct{}) (<-chan network.Subnet, <-chan error) {
|
||||
func (fASC *fakeAzureSubnetsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, subnetParameters network.Subnet) (resp *http.Response, err error) {
|
||||
fASC.mutex.Lock()
|
||||
defer fASC.mutex.Unlock()
|
||||
resultChan := make(chan network.Subnet, 1)
|
||||
errChan := make(chan error, 1)
|
||||
var result network.Subnet
|
||||
var err error
|
||||
defer func() {
|
||||
resultChan <- result
|
||||
errChan <- err
|
||||
close(resultChan)
|
||||
close(errChan)
|
||||
}()
|
||||
|
||||
rgVnet := strings.Join([]string{resourceGroupName, virtualNetworkName}, "AND")
|
||||
if _, ok := fASC.FakeStore[rgVnet]; !ok {
|
||||
fASC.FakeStore[rgVnet] = make(map[string]network.Subnet)
|
||||
}
|
||||
fASC.FakeStore[rgVnet][subnetName] = subnetParameters
|
||||
result = fASC.FakeStore[rgVnet][subnetName]
|
||||
result.Response.Response = &http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
}
|
||||
err = nil
|
||||
return resultChan, errChan
|
||||
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (fASC *fakeAzureSubnetsClient) Delete(resourceGroupName string, virtualNetworkName string, subnetName string, cancel <-chan struct{}) (<-chan autorest.Response, <-chan error) {
|
||||
func (fASC *fakeAzureSubnetsClient) Delete(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string) (resp *http.Response, err error) {
|
||||
fASC.mutex.Lock()
|
||||
defer fASC.mutex.Unlock()
|
||||
respChan := make(chan autorest.Response, 1)
|
||||
errChan := make(chan error, 1)
|
||||
var resp autorest.Response
|
||||
var err error
|
||||
defer func() {
|
||||
respChan <- resp
|
||||
errChan <- err
|
||||
close(respChan)
|
||||
close(errChan)
|
||||
}()
|
||||
|
||||
rgVnet := strings.Join([]string{resourceGroupName, virtualNetworkName}, "AND")
|
||||
if rgSubnets, ok := fASC.FakeStore[rgVnet]; ok {
|
||||
if _, ok := rgSubnets[subnetName]; ok {
|
||||
delete(rgSubnets, subnetName)
|
||||
resp.Response = &http.Response{
|
||||
StatusCode: http.StatusAccepted,
|
||||
}
|
||||
err = nil
|
||||
return respChan, errChan
|
||||
return nil, nil
|
||||
}
|
||||
}
|
||||
resp.Response = &http.Response{
|
||||
|
||||
return &http.Response{
|
||||
StatusCode: http.StatusNotFound,
|
||||
}
|
||||
err = autorest.DetailedError{
|
||||
StatusCode: http.StatusNotFound,
|
||||
Message: "Not such Subnet",
|
||||
}
|
||||
return respChan, errChan
|
||||
}, nil
|
||||
}
|
||||
func (fASC *fakeAzureSubnetsClient) Get(resourceGroupName string, virtualNetworkName string, subnetName string, expand string) (result network.Subnet, err error) {
|
||||
|
||||
func (fASC *fakeAzureSubnetsClient) Get(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, expand string) (result network.Subnet, err error) {
|
||||
fASC.mutex.Lock()
|
||||
defer fASC.mutex.Unlock()
|
||||
rgVnet := strings.Join([]string{resourceGroupName, virtualNetworkName}, "AND")
|
||||
@ -403,30 +359,10 @@ func (fASC *fakeAzureSubnetsClient) Get(resourceGroupName string, virtualNetwork
|
||||
}
|
||||
}
|
||||
|
||||
type fakeSubnetListResultPage struct {
|
||||
next SubnetListResultPage
|
||||
value network.SubnetListResult
|
||||
values []network.Subnet
|
||||
err error
|
||||
}
|
||||
|
||||
func (pg *fakeSubnetListResultPage) Next() error {
|
||||
return nil
|
||||
}
|
||||
func (pg *fakeSubnetListResultPage) NotDone() bool {
|
||||
return pg.next != nil
|
||||
}
|
||||
|
||||
func (pg *fakeSubnetListResultPage) Response() network.SubnetListResult {
|
||||
return pg.value
|
||||
}
|
||||
func (pg *fakeSubnetListResultPage) Values() []network.Subnet {
|
||||
return pg.values
|
||||
}
|
||||
|
||||
func (fASC *fakeAzureSubnetsClient) List(resourceGroupName string, virtualNetworkName string) (result SubnetListResultPage, err error) {
|
||||
func (fASC *fakeAzureSubnetsClient) List(ctx context.Context, resourceGroupName string, virtualNetworkName string) (result []network.Subnet, err error) {
|
||||
fASC.mutex.Lock()
|
||||
defer fASC.mutex.Unlock()
|
||||
|
||||
rgVnet := strings.Join([]string{resourceGroupName, virtualNetworkName}, "AND")
|
||||
var value []network.Subnet
|
||||
if _, ok := fASC.FakeStore[rgVnet]; ok {
|
||||
@ -434,12 +370,8 @@ func (fASC *fakeAzureSubnetsClient) List(resourceGroupName string, virtualNetwor
|
||||
value = append(value, v)
|
||||
}
|
||||
}
|
||||
return &fakeSubnetListResultPage{
|
||||
value: network.SubnetListResult{
|
||||
Value: &value,
|
||||
},
|
||||
values: value,
|
||||
}, nil
|
||||
|
||||
return value, nil
|
||||
}
|
||||
|
||||
type fakeAzureNSGClient struct {
|
||||
@ -454,65 +386,35 @@ func newFakeAzureNSGClient() *fakeAzureNSGClient {
|
||||
return fNSG
|
||||
}
|
||||
|
||||
func (fNSG *fakeAzureNSGClient) CreateOrUpdate(resourceGroupName string, networkSecurityGroupName string, parameters network.SecurityGroup, cancel <-chan struct{}) (<-chan network.SecurityGroup, <-chan error) {
|
||||
func (fNSG *fakeAzureNSGClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, parameters network.SecurityGroup) (resp *http.Response, err error) {
|
||||
fNSG.mutex.Lock()
|
||||
defer fNSG.mutex.Unlock()
|
||||
resultChan := make(chan network.SecurityGroup, 1)
|
||||
errChan := make(chan error, 1)
|
||||
var result network.SecurityGroup
|
||||
var err error
|
||||
defer func() {
|
||||
resultChan <- result
|
||||
errChan <- err
|
||||
close(resultChan)
|
||||
close(errChan)
|
||||
}()
|
||||
|
||||
if _, ok := fNSG.FakeStore[resourceGroupName]; !ok {
|
||||
fNSG.FakeStore[resourceGroupName] = make(map[string]network.SecurityGroup)
|
||||
}
|
||||
fNSG.FakeStore[resourceGroupName][networkSecurityGroupName] = parameters
|
||||
result = fNSG.FakeStore[resourceGroupName][networkSecurityGroupName]
|
||||
result.Response.Response = &http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
}
|
||||
err = nil
|
||||
return resultChan, errChan
|
||||
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (fNSG *fakeAzureNSGClient) Delete(resourceGroupName string, networkSecurityGroupName string, cancel <-chan struct{}) (<-chan autorest.Response, <-chan error) {
|
||||
func (fNSG *fakeAzureNSGClient) Delete(ctx context.Context, resourceGroupName string, networkSecurityGroupName string) (resp *http.Response, err error) {
|
||||
fNSG.mutex.Lock()
|
||||
defer fNSG.mutex.Unlock()
|
||||
respChan := make(chan autorest.Response, 1)
|
||||
errChan := make(chan error, 1)
|
||||
var resp autorest.Response
|
||||
var err error
|
||||
defer func() {
|
||||
respChan <- resp
|
||||
errChan <- err
|
||||
close(respChan)
|
||||
close(errChan)
|
||||
}()
|
||||
|
||||
if rgSGs, ok := fNSG.FakeStore[resourceGroupName]; ok {
|
||||
if _, ok := rgSGs[networkSecurityGroupName]; ok {
|
||||
delete(rgSGs, networkSecurityGroupName)
|
||||
resp.Response = &http.Response{
|
||||
StatusCode: http.StatusAccepted,
|
||||
}
|
||||
err = nil
|
||||
return respChan, errChan
|
||||
return nil, nil
|
||||
}
|
||||
}
|
||||
resp.Response = &http.Response{
|
||||
|
||||
return &http.Response{
|
||||
StatusCode: http.StatusNotFound,
|
||||
}
|
||||
err = autorest.DetailedError{
|
||||
StatusCode: http.StatusNotFound,
|
||||
Message: "Not such NSG",
|
||||
}
|
||||
return respChan, errChan
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (fNSG *fakeAzureNSGClient) Get(resourceGroupName string, networkSecurityGroupName string, expand string) (result network.SecurityGroup, err error) {
|
||||
func (fNSG *fakeAzureNSGClient) Get(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, expand string) (result network.SecurityGroup, err error) {
|
||||
fNSG.mutex.Lock()
|
||||
defer fNSG.mutex.Unlock()
|
||||
if _, ok := fNSG.FakeStore[resourceGroupName]; ok {
|
||||
@ -526,43 +428,18 @@ func (fNSG *fakeAzureNSGClient) Get(resourceGroupName string, networkSecurityGro
|
||||
}
|
||||
}
|
||||
|
||||
type fakeSecurityGroupListResultPage struct {
|
||||
next SecurityGroupListResultPage
|
||||
value network.SecurityGroupListResult
|
||||
values []network.SecurityGroup
|
||||
err error
|
||||
}
|
||||
|
||||
func (pg *fakeSecurityGroupListResultPage) Next() error {
|
||||
return nil
|
||||
}
|
||||
func (pg *fakeSecurityGroupListResultPage) NotDone() bool {
|
||||
return pg.next != nil
|
||||
}
|
||||
|
||||
func (pg *fakeSecurityGroupListResultPage) Response() network.SecurityGroupListResult {
|
||||
return pg.value
|
||||
}
|
||||
func (pg *fakeSecurityGroupListResultPage) Values() []network.SecurityGroup {
|
||||
return pg.values
|
||||
}
|
||||
|
||||
func (fNSG *fakeAzureNSGClient) List(resourceGroupName string) (result SecurityGroupListResultPage, err error) {
|
||||
func (fNSG *fakeAzureNSGClient) List(ctx context.Context, resourceGroupName string) (result []network.SecurityGroup, err error) {
|
||||
fNSG.mutex.Lock()
|
||||
defer fNSG.mutex.Unlock()
|
||||
|
||||
var value []network.SecurityGroup
|
||||
if _, ok := fNSG.FakeStore[resourceGroupName]; ok {
|
||||
for _, v := range fNSG.FakeStore[resourceGroupName] {
|
||||
value = append(value, v)
|
||||
}
|
||||
}
|
||||
result = &fakeSecurityGroupListResultPage{
|
||||
value: network.SecurityGroupListResult{
|
||||
Value: &value,
|
||||
},
|
||||
values: value,
|
||||
}
|
||||
return result, nil
|
||||
|
||||
return value, nil
|
||||
}
|
||||
|
||||
func getRandomIPPtr() *string {
|
||||
@ -722,66 +599,32 @@ func newFakeRoutesClient() *fakeRoutesClient {
|
||||
return fRC
|
||||
}
|
||||
|
||||
func (fRC *fakeRoutesClient) CreateOrUpdate(resourceGroupName string, routeTableName string, routeName string, routeParameters network.Route, cancel <-chan struct{}) (<-chan network.Route, <-chan error) {
|
||||
func (fRC *fakeRoutesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, routeTableName string, routeName string, routeParameters network.Route) (resp *http.Response, err error) {
|
||||
fRC.mutex.Lock()
|
||||
defer fRC.mutex.Unlock()
|
||||
|
||||
resultChan := make(chan network.Route, 1)
|
||||
errChan := make(chan error, 1)
|
||||
var result network.Route
|
||||
var err error
|
||||
defer func() {
|
||||
resultChan <- result
|
||||
errChan <- err
|
||||
close(resultChan)
|
||||
close(errChan)
|
||||
}()
|
||||
|
||||
if _, ok := fRC.FakeStore[routeTableName]; !ok {
|
||||
fRC.FakeStore[routeTableName] = make(map[string]network.Route)
|
||||
}
|
||||
fRC.FakeStore[routeTableName][routeName] = routeParameters
|
||||
result = fRC.FakeStore[routeTableName][routeName]
|
||||
result.Response.Response = &http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
}
|
||||
err = nil
|
||||
return resultChan, errChan
|
||||
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (fRC *fakeRoutesClient) Delete(resourceGroupName string, routeTableName string, routeName string, cancel <-chan struct{}) (<-chan autorest.Response, <-chan error) {
|
||||
func (fRC *fakeRoutesClient) Delete(ctx context.Context, resourceGroupName string, routeTableName string, routeName string) (resp *http.Response, err error) {
|
||||
fRC.mutex.Lock()
|
||||
defer fRC.mutex.Unlock()
|
||||
|
||||
respChan := make(chan autorest.Response, 1)
|
||||
errChan := make(chan error, 1)
|
||||
var resp autorest.Response
|
||||
var err error
|
||||
defer func() {
|
||||
respChan <- resp
|
||||
errChan <- err
|
||||
close(respChan)
|
||||
close(errChan)
|
||||
}()
|
||||
if routes, ok := fRC.FakeStore[routeTableName]; ok {
|
||||
if _, ok := routes[routeName]; ok {
|
||||
delete(routes, routeName)
|
||||
resp.Response = &http.Response{
|
||||
StatusCode: http.StatusAccepted,
|
||||
}
|
||||
|
||||
err = nil
|
||||
return respChan, errChan
|
||||
return nil, nil
|
||||
}
|
||||
}
|
||||
resp.Response = &http.Response{
|
||||
|
||||
return &http.Response{
|
||||
StatusCode: http.StatusNotFound,
|
||||
}
|
||||
err = autorest.DetailedError{
|
||||
StatusCode: http.StatusNotFound,
|
||||
Message: "Not such Route",
|
||||
}
|
||||
return respChan, errChan
|
||||
}, nil
|
||||
}
|
||||
|
||||
type fakeRouteTablesClient struct {
|
||||
@ -797,36 +640,21 @@ func newFakeRouteTablesClient() *fakeRouteTablesClient {
|
||||
return fRTC
|
||||
}
|
||||
|
||||
func (fRTC *fakeRouteTablesClient) CreateOrUpdate(resourceGroupName string, routeTableName string, parameters network.RouteTable, cancel <-chan struct{}) (<-chan network.RouteTable, <-chan error) {
|
||||
func (fRTC *fakeRouteTablesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, routeTableName string, parameters network.RouteTable) (resp *http.Response, err error) {
|
||||
fRTC.mutex.Lock()
|
||||
defer fRTC.mutex.Unlock()
|
||||
|
||||
fRTC.Calls = append(fRTC.Calls, "CreateOrUpdate")
|
||||
|
||||
resultChan := make(chan network.RouteTable, 1)
|
||||
errChan := make(chan error, 1)
|
||||
var result network.RouteTable
|
||||
var err error
|
||||
defer func() {
|
||||
resultChan <- result
|
||||
errChan <- err
|
||||
close(resultChan)
|
||||
close(errChan)
|
||||
}()
|
||||
|
||||
if _, ok := fRTC.FakeStore[resourceGroupName]; !ok {
|
||||
fRTC.FakeStore[resourceGroupName] = make(map[string]network.RouteTable)
|
||||
}
|
||||
fRTC.FakeStore[resourceGroupName][routeTableName] = parameters
|
||||
result = fRTC.FakeStore[resourceGroupName][routeTableName]
|
||||
result.Response.Response = &http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
}
|
||||
err = nil
|
||||
return resultChan, errChan
|
||||
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (fRTC *fakeRouteTablesClient) Get(resourceGroupName string, routeTableName string, expand string) (result network.RouteTable, err error) {
|
||||
func (fRTC *fakeRouteTablesClient) Get(ctx context.Context, resourceGroupName string, routeTableName string, expand string) (result network.RouteTable, err error) {
|
||||
fRTC.mutex.Lock()
|
||||
defer fRTC.mutex.Unlock()
|
||||
|
||||
|
@ -82,11 +82,11 @@ func (az *Cloud) createRouteTable() error {
|
||||
}
|
||||
|
||||
glog.V(3).Infof("create: creating routetable. routeTableName=%q", az.RouteTableName)
|
||||
respChan, errChan := az.RouteTablesClient.CreateOrUpdate(az.ResourceGroup, az.RouteTableName, routeTable, nil)
|
||||
resp := <-respChan
|
||||
err := <-errChan
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
resp, err := az.RouteTablesClient.CreateOrUpdate(ctx, az.ResourceGroup, az.RouteTableName, routeTable)
|
||||
glog.V(10).Infof("RouteTablesClient.CreateOrUpdate(%q): end", az.RouteTableName)
|
||||
if az.CloudProviderBackoff && shouldRetryAPIRequest(resp.Response, err) {
|
||||
if az.CloudProviderBackoff && shouldRetryHTTPRequest(resp, err) {
|
||||
glog.V(2).Infof("create backing off: creating routetable. routeTableName=%q", az.RouteTableName)
|
||||
retryErr := az.CreateOrUpdateRouteTableWithRetry(routeTable)
|
||||
if retryErr != nil {
|
||||
@ -127,11 +127,11 @@ func (az *Cloud) CreateRoute(ctx context.Context, clusterName string, nameHint s
|
||||
}
|
||||
|
||||
glog.V(3).Infof("create: creating route: instance=%q cidr=%q", kubeRoute.TargetNode, kubeRoute.DestinationCIDR)
|
||||
respChan, errChan := az.RoutesClient.CreateOrUpdate(az.ResourceGroup, az.RouteTableName, *route.Name, route, nil)
|
||||
resp := <-respChan
|
||||
err = <-errChan
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
resp, err := az.RoutesClient.CreateOrUpdate(ctx, az.ResourceGroup, az.RouteTableName, *route.Name, route)
|
||||
glog.V(10).Infof("RoutesClient.CreateOrUpdate(%q): end", az.RouteTableName)
|
||||
if az.CloudProviderBackoff && shouldRetryAPIRequest(resp.Response, err) {
|
||||
if az.CloudProviderBackoff && shouldRetryHTTPRequest(resp, err) {
|
||||
glog.V(2).Infof("create backing off: creating route: instance=%q cidr=%q", kubeRoute.TargetNode, kubeRoute.DestinationCIDR)
|
||||
retryErr := az.CreateOrUpdateRouteWithRetry(route)
|
||||
if retryErr != nil {
|
||||
@ -152,13 +152,13 @@ func (az *Cloud) CreateRoute(ctx context.Context, clusterName string, nameHint s
|
||||
func (az *Cloud) DeleteRoute(ctx context.Context, clusterName string, kubeRoute *cloudprovider.Route) error {
|
||||
glog.V(2).Infof("delete: deleting route. clusterName=%q instance=%q cidr=%q", clusterName, kubeRoute.TargetNode, kubeRoute.DestinationCIDR)
|
||||
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
routeName := mapNodeNameToRouteName(kubeRoute.TargetNode)
|
||||
respChan, errChan := az.RoutesClient.Delete(az.ResourceGroup, az.RouteTableName, routeName, nil)
|
||||
resp := <-respChan
|
||||
err := <-errChan
|
||||
resp, err := az.RoutesClient.Delete(ctx, az.ResourceGroup, az.RouteTableName, routeName)
|
||||
glog.V(10).Infof("RoutesClient.Delete(%q): end", az.RouteTableName)
|
||||
|
||||
if az.CloudProviderBackoff && shouldRetryAPIRequest(resp, err) {
|
||||
if az.CloudProviderBackoff && shouldRetryHTTPRequest(resp, err) {
|
||||
glog.V(2).Infof("delete backing off: deleting route. clusterName=%q instance=%q cidr=%q", clusterName, kubeRoute.TargetNode, kubeRoute.DestinationCIDR)
|
||||
retryErr := az.DeleteRouteWithRetry(routeName)
|
||||
if retryErr != nil {
|
||||
|
@ -584,7 +584,9 @@ func (as *availabilitySet) GetPrimaryInterface(nodeName, vmSetName string) (netw
|
||||
}
|
||||
}
|
||||
|
||||
nic, err := as.InterfacesClient.Get(as.ResourceGroup, nicName, "")
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
nic, err := as.InterfacesClient.Get(ctx, as.ResourceGroup, nicName, "")
|
||||
if err != nil {
|
||||
return network.Interface{}, err
|
||||
}
|
||||
@ -652,11 +654,11 @@ func (as *availabilitySet) ensureHostInPool(serviceName string, nodeName types.N
|
||||
|
||||
nicName := *nic.Name
|
||||
glog.V(3).Infof("nicupdate(%s): nic(%s) - updating", serviceName, nicName)
|
||||
respChan, errChan := as.InterfacesClient.CreateOrUpdate(as.ResourceGroup, *nic.Name, nic, nil)
|
||||
resp := <-respChan
|
||||
err := <-errChan
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
resp, err := as.InterfacesClient.CreateOrUpdate(ctx, as.ResourceGroup, *nic.Name, nic)
|
||||
glog.V(10).Infof("InterfacesClient.CreateOrUpdate(%q): end", *nic.Name)
|
||||
if as.CloudProviderBackoff && shouldRetryAPIRequest(resp.Response, err) {
|
||||
if as.CloudProviderBackoff && shouldRetryHTTPRequest(resp, err) {
|
||||
glog.V(2).Infof("nicupdate(%s) backing off: nic(%s) - updating, err=%v", serviceName, nicName, err)
|
||||
retryErr := as.CreateOrUpdateInterfaceWithRetry(nic)
|
||||
if retryErr != nil {
|
||||
|
@ -1056,7 +1056,9 @@ func getClusterResources(az *Cloud, vmCount int, availabilitySetCount int) (clus
|
||||
},
|
||||
},
|
||||
}
|
||||
az.InterfacesClient.CreateOrUpdate(az.Config.ResourceGroup, nicName, newNIC, nil)
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
az.InterfacesClient.CreateOrUpdate(ctx, az.Config.ResourceGroup, nicName, newNIC)
|
||||
|
||||
// create vm
|
||||
asID := az.getAvailabilitySetID(asName)
|
||||
@ -1077,9 +1079,9 @@ func getClusterResources(az *Cloud, vmCount int, availabilitySetCount int) (clus
|
||||
},
|
||||
}
|
||||
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
_, err := az.VirtualMachinesClient.CreateOrUpdate(ctx, az.Config.ResourceGroup, vmName, newVM)
|
||||
vmCtx, vmCancel := getContextWithCancel()
|
||||
defer vmCancel()
|
||||
_, err := az.VirtualMachinesClient.CreateOrUpdate(vmCtx, az.Config.ResourceGroup, vmName, newVM)
|
||||
if err != nil {
|
||||
}
|
||||
// add to kubernetes
|
||||
@ -1176,11 +1178,13 @@ func getTestSecurityGroup(az *Cloud, services ...v1.Service) *network.SecurityGr
|
||||
},
|
||||
}
|
||||
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
az.SecurityGroupsClient.CreateOrUpdate(
|
||||
ctx,
|
||||
az.ResourceGroup,
|
||||
az.SecurityGroupName,
|
||||
sg,
|
||||
nil)
|
||||
sg)
|
||||
|
||||
return &sg
|
||||
}
|
||||
@ -1854,13 +1858,15 @@ func addTestSubnet(t *testing.T, az *Cloud, svc *v1.Service) {
|
||||
az.VnetName,
|
||||
subName)
|
||||
|
||||
_, errChan := az.SubnetsClient.CreateOrUpdate(az.VnetResourceGroup, az.VnetName, subName,
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
_, err := az.SubnetsClient.CreateOrUpdate(ctx, az.VnetResourceGroup, az.VnetName, subName,
|
||||
network.Subnet{
|
||||
ID: &subnetID,
|
||||
Name: &subName,
|
||||
}, nil)
|
||||
})
|
||||
|
||||
if err := <-errChan; err != nil {
|
||||
if err != nil {
|
||||
t.Errorf("Subnet cannot be created or update, %v", err)
|
||||
}
|
||||
svc.Annotations[ServiceAnnotationLoadBalancerInternalSubnet] = subName
|
||||
|
@ -453,7 +453,9 @@ func (ss *scaleSet) GetPrimaryInterface(nodeName, vmSetName string) (network.Int
|
||||
return network.Interface{}, err
|
||||
}
|
||||
|
||||
nic, err := ss.InterfacesClient.GetVirtualMachineScaleSetNetworkInterface(ss.ResourceGroup, ssName, instanceID, nicName, "")
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
nic, err := ss.InterfacesClient.GetVirtualMachineScaleSetNetworkInterface(ctx, ss.ResourceGroup, ssName, instanceID, nicName, "")
|
||||
if err != nil {
|
||||
glog.Errorf("error: ss.GetPrimaryInterface(%s), ss.GetVirtualMachineScaleSetNetworkInterface.Get(%s, %s, %s), err=%v", nodeName, ss.ResourceGroup, ssName, nicName, err)
|
||||
return network.Interface{}, err
|
||||
|
@ -129,7 +129,9 @@ func (az *Cloud) getSubnet(virtualNetworkName string, subnetName string) (subnet
|
||||
rg = az.ResourceGroup
|
||||
}
|
||||
|
||||
subnet, err = az.SubnetsClient.Get(rg, virtualNetworkName, subnetName, "")
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
subnet, err = az.SubnetsClient.Get(ctx, rg, virtualNetworkName, subnetName, "")
|
||||
exists, realErr = checkResourceExistsFromError(err)
|
||||
if realErr != nil {
|
||||
return subnet, false, realErr
|
||||
@ -217,7 +219,9 @@ func (az *Cloud) newLBCache() (*timedCache, error) {
|
||||
|
||||
func (az *Cloud) newNSGCache() (*timedCache, error) {
|
||||
getter := func(key string) (interface{}, error) {
|
||||
nsg, err := az.SecurityGroupsClient.Get(az.ResourceGroup, key, "")
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
nsg, err := az.SecurityGroupsClient.Get(ctx, az.ResourceGroup, key, "")
|
||||
exists, realErr := checkResourceExistsFromError(err)
|
||||
if realErr != nil {
|
||||
return nil, realErr
|
||||
@ -235,7 +239,9 @@ func (az *Cloud) newNSGCache() (*timedCache, error) {
|
||||
|
||||
func (az *Cloud) newRouteTableCache() (*timedCache, error) {
|
||||
getter := func(key string) (interface{}, error) {
|
||||
rt, err := az.RouteTablesClient.Get(az.ResourceGroup, key, "")
|
||||
ctx, cancel := getContextWithCancel()
|
||||
defer cancel()
|
||||
rt, err := az.RouteTablesClient.Get(ctx, az.ResourceGroup, key, "")
|
||||
exists, realErr := checkResourceExistsFromError(err)
|
||||
if realErr != nil {
|
||||
return nil, realErr
|
||||
|
Loading…
Reference in New Issue
Block a user