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  }