Skip to content

Commit 3b3481f

Browse files
committed
Fix traits.create call
1 parent d786564 commit 3b3481f

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

python/ironic-understack/ironic_understack/tests/test_update_baremetal_port.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
def test_with_valid_data(mocker):
2525
node_uuid = uuidutils.generate_uuid()
2626
mock_traits = mocker.Mock()
27-
mock_node = mocker.Mock(traits=mock_traits)
27+
mock_node = mocker.Mock(id=1234, traits=mock_traits)
2828
mock_task = mocker.Mock(node=mock_node)
2929
mock_port = mocker.Mock(
3030
uuid=uuidutils.generate_uuid(),
@@ -52,5 +52,5 @@ def test_with_valid_data(mocker):
5252

5353
mock_traits.get_trait_names.assert_called_once()
5454
mock_traits.destroy.assert_called_once_with("CUSTOM_NETWORK_SWITCH")
55-
mock_traits.create.assert_called_once_with("CUSTOM_STORAGE_SWITCH")
55+
mock_traits.create.assert_called_once_with(None, 1234, ["CUSTOM_STORAGE_SWITCH"])
5656
mock_node.save.assert_called_once()

python/ironic-understack/ironic_understack/update_baremetal_port.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -200,22 +200,29 @@ def _set_node_traits(task, vlan_groups: set[str]):
200200
required_traits = { _trait_name(x) for x in vlan_groups }
201201
existing_traits = set(task.node.traits.get_trait_names()).intersection(all_traits)
202202

203-
LOG.debug(f"Existing traits of node {task.node.uuid=} {task.node.traits=} {existing_traits=}")
204-
205203
traits_to_remove = existing_traits.difference(required_traits)
206204
traits_to_add = required_traits.difference(existing_traits)
207205

208-
print(f"{task.node.uuid=} {task.node.traits=} {existing_traits=} {all_traits=} {required_traits=} {traits_to_add=} {traits_to_remove=}")
206+
LOG.debug(
207+
"Checking traits for node %s: existing=%s required=%s",
208+
task.node.uuid, existing_traits, required_traits,
209+
)
210+
209211
for trait in traits_to_remove:
212+
LOG.debug("Removing trait %s from node %s", trait, task.node.uuid)
210213
try:
211214
task.node.traits.destroy(trait)
212215
except openstack.exceptions.NotFoundException:
213216
pass
214217

215-
for trait in traits_to_add:
216-
task.node.traits = task.node.traits.create(trait)
218+
if traits_to_add:
219+
LOG.debug("Adding traits %s to node %s", traits_to_add, task.node.uuid)
220+
task.node.traits = task.node.traits.create(
221+
None, task.node.id, list(traits_to_add)
222+
)
217223

218-
task.node.save()
224+
if traits_to_add or traits_to_remove:
225+
task.node.save()
219226

220227
def _trait_name(vlan_group_name: str) -> str:
221228
suffix = vlan_group_name.upper().split("-")[-1]

0 commit comments

Comments
 (0)