Merge "Simplify the logic of validate_network_port"

This commit is contained in:
Zuul 2017-11-02 14:10:47 +00:00 committed by Gerrit Code Review
commit 74d97be3ce
2 changed files with 12 additions and 17 deletions

View File

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

View File

@ -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')