github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/kms/v1/keys_test.go (about) 1 package v1 2 3 import ( 4 "testing" 5 6 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients" 7 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools" 8 "github.com/opentelekomcloud/gophertelekomcloud/openstack/kms/v1/keys" 9 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 10 ) 11 12 func TestKmsKeysLifecycle(t *testing.T) { 13 client, err := clients.NewKMSV1Client() 14 th.AssertNoErr(t, err) 15 16 kmsID := clients.EnvOS.GetEnv("KMS_ID") 17 if kmsID == "" { 18 t.Skip("OS_KMS_ID env var is missing but KMSv1 grant test requires") 19 } 20 21 createOpts := keys.CreateOpts{ 22 KeyAlias: kmsID, 23 KeyDescription: "some description", 24 } 25 createKey, err := keys.Create(client, createOpts).ExtractKeyInfo() 26 th.AssertNoErr(t, err) 27 28 defer func() { 29 deleteOpts := keys.DeleteOpts{ 30 KeyID: createKey.KeyID, 31 PendingDays: "7", 32 } 33 _, err := keys.Delete(client, deleteOpts).Extract() 34 th.AssertNoErr(t, err) 35 }() 36 37 keyGet, err := keys.Get(client, createKey.KeyID).ExtractKeyInfo() 38 th.AssertNoErr(t, err) 39 th.AssertEquals(t, createOpts.KeyAlias, keyGet.KeyAlias) 40 th.AssertEquals(t, keyGet.KeyState, "2") 41 42 deleteOpts := keys.DeleteOpts{ 43 KeyID: createKey.KeyID, 44 PendingDays: "7", 45 } 46 _, err = keys.Delete(client, deleteOpts).Extract() 47 th.AssertNoErr(t, err) 48 49 keyGetDeleted, err := keys.Get(client, createKey.KeyID).ExtractKeyInfo() 50 th.AssertNoErr(t, err) 51 th.AssertEquals(t, keyGetDeleted.KeyState, "4") 52 53 cancelDeleteOpts := keys.CancelDeleteOpts{ 54 KeyID: createKey.KeyID, 55 } 56 _, err = keys.CancelDelete(client, cancelDeleteOpts).Extract() 57 th.AssertNoErr(t, err) 58 59 _, err = keys.EnableKey(client, createKey.KeyID).Extract() 60 th.AssertNoErr(t, err) 61 62 keyGetEnabled, err := keys.Get(client, createKey.KeyID).ExtractKeyInfo() 63 th.AssertNoErr(t, err) 64 th.AssertEquals(t, keyGetEnabled.KeyState, "2") 65 66 _, err = keys.DisableKey(client, createKey.KeyID).Extract() 67 th.AssertNoErr(t, err) 68 69 keyGetDisabled, err := keys.Get(client, createKey.KeyID).ExtractKeyInfo() 70 th.AssertNoErr(t, err) 71 th.AssertEquals(t, keyGetDisabled.KeyState, "3") 72 } 73 74 func TestKmsEncryptDataLifecycle(t *testing.T) { 75 kmsID := clients.EnvOS.GetEnv("KMS_ID") 76 if kmsID == "" { 77 t.Skip("OS_KMS_ID env var is missing but KMSv1 grant test requires") 78 } 79 80 client, err := clients.NewKMSV1Client() 81 th.AssertNoErr(t, err) 82 83 kmsOpts := keys.EncryptDataOpts{ 84 KeyID: kmsID, 85 PlainText: "hello world", 86 } 87 88 kmsEncrypt, err := keys.EncryptData(client, kmsOpts) 89 th.AssertNoErr(t, err) 90 tools.PrintResource(t, kmsEncrypt) 91 92 kmsDecryptOpt := keys.DecryptDataOpts{ 93 CipherText: kmsEncrypt.CipherText, 94 } 95 96 kmsDecrypt, err := keys.DecryptData(client, kmsDecryptOpt) 97 th.AssertNoErr(t, err) 98 99 tools.PrintResource(t, kmsDecrypt) 100 }