github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/baremetal/v1/ports_test.go (about)

     1  //go:build acceptance || baremetal || ports
     2  // +build acceptance baremetal ports
     3  
     4  package v1
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/gophercloud/gophercloud/internal/acceptance/clients"
    10  	"github.com/gophercloud/gophercloud/openstack/baremetal/v1/ports"
    11  	"github.com/gophercloud/gophercloud/pagination"
    12  
    13  	th "github.com/gophercloud/gophercloud/testhelper"
    14  )
    15  
    16  func TestPortsCreateDestroy(t *testing.T) {
    17  	clients.RequireLong(t)
    18  
    19  	client, err := clients.NewBareMetalV1Client()
    20  	th.AssertNoErr(t, err)
    21  	client.Microversion = "1.53"
    22  
    23  	node, err := CreateFakeNode(t, client)
    24  	th.AssertNoErr(t, err)
    25  	defer DeleteNode(t, client, node)
    26  	port, err := CreatePort(t, client, node)
    27  	th.AssertNoErr(t, err)
    28  	defer DeletePort(t, client, port)
    29  
    30  	found := false
    31  	err = ports.List(client, ports.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
    32  		portList, err := ports.ExtractPorts(page)
    33  		if err != nil {
    34  			return false, err
    35  		}
    36  
    37  		for _, p := range portList {
    38  			if p.UUID == port.UUID {
    39  				found = true
    40  				return true, nil
    41  			}
    42  		}
    43  
    44  		return false, nil
    45  	})
    46  	th.AssertNoErr(t, err)
    47  
    48  	th.AssertEquals(t, found, true)
    49  }
    50  
    51  func TestPortsUpdate(t *testing.T) {
    52  	clients.RequireLong(t)
    53  
    54  	client, err := clients.NewBareMetalV1Client()
    55  	th.AssertNoErr(t, err)
    56  	client.Microversion = "1.53"
    57  
    58  	node, err := CreateFakeNode(t, client)
    59  	th.AssertNoErr(t, err)
    60  	defer DeleteNode(t, client, node)
    61  	port, err := CreatePort(t, client, node)
    62  	th.AssertNoErr(t, err)
    63  	defer DeletePort(t, client, port)
    64  
    65  	updated, err := ports.Update(client, port.UUID, ports.UpdateOpts{
    66  		ports.UpdateOperation{
    67  			Op:    ports.ReplaceOp,
    68  			Path:  "/address",
    69  			Value: "aa:bb:cc:dd:ee:ff",
    70  		},
    71  	}).Extract()
    72  	th.AssertNoErr(t, err)
    73  
    74  	th.AssertEquals(t, updated.Address, "aa:bb:cc:dd:ee:ff")
    75  }