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 }