This patch resolves the issue where wrong message was being
shown when ethertype input parameter was not amongst one of
the types supported. New message made akin to other input
parameters like 'protocol'.
Change-Id: I5636f3582c9d9877dad4d091a374284b656923f4
Closes-Bug: #
1508106
message = _("Error %(reason)s while attempting the operation.")
+class SecurityGroupRuleInvalidEtherType(nexception.InvalidInput):
+ message = _("Security group rule for ethertype '%(ethertype)s' not "
+ "supported. Allowed values are %(values)s.")
+
+
def convert_protocol(value):
if value is None:
return
for ethertype in sg_supported_ethertypes:
if ethertype.lower() == value.lower():
return ethertype
+ raise SecurityGroupRuleInvalidEtherType(
+ ethertype=value, values=sg_supported_ethertypes)
def convert_validate_port_value(port):
def test_convert_numeric_protocol_to_string(self):
self.assertIsInstance(ext_sg.convert_protocol(2), str)
+
+
+class TestConvertEtherType(base.BaseTestCase):
+ def test_convert_unsupported_ethertype(self):
+ for val in ['ip', 'ip4', 'ip6', '']:
+ self.assertRaises(ext_sg.SecurityGroupRuleInvalidEtherType,
+ ext_sg.convert_ethertype_to_case_insensitive,
+ val)