summaryrefslogtreecommitdiff
diff options
authorJeff Lane <jeffrey.lane@canonical.com>2017-02-23 16:06:47 -0500
committerSylvain Pineau <sylvain.pineau@canonical.com>2017-04-03 09:39:22 +0200
commit50d1e306dc4d63c7a7f15832cd00fe789f050946 (patch)
tree0a5d44fa3ac651a41f496c8e2a513bc7a6954a73
parent95fe2f4b34dd64fd92c1da499fe85c6fa75a00cd (diff)
bin/network: fix traceback when device to be tested has no IP address LP: #1662724
-rwxr-xr-xbin/network16
1 files changed, 11 insertions, 5 deletions
diff --git a/bin/network b/bin/network
index 88fd931..8d04a67 100755
--- a/bin/network
+++ b/bin/network
@@ -260,7 +260,7 @@ class Interface(socket.socket):
nic_data = fcntl.ioctl(self.fileno(), 0x8915, freq)
except IOError:
logging.error("No IP address for %s", self.interface)
- return 1
+ return None
return socket.inet_ntoa(nic_data[20:24])
@property
@@ -271,7 +271,7 @@ class Interface(socket.socket):
mask_data = fcntl.ioctl(self.fileno(), 0x891b, freq)
except IOError:
logging.error("No netmask for %s", self.interface)
- return 1
+ return None
return socket.inet_ntoa(mask_data[20:24])
@property
@@ -433,9 +433,15 @@ def make_target_list(iface, test_targets, log_warnings):
List form of input string, minus invalid values
"""
test_targets_list = test_targets.split(",")
- net = ipaddress.IPv4Network("{}/{}".format(Interface(iface).ipaddress,
- Interface(iface).netmask),
- False)
+ try:
+ net = ipaddress.IPv4Network("{}/{}".format(Interface(iface).ipaddress,
+ Interface(iface).netmask),
+ False)
+ except ipaddress.AddressValueError as e:
+ logging.error("Device {}: Invalid IP Address".format(iface))
+ logging.error(" {}".format(e))
+ logging.error("Aborting test now")
+ sys.exit(1)
first_addr = net.network_address + 1
last_addr = first_addr + net.num_addresses - 2
return_list = list(test_targets_list)