Skip to content

Commit 021814e

Browse files
author
Cecile Robert-Michon
committed
Add Getter interface for getting resources in other services
1 parent a03b9e2 commit 021814e

File tree

18 files changed

+112
-489
lines changed

18 files changed

+112
-489
lines changed

azure/services/async/interfaces.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,16 @@ type FutureHandler interface {
3636
Result(ctx context.Context, future azureautorest.FutureAPI, futureType string) (result interface{}, err error)
3737
}
3838

39+
// Getter is an interface that can get a resource.
40+
type Getter interface {
41+
Get(ctx context.Context, spec azure.ResourceSpecGetter) (result interface{}, err error)
42+
}
43+
3944
// Creator is a client that can create or update a resource asynchronously.
4045
type Creator interface {
4146
FutureHandler
47+
Getter
4248
CreateOrUpdateAsync(ctx context.Context, spec azure.ResourceSpecGetter, parameters interface{}) (result interface{}, future azureautorest.FutureAPI, err error)
43-
Get(ctx context.Context, spec azure.ResourceSpecGetter) (result interface{}, err error)
4449
}
4550

4651
// Deleter is a client that can delete a resource asynchronously.

azure/services/async/mock_async/async_mock.go

Lines changed: 38 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

azure/services/availabilitysets/availabilitysets.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ type AvailabilitySetScope interface {
4141
// Service provides operations on Azure resources.
4242
type Service struct {
4343
Scope AvailabilitySetScope
44-
Client
44+
async.Getter
4545
async.Reconciler
4646
resourceSKUCache *resourceskus.Cache
4747
}
@@ -51,7 +51,7 @@ func New(scope AvailabilitySetScope, skuCache *resourceskus.Cache) *Service {
5151
client := NewClient(scope)
5252
return &Service{
5353
Scope: scope,
54-
Client: client,
54+
Getter: client,
5555
resourceSKUCache: skuCache,
5656
Reconciler: async.New(scope, client, client),
5757
}
@@ -88,7 +88,7 @@ func (s *Service) Delete(ctx context.Context) error {
8888
if setSpec := s.Scope.AvailabilitySetSpec(); setSpec == nil {
8989
log.V(2).Info("skip deletion when no availability set spec is found")
9090
} else {
91-
existingSet, err := s.Client.Get(ctx, setSpec)
91+
existingSet, err := s.Get(ctx, setSpec)
9292
if err != nil {
9393
if !azure.ResourceNotFound(err) {
9494
resultingErr = errors.Wrapf(err, "failed to get availability set %s in resource group %s", setSpec.ResourceName(), setSpec.ResourceGroupName())

azure/services/availabilitysets/availabilitysets_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -149,12 +149,12 @@ func TestDeleteAvailabilitySets(t *testing.T) {
149149
testcases := []struct {
150150
name string
151151
expectedError string
152-
expect func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_availabilitysets.MockClientMockRecorder, r *mock_async.MockReconcilerMockRecorder)
152+
expect func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_async.MockGetterMockRecorder, r *mock_async.MockReconcilerMockRecorder)
153153
}{
154154
{
155155
name: "deletes availability set",
156156
expectedError: "",
157-
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_availabilitysets.MockClientMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
157+
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_async.MockGetterMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
158158
s.AvailabilitySetSpec().Return(&fakeSetSpec)
159159
gomock.InOrder(
160160
m.Get(gomockinternal.AContext(), &fakeSetSpec).Return(compute.AvailabilitySet{}, nil),
@@ -166,15 +166,15 @@ func TestDeleteAvailabilitySets(t *testing.T) {
166166
{
167167
name: "noop if AvailabilitySetSpec returns nil",
168168
expectedError: "",
169-
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_availabilitysets.MockClientMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
169+
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_async.MockGetterMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
170170
s.AvailabilitySetSpec().Return(nil)
171171
s.UpdateDeleteStatus(infrav1.AvailabilitySetReadyCondition, serviceName, nil)
172172
},
173173
},
174174
{
175175
name: "delete proceeds with missing required value in availability set spec",
176176
expectedError: "",
177-
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_availabilitysets.MockClientMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
177+
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_async.MockGetterMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
178178
s.AvailabilitySetSpec().Return(&fakeSetSpecMissing)
179179
gomock.InOrder(
180180
m.Get(gomockinternal.AContext(), &fakeSetSpecMissing).Return(compute.AvailabilitySet{}, nil),
@@ -186,7 +186,7 @@ func TestDeleteAvailabilitySets(t *testing.T) {
186186
{
187187
name: "noop if availability set has vms",
188188
expectedError: "",
189-
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_availabilitysets.MockClientMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
189+
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_async.MockGetterMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
190190
s.AvailabilitySetSpec().Return(&fakeSetSpec)
191191
gomock.InOrder(
192192
m.Get(gomockinternal.AContext(), &fakeSetSpec).Return(fakeSetWithVMs, nil),
@@ -197,7 +197,7 @@ func TestDeleteAvailabilitySets(t *testing.T) {
197197
{
198198
name: "availability set not found",
199199
expectedError: "",
200-
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_availabilitysets.MockClientMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
200+
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_async.MockGetterMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
201201
s.AvailabilitySetSpec().Return(&fakeSetSpec)
202202
gomock.InOrder(
203203
m.Get(gomockinternal.AContext(), &fakeSetSpec).Return(nil, notFoundError),
@@ -208,7 +208,7 @@ func TestDeleteAvailabilitySets(t *testing.T) {
208208
{
209209
name: "error in getting availability set",
210210
expectedError: "failed to get availability set test-as in resource group test-rg: #: Internal Server Error: StatusCode=500",
211-
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_availabilitysets.MockClientMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
211+
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_async.MockGetterMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
212212
s.AvailabilitySetSpec().Return(&fakeSetSpec)
213213
gomock.InOrder(
214214
m.Get(gomockinternal.AContext(), &fakeSetSpec).Return(nil, internalError),
@@ -219,7 +219,7 @@ func TestDeleteAvailabilitySets(t *testing.T) {
219219
{
220220
name: "availability set get result is not an availability set",
221221
expectedError: "string is not a compute.AvailabilitySet",
222-
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_availabilitysets.MockClientMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
222+
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_async.MockGetterMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
223223
s.AvailabilitySetSpec().Return(&fakeSetSpec)
224224
gomock.InOrder(
225225
m.Get(gomockinternal.AContext(), &fakeSetSpec).Return("not an availability set", nil),
@@ -230,7 +230,7 @@ func TestDeleteAvailabilitySets(t *testing.T) {
230230
{
231231
name: "error in deleting availability set",
232232
expectedError: "#: Internal Server Error: StatusCode=500",
233-
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_availabilitysets.MockClientMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
233+
expect: func(s *mock_availabilitysets.MockAvailabilitySetScopeMockRecorder, m *mock_async.MockGetterMockRecorder, r *mock_async.MockReconcilerMockRecorder) {
234234
s.AvailabilitySetSpec().Return(&fakeSetSpec)
235235
gomock.InOrder(
236236
m.Get(gomockinternal.AContext(), &fakeSetSpec).Return(compute.AvailabilitySet{}, nil),
@@ -249,14 +249,14 @@ func TestDeleteAvailabilitySets(t *testing.T) {
249249
mockCtrl := gomock.NewController(t)
250250
defer mockCtrl.Finish()
251251
scopeMock := mock_availabilitysets.NewMockAvailabilitySetScope(mockCtrl)
252-
clientMock := mock_availabilitysets.NewMockClient(mockCtrl)
252+
getterMock := mock_async.NewMockGetter(mockCtrl)
253253
asyncMock := mock_async.NewMockReconciler(mockCtrl)
254254

255-
tc.expect(scopeMock.EXPECT(), clientMock.EXPECT(), asyncMock.EXPECT())
255+
tc.expect(scopeMock.EXPECT(), getterMock.EXPECT(), asyncMock.EXPECT())
256256

257257
s := &Service{
258258
Scope: scopeMock,
259-
Client: clientMock,
259+
Getter: getterMock,
260260
Reconciler: asyncMock,
261261
}
262262

azure/services/availabilitysets/client.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,11 @@ import (
2828
"sigs.k8s.io/cluster-api-provider-azure/util/tele"
2929
)
3030

31-
// Client wraps go-sdk.
32-
type Client interface {
33-
Get(ctx context.Context, spec azure.ResourceSpecGetter) (result interface{}, err error)
34-
CreateOrUpdateAsync(ctx context.Context, spec azure.ResourceSpecGetter, parameters interface{}) (result interface{}, future azureautorest.FutureAPI, err error)
35-
DeleteAsync(ctx context.Context, spec azure.ResourceSpecGetter) (future azureautorest.FutureAPI, err error)
36-
IsDone(ctx context.Context, future azureautorest.FutureAPI) (isDone bool, err error)
37-
Result(ctx context.Context, future azureautorest.FutureAPI, futureType string) (result interface{}, err error)
38-
}
39-
4031
// AzureClient contains the Azure go-sdk Client.
4132
type AzureClient struct {
4233
availabilitySets compute.AvailabilitySetsClient
4334
}
4435

45-
var _ Client = (*AzureClient)(nil)
46-
4736
// NewClient creates a new Resource SKUs Client from subscription ID.
4837
func NewClient(auth azure.Authorizer) *AzureClient {
4938
return &AzureClient{

azure/services/availabilitysets/mock_availabilitysets/client_mock.go

Lines changed: 0 additions & 108 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

azure/services/networkinterfaces/client.go

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,23 +31,10 @@ import (
3131
"sigs.k8s.io/cluster-api-provider-azure/util/tele"
3232
)
3333

34-
type (
35-
// Client wraps go-sdk.
36-
Client interface {
37-
Get(context.Context, azure.ResourceSpecGetter) (result interface{}, err error)
38-
CreateOrUpdateAsync(context.Context, azure.ResourceSpecGetter, interface{}) (result interface{}, future azureautorest.FutureAPI, err error)
39-
DeleteAsync(context.Context, azure.ResourceSpecGetter) (future azureautorest.FutureAPI, err error)
40-
IsDone(context.Context, azureautorest.FutureAPI) (isDone bool, err error)
41-
Result(context.Context, azureautorest.FutureAPI, string) (result interface{}, err error)
42-
}
43-
44-
// AzureClient contains the Azure go-sdk Client.
45-
AzureClient struct {
46-
interfaces network.InterfacesClient
47-
}
48-
)
49-
50-
var _ Client = &AzureClient{}
34+
// AzureClient contains the Azure go-sdk Client.
35+
type AzureClient struct {
36+
interfaces network.InterfacesClient
37+
}
5138

5239
// NewClient creates a new VM client from subscription ID.
5340
func NewClient(auth azure.Authorizer) *AzureClient {

0 commit comments

Comments
 (0)