diff --git a/neutron_lib/api/converters.py b/neutron_lib/api/converters.py index 598004bb4..ab5327979 100644 --- a/neutron_lib/api/converters.py +++ b/neutron_lib/api/converters.py @@ -192,7 +192,7 @@ def convert_ip_to_canonical_format(value): ip = netaddr.IPAddress(value) if ip.version == constants.IP_VERSION_6: return six.text_type(ip.format(dialect=netaddr.ipv6_compact)) - except netaddr.core.AddrFormatError: + except (netaddr.core.AddrFormatError, ValueError): pass return value diff --git a/neutron_lib/tests/unit/api/test_conversions.py b/neutron_lib/tests/unit/api/test_conversions.py index a5948848c..b98dee4cd 100644 --- a/neutron_lib/tests/unit/api/test_conversions.py +++ b/neutron_lib/tests/unit/api/test_conversions.py @@ -202,6 +202,12 @@ class TestConvertIPv6AddrCanonicalFormat(base.BaseTestCase): def test_convert_invalid_address(self): result = converters.convert_ip_to_canonical_format("on") self.assertEqual("on", result) + result = converters.convert_ip_to_canonical_format( + u'192.168.1.1/32') + self.assertEqual(u'192.168.1.1/32', result) + result = converters.convert_ip_to_canonical_format( + u'2001:db8:0:1:1:1:1:1/128') + self.assertEqual(u'2001:db8:0:1:1:1:1:1/128', result) class TestConvertIPv6CIDRCanonicalFormat(base.BaseTestCase):