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 }