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

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