+ @expose(template="monitorweb.templates.welcome")
+ def index(self):
+ import time
+ # log.debug("Happy TurboGears Controller Responding For Duty")
+ flash("Your application is now running")
+ return dict(now=time.ctime())
+
+ @expose(template="monitorweb.templates.nodelist")
+ def node(self, filter='BOOT'):
+ import time
+ fbquery = FindbadNodeRecord.get_all_latest()
+ query = []
+ filtercount = {'DOWN' : 0, 'BOOT': 0, 'DEBUG' : 0, 'neverboot' : 0, 'pending' : 0, 'all' : 0}
+ for node in fbquery:
+ if node.plc_pcuid:
+ pcu = FindbadPCURecord.get_latest_by(plc_pcuid=node.plc_pcuid).first()
+ if pcu:
+ node.pcu_status = pcu.reboot_trial_status
+ else:
+ node.pcu_status = "nodata"
+ else:
+ node.pcu_status = "nopcu"
+
+ if node.kernel_version:
+ node.kernel = node.kernel_version.split()[2]
+ else:
+ node.kernel = ""
+
+ # NOTE: count filters
+ if node.observed_status != 'DOWN':
+ filtercount[node.observed_status] += 1
+ else:
+ if node.plc_node_stats['last_contact'] != None:
+ filtercount[node.observed_status] += 1
+ else:
+ filtercount['neverboot'] += 1
+
+ # NOTE: apply filter
+ if filter == node.observed_status:
+ if filter == "DOWN":
+ if node.plc_node_stats['last_contact'] != None:
+ query.append(node)
+ else:
+ query.append(node)
+ elif filter == "neverboot":
+ if node.plc_node_stats['last_contact'] == None:
+ query.append(node)
+ elif filter == "pending":
+ # TODO: look in message logs...
+ pass
+ elif filter == "all":
+ query.append(node)
+
+ return dict(now=time.ctime(), query=query, fc=filtercount)
+
+ @expose(template="monitorweb.templates.pculist")
+ def pcu(self, filter='all'):
+ import time
+ fbquery = FindbadPCURecord.get_all_latest()
+ query = []
+ filtercount = {'ok' : 0, 'NetDown': 0, 'Not_Run' : 0, 'pending' : 0, 'all' : 0}
+ for node in fbquery:
+
+ # NOTE: count filter
+ if node.reboot_trial_status == str(0):
+ filtercount['ok'] += 1
+ elif node.reboot_trial_status == 'NetDown' or node.reboot_trial_status == 'Not_Run':
+ filtercount[node.reboot_trial_status] += 1
+ else:
+ filtercount['pending'] += 1
+
+ print reboot.pcu_name(node.plc_pcu_stats)
+ node.ports = format_ports(node)
+ node.status = format_pcu_shortstatus(node)
+
+ # NOTE: apply filter
+ if filter == "all":
+ query.append(node)
+ elif filter == "ok" and node.reboot_trial_status == str(0):
+ query.append(node)
+ elif filter == node.reboot_trial_status:
+ query.append(node)
+ elif filter == "pending":
+ # TODO: look in message logs...
+ if node.reboot_trial_status != str(0) and \
+ node.reboot_trial_status != 'NetDown' and \
+ node.reboot_trial_status != 'Not_Run':
+
+ query.append(node)
+
+ return dict(query=query, fc=filtercount)
+
+ @expose(template="monitorweb.templates.pculist")
+ def site(self, filter='all'):
+ filtercount = {'ok' : 0, 'NetDown': 0, 'Not_Run' : 0, 'pending' : 0, 'all' : 0}
+ return dict(query=[], fc=filtercount)
+
+ @expose(template="monitorweb.templates.pculist")
+ def action(self, filter='all'):
+ filtercount = {'ok' : 0, 'NetDown': 0, 'Not_Run' : 0, 'pending' : 0, 'all' : 0}
+ return dict(query=[], fc=filtercount)