Skip to content

Commit 68bb62d

Browse files
authored
Merge pull request #2208 from mattcary/no-cmek
Return failed precondition googleapi errors
2 parents da333d9 + 7627ead commit 68bb62d

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

pkg/common/utils.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,12 @@ var (
9797

9898
// userErrorCodeMap tells how API error types are translated to error codes.
9999
userErrorCodeMap = map[int]codes.Code{
100-
http.StatusForbidden: codes.PermissionDenied,
101-
http.StatusBadRequest: codes.InvalidArgument,
102-
http.StatusTooManyRequests: codes.ResourceExhausted,
103-
http.StatusNotFound: codes.NotFound,
104-
http.StatusConflict: codes.FailedPrecondition,
100+
http.StatusForbidden: codes.PermissionDenied,
101+
http.StatusBadRequest: codes.InvalidArgument,
102+
http.StatusTooManyRequests: codes.ResourceExhausted,
103+
http.StatusNotFound: codes.NotFound,
104+
http.StatusConflict: codes.FailedPrecondition,
105+
http.StatusPreconditionFailed: codes.FailedPrecondition,
105106
}
106107

107108
csiRetryableErrorCodes = []codes.Code{codes.Canceled, codes.DeadlineExceeded, codes.Unavailable, codes.Aborted, codes.ResourceExhausted}

pkg/common/utils_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,6 +554,11 @@ func TestCodeForError(t *testing.T) {
554554
inputErr: &TemporaryError{code: codes.Aborted, err: context.Canceled},
555555
expCode: codes.Aborted,
556556
},
557+
{
558+
name: "CMEK precondition failed error, under layers of wrapping",
559+
inputErr: fmt.Errorf("unknown Insert disk error: %w", &googleapi.Error{Code: http.StatusPreconditionFailed, Message: "CMEK policy violated"}),
560+
expCode: codes.FailedPrecondition,
561+
},
557562
}
558563

559564
for _, tc := range testCases {

0 commit comments

Comments
 (0)