add PROTO_NUM_IPV6_ICMP for _validate_port_range
PROTO_NUM_IPV6_ICMP is missed in _validate_port_range, this patch adds it. Closes-Bug: #1574472 Change-Id: I52e2dcf65f35da880c64056b159ac2414702bf1e
This commit is contained in:
parent
1019d2b1e5
commit
03c03dbd21
|
@ -454,7 +454,8 @@ class SecurityGroupDbMixin(ext_sg.SecurityGroupPluginBase):
|
|||
pass
|
||||
else:
|
||||
raise ext_sg.SecurityGroupInvalidPortRange()
|
||||
elif ip_proto == constants.PROTO_NUM_ICMP:
|
||||
elif ip_proto in [constants.PROTO_NUM_ICMP,
|
||||
constants.PROTO_NUM_IPV6_ICMP]:
|
||||
for attr, field in [('port_range_min', 'type'),
|
||||
('port_range_max', 'code')]:
|
||||
if rule[attr] is not None and not (0 <= rule[attr] <= 255):
|
||||
|
|
|
@ -290,3 +290,17 @@ class SecurityGroupDbMixinTestCase(testlib_api.SqlTestCase):
|
|||
for i, protocol in enumerate(protocols):
|
||||
self.assertEqual(protocol_names_nums[i],
|
||||
self.mixin._get_ip_proto_name_and_num(protocol))
|
||||
|
||||
def test__validate_port_range_for_icmp_exception(self):
|
||||
states = [(1, 256, securitygroup.SecurityGroupInvalidIcmpValue),
|
||||
(None, 6, securitygroup.SecurityGroupMissingIcmpType),
|
||||
(300, 1, securitygroup.SecurityGroupInvalidIcmpValue)]
|
||||
for protocol in (constants.PROTO_NAME_ICMP,
|
||||
constants.PROTO_NAME_IPV6_ICMP,
|
||||
n_const.PROTO_NAME_IPV6_ICMP_LEGACY):
|
||||
for pmin, pmax, exception in states:
|
||||
self.assertRaises(exception,
|
||||
self.mixin._validate_port_range,
|
||||
{'port_range_min': pmin,
|
||||
'port_range_max': pmax,
|
||||
'protocol': protocol})
|
||||
|
|
Loading…
Reference in New Issue