create model class in views

The model gets passed into the view, but it's only the class name
We need to create an object of the model class before we can use it.

Also implement new network get_iface_info to dump additional iface
info in the view.

Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
This commit is contained in:
Ryan Harper 2015-06-25 21:44:19 -05:00
parent 4418c94521
commit 6b82c1fc7e
3 changed files with 21 additions and 10 deletions

View File

@ -33,15 +33,23 @@ class NetworkModel(models.Model):
'Install network driver']
def __init__(self):
self.hwdata = {}
self.network = {}
self.options = argparse.Namespace(probe_storage=False,
probe_network=True)
self.prober = prober.Prober(self.options)
def probe_network(self):
self.prober.probe()
self.hwdata = self.prober.get_results()
self.network = self.prober.get_results().get('network')
def get_interfaces(self):
return [n for n in self.hwdata['network'].keys()
if self.hwdata['network'][n]['type'] == 'eth']
return [iface for iface in self.network.keys()
if self.network[iface]['type'] == 'eth']
def get_iface_info(self, iface):
ipinfo = self.network[iface]['ip']
hwinfo = self.network[iface]['hardware']
return "{}/{} -- {} {}".format(ipinfo['addr'],
ipinfo['netmask'],
hwinfo['ID_VENDOR_FROM_DATABASE'],
hwinfo['ID_MODEL_FROM_DATABASE'])

View File

@ -46,13 +46,14 @@ class FilesystemView(WidgetWrap):
def _build_model_inputs(self):
sl = []
self.model.probe_storage()
for disk in self.model.get_available_disks():
sm = self.model()
sm.probe_storage()
for disk in sm.get_available_disks():
sl.append(Color.button_primary(confirm_btn(label=disk,
on_press=self.confirm),
focus_map='button_primary focus'))
disk_sz = self.model.get_disk_size(disk)
disk_sz = sm.get_disk_size(disk)
sl.append(Padding.push_10(Text(disk_sz)))
return BoxAdapter(SimpleList(sl),

View File

@ -46,12 +46,14 @@ class NetworkView(WidgetWrap):
def _build_model_inputs(self):
sl = []
self.model.probe_network()
for iface in self.model.get_interfaces():
nm = self.model()
nm.probe_network()
for iface in nm.get_interfaces():
sl.append(Color.button_primary(confirm_btn(label=iface,
on_press=self.confirm),
focus_map='button_primary focus'))
sl.append(Padding.push_10(Text("Adapter info")))
ifinfo = nm.get_iface_info(iface)
sl.append(Padding.push_10(Text(ifinfo)))
return BoxAdapter(SimpleList(sl),
height=len(sl))