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 }