github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/baremetal/httpbasic/nodes_test.go (about) 1 package httpbasic 2 3 import ( 4 "testing" 5 6 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 7 v1 "github.com/gophercloud/gophercloud/internal/acceptance/openstack/baremetal/v1" 8 "github.com/gophercloud/gophercloud/openstack/baremetal/v1/nodes" 9 "github.com/gophercloud/gophercloud/pagination" 10 11 th "github.com/gophercloud/gophercloud/testhelper" 12 ) 13 14 func TestNodesCreateDestroy(t *testing.T) { 15 clients.RequireLong(t) 16 clients.RequireIronicHTTPBasic(t) 17 18 client, err := clients.NewBareMetalV1HTTPBasic() 19 th.AssertNoErr(t, err) 20 client.Microversion = "1.50" 21 22 node, err := v1.CreateNode(t, client) 23 th.AssertNoErr(t, err) 24 defer v1.DeleteNode(t, client, node) 25 26 found := false 27 err = nodes.List(client, nodes.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) { 28 nodeList, err := nodes.ExtractNodes(page) 29 if err != nil { 30 return false, err 31 } 32 33 for _, n := range nodeList { 34 if n.UUID == node.UUID { 35 found = true 36 return true, nil 37 } 38 } 39 40 return false, nil 41 }) 42 th.AssertNoErr(t, err) 43 44 th.AssertEquals(t, found, true) 45 } 46 47 func TestNodesUpdate(t *testing.T) { 48 clients.RequireLong(t) 49 clients.RequireIronicHTTPBasic(t) 50 51 client, err := clients.NewBareMetalV1HTTPBasic() 52 th.AssertNoErr(t, err) 53 client.Microversion = "1.50" 54 55 node, err := v1.CreateNode(t, client) 56 th.AssertNoErr(t, err) 57 defer v1.DeleteNode(t, client, node) 58 59 updated, err := nodes.Update(client, node.UUID, nodes.UpdateOpts{ 60 nodes.UpdateOperation{ 61 Op: nodes.ReplaceOp, 62 Path: "/maintenance", 63 Value: "true", 64 }, 65 }).Extract() 66 th.AssertNoErr(t, err) 67 68 th.AssertEquals(t, updated.Maintenance, true) 69 } 70 71 func TestNodesRAIDConfig(t *testing.T) { 72 clients.SkipReleasesBelow(t, "stable/ussuri") 73 clients.RequireLong(t) 74 clients.RequireIronicHTTPBasic(t) 75 76 client, err := clients.NewBareMetalV1HTTPBasic() 77 th.AssertNoErr(t, err) 78 client.Microversion = "1.50" 79 80 node, err := v1.CreateNode(t, client) 81 th.AssertNoErr(t, err) 82 defer v1.DeleteNode(t, client, node) 83 84 sizeGB := 100 85 isTrue := true 86 87 err = nodes.SetRAIDConfig(client, node.UUID, nodes.RAIDConfigOpts{ 88 LogicalDisks: []nodes.LogicalDisk{ 89 { 90 SizeGB: &sizeGB, 91 IsRootVolume: &isTrue, 92 RAIDLevel: nodes.RAID5, 93 DiskType: nodes.HDD, 94 NumberOfPhysicalDisks: 5, 95 }, 96 }, 97 }).ExtractErr() 98 th.AssertNoErr(t, err) 99 }