X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=web%2FMonitorWeb%2Fmonitorweb%2Fcontrollers.py;h=0f919ab71c07773f801aad5afe895be25a295216;hb=32e47491837a321e684ea167ab6aa430145562f1;hp=be519599ad2cf33dbd4b23d2990f22e6b1ffdd6e;hpb=45fea95bb898f254ea7e987d7417e9091885fbee;p=monitor.git diff --git a/web/MonitorWeb/monitorweb/controllers.py b/web/MonitorWeb/monitorweb/controllers.py index be51959..0f919ab 100644 --- a/web/MonitorWeb/monitorweb/controllers.py +++ b/web/MonitorWeb/monitorweb/controllers.py @@ -11,6 +11,8 @@ import os from monitor.database.info.model import * #from monitor.database.zabbixapi.model import * from monitor_xmlrpc import MonitorXmlrpcServer +from controllers_local import LocalExtensions +from pcucontrol.reboot import pcu_name from monitor import util from monitor import reboot @@ -41,9 +43,11 @@ class NodeQueryFields(widgets.WidgetsList): hostname = widgets.CheckBox(label="Hostname") firewall = widgets.CheckBox(label="Firewall?") + fs_status = widgets.CheckBox(label="Filesystem Status") ssh_status = widgets.CheckBox(label="SSH Status") ssh_error = widgets.CheckBox(label="SSH Errors") dns_status = widgets.CheckBox(label="DNS Status") + iptables_status = widgets.CheckBox(label="IP Tables Status") nm_status = widgets.CheckBox(label="NM Status") princeton_comon_dir = widgets.CheckBox(label="CoMon Dir") princeton_comon_running = widgets.CheckBox(label="CoMon Running") @@ -51,14 +55,20 @@ class NodeQueryFields(widgets.WidgetsList): external_dns_status = widgets.CheckBox(label="Hostname Resolves?") kernel_version = widgets.CheckBox(label="Kernel") bootcd_version = widgets.CheckBox(label="BootCD") + boot_server = widgets.CheckBox(label="Boot Server") + install_date = widgets.CheckBox(label="Installation Date") observed_status = widgets.CheckBox(label="Observed Status") + uptime = widgets.CheckBox(label="Uptime") + traceroute = widgets.CheckBox(label="Traceroute") port_status = widgets.CheckBox(label="Port Status") + plc_pcuid = widgets.CheckBox(label="PCU ID") rpms = widgets.CheckBox(label="RPM") rpmvalue = widgets.TextField(label="RPM Pattern") class QueryForm(widgets.TableForm): template = """
" if 'rpmvalue' in data and 'rpms' in data: if agg['rpms']: rpm_list = agg['rpms'].split() - rpm_list = filter(lambda x: data['rpmvalue'] in x, rpm_list) + rpm_list = filter(lambda x: re.match(data['rpmvalue'], x, re.I), + rpm_list) agg['rpms'] = " ".join(rpm_list) query.append(agg) @@ -486,10 +503,15 @@ class Root(controllers.RootController, MonitorXmlrpcServer): def simpleview(self, **data): return self.pre_view(**data) + @expose(template="monitorweb.templates.simpleview") + def pcuview(self, **data): + return self.pre_view(**data) + @expose(template="monitorweb.templates.detailview") def detailview(self, **data): return self.pre_view(**data) + def pre_view(self, **data): session.flush(); session.clear() @@ -584,6 +606,12 @@ class Root(controllers.RootController, MonitorXmlrpcServer): for pcuid_key in pcus: pcuquery += [pcus[pcuid_key]] + #for a in nodequery: + # print type(a.node) + # print type(a.node.hostname) + nodequery.sort(lambda a,b: cmp(a.node.hostname,b.node.hostname)) + pcuquery.sort(lambda a,b: cmp(a.pcu_name,b.pcu_name)) + actionlist_widget = ActionListWidget(template='monitorweb.templates.actionlist_template') return dict(sitequery=sitequery, pcuquery=pcuquery, nodequery=nodequery, actions=actions_list, actionlist_widget=actionlist_widget, since=since, exceptions=exceptions) @@ -591,7 +619,7 @@ class Root(controllers.RootController, MonitorXmlrpcServer): # TODO: add form validation @expose(template="monitorweb.templates.pcuview") @exception_handler(nodeaction_handler,"isinstance(tg_exceptions,RuntimeError)") - def pcuview(self, loginbase=None, pcuid=None, hostname=None, since=20, **data): + def pcuviewold(self, loginbase=None, pcuid=None, hostname=None, since=20, **data): session.flush(); session.clear() sitequery=[] pcuquery=[] @@ -651,7 +679,7 @@ class Root(controllers.RootController, MonitorXmlrpcServer): query = [] if pcu_id: fbnode = HistoryPCURecord.get_by(plc_pcuid=pcu_id) - l = fbnode.versions[-100:] + l = fbnode.versions[-1000:] l.reverse() for pcu in l: #prep_node_for_display(node) @@ -696,13 +724,15 @@ class Root(controllers.RootController, MonitorXmlrpcServer): if loginbase: fbsite = HistorySiteRecord.get_by(loginbase=loginbase) # TODO: add links for earlier history if desired. - l = fbsite.versions[-100:] + l = fbsite.versions[-1000:] l.reverse() for site in l: query.append(site) return dict(query=query, loginbase=loginbase) + @expose("cheetah:monitorweb.templates.pculist_plain", as_format="plain", + accept_format="text/plain", content_type="text/plain") @expose(template="monitorweb.templates.pculist") def pcu(self, filter='all'): print "PCUVIEW------------------" @@ -875,7 +905,9 @@ class Root(controllers.RootController, MonitorXmlrpcServer): print "write data: %s" % abs_target_filename util.file.dumpFile(abs_target_filename, log.file.read()) bootman.bootmanager_log_action(hostname, short_target_filename, logtype) + session.flush() print "redirecting 3" return dict() +