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  }