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  }