From 5a01c1b995b4914a22e0271b833c12b4ef1e49f6 Mon Sep 17 00:00:00 2001 From: Lucas Alvares Gomes Date: Mon, 21 Nov 2016 14:31:30 +0000 Subject: [PATCH] Do not ignore pm_port for Drac drivers Allow using a non-standard port for the Drac drivers. This patch is also adding unittests for pxe_drac and pxe_ipmitool drivers. Change-Id: Id4bf87ef5022d67b8720404c86ebbe28161405d3 Closes-Bug: #1643574 --- tripleo_common/tests/utils/test_nodes.py | 32 ++++++++++++++++++++++++ tripleo_common/utils/nodes.py | 3 ++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/tripleo_common/tests/utils/test_nodes.py b/tripleo_common/tests/utils/test_nodes.py index 5525dbff1..63e4f8a52 100644 --- a/tripleo_common/tests/utils/test_nodes.py +++ b/tripleo_common/tests/utils/test_nodes.py @@ -509,6 +509,38 @@ class NodesTest(base.TestCase): driver_info={'ucs_password': 'random', 'ucs_address': 'foo.bar', 'ucs_username': 'test'}) + def test_register_ironic_node_pxe_ipmitool(self): + node_properties = {"cpus": "1", + "memory_mb": "2048", + "local_gb": "30", + "cpu_arch": "amd64", + "capabilities": "num_nics:6"} + node = self._get_node() + node['pm_type'] = 'pxe_ipmitool' + node['pm_port'] = '6230' + client = mock.MagicMock() + nodes.register_ironic_node(node, client=client) + client.node.create.assert_called_once_with( + driver='pxe_ipmitool', name='node1', properties=node_properties, + driver_info={'ipmi_password': 'random', 'ipmi_address': 'foo.bar', + 'ipmi_username': 'test', 'ipmi_port': '6230'}) + + def test_register_ironic_node_pxe_drac(self): + node_properties = {"cpus": "1", + "memory_mb": "2048", + "local_gb": "30", + "cpu_arch": "amd64", + "capabilities": "num_nics:6"} + node = self._get_node() + node['pm_type'] = 'pxe_drac' + node['pm_port'] = '6230' + client = mock.MagicMock() + nodes.register_ironic_node(node, client=client) + client.node.create.assert_called_once_with( + driver='pxe_drac', name='node1', properties=node_properties, + driver_info={'drac_password': 'random', 'drac_host': 'foo.bar', + 'drac_username': 'test', 'drac_port': '6230'}) + def test_register_ironic_node_update_int_values(self): node = self._get_node() ironic = mock.MagicMock() diff --git a/tripleo_common/utils/nodes.py b/tripleo_common/utils/nodes.py index 7d2f42043..9f5459144 100644 --- a/tripleo_common/utils/nodes.py +++ b/tripleo_common/utils/nodes.py @@ -157,7 +157,8 @@ class iBootDriverInfo(PrefixedDriverInfo): DRIVER_INFO = { # production drivers '.*_ipmi(tool|native)': PrefixedDriverInfo('ipmi', has_port=True), - '.*_drac': PrefixedDriverInfo('drac', address_field='host'), + '.*_drac': PrefixedDriverInfo('drac', address_field='host', + has_port=True), '.*_ilo': PrefixedDriverInfo('ilo'), '.*_ucs': PrefixedDriverInfo( 'ucs',