Skip to content

Commit 93a57d0

Browse files
committed
fix review findings
1 parent b580913 commit 93a57d0

File tree

2 files changed

+36
-21
lines changed

2 files changed

+36
-21
lines changed

internal/runtime/client/client.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,14 +204,13 @@ func (c *client) CallAllExtensions(ctx context.Context, hook runtimecatalog.Hook
204204
}
205205

206206
// Aggregate all responses into a single response.
207+
// Note: we only get here if all the extension handlers succeeded.
207208
aggregateSuccessfulResponses(response, responses)
208209

209-
if err != nil {
210-
return errors.Wrap(err, "failed to aggregate responses")
211-
}
212210
return nil
213211
}
214212

213+
// aggregateSuccessfulResponses aggregates all successful responses into a single response.
215214
func aggregateSuccessfulResponses(aggregatedResponse runtimehooksv1.ResponseObject, responses []runtimehooksv1.ResponseObject) {
216215
// At this point the Status should always be ResponseStatusSuccess and the Message should be empty.
217216
// So let's set those values to avoid keeping values that could have been set by the caller of CallAllExtensions.
@@ -223,6 +222,8 @@ func aggregateSuccessfulResponses(aggregatedResponse runtimehooksv1.ResponseObje
223222
return
224223
}
225224

225+
// Note: as all responses have the same type we can assume now that
226+
// they all implement the RetryResponseObject interface.
226227
aggregatedRetryableResponse := aggregatedResponse.(runtimehooksv1.RetryResponseObject)
227228

228229
for _, resp := range responses {

internal/runtime/client/client_test.go

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -391,11 +391,25 @@ func TestClient_CallExtension(t *testing.T) {
391391
testServer: testServerConfig{
392392
start: false,
393393
},
394+
args: args{
395+
hook: fakev1alpha1.FakeHook,
396+
name: "valid-extension",
397+
request: &fakev1alpha1.SecondFakeRequest{},
398+
response: &fakev1alpha1.SecondFakeResponse{},
399+
},
400+
wantErr: true,
401+
},
402+
{
403+
name: "should fail when hook GVH does not match the registered ExtensionHandler",
404+
registeredExtensionConfigs: []runtimev1.ExtensionConfig{validExtensionHandlerWithFailPolicy},
405+
testServer: testServerConfig{
406+
start: false,
407+
},
394408
args: args{
395409
hook: fakev1alpha1.SecondFakeHook,
396410
name: "valid-extension",
397-
request: &fakev1alpha1.FakeRequest{},
398-
response: &fakev1alpha1.FakeResponse{},
411+
request: &fakev1alpha1.SecondFakeRequest{},
412+
response: &fakev1alpha1.SecondFakeResponse{},
399413
},
400414
wantErr: true,
401415
},
@@ -612,7 +626,7 @@ func Test_client_CallAllExtensions(t *testing.T) {
612626
wantErr: true,
613627
},
614628
{
615-
name: "should succeed when no corresponding hook is registered",
629+
name: "should succeed when no ExtensionHandlers are registered for the hook",
616630
registeredExtensionConfigs: []runtimev1.ExtensionConfig{},
617631
testServer: testServerConfig{
618632
start: false,
@@ -735,31 +749,31 @@ func Test_aggregateResponses(t *testing.T) {
735749
}{
736750
{
737751
name: "Aggregate response if there is only one response",
738-
aggregateResponse: fakeResponse(),
752+
aggregateResponse: fakeSuccessResponse(),
739753
responses: []runtimehooksv1.ResponseObject{
740-
fakeResponse(),
754+
fakeSuccessResponse(),
741755
},
742-
want: fakeResponse(),
756+
want: fakeSuccessResponse(),
743757
},
744758
{
745759
name: "Aggregate retry response if there is only one response",
746-
aggregateResponse: fakeRetryableResponse(0),
760+
aggregateResponse: fakeRetryableSuccessResponse(0),
747761
responses: []runtimehooksv1.ResponseObject{
748-
fakeRetryableResponse(5),
762+
fakeRetryableSuccessResponse(5),
749763
},
750-
want: fakeRetryableResponse(5),
764+
want: fakeRetryableSuccessResponse(5),
751765
},
752766
{
753767
name: "Aggregate retry responses to lowest non-zero retryAfterSeconds value",
754-
aggregateResponse: fakeRetryableResponse(0),
768+
aggregateResponse: fakeRetryableSuccessResponse(0),
755769
responses: []runtimehooksv1.ResponseObject{
756-
fakeRetryableResponse(0),
757-
fakeRetryableResponse(1),
758-
fakeRetryableResponse(5),
759-
fakeRetryableResponse(4),
760-
fakeRetryableResponse(3),
770+
fakeRetryableSuccessResponse(0),
771+
fakeRetryableSuccessResponse(1),
772+
fakeRetryableSuccessResponse(5),
773+
fakeRetryableSuccessResponse(4),
774+
fakeRetryableSuccessResponse(3),
761775
},
762-
want: fakeRetryableResponse(1),
776+
want: fakeRetryableSuccessResponse(1),
763777
},
764778
}
765779
for _, tt := range tests {
@@ -839,7 +853,7 @@ func registry(configs []runtimev1.ExtensionConfig) runtimeregistry.ExtensionRegi
839853
return registry
840854
}
841855

842-
func fakeResponse() *fakev1alpha1.FakeResponse {
856+
func fakeSuccessResponse() *fakev1alpha1.FakeResponse {
843857
return &fakev1alpha1.FakeResponse{
844858
TypeMeta: metav1.TypeMeta{
845859
Kind: "FakeResponse",
@@ -852,7 +866,7 @@ func fakeResponse() *fakev1alpha1.FakeResponse {
852866
}
853867
}
854868

855-
func fakeRetryableResponse(retryAfterSeconds int32) *fakev1alpha1.RetryableFakeResponse {
869+
func fakeRetryableSuccessResponse(retryAfterSeconds int32) *fakev1alpha1.RetryableFakeResponse {
856870
return &fakev1alpha1.RetryableFakeResponse{
857871
TypeMeta: metav1.TypeMeta{
858872
Kind: "FakeResponse",

0 commit comments

Comments
 (0)