From 3742f2ce3526509581571fcbfe27ce5ba95dd351 Mon Sep 17 00:00:00 2001 From: Julia Kreger Date: Thu, 14 Sep 2023 14:06:14 -0700 Subject: [PATCH] [baremetal] Add firmware_interface support Adds support for new top level node field firmware_interface which was added in API microversion 1.86 to enable abstraction of operations in relation to firmware. Change-Id: I1b51f460d30d14c7a4afffb8a08a6c05505dfc9b --- openstack/baremetal/v1/node.py | 7 +++++-- openstack/tests/unit/baremetal/v1/test_node.py | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/openstack/baremetal/v1/node.py b/openstack/baremetal/v1/node.py index 3c7cbf3d3..877275650 100644 --- a/openstack/baremetal/v1/node.py +++ b/openstack/baremetal/v1/node.py @@ -99,8 +99,8 @@ class Node(_common.ListMixin, resource.Resource): is_maintenance='maintenance', ) - # Ability to query for parent_node, and view the field. - _max_microversion = '1.85' + # Ability to have a firmware_interface on a node. + _max_microversion = '1.86' # Properties #: The UUID of the allocation associated with this node. Added in API @@ -234,6 +234,9 @@ class Node(_common.ListMixin, resource.Resource): #: Deploy interface to use when deploying the node. #: Introduced in API microversion 1.31. deploy_interface = resource.Body("deploy_interface") + #: Firmware interface to be used when managing the node. + #: Introduced in API microversion 1.86 + firmware_interface = resource.Body("firmware_interface") #: Inspect interface to use when inspecting the node. #: Introduced in API microversion 1.31. inspect_interface = resource.Body("inspect_interface") diff --git a/openstack/tests/unit/baremetal/v1/test_node.py b/openstack/tests/unit/baremetal/v1/test_node.py index 01cc80142..0c82da05f 100644 --- a/openstack/tests/unit/baremetal/v1/test_node.py +++ b/openstack/tests/unit/baremetal/v1/test_node.py @@ -32,6 +32,7 @@ FAKE = { "driver_info": {"ipmi_password": "******", "ipmi_username": "ADMIN"}, "driver_internal_info": {}, "extra": {}, + "firmware_interface": None, "inspection_finished_at": None, "inspection_started_at": None, "instance_info": {}, @@ -127,6 +128,7 @@ class TestNode(base.TestCase): FAKE['driver_internal_info'], sot.driver_internal_info ) self.assertEqual(FAKE['extra'], sot.extra) + self.assertEqual(FAKE['firmware_interface'], sot.firmware_interface) self.assertEqual(FAKE['instance_info'], sot.instance_info) self.assertEqual(FAKE['instance_uuid'], sot.instance_id) self.assertEqual(FAKE['console_enabled'], sot.is_console_enabled)