Skip to content

Commit 6af7e01

Browse files
authored
Merge pull request kubernetes-sigs#1432 from shiftstack/gophercloud-errors
🌱Be more robust when checking gophercloud errors in IsNotFound
2 parents 4526db5 + 8e4cf26 commit 6af7e01

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

pkg/utils/errors/errors.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,15 @@ func IsRetryable(err error) bool {
3333
}
3434

3535
func IsNotFound(err error) bool {
36+
// Gophercloud is not consistent in how it returns 404 errors. Sometimes
37+
// it returns a pointer to the error, sometimes it returns the error
38+
// directly.
39+
// Some discussion here: https://github.com/gophercloud/gophercloud/issues/2279
3640
var errDefault404 gophercloud.ErrDefault404
37-
if errors.As(err, &errDefault404) {
38-
return true
39-
}
40-
41-
var errResourceNotFound gophercloud.ErrResourceNotFound
42-
if errors.As(err, &errResourceNotFound) {
41+
var pErrDefault404 *gophercloud.ErrDefault404
42+
var errNotFound gophercloud.ErrResourceNotFound
43+
var pErrNotFound *gophercloud.ErrResourceNotFound
44+
if errors.As(err, &errDefault404) || errors.As(err, &pErrDefault404) || errors.As(err, &errNotFound) || errors.As(err, &pErrNotFound) {
4345
return true
4446
}
4547

0 commit comments

Comments
 (0)