Skip to content

Commit eda89d8

Browse files
committed
fix: record AWS permission error middleware
Signed-off-by: Pankaj Walke <[email protected]>
1 parent 300d745 commit eda89d8

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

pkg/cloud/metricsv2/metrics.go

+12-11
Original file line numberDiff line numberDiff line change
@@ -172,19 +172,20 @@ func getAttemptContextMiddleware() middleware.FinalizeMiddleware {
172172
}
173173
func getRecordAWSPermissionsIssueMiddleware(target runtime.Object) middleware.DeserializeMiddleware {
174174
return middleware.DeserializeMiddlewareFunc("capa/RecordAWSPermissionsIssueMiddleware", func(ctx context.Context, input middleware.DeserializeInput, handler middleware.DeserializeHandler) (middleware.DeserializeOutput, middleware.Metadata, error) {
175-
r, ok := input.Request.(*smithyhttp.ResponseError)
176-
if !ok {
177-
return middleware.DeserializeOutput{}, middleware.Metadata{}, fmt.Errorf("unknown transport type %T", input.Request)
178-
}
179-
180-
var ae smithy.APIError
181-
if errors.As(r.Err, &ae) {
182-
switch ae.ErrorCode() {
183-
case "AuthFailure", "UnauthorizedOperation", "NoCredentialProviders":
184-
record.Warnf(target, ae.ErrorCode(), "Operation %s failed with a credentials or permission issue", awsmiddleware.GetOperationName(ctx))
175+
output, metadata, err := handler.HandleDeserialize(ctx, input)
176+
if err != nil {
177+
var re *smithyhttp.ResponseError
178+
if errors.As(err, &re) {
179+
var ae smithy.APIError
180+
if errors.As(re.Err, &ae) {
181+
switch ae.ErrorCode() {
182+
case "AuthFailure", "UnauthorizedOperation", "NoCredentialProviders":
183+
record.Warnf(target, ae.ErrorCode(), "Operation %s failed with a credentials or permission issue", awsmiddleware.GetOperationName(ctx))
184+
}
185+
}
185186
}
186187
}
187-
return handler.HandleDeserialize(ctx, input)
188+
return output, metadata, err
188189
})
189190
}
190191

0 commit comments

Comments
 (0)