github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/vpc/v3/vpc_test.go (about)

     1  package v3
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients"
     8  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools"
     9  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/networking/v1/vpcs"
    10  	VpcV3 "github.com/opentelekomcloud/gophertelekomcloud/openstack/vpc/v3/vpcs"
    11  	th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
    12  )
    13  
    14  func TestVPCV3Listing(t *testing.T) {
    15  	region := os.Getenv("OS_REGION_NAME")
    16  	if region != "eu-ch2" {
    17  		t.Skip("Currently VPC V3 only works in SWISS region")
    18  	}
    19  	client, err := clients.NewVPCV3Client()
    20  	th.AssertNoErr(t, err)
    21  
    22  	listOpts := VpcV3.ListOpts{}
    23  	vpcsList, err := VpcV3.List(client, listOpts)
    24  	th.AssertNoErr(t, err)
    25  
    26  	for _, rtb := range vpcsList {
    27  		tools.PrintResource(t, rtb)
    28  	}
    29  }
    30  
    31  func TestVPCV3Lifecycle(t *testing.T) {
    32  	region := os.Getenv("OS_REGION_NAME")
    33  	if region != "eu-ch2" {
    34  		t.Skip("Currently VPC V3 only works in SWISS region")
    35  	}
    36  	clientV1, err := clients.NewNetworkV1Client()
    37  	th.AssertNoErr(t, err)
    38  
    39  	clientV3, err := clients.NewVPCV3Client()
    40  	th.AssertNoErr(t, err)
    41  
    42  	name := tools.RandomString("vpc-acc-", 3)
    43  	createOpts := vpcs.CreateOpts{
    44  		Name:        name,
    45  		Description: "some interesting description",
    46  		CIDR:        "192.168.0.0/16",
    47  	}
    48  
    49  	vpc, err := vpcs.Create(clientV1, createOpts).Extract()
    50  	th.AssertNoErr(t, err)
    51  	th.AssertEquals(t, vpc.EnableSharedSnat, false)
    52  	th.AssertEquals(t, vpc.Description, "some interesting description")
    53  	th.AssertEquals(t, vpc.Name, name)
    54  
    55  	t.Cleanup(func() {
    56  		err = vpcs.Delete(clientV1, vpc.ID).ExtractErr()
    57  		th.AssertNoErr(t, err)
    58  	})
    59  
    60  	cidrOpts := VpcV3.CidrOpts{
    61  		Vpc: &VpcV3.AddExtendCidrOption{
    62  			ExtendCidrs: []string{"23.8.0.0/16"}},
    63  	}
    64  	vpcSecCidr, err := VpcV3.AddSecondaryCidr(clientV3, vpc.ID, cidrOpts)
    65  	th.AssertNoErr(t, err)
    66  	th.AssertEquals(t, vpcSecCidr.SecondaryCidrs[0], "23.8.0.0/16")
    67  
    68  	vpcV3Get, err := VpcV3.Get(clientV3, vpc.ID)
    69  	th.AssertNoErr(t, err)
    70  	th.AssertEquals(t, vpcV3Get.SecondaryCidrs[0], "23.8.0.0/16")
    71  
    72  	vpcSecCidrRm, err := VpcV3.RemoveSecondaryCidr(clientV3, vpc.ID, cidrOpts)
    73  	th.AssertNoErr(t, err)
    74  	th.AssertEquals(t, len(vpcSecCidrRm.SecondaryCidrs), 0)
    75  }