Merge pull request #162 from CanonicalLtd/mwhudson/link-status
Indicate if a wired interface is connected or not
This commit is contained in:
commit
f031e71162
|
@ -17,7 +17,9 @@ import errno
|
|||
import ipaddress
|
||||
import logging
|
||||
import os
|
||||
|
||||
import netifaces
|
||||
|
||||
from subiquitycore.prober import make_network_info
|
||||
from subiquitycore.model import BaseModel
|
||||
from subiquitycore.utils import (read_sys_net,
|
||||
|
@ -228,6 +230,9 @@ class Networkdev():
|
|||
ip_info = self._get_ip_info()
|
||||
return ip_info['ip6_providers']
|
||||
|
||||
def is_connected(self):
|
||||
return self.probe_info.is_connected
|
||||
|
||||
def remove_networks(self):
|
||||
self.remove_ipv4_networks()
|
||||
self.remove_ipv6_networks()
|
||||
|
@ -360,6 +365,7 @@ class NetworkModel(BaseModel):
|
|||
# --- Model Methods ----
|
||||
def probe_network(self):
|
||||
log.debug('model calling prober.get_network()')
|
||||
self.prober.probe()
|
||||
network_devices = self.prober.get_network_devices()
|
||||
self.network_routes = self.prober.get_network_routes()
|
||||
|
||||
|
|
|
@ -53,21 +53,23 @@ class Prober():
|
|||
|
||||
return data
|
||||
|
||||
def _probe_network(self):
|
||||
if 'network' not in self.probe_data:
|
||||
log.debug('get_network: no network in probe_data, fetching')
|
||||
network = Network()
|
||||
results = network.probe()
|
||||
self.probe_data['network'] = {}
|
||||
self.probe_data['network']['devices'] = results
|
||||
self.probe_data['network']['routes'] = network.get_routes()
|
||||
def probe(self):
|
||||
network = Network()
|
||||
results = network.probe()
|
||||
self.probe_data['network'] = {}
|
||||
self.probe_data['network']['devices'] = results
|
||||
self.probe_data['network']['routes'] = network.get_routes()
|
||||
|
||||
def get_network_devices(self):
|
||||
self._probe_network()
|
||||
if 'network' not in self.probe_data:
|
||||
log.debug('get_network_devices: no network in probe_data, fetching')
|
||||
self.probe()
|
||||
return self.probe_data['network']['devices']
|
||||
|
||||
def get_network_routes(self):
|
||||
self._probe_network()
|
||||
if 'network' not in self.probe_data:
|
||||
log.debug('get_network_routes: no network in probe_data, fetching')
|
||||
self.probe()
|
||||
return self.probe_data['network']['routes']
|
||||
|
||||
def get_network_info(self, device):
|
||||
|
|
|
@ -156,7 +156,13 @@ class NetworkView(BaseView):
|
|||
if ( not ip_status['dhcp4'] and not ip_status['dhcp6'] ) \
|
||||
and len(ip_status['ipv4_addresses']) == 0 and \
|
||||
len(ip_status['ipv6_addresses']) == 0:
|
||||
template = "Not configured"
|
||||
if interface.type == 'eth':
|
||||
if interface.is_connected():
|
||||
template = "Not configured"
|
||||
else:
|
||||
template = "Not connected"
|
||||
else:
|
||||
template = "Not configured"
|
||||
|
||||
if ip_status['dhcp4'] and ip_status['dhcp6'] and \
|
||||
len(ip_status['ipv4_addresses']) == 0 and \
|
||||
|
|
Loading…
Reference in New Issue