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 }