@@ -23,31 +23,20 @@ import (
2323 "net/http"
2424 "time"
2525
26- "github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2018-10 -01/compute"
26+ "github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-07 -01/compute"
2727 "github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2018-03-31/containerservice"
2828 "github.com/Azure/azure-sdk-for-go/services/network/mgmt/2017-09-01/network"
2929 "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2017-05-10/resources"
3030 "github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2018-07-01/storage"
3131 "github.com/Azure/go-autorest/autorest"
3232 "github.com/Azure/go-autorest/autorest/adal"
3333 "github.com/Azure/go-autorest/autorest/azure"
34+
3435 "k8s.io/klog"
36+ "k8s.io/legacy-cloud-providers/azure/clients/vmssclient"
37+ "k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient"
3538)
3639
37- // VirtualMachineScaleSetsClient defines needed functions for azure compute.VirtualMachineScaleSetsClient.
38- type VirtualMachineScaleSetsClient interface {
39- Get (ctx context.Context , resourceGroupName string , vmScaleSetName string ) (result compute.VirtualMachineScaleSet , err error )
40- CreateOrUpdate (ctx context.Context , resourceGroupName string , name string , parameters compute.VirtualMachineScaleSet ) (resp * http.Response , err error )
41- DeleteInstances (ctx context.Context , resourceGroupName string , vmScaleSetName string , vmInstanceIDs compute.VirtualMachineScaleSetVMInstanceRequiredIDs ) (resp * http.Response , err error )
42- List (ctx context.Context , resourceGroupName string ) (result []compute.VirtualMachineScaleSet , err error )
43- }
44-
45- // VirtualMachineScaleSetVMsClient defines needed functions for azure compute.VirtualMachineScaleSetVMsClient.
46- type VirtualMachineScaleSetVMsClient interface {
47- Get (ctx context.Context , resourceGroupName string , VMScaleSetName string , instanceID string ) (result compute.VirtualMachineScaleSetVM , err error )
48- List (ctx context.Context , resourceGroupName string , virtualMachineScaleSetName string , filter string , selectParameter string , expand string ) (result []compute.VirtualMachineScaleSetVM , err error )
49- }
50-
5140// VirtualMachinesClient defines needed functions for azure compute.VirtualMachinesClient.
5241type VirtualMachinesClient interface {
5342 Get (ctx context.Context , resourceGroupName string , VMName string , expand compute.InstanceViewTypes ) (result compute.VirtualMachine , err error )
@@ -79,134 +68,6 @@ type AccountsClient interface {
7968 ListKeys (ctx context.Context , resourceGroupName string , accountName string ) (result storage.AccountListKeysResult , err error )
8069}
8170
82- // azVirtualMachineScaleSetsClient implements VirtualMachineScaleSetsClient.
83- type azVirtualMachineScaleSetsClient struct {
84- client compute.VirtualMachineScaleSetsClient
85- }
86-
87- func newAzVirtualMachineScaleSetsClient (subscriptionID , endpoint string , servicePrincipalToken * adal.ServicePrincipalToken ) * azVirtualMachineScaleSetsClient {
88- virtualMachineScaleSetsClient := compute .NewVirtualMachineScaleSetsClient (subscriptionID )
89- virtualMachineScaleSetsClient .BaseURI = endpoint
90- virtualMachineScaleSetsClient .Authorizer = autorest .NewBearerAuthorizer (servicePrincipalToken )
91- virtualMachineScaleSetsClient .PollingDelay = 5 * time .Second
92- configureUserAgent (& virtualMachineScaleSetsClient .Client )
93-
94- return & azVirtualMachineScaleSetsClient {
95- client : virtualMachineScaleSetsClient ,
96- }
97- }
98-
99- func (az * azVirtualMachineScaleSetsClient ) CreateOrUpdate (ctx context.Context , resourceGroupName string , VMScaleSetName string , parameters compute.VirtualMachineScaleSet ) (resp * http.Response , err error ) {
100- klog .V (10 ).Infof ("azVirtualMachineScaleSetsClient.CreateOrUpdate(%q,%q): start" , resourceGroupName , VMScaleSetName )
101- defer func () {
102- klog .V (10 ).Infof ("azVirtualMachineScaleSetsClient.CreateOrUpdate(%q,%q): end" , resourceGroupName , VMScaleSetName )
103- }()
104-
105- future , err := az .client .CreateOrUpdate (ctx , resourceGroupName , VMScaleSetName , parameters )
106- if err != nil {
107- return future .Response (), err
108- }
109-
110- err = future .WaitForCompletionRef (ctx , az .client .Client )
111- return future .Response (), err
112- }
113-
114- func (az * azVirtualMachineScaleSetsClient ) Get (ctx context.Context , resourceGroupName string , VMScaleSetName string ) (result compute.VirtualMachineScaleSet , err error ) {
115- klog .V (10 ).Infof ("azVirtualMachineScaleSetsClient.Get(%q,%q): start" , resourceGroupName , VMScaleSetName )
116- defer func () {
117- klog .V (10 ).Infof ("azVirtualMachineScaleSetsClient.Get(%q,%q): end" , resourceGroupName , VMScaleSetName )
118- }()
119-
120- return az .client .Get (ctx , resourceGroupName , VMScaleSetName )
121- }
122-
123- func (az * azVirtualMachineScaleSetsClient ) List (ctx context.Context , resourceGroupName string ) (result []compute.VirtualMachineScaleSet , err error ) {
124- klog .V (10 ).Infof ("azVirtualMachineScaleSetsClient.List(%q): start" , resourceGroupName )
125- defer func () {
126- klog .V (10 ).Infof ("azVirtualMachineScaleSetsClient.List(%q): end" , resourceGroupName )
127- }()
128-
129- iterator , err := az .client .ListComplete (ctx , resourceGroupName )
130- if err != nil {
131- return nil , err
132- }
133-
134- result = make ([]compute.VirtualMachineScaleSet , 0 )
135- for ; iterator .NotDone (); err = iterator .Next () {
136- if err != nil {
137- return nil , err
138- }
139-
140- result = append (result , iterator .Value ())
141- }
142-
143- return result , nil
144- }
145-
146- func (az * azVirtualMachineScaleSetsClient ) DeleteInstances (ctx context.Context , resourceGroupName string , vmScaleSetName string , vmInstanceIDs compute.VirtualMachineScaleSetVMInstanceRequiredIDs ) (resp * http.Response , err error ) {
147- klog .V (10 ).Infof ("azVirtualMachineScaleSetsClient.DeleteInstances(%q,%q,%v): start" , resourceGroupName , vmScaleSetName , vmInstanceIDs )
148- defer func () {
149- klog .V (10 ).Infof ("azVirtualMachineScaleSetsClient.DeleteInstances(%q,%q,%v): end" , resourceGroupName , vmScaleSetName , vmInstanceIDs )
150- }()
151-
152- future , err := az .client .DeleteInstances (ctx , resourceGroupName , vmScaleSetName , vmInstanceIDs )
153- if err != nil {
154- return future .Response (), err
155- }
156-
157- err = future .WaitForCompletionRef (ctx , az .client .Client )
158- return future .Response (), err
159- }
160-
161- // azVirtualMachineScaleSetVMsClient implements VirtualMachineScaleSetVMsClient.
162- type azVirtualMachineScaleSetVMsClient struct {
163- client compute.VirtualMachineScaleSetVMsClient
164- }
165-
166- func newAzVirtualMachineScaleSetVMsClient (subscriptionID , endpoint string , servicePrincipalToken * adal.ServicePrincipalToken ) * azVirtualMachineScaleSetVMsClient {
167- virtualMachineScaleSetVMsClient := compute .NewVirtualMachineScaleSetVMsClient (subscriptionID )
168- virtualMachineScaleSetVMsClient .BaseURI = endpoint
169- virtualMachineScaleSetVMsClient .Authorizer = autorest .NewBearerAuthorizer (servicePrincipalToken )
170- virtualMachineScaleSetVMsClient .PollingDelay = 5 * time .Second
171- configureUserAgent (& virtualMachineScaleSetVMsClient .Client )
172-
173- return & azVirtualMachineScaleSetVMsClient {
174- client : virtualMachineScaleSetVMsClient ,
175- }
176- }
177-
178- func (az * azVirtualMachineScaleSetVMsClient ) Get (ctx context.Context , resourceGroupName string , VMScaleSetName string , instanceID string ) (result compute.VirtualMachineScaleSetVM , err error ) {
179- klog .V (10 ).Infof ("azVirtualMachineScaleSetVMsClient.Get(%q,%q,%q): start" , resourceGroupName , VMScaleSetName , instanceID )
180- defer func () {
181- klog .V (10 ).Infof ("azVirtualMachineScaleSetVMsClient.Get(%q,%q,%q): end" , resourceGroupName , VMScaleSetName , instanceID )
182- }()
183-
184- return az .client .Get (ctx , resourceGroupName , VMScaleSetName , instanceID )
185- }
186-
187- func (az * azVirtualMachineScaleSetVMsClient ) List (ctx context.Context , resourceGroupName string , virtualMachineScaleSetName string , filter string , selectParameter string , expand string ) (result []compute.VirtualMachineScaleSetVM , err error ) {
188- klog .V (10 ).Infof ("azVirtualMachineScaleSetVMsClient.List(%q,%q,%q): start" , resourceGroupName , virtualMachineScaleSetName , filter )
189- defer func () {
190- klog .V (10 ).Infof ("azVirtualMachineScaleSetVMsClient.List(%q,%q,%q): end" , resourceGroupName , virtualMachineScaleSetName , filter )
191- }()
192-
193- iterator , err := az .client .ListComplete (ctx , resourceGroupName , virtualMachineScaleSetName , filter , selectParameter , expand )
194- if err != nil {
195- return nil , err
196- }
197-
198- result = make ([]compute.VirtualMachineScaleSetVM , 0 )
199- for ; iterator .NotDone (); err = iterator .Next () {
200- if err != nil {
201- return nil , err
202- }
203-
204- result = append (result , iterator .Value ())
205- }
206-
207- return result , nil
208- }
209-
21071// azVirtualMachinesClient implements VirtualMachinesClient.
21172type azVirtualMachinesClient struct {
21273 client compute.VirtualMachinesClient
@@ -446,8 +307,8 @@ func (az *azAccountsClient) ListKeys(ctx context.Context, resourceGroupName stri
446307}
447308
448309type azClient struct {
449- virtualMachineScaleSetsClient VirtualMachineScaleSetsClient
450- virtualMachineScaleSetVMsClient VirtualMachineScaleSetVMsClient
310+ virtualMachineScaleSetsClient vmssclient. Interface
311+ virtualMachineScaleSetVMsClient vmssvmclient. Interface
451312 virtualMachinesClient VirtualMachinesClient
452313 deploymentsClient DeploymentsClient
453314 interfacesClient InterfacesClient
@@ -519,10 +380,14 @@ func newAzClient(cfg *Config, env *azure.Environment) (*azClient, error) {
519380 return nil , err
520381 }
521382
522- scaleSetsClient := newAzVirtualMachineScaleSetsClient (cfg .SubscriptionID , env .ResourceManagerEndpoint , spt )
383+ azClientConfig := cfg .getAzureClientConfig (spt , env )
384+
385+ vmssClientConfig := azClientConfig .WithRateLimiter (cfg .VirtualMachineScaleSetRateLimit )
386+ scaleSetsClient := vmssclient .New (vmssClientConfig )
523387 klog .V (5 ).Infof ("Created scale set client with authorizer: %v" , scaleSetsClient )
524388
525- scaleSetVMsClient := newAzVirtualMachineScaleSetVMsClient (cfg .SubscriptionID , env .ResourceManagerEndpoint , spt )
389+ vmssVMClientConfig := azClientConfig .WithRateLimiter (cfg .VirtualMachineScaleSetRateLimit )
390+ scaleSetVMsClient := vmssvmclient .New (vmssVMClientConfig )
526391 klog .V (5 ).Infof ("Created scale set vm client with authorizer: %v" , scaleSetVMsClient )
527392
528393 virtualMachinesClient := newAzVirtualMachinesClient (cfg .SubscriptionID , env .ResourceManagerEndpoint , spt )
0 commit comments