Don't convert numeric protocol values to int
They are treated as strings everywhere. Converting them to int causes problems when using postgresql as the database backend because it doesn't automatically cast them back to integer. Change-Id: I9f0a5149d24a4c003409728e50376569c97e7325 Closes-bug: 1330490
This commit is contained in:
@@ -116,7 +116,7 @@ def convert_protocol(value):
|
||||
try:
|
||||
val = int(value)
|
||||
if val >= 0 and val <= 255:
|
||||
return val
|
||||
return value
|
||||
raise SecurityGroupRuleInvalidProtocol(
|
||||
protocol=value, values=sg_supported_protocols)
|
||||
except (ValueError, TypeError):
|
||||
|
||||
@@ -1427,5 +1427,15 @@ class TestConvertIPPrefixToCIDR(base.BaseTestCase):
|
||||
self.assertEqual(ext_sg.convert_ip_prefix_to_cidr(addr), addr)
|
||||
|
||||
|
||||
class TestConvertProtocol(base.BaseTestCase):
|
||||
def test_convert_numeric_protocol(self):
|
||||
assert(isinstance(ext_sg.convert_protocol('2'), str))
|
||||
|
||||
def test_convert_bad_protocol(self):
|
||||
for val in ['bad', '256', '-1']:
|
||||
self.assertRaises(ext_sg.SecurityGroupRuleInvalidProtocol,
|
||||
ext_sg.convert_protocol, val)
|
||||
|
||||
|
||||
class TestSecurityGroupsXML(TestSecurityGroups):
|
||||
fmt = 'xml'
|
||||
|
||||
Reference in New Issue
Block a user