diff options
author | ChangBo Guo(gcb) <eric.guo@easystack.cn> | 2017-11-01 18:47:31 +0800 |
---|---|---|
committer | ChangBo Guo(gcb) <eric.guo@easystack.cn> | 2017-11-02 10:05:55 +0800 |
commit | d3da9dec0ea5102a3f7b217843d03f2147753b9e (patch) | |
tree | 42e8b100c7ae86b24d93724a3046958601709f3d /ironic | |
parent | 32846e9987f01abac361928842770d8de6b1303d (diff) | |
download | ironic-d3da9dec0ea5102a3f7b217843d03f2147753b9e.tar.gz |
Simplify the logic of validate_network_port
osl.utils provides method is_valid_port to check port, we can
leverage it to make code more clear. Note that the code here was
incorrect in accepting 1-65535, and this change fixes it to also
include 0.
Change-Id: I60cb36a042fd808edca66b07d7248213debd4dff
Diffstat (limited to 'ironic')
-rw-r--r-- | ironic/common/utils.py | 19 | ||||
-rw-r--r-- | ironic/tests/unit/common/test_utils.py | 10 |
2 files changed, 12 insertions, 17 deletions
diff --git a/ironic/common/utils.py b/ironic/common/utils.py index 087cedc57..dd53dbfa1 100644 --- a/ironic/common/utils.py +++ b/ironic/common/utils.py @@ -472,18 +472,13 @@ def validate_network_port(port, port_name="Port"): :returns: An integer port number. :raises: InvalidParameterValue, if the port is invalid. """ - try: - port = int(port) - except ValueError: - raise exception.InvalidParameterValue(_( - '%(port_name)s "%(port)s" is not a valid integer.') % - {'port_name': port_name, 'port': port}) - if port < 1 or port > 65535: - raise exception.InvalidParameterValue(_( - '%(port_name)s "%(port)s" is out of range. Valid port ' - 'numbers must be between 1 and 65535.') % - {'port_name': port_name, 'port': port}) - return port + + if netutils.is_valid_port(port): + return int(port) + + raise exception.InvalidParameterValue(_( + '%(port_name)s "%(port)s" is not a valid port.') % + {'port_name': port_name, 'port': port}) def render_template(template, params, is_file=True): diff --git a/ironic/tests/unit/common/test_utils.py b/ironic/tests/unit/common/test_utils.py index 2c6acec11..30fd3d1ab 100644 --- a/ironic/tests/unit/common/test_utils.py +++ b/ironic/tests/unit/common/test_utils.py @@ -545,23 +545,23 @@ class GetUpdatedCapabilitiesTestCase(base.TestCase): self.assertIsInstance(cap_returned, str) def test_validate_network_port(self): - port = utils.validate_network_port('1', 'message') - self.assertEqual(1, port) + port = utils.validate_network_port('0', 'message') + self.assertEqual(0, port) port = utils.validate_network_port('65535') self.assertEqual(65535, port) def test_validate_network_port_fail(self): self.assertRaisesRegex(exception.InvalidParameterValue, - 'Port "65536" is out of range.', + 'Port "65536" is not a valid port.', utils.validate_network_port, '65536') self.assertRaisesRegex(exception.InvalidParameterValue, - 'fake_port "-1" is out of range.', + 'fake_port "-1" is not a valid port.', utils.validate_network_port, '-1', 'fake_port') self.assertRaisesRegex(exception.InvalidParameterValue, - 'Port "invalid" is not a valid integer.', + 'Port "invalid" is not a valid port.', utils.validate_network_port, 'invalid') |