From ed45c0b95d6eea0d4a40437dcbbc5920a72aa939 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Fri, 1 Feb 2013 04:06:09 -0500 Subject: Reimplement is_valid_ipv4(). This patch reimplements the is_valid_ipv4() function is nova.utils. Instead of open-coding the validity check, just make use of the netaddr module, which is already used elsewhere in nova.utils. Also add a unit test for this code. Part of indigoprint bored-on-an-airplane. Change-Id: Ia89cbbd94a0ac4631d794d658b53c244237e1ca2 --- nova/utils.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'nova/utils.py') diff --git a/nova/utils.py b/nova/utils.py index be441bfcc..7dc4f6d8f 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -881,19 +881,12 @@ def is_valid_boolstr(val): def is_valid_ipv4(address): - """valid the address strictly as per format xxx.xxx.xxx.xxx. - where xxx is a value between 0 and 255. - """ - parts = address.split(".") - if len(parts) != 4: + """Verify that address represents a valid IPv4 address.""" + try: + addr = netaddr.IPAddress(address) + return addr.version == 4 + except Exception: return False - for item in parts: - try: - if not 0 <= int(item) <= 255: - return False - except ValueError: - return False - return True def is_valid_cidr(address): -- cgit