github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/internal/acceptance/openstack/baremetal/noauth/ports_test.go (about)

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