From: Barış Metin Date: Mon, 19 Oct 2009 08:31:00 +0000 (+0000) Subject: - remove monitor-client.cron X-Git-Tag: Monitor-3.0-23~1 X-Git-Url: http://git.onelab.eu/?p=monitor.git;a=commitdiff_plain;h=79e0b110f78d8bab2d5b659c1bbc572f8168b104 - remove monitor-client.cron - remove unused monitor-client init script - fix UP/DOWN summary on nodes page. - make node page display all nodes by default - add boot_server field - add myops_ssh_key to the keychain - use ext_consortium_id to distinguish pending sites. Setting tag Monitor-3.0-23 --This line, and those below, will be ignored-- Please write a changelog for this new tag in the section above DIFF========= Index: monitor.cron =================================================================== --- monitor.cron (.../tags/Monitor-3.0-22) (révision 15357) +++ monitor.cron (.../trunk) (révision 15357) @@ -1,5 +0,0 @@ -# Runs once a day at 12pm to fetch the monitor account keys in case it was -# inaccessible previously due to a network outage. - -0 12 * * * root /etc/init.d/monitor start > /dev/null 2>&1 - Index: monitor-client.init =================================================================== --- monitor-client.init (.../tags/Monitor-3.0-22) (révision 15357) +++ monitor-client.init (.../trunk) (révision 15357) @@ -1,53 +0,0 @@ -#!/bin/bash -# -# monitor Enables the monitor account by setting up the ssh key from the enabled PLC. -# -# Load before nm, vcached, and vservers, vserver-reference -# chkconfig: 3 59 80 -# description: Fetch monitor ssh key to enable access to machine via monitor immediately. -# -# Stephen Soltesz -# Copyright (C) 2008 The Trustees of Princeton University -# -# $Id$ -# - -case "$1" in - start|restart|reload) - ;; - stop|status) - exit 0 - ;; - *) - echo $"Usage: $0 {start|stop|restart|status}" - exit 1 - ;; -esac - -# -# NOTE: This user is not used by monitor for the moment so better not create it. -# - -# # NOTE: If user already exists, this just exists with status 9. I think it's -# # ok to simply let this command check and error out. -# # Parse PLC configuration -# if [ -r /etc/planetlab/plc_config ] ; then -# . /etc/planetlab/plc_config -# else -# PLC_NAME="PlanetLab" -# PLC_SLICE_PREFIX="pl" -# PLC_BOOT_HOST="boot.planet-lab.org" -# fi - -# USER="${PLC_SLICE_PREFIX}_monitor" -# /usr/sbin/useradd -p "" -m $USER &> /dev/null || : - -# if [ ! -d /home/$USER/.ssh ] ; then -# mkdir /home/$USER/.ssh -# chmod 700 /home/$USER/.ssh -# chown $USER.$USER /home/$USER/.ssh -# fi - -# URL="http://${PLC_BOOT_HOST}/PlanetLabConf/keys.php?$USER" -# curl -s "$URL" > /home/$USER/.ssh/authorized_keys -# chown $USER.$USER /home/$USER/.ssh/authorized_keys Index: nodequery.py =================================================================== --- nodequery.py (.../tags/Monitor-3.0-22) (révision 15357) +++ nodequery.py (.../trunk) (révision 15357) @@ -36,6 +36,8 @@ fbnode['bootcd_version'] = fbnode['bootcd_version'].split()[-1] else: fbnode['bootcd_version'] = "unknown" + if not fbnode['boot_server']: + fbnode['boot_server'] = "unknown" fbnode['pcu'] = color_pcu_state(fbnode) if not fields: @@ -58,7 +60,7 @@ #print "ERROR!!!!!!!!!!!!!!!!!!!!!" pass - print "%(hostname)-45s | %(date_checked)11.11s | %(boot_state)5.5s| %(observed_status)8.8s | %(ssh_status)5.5s | %(pcu)6.6s | %(bootcd_version)6.6s | %(kernel_version)s" % fbnode + print "%(hostname)-45s | %(date_checked)11.11s | %(boot_state)5.5s| %(observed_status)8.8s | %(ssh_status)5.5s | %(pcu)6.6s | %(bootcd_version)6.6s | %(boot_server)s | %(kernel_version)s" % fbnode else: format = "" for f in fields: Index: web/MonitorWeb/monitorweb/controllers.py =================================================================== --- web/MonitorWeb/monitorweb/controllers.py (.../tags/Monitor-3.0-22) (révision 15357) +++ web/MonitorWeb/monitorweb/controllers.py (.../trunk) (révision 15357) @@ -53,6 +53,7 @@ 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") observed_status = widgets.CheckBox(label="Observed Status") uptime = widgets.CheckBox(label="Uptime") traceroute = widgets.CheckBox(label="Traceroute") Index: web/MonitorWeb/monitorweb/templates/nodescanhistory.kid =================================================================== --- web/MonitorWeb/monitorweb/templates/nodescanhistory.kid (.../tags/Monitor-3.0-22) (révision 15357) +++ web/MonitorWeb/monitorweb/templates/nodescanhistory.kid (.../trunk) (révision 15357) @@ -62,6 +62,7 @@ Stat kernel BootCD + Boot Server Last_contact @@ -76,6 +77,7 @@ boot + Index: web/MonitorWeb/monitorweb/templates/node_template.kid =================================================================== --- web/MonitorWeb/monitorweb/templates/node_template.kid (.../tags/Monitor-3.0-22) (révision 15357) +++ web/MonitorWeb/monitorweb/templates/node_template.kid (.../trunk) (révision 15357) @@ -15,6 +15,7 @@ pcu kernel BootCD + Boot Server last_contact @@ -41,6 +42,7 @@ + Index: web/MonitorWeb/monitorweb/templates/nodelist.kid =================================================================== --- web/MonitorWeb/monitorweb/templates/nodelist.kid (.../tags/Monitor-3.0-22) (révision 15357) +++ web/MonitorWeb/monitorweb/templates/nodelist.kid (.../trunk) (révision 15357) @@ -17,8 +17,8 @@
- | -
+ | +
@@ -58,6 +58,7 @@ + Index: web/MonitorWeb/monitorweb/templates/nodefast.kid =================================================================== --- web/MonitorWeb/monitorweb/templates/nodefast.kid (.../tags/Monitor-3.0-22) (révision 15357) +++ web/MonitorWeb/monitorweb/templates/nodefast.kid (.../trunk) (révision 15357) @@ -17,16 +17,16 @@
- | -
+ | +
-
pcu kernel BootCDBoot Server Last_contact
+
- Index: web/MonitorWeb/dev.cfg =================================================================== --- web/MonitorWeb/dev.cfg (.../tags/Monitor-3.0-22) (révision 15357) +++ web/MonitorWeb/dev.cfg (.../trunk) (révision 15357) @@ -31,7 +31,7 @@ autoreload.package="monitorweb" -server.socket_host="monitor.planet-lab.org" +server.socket_host="www.planet-lab.eu" server.socket_port=8082 #server.webpath="/monitor/" #base_url_filter.on = False Index: upgrade/monitor-server-3.0-22.sql =================================================================== --- upgrade/monitor-server-3.0-22.sql (.../tags/Monitor-3.0-22) (révision 0) +++ upgrade/monitor-server-3.0-22.sql (.../trunk) (révision 15357) @@ -0,0 +1,5 @@ +-- If there's an existing database, these commands will upgrade it to the +-- current version + +ALTER TABLE findbadnoderecord ADD COLUMN boot_server varchar DEFAULT NULL; +ALTER TABLE findbadnoderecord_history ADD COLUMN boot_server varchar DEFAULT NULL; Index: Monitor.spec =================================================================== --- Monitor.spec (.../tags/Monitor-3.0-22) (révision 15357) +++ Monitor.spec (.../trunk) (révision 15357) @@ -129,8 +129,8 @@ %install rm -rf $RPM_BUILD_ROOT #################### CLIENT -install -D -m 755 monitor-client.init $RPM_BUILD_ROOT/%{_initrddir}/monitor -install -D -m 644 monitor.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/monitor +#install -D -m 755 monitor-client.init $RPM_BUILD_ROOT/%{_initrddir}/monitor +#install -D -m 644 monitor.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/monitor install -D -m 755 timeout.pl $RPM_BUILD_ROOT/usr/bin/timeout.pl @@ -208,8 +208,8 @@ %files client %defattr(-,root,root) -%{_initrddir}/monitor -%{_sysconfdir}/cron.d/monitor +#%{_initrddir}/monitor +#%{_sysconfdir}/cron.d/monitor /usr/bin/timeout.pl %files pcucontrol Index: monitor/wrapper/plc.py =================================================================== --- monitor/wrapper/plc.py (.../tags/Monitor-3.0-22) (révision 15357) +++ monitor/wrapper/plc.py (.../trunk) (révision 15357) @@ -14,6 +14,11 @@ import traceback from monitor import database +# note: this needs to be consistent with the value in PLEWWW/planetlab/includes/plc_functions.php +PENDING_CONSORTIUM_ID = 0 +# not used in monitor +#APPROVED_CONSORTIUM_ID = 999999 + try: from monitor import config debug = config.debug @@ -116,12 +121,12 @@ except: print "Call %s FAILED: Using old cached data" % cachename load_old_cache = True - + if load_old_cache: values = database.dbLoad(cachename) else: database.dbDump(cachename, values) - + return values else: values = database.dbLoad(cachename) @@ -324,6 +329,22 @@ #'last_updated', 'peer_node_id', 'ssh_rsa_key' ]) return nodes + +# Check if the site is a pending site that needs to be approved. +def isPendingSite(loginbase): + api = xmlrpclib.Server(auth.server, verbose=False) + try: + site = api.GetSites(auth.auth, loginbase)[0] + except Exception, exc: + login.info("ERROR: No site %s" % loginbase) + return False + + if not site['enabled'] and site['ext_consortium_id'] == PENDING_CONSORTIUM_ID: + return True + + return False + + ''' Sets boot state of a node. ''' @@ -400,6 +421,7 @@ def enableSlices(nodename): api = xmlrpclib.Server(auth.server, verbose=False, allow_none=True) + for slice in slices(siteId(nodename)): logger.info("Enabling slices %s" % slice) try: @@ -417,6 +439,7 @@ logger.info("enableSlices: %s" % exc) print "exception: %s" % exc + #I'm commenting this because this really should be a manual process. #''' #Enable suspended site slices. @@ -428,6 +451,12 @@ # api.SliceAttributeAdd(auth.auth, slice, "plc_slice_state", {"state" : "suspended"}) # def enableSiteSliceCreation(loginbase): + if isPendingSite(loginbase): + msg = "INFO: enableSiteSliceCreation: Pending Site (%s)" % loginbase + print msg + logger.info(msg) + return + api = xmlrpclib.Server(auth.server, verbose=False, allow_none=True) try: logger.info("Enabling slice creation for site %s" % loginbase) @@ -442,10 +471,7 @@ api = xmlrpclib.Server(auth.server, verbose=False, allow_none=True) try: loginbase = siteId(nodename) - logger.info("Enabling slice creation for site %s" % loginbase) - if not debug: - logger.info("\tcalling UpdateSite(%s, enabled=True)" % loginbase) - api.UpdateSite(auth.auth, loginbase, {'enabled': True}) + enableSiteSliceCreation(loginbase) except Exception, exc: print "ERROR: enableSliceCreation: %s" % exc logger.info("ERROR: enableSliceCreation: %s" % exc) @@ -453,13 +479,20 @@ ''' Removes site's ability to create slices. Returns previous max_slices ''' -def removeSiteSliceCreation(sitename): - print "removeSiteSliceCreation(%s)" % sitename +def removeSiteSliceCreation(loginbase): + print "removeSiteSliceCreation(%s)" % loginbase + + if isPendingSite(loginbase): + msg = "INFO: removeSiteSliceCreation: Pending Site (%s)" % loginbase + print msg + logger.info(msg) + return + api = xmlrpclib.Server(auth.server, verbose=False) try: - logger.info("Removing slice creation for site %s" % sitename) + logger.info("Removing slice creation for site %s" % loginbase) if not debug: - api.UpdateSite(auth.auth, sitename, {'enabled': False}) + api.UpdateSite(auth.auth, loginbase, {'enabled': False}) except Exception, exc: logger.info("removeSiteSliceCreation: %s" % exc) @@ -471,12 +504,7 @@ api = xmlrpclib.Server(auth.server, verbose=False) try: loginbase = siteId(nodename) - #numslices = api.GetSites(auth.auth, {"login_base": loginbase}, - # ["max_slices"])[0]['max_slices'] - logger.info("Removing slice creation for site %s" % loginbase) - if not debug: - #api.UpdateSite(auth.auth, loginbase, {'max_slices': 0}) - api.UpdateSite(auth.auth, loginbase, {'enabled': False}) + removeSiteSliceCreation(loginbase) except Exception, exc: logger.info("removeSliceCreation: %s" % exc) Index: monitor/database/info/findbad.py =================================================================== --- monitor/database/info/findbad.py (.../tags/Monitor-3.0-22) (révision 15357) +++ monitor/database/info/findbad.py (.../trunk) (révision 15357) @@ -38,6 +38,7 @@ # INTERNAL kernel_version = Field(String,default=None) bootcd_version = Field(String,default=None) + boot_server = Field(String,default=None) nm_status = Field(String,default=None) fs_status = Field(String,default=None) iptables_status = Field(String,default=None) Index: monitor/scanapi.py =================================================================== --- monitor/scanapi.py (.../tags/Monitor-3.0-22) (révision 15357) +++ monitor/scanapi.py (.../trunk) (révision 15357) @@ -237,6 +237,7 @@ echo ' "kernel_version":"'`uname -a`'",' echo ' "bmlog":"'`ls /tmp/bm.log`'",' echo ' "bootcd_version":"'`cat /mnt/cdrom/bootme/ID`'",' + echo ' "boot_server":"'`cat /mnt/cdrom/bootme/BOOTSERVER`'",' echo ' "nm_status":"'`ps ax | grep nm.py | grep -v grep`'",' echo ' "dns_status":"'`host boot.planet-lab.org 2>&1`'",' echo ' "iptables_status":"'`iptables -t mangle -nL | awk '$1~/^[A-Z]+$/ {modules[$1]=1;}END{for (k in modules) {if (k) printf "%s ",k;}}'`'",' @@ -260,6 +261,7 @@ break else: values.update({'kernel_version': "", 'bmlog' : "", 'bootcd_version' : '', + 'boot_server' : '', 'nm_status' : '', 'fs_status' : '', 'uptime' : '', Index: automate-default.sh =================================================================== --- automate-default.sh (.../tags/Monitor-3.0-22) (révision 15357) +++ automate-default.sh (.../trunk) (révision 15357) @@ -56,6 +56,7 @@ # if no agent is running, set it up. ssh-agent > ${MONITOR_SCRIPT_ROOT}/agent.sh source ${MONITOR_SCRIPT_ROOT}/agent.sh + ssh-add /etc/planetlab/myops_ssh_key.rsa ssh-add /etc/planetlab/debug_ssh_key.rsa ssh-add /etc/planetlab/root_ssh_key.rsa fi --- diff --git a/Monitor.spec b/Monitor.spec index 7a86896..a1d055f 100644 --- a/Monitor.spec +++ b/Monitor.spec @@ -6,7 +6,7 @@ %define name monitor %define version 3.0 -%define taglevel 22 +%define taglevel 23 %define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}} %global python_sitearch %( python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)" ) @@ -303,6 +303,15 @@ fi %changelog +* Mon Oct 19 2009 Baris Metin - Monitor-3.0-23 +- - remove monitor-client.cron +- - remove unused monitor-client init script +- - fix UP/DOWN summary on nodes page. +- - make node page display all nodes by default +- - add boot_server field +- - add myops_ssh_key to the keychain +- - use ext_consortium_id to distinguish pending sites. + * Fri Oct 09 2009 Baris Metin - Monitor-3.0-22 - show/hide advance query form. diff --git a/zabbix.spec b/zabbix.spec index ae0938a..bf9dfb1 100644 --- a/zabbix.spec +++ b/zabbix.spec @@ -290,6 +290,15 @@ rm -f %{zabbix_logdir}/zabbix_agentd.log %{zabbix_webdir} %changelog +* Mon Oct 19 2009 Baris Metin - Monitor-3.0-23 +- - remove monitor-client.cron +- - remove unused monitor-client init script +- - fix UP/DOWN summary on nodes page. +- - make node page display all nodes by default +- - add boot_server field +- - add myops_ssh_key to the keychain +- - use ext_consortium_id to distinguish pending sites. + * Fri Oct 09 2009 Baris Metin - Monitor-3.0-22 - show/hide advance query form. @@ -448,6 +457,6 @@ rm -f %{zabbix_logdir}/zabbix_agentd.log %define module_current_branch 2.0 -%define taglevel 22 +%define taglevel 23 %define version 3.0