Skip to content

Commit 62fe9a1

Browse files
committed
fix enablekeyversionhandler and tests
1 parent 21da231 commit 62fe9a1

File tree

2 files changed

+25
-5
lines changed

2 files changed

+25
-5
lines changed

services/kms/wait/wait.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,14 @@ func EnableKeyVersionWaitHandler(ctx context.Context, client ApiKmsClient, proje
129129

130130
if response != nil && response.State != nil {
131131
switch *response.State {
132-
case kms.VERSIONSTATE_DESTROYED, kms.VERSIONSTATE_KEY_MATERIAL_INVALID, kms.VERSIONSTATE_DISABLED:
132+
case kms.VERSIONSTATE_ACTIVE:
133133
return true, response, nil
134-
case kms.VERSIONSTATE_CREATING:
134+
case kms.VERSIONSTATE_DISABLED, kms.VERSIONSTATE_CREATING, kms.VERSIONSTATE_KEY_MATERIAL_UNAVAILABLE:
135135
return false, nil, nil
136+
case kms.VERSIONSTATE_DESTROYED, kms.VERSIONSTATE_KEY_MATERIAL_INVALID:
137+
return true, response, fmt.Errorf("enabling failed for key %s version %d: state %s", keyId, version, *response.State)
136138
default:
137-
return true, response, nil
139+
return true, response, fmt.Errorf("key version %d for key %s has unexpected state %s", version, keyId, *response.State)
138140
}
139141
}
140142

services/kms/wait/wait_test.go

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -409,15 +409,15 @@ func TestEnableKeyVersionWaitHandler(t *testing.T) {
409409
false,
410410
},
411411
{
412-
"create failed delayed",
412+
"create failed with invalid key material",
413413
[]versionResponse{
414414
{fixtureVersion(1, false, kms.VERSIONSTATE_CREATING), nil},
415415
{fixtureVersion(1, false, kms.VERSIONSTATE_CREATING), nil},
416416
{fixtureVersion(1, false, kms.VERSIONSTATE_CREATING), nil},
417417
{fixtureVersion(1, false, kms.VERSIONSTATE_KEY_MATERIAL_INVALID), nil},
418418
},
419419
fixtureVersion(1, false, kms.VERSIONSTATE_KEY_MATERIAL_INVALID),
420-
false,
420+
true,
421421
},
422422
{
423423
"timeout",
@@ -433,6 +433,24 @@ func TestEnableKeyVersionWaitHandler(t *testing.T) {
433433
{fixtureVersion(1, false, "bogus"), nil},
434434
},
435435
fixtureVersion(1, false, "bogus"),
436+
true,
437+
},
438+
{
439+
"version destroyed",
440+
[]versionResponse{
441+
{fixtureVersion(1, false, kms.VERSIONSTATE_DESTROYED), nil},
442+
},
443+
fixtureVersion(1, false, kms.VERSIONSTATE_DESTROYED),
444+
true,
445+
},
446+
{
447+
"version disabled - continues waiting",
448+
[]versionResponse{
449+
{fixtureVersion(1, true, kms.VERSIONSTATE_DISABLED), nil},
450+
{fixtureVersion(1, true, kms.VERSIONSTATE_DISABLED), nil},
451+
{fixtureVersion(1, false, kms.VERSIONSTATE_ACTIVE), nil},
452+
},
453+
fixtureVersion(1, false, kms.VERSIONSTATE_ACTIVE),
436454
false,
437455
},
438456
{

0 commit comments

Comments
 (0)