github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/keymanager/v1/orders_test.go (about)

     1  //go:build acceptance || keymanager || orders
     2  // +build acceptance keymanager orders
     3  
     4  package v1
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/gophercloud/gophercloud/internal/acceptance/clients"
    10  	"github.com/gophercloud/gophercloud/internal/acceptance/tools"
    11  	"github.com/gophercloud/gophercloud/openstack/keymanager/v1/containers"
    12  	"github.com/gophercloud/gophercloud/openstack/keymanager/v1/orders"
    13  	"github.com/gophercloud/gophercloud/openstack/keymanager/v1/secrets"
    14  	th "github.com/gophercloud/gophercloud/testhelper"
    15  )
    16  
    17  func TestOrdersCRUD(t *testing.T) {
    18  	clients.RequireAdmin(t)
    19  
    20  	client, err := clients.NewKeyManagerV1Client()
    21  	th.AssertNoErr(t, err)
    22  
    23  	order, err := CreateKeyOrder(t, client)
    24  	th.AssertNoErr(t, err)
    25  	orderID, err := ParseID(order.OrderRef)
    26  	th.AssertNoErr(t, err)
    27  	defer DeleteOrder(t, client, orderID)
    28  
    29  	secretID, err := ParseID(order.SecretRef)
    30  	th.AssertNoErr(t, err)
    31  
    32  	payloadOpts := secrets.GetPayloadOpts{
    33  		PayloadContentType: "application/octet-stream",
    34  	}
    35  	payload, err := secrets.GetPayload(client, secretID, payloadOpts).Extract()
    36  	th.AssertNoErr(t, err)
    37  	tools.PrintResource(t, payload)
    38  
    39  	allPages, err := orders.List(client, nil).AllPages()
    40  	th.AssertNoErr(t, err)
    41  
    42  	allOrders, err := orders.ExtractOrders(allPages)
    43  	th.AssertNoErr(t, err)
    44  
    45  	var found bool
    46  	for _, v := range allOrders {
    47  		if v.OrderRef == order.OrderRef {
    48  			found = true
    49  		}
    50  	}
    51  
    52  	th.AssertEquals(t, found, true)
    53  }
    54  
    55  func TestOrdersAsymmetric(t *testing.T) {
    56  	clients.RequireAdmin(t)
    57  
    58  	client, err := clients.NewKeyManagerV1Client()
    59  	th.AssertNoErr(t, err)
    60  
    61  	order, err := CreateAsymmetricOrder(t, client)
    62  	th.AssertNoErr(t, err)
    63  	orderID, err := ParseID(order.OrderRef)
    64  	th.AssertNoErr(t, err)
    65  	defer DeleteOrder(t, client, orderID)
    66  
    67  	containerID, err := ParseID(order.ContainerRef)
    68  	th.AssertNoErr(t, err)
    69  
    70  	container, err := containers.Get(client, containerID).Extract()
    71  	th.AssertNoErr(t, err)
    72  
    73  	for _, v := range container.SecretRefs {
    74  		secretID, err := ParseID(v.SecretRef)
    75  		th.AssertNoErr(t, err)
    76  
    77  		payloadOpts := secrets.GetPayloadOpts{
    78  			PayloadContentType: "application/octet-stream",
    79  		}
    80  
    81  		payload, err := secrets.GetPayload(client, secretID, payloadOpts).Extract()
    82  		th.AssertNoErr(t, err)
    83  		tools.PrintResource(t, string(payload))
    84  	}
    85  }