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