github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/networking/v2/extensions/natgateways_test.go (about)

     1  package extensions
     2  
     3  import (
     4  	"testing"
     5  
     6  	golangsdk "github.com/opentelekomcloud/gophertelekomcloud"
     7  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients"
     8  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools"
     9  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/networking/v2/extensions/natgateways"
    10  	th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
    11  )
    12  
    13  func TestNatGatewaysList(t *testing.T) {
    14  	client, err := clients.NewNatV2Client()
    15  	th.AssertNoErr(t, err)
    16  
    17  	listOpts := natgateways.ListOpts{}
    18  	allPages, err := natgateways.List(client, listOpts).AllPages()
    19  	th.AssertNoErr(t, err)
    20  
    21  	natGateways, err := natgateways.ExtractNatGateways(allPages)
    22  	th.AssertNoErr(t, err)
    23  
    24  	for _, natGateway := range natGateways {
    25  		tools.PrintResource(t, natGateway)
    26  	}
    27  }
    28  
    29  func TestNatGatewaysLifeCycle(t *testing.T) {
    30  	client, err := clients.NewNatV2Client()
    31  	th.AssertNoErr(t, err)
    32  
    33  	// Create Nat Gateway
    34  	natGateway := createNatGateway(t, client)
    35  	defer func() {
    36  		deleteNatGateway(t, client, natGateway.ID)
    37  	}()
    38  
    39  	tools.PrintResource(t, natGateway)
    40  
    41  	newNatGw := updateNatGateway(t, client, natGateway.ID)
    42  	tools.PrintResource(t, newNatGw)
    43  }
    44  
    45  func createNatGateway(t *testing.T, client *golangsdk.ServiceClient) *natgateways.NatGateway {
    46  	t.Logf("Attempting to create Nat Gateway")
    47  	natGatewayName := tools.RandomString("create-nat-", 8)
    48  
    49  	vpcID := clients.EnvOS.GetEnv("VPC_ID")
    50  	networkID := clients.EnvOS.GetEnv("NETWORK_ID")
    51  	if vpcID == "" || networkID == "" {
    52  		t.Skip("OS_VPC_ID or OS_NETWORK_ID is missing but test requires using existing network")
    53  	}
    54  	natSmallSpec := "1"
    55  
    56  	createNatGatewayOpts := natgateways.CreateOpts{
    57  		Name:              natGatewayName,
    58  		Description:       "some nat gateway for acceptance test",
    59  		Spec:              natSmallSpec,
    60  		RouterID:          vpcID,
    61  		InternalNetworkID: networkID,
    62  	}
    63  
    64  	natGateway, err := natgateways.Create(client, createNatGatewayOpts).Extract()
    65  	th.AssertNoErr(t, err)
    66  
    67  	t.Logf("Created Nat Gateway: %s", natGateway.ID)
    68  
    69  	return &natGateway
    70  }
    71  
    72  func deleteNatGateway(t *testing.T, client *golangsdk.ServiceClient, natGatewayID string) {
    73  	t.Logf("Attempting to delete Nat Gateway: %s", natGatewayID)
    74  
    75  	err := natgateways.Delete(client, natGatewayID).ExtractErr()
    76  	th.AssertNoErr(t, err)
    77  
    78  	t.Logf("Nat Gateway is deleted: %s", natGatewayID)
    79  }
    80  
    81  func updateNatGateway(t *testing.T, client *golangsdk.ServiceClient, natGatewayID string) *natgateways.NatGateway {
    82  	t.Logf("Attempting to update Nat Gateway")
    83  
    84  	natGatewayNewName := tools.RandomString("update-nat-", 8)
    85  
    86  	updateOpts := natgateways.UpdateOpts{
    87  		Name: natGatewayNewName,
    88  	}
    89  
    90  	err := natgateways.Update(client, natGatewayID, updateOpts).Err
    91  	th.AssertNoErr(t, err)
    92  
    93  	t.Logf("Nat Gateway successfully updated: %s", natGatewayID)
    94  
    95  	gateway, err := natgateways.Get(client, natGatewayID).Extract()
    96  	th.AssertNoErr(t, err)
    97  
    98  	return &gateway
    99  }