Raise InvalidPrameterValue when ipmi_terminal_port is ''

when we set ipmi_terminal_port to '', there's no InvalidParameterValue
exception raised when parsing driver info, as we only check if the port
value is an integer type when it is not empty.

Change-Id: I4c5b51f37bb5e9c2e013e96c652d5db461caceec
Closes-Bug: #1492935
This commit is contained in:
Zhenguo Niu 2015-09-07 16:10:29 +08:00
parent c2d6fe855d
commit bdde07b29e
2 changed files with 8 additions and 1 deletions

View File

@ -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:

View File

@ -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: