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  }