Support traits configuration on baremetal create CLI

Allow traits to be specified and applied to the nodes
to be created.

Closes-Bug: #2065129

Change-Id: Idcfa489dcfe8061b99182cea8c9b96f827e4be74
This commit is contained in:
Kaifeng Wang
2024-05-20 22:04:26 +08:00
parent bc19ec26d1
commit ba06bee637
3 changed files with 19 additions and 0 deletions

View File

@@ -255,6 +255,17 @@ class CreateMethodsTest(utils.BaseTestCase):
)
self.client.node.create.assert_called_once_with(driver='fake')
def test_create_single_node_with_traits(self):
params = {'driver': 'fake', 'traits': ['CUSTOM_PERFORMANCE']}
self.client.node.create.return_value = mock.Mock(uuid='uuid')
self.assertEqual(
('uuid', None),
create_resources.create_single_node(self.client, **params)
)
self.client.node.create.assert_called_once_with(driver='fake')
self.client.node.set_traits.assert_called_once_with(
mock.ANY, ['CUSTOM_PERFORMANCE'])
def test_create_single_node_with_ports(self):
params = {'driver': 'fake', 'ports': ['some ports here']}
self.client.node.create.return_value = mock.Mock(uuid='uuid')

View File

@@ -150,7 +150,10 @@ def create_single_node(client, **params):
"""
params.pop('ports', None)
params.pop('portgroups', None)
traits = params.pop('traits', None)
ret = client.node.create(**params)
if traits:
client.node.set_traits(ret.uuid, traits)
return ret.uuid

View File

@@ -0,0 +1,5 @@
---
features:
- |
Traits can be specified and applied for nodes to be created
with the ``openstack baremetal create`` command.