[modules/nic] reduce code complexity (hopefully)

fixes #37
This commit is contained in:
Tobi-wan Kenobi 2017-02-26 09:08:36 +01:00
parent 0496234370
commit 6d47240d6a

View file

@ -47,6 +47,16 @@ class Module(bumblebee.engine.Module):
def _istunnel(self, intf): def _istunnel(self, intf):
return intf.startswith("tun") return intf.startswith("tun")
def get_addresses(self, intf):
retval = []
try:
for ip in netifaces.ifaddresses(intf).get(netifaces.AF_INET, []):
if ip.get("addr", "") != "":
retval.append(ip.get("addr"))
except Exception:
return []
return retval
def _update_widgets(self, widgets): def _update_widgets(self, widgets):
interfaces = [ i for i in netifaces.interfaces() if not i.startswith(self._exclude) ] interfaces = [ i for i in netifaces.interfaces() if not i.startswith(self._exclude) ]
@ -56,14 +66,9 @@ class Module(bumblebee.engine.Module):
for intf in interfaces: for intf in interfaces:
addr = [] addr = []
state = "down" state = "down"
try: for ip in self.get_addresses(intf):
if netifaces.AF_INET in netifaces.ifaddresses(intf): addr.append(ip)
for ip in netifaces.ifaddresses(intf)[netifaces.AF_INET]: state = "up"
if "addr" in ip and ip["addr"] != "":
addr.append(ip["addr"])
state = "up"
except Exception as e:
addr = []
widget = self.widget(intf) widget = self.widget(intf)
if not widget: if not widget:
widget = bumblebee.output.Widget(name=intf) widget = bumblebee.output.Widget(name=intf)