github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/internal/acceptance/openstack/networking/v2/extensions/mtu/mtu.go (about) 1 package mtu 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/vnpaycloud-console/gophercloud/v2" 8 "github.com/vnpaycloud-console/gophercloud/v2/internal/acceptance/tools" 9 "github.com/vnpaycloud-console/gophercloud/v2/openstack/networking/v2/extensions/mtu" 10 "github.com/vnpaycloud-console/gophercloud/v2/openstack/networking/v2/networks" 11 th "github.com/vnpaycloud-console/gophercloud/v2/testhelper" 12 ) 13 14 type NetworkMTU struct { 15 networks.Network 16 mtu.NetworkMTUExt 17 } 18 19 // CreateNetworkWithMTU will create a network with custom MTU. An error will be 20 // returned if the creation failed. 21 func CreateNetworkWithMTU(t *testing.T, client *gophercloud.ServiceClient, networkMTU *int) (*NetworkMTU, error) { 22 networkName := tools.RandomString("TESTACC-", 8) 23 networkDescription := tools.RandomString("TESTACC-DESC-", 8) 24 25 t.Logf("Attempting to create a network with custom MTU: %s", networkName) 26 27 adminStateUp := true 28 29 var createOpts networks.CreateOptsBuilder 30 createOpts = networks.CreateOpts{ 31 Name: networkName, 32 Description: networkDescription, 33 AdminStateUp: &adminStateUp, 34 } 35 36 if *networkMTU > 0 { 37 createOpts = mtu.CreateOptsExt{ 38 CreateOptsBuilder: createOpts, 39 MTU: *networkMTU, 40 } 41 } 42 43 var network NetworkMTU 44 45 err := networks.Create(context.TODO(), client, createOpts).ExtractInto(&network) 46 if err != nil { 47 return &network, err 48 } 49 50 t.Logf("Created a network with custom MTU: %s", networkName) 51 52 th.AssertEquals(t, network.Name, networkName) 53 th.AssertEquals(t, network.Description, networkDescription) 54 th.AssertEquals(t, network.AdminStateUp, adminStateUp) 55 if *networkMTU > 0 { 56 th.AssertEquals(t, network.MTU, *networkMTU) 57 } else { 58 *networkMTU = network.MTU 59 } 60 61 return &network, nil 62 }