github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/internal/acceptance/openstack/baremetal/httpbasic/nodes_test.go (about)

     1  //go:build acceptance || baremetal || httpbasic
     2  
     3  package httpbasic
     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.RequireIronicHTTPBasic(t)
    20  
    21  	client, err := clients.NewBareMetalV1HTTPBasic()
    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.RequireIronicHTTPBasic(t)
    53  
    54  	client, err := clients.NewBareMetalV1HTTPBasic()
    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.RequireIronicHTTPBasic(t)
    78  
    79  	client, err := clients.NewBareMetalV1HTTPBasic()
    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  }
   103  
   104  func TestNodesFirmwareInterface(t *testing.T) {
   105  	clients.SkipReleasesBelow(t, "stable/2023.2")
   106  	clients.RequireLong(t)
   107  	clients.RequireIronicHTTPBasic(t)
   108  
   109  	client, err := clients.NewBareMetalV1HTTPBasic()
   110  	th.AssertNoErr(t, err)
   111  	client.Microversion = "1.86"
   112  
   113  	node, err := v1.CreateNode(t, client)
   114  	th.AssertNoErr(t, err)
   115  	defer v1.DeleteNode(t, client, node)
   116  
   117  	th.AssertEquals(t, node.FirmwareInterface, "no-firmware")
   118  
   119  	nodeFirmwareCmps, err := nodes.ListFirmware(context.TODO(), client, node.UUID).Extract()
   120  	th.AssertNoErr(t, err)
   121  	th.AssertDeepEquals(t, nodeFirmwareCmps, []nodes.FirmwareComponent{})
   122  }