From 682c81c2890978cefecc718a4611d8ecd9f821d4 Mon Sep 17 00:00:00 2001 From: Michael Hudson-Doyle Date: Fri, 16 Sep 2016 14:27:37 +1200 Subject: [PATCH] Really probe (i.e. call into probert) every time we load the network screen. Connected-ness of a link is something that can plausibly change over short timescales. --- subiquitycore/models/network.py | 1 + subiquitycore/prober.py | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/subiquitycore/models/network.py b/subiquitycore/models/network.py index 0eb9b3d9..ea995995 100644 --- a/subiquitycore/models/network.py +++ b/subiquitycore/models/network.py @@ -360,6 +360,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() diff --git a/subiquitycore/prober.py b/subiquitycore/prober.py index 70f5c1e6..c59ea631 100644 --- a/subiquitycore/prober.py +++ b/subiquitycore/prober.py @@ -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):