github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/baremetal/noauth/ports_test.go (about) 1 //go:build acceptance || baremetal || ports 2 // +build acceptance baremetal ports 3 4 package noauth 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 20 client, err := clients.NewBareMetalV1NoAuthClient() 21 th.AssertNoErr(t, err) 22 client.Microversion = "1.53" 23 24 node, err := v1.CreateFakeNode(t, client) 25 port, err := v1.CreatePort(t, client, node) 26 th.AssertNoErr(t, err) 27 defer v1.DeleteNode(t, client, node) 28 defer v1.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.NewBareMetalV1NoAuthClient() 55 th.AssertNoErr(t, err) 56 client.Microversion = "1.53" 57 58 node, err := v1.CreateFakeNode(t, client) 59 port, err := v1.CreatePort(t, client, node) 60 th.AssertNoErr(t, err) 61 defer v1.DeleteNode(t, client, node) 62 defer v1.DeletePort(t, client, port) 63 64 updated, err := ports.Update(client, port.UUID, ports.UpdateOpts{ 65 ports.UpdateOperation{ 66 Op: ports.ReplaceOp, 67 Path: "/address", 68 Value: "aa:bb:cc:dd:ee:ff", 69 }, 70 }).Extract() 71 th.AssertNoErr(t, err) 72 73 th.AssertEquals(t, updated.Address, "aa:bb:cc:dd:ee:ff") 74 }