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