Skip to content

Commit 22aa19f

Browse files
committed
fix switchcases, nil checking, error texts
1 parent a0c76cd commit 22aa19f

File tree

1 file changed

+11
-21
lines changed

1 file changed

+11
-21
lines changed

services/kms/wait/wait.go

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func CreateKeyRingWaitHandler(ctx context.Context, client ApiKmsClient, projectI
5959
return false, nil, err
6060
}
6161

62-
if response.State != nil {
62+
if response != nil && response.State != nil {
6363
switch *response.State {
6464
case kms.KEYRINGSTATE_CREATING:
6565
return false, nil, nil
@@ -81,7 +81,7 @@ func CreateOrUpdateKeyWaitHandler(ctx context.Context, client ApiKmsClient, proj
8181
return false, nil, err
8282
}
8383

84-
if response.State != nil {
84+
if response != nil && response.State != nil {
8585
switch *response.State {
8686
case kms.KEYSTATE_CREATING:
8787
return false, nil, nil
@@ -121,19 +121,15 @@ func EnableKeyVersionWaitHandler(ctx context.Context, client ApiKmsClient, proje
121121
var apiErr *oapierror.GenericOpenAPIError
122122
if errors.As(err, &apiErr) {
123123
if statusCode := apiErr.StatusCode; statusCode == http.StatusNotFound || statusCode == http.StatusGone {
124-
return true, nil, fmt.Errorf("enabling failed for key %s version %d: version not found", keyId, version)
124+
return true, nil, fmt.Errorf("enabling failed for key %s version %d: version or key not found", keyId, version)
125125
}
126126
}
127127
return false, nil, err
128128
}
129129

130-
if response.State != nil {
130+
if response != nil && response.State != nil {
131131
switch *response.State {
132-
case kms.VERSIONSTATE_DESTROYED:
133-
return true, response, nil
134-
case kms.VERSIONSTATE_KEY_MATERIAL_INVALID:
135-
return true, response, nil
136-
case kms.VERSIONSTATE_DISABLED:
132+
case kms.VERSIONSTATE_DESTROYED, kms.VERSIONSTATE_KEY_MATERIAL_INVALID, kms.VERSIONSTATE_DISABLED:
137133
return true, response, nil
138134
case kms.VERSIONSTATE_CREATING:
139135
return false, nil, nil
@@ -155,25 +151,19 @@ func DisableKeyVersionWaitHandler(ctx context.Context, client ApiKmsClient, proj
155151
var apiErr *oapierror.GenericOpenAPIError
156152
if errors.As(err, &apiErr) {
157153
if statusCode := apiErr.StatusCode; statusCode == http.StatusNotFound || statusCode == http.StatusGone {
158-
return true, nil, fmt.Errorf("disabling failed for key %s version %d: version not found", keyId, version)
154+
return true, nil, fmt.Errorf("disabling failed for key %s version %d: version or key not found", keyId, version)
159155
}
160156
}
161157
return false, nil, err
162158
}
163159

164-
if response.State != nil {
160+
if response != nil && response.State != nil {
165161
switch *response.State {
166162
case kms.VERSIONSTATE_DISABLED:
167163
return true, response, nil
168-
case kms.VERSIONSTATE_ACTIVE:
169-
return false, nil, nil
170-
case kms.VERSIONSTATE_CREATING:
171-
return false, nil, nil
172-
case kms.VERSIONSTATE_KEY_MATERIAL_UNAVAILABLE:
164+
case kms.VERSIONSTATE_ACTIVE, kms.VERSIONSTATE_CREATING, kms.VERSIONSTATE_KEY_MATERIAL_UNAVAILABLE:
173165
return false, nil, nil
174-
case kms.VERSIONSTATE_DESTROYED:
175-
return true, response, fmt.Errorf("disabling failed for key %s version %d: state %s", keyId, version, *response.State)
176-
case kms.VERSIONSTATE_KEY_MATERIAL_INVALID:
166+
case kms.VERSIONSTATE_DESTROYED, kms.VERSIONSTATE_KEY_MATERIAL_INVALID:
177167
return true, response, fmt.Errorf("disabling failed for key %s version %d: state %s", keyId, version, *response.State)
178168
default:
179169
return true, response, fmt.Errorf("key version %d for key %s has unexpected state %s", version, keyId, *response.State)
@@ -193,8 +183,8 @@ func CreateWrappingKeyWaitHandler(ctx context.Context, client ApiKmsClient, proj
193183
return false, nil, err
194184
}
195185

196-
if state := response.State; state != nil {
197-
switch *state {
186+
if response != nil && response.State != nil {
187+
switch *response.State {
198188
case kms.WRAPPINGKEYSTATE_CREATING:
199189
return false, nil, nil
200190
default:

0 commit comments

Comments
 (0)