diff --git a/ironic/drivers/modules/ipmitool.py b/ironic/drivers/modules/ipmitool.py index eed11467dd..ff58612c95 100644 --- a/ironic/drivers/modules/ipmitool.py +++ b/ironic/drivers/modules/ipmitool.py @@ -264,7 +264,7 @@ def _parse_driver_info(node): "value can be one of %(valid_versions)s") % {'version': protocol_version, 'valid_versions': valid_versions}) - if port: + if port is not None: try: port = int(port) except ValueError: diff --git a/ironic/tests/drivers/test_ipmitool.py b/ironic/tests/drivers/test_ipmitool.py index e83e968a14..4a96855609 100644 --- a/ironic/tests/drivers/test_ipmitool.py +++ b/ironic/tests/drivers/test_ipmitool.py @@ -1413,6 +1413,13 @@ class IPMIToolDriverTestCase(db_base.DbTestCase): self.assertRaises(exception.MissingParameterValue, task.driver.console.validate, task) + def test_console_validate_invalid_port(self): + with task_manager.acquire( + self.context, self.node.uuid, shared=True) as task: + task.node.driver_info['ipmi_terminal_port'] = '' + self.assertRaises(exception.InvalidParameterValue, + task.driver.console.validate, task) + def test_console_validate_wrong_ipmi_protocol_version(self): with task_manager.acquire( self.context, self.node.uuid, shared=True) as task: