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