mirror of
https://github.com/YunoHost/moulinette.git
synced 2024-09-03 20:06:31 +02:00
Merge pull request #50 from jeromelebleu/dev
Improve network informations monitoring
This commit is contained in:
commit
198ae59933
1 changed files with 12 additions and 8 deletions
|
@ -152,20 +152,20 @@ def monitor_network(units=None, human_readable=False):
|
||||||
try:
|
try:
|
||||||
p_ip = str(urlopen('http://ip.yunohost.org').read())
|
p_ip = str(urlopen('http://ip.yunohost.org').read())
|
||||||
except:
|
except:
|
||||||
raise YunoHostError(1, _("Public IP resolution failed"))
|
p_ip = 'unknown'
|
||||||
|
|
||||||
l_ip = None
|
l_ip = 'unknown'
|
||||||
for name, addrs in devices.items():
|
for name, addrs in devices.items():
|
||||||
if name == 'lo':
|
if name == 'lo':
|
||||||
continue
|
continue
|
||||||
if len(devices) == 2:
|
if len(devices) == 2:
|
||||||
l_ip = _extract_inet(addrs)
|
l_ip = _extract_inet(addrs)
|
||||||
else:
|
else:
|
||||||
if l_ip is None:
|
if not isinstance(l_ip, dict):
|
||||||
l_ip = {}
|
l_ip = {}
|
||||||
l_ip[name] = _extract_inet(addrs)
|
l_ip[name] = _extract_inet(addrs)
|
||||||
|
|
||||||
gateway = None
|
gateway = 'unknown'
|
||||||
output = subprocess.check_output('ip route show'.split())
|
output = subprocess.check_output('ip route show'.split())
|
||||||
m = re.search('default via (.*) dev ([a-z]+[0-9]?)', output)
|
m = re.search('default via (.*) dev ([a-z]+[0-9]?)', output)
|
||||||
if m:
|
if m:
|
||||||
|
@ -359,23 +359,27 @@ def _extract_inet(string, skip_netmask=False):
|
||||||
string -- String to search in
|
string -- String to search in
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# TODO: Return IPv4 and IPv6 when available
|
|
||||||
ip4 = '((25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}'
|
ip4 = '((25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}'
|
||||||
ip6 = '((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)::((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?'
|
ip6 = '(((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)::((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)'
|
||||||
ip4 += '/[0-9]{1,2})' if not skip_netmask else ')'
|
ip4 += '/[0-9]{1,2})' if not skip_netmask else ')'
|
||||||
ip6 += '/[0-9]{1,2})' if not skip_netmask else ')'
|
ip6 += '/[0-9]{1,2})' if not skip_netmask else ')'
|
||||||
|
|
||||||
ip4_prog = re.compile(ip4)
|
ip4_prog = re.compile(ip4)
|
||||||
ip6_prog = re.compile(ip6)
|
ip6_prog = re.compile(ip6)
|
||||||
|
result = []
|
||||||
|
|
||||||
m = ip4_prog.search(string)
|
m = ip4_prog.search(string)
|
||||||
if m:
|
if m:
|
||||||
return m.group(1)
|
result.append(m.group(1))
|
||||||
|
|
||||||
m = ip6_prog.search(string)
|
m = ip6_prog.search(string)
|
||||||
if m:
|
if m:
|
||||||
return m.group(1)
|
result.append(m.group(1))
|
||||||
|
|
||||||
|
if len(result) > 1:
|
||||||
|
return result
|
||||||
|
elif len(result) == 1:
|
||||||
|
return result[0]
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue