X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=monitor%2Fscanapi.py;h=177affcb16341b6ebc2ca86bb1d76723f6a01de8;hb=fbe2fbd7f5d866205f878e68968dcef14a3812ab;hp=88bd5131f984874b4e23793afed7dff6be398160;hpb=0ab12188e17261dd130208731b65f5f042969659;p=monitor.git diff --git a/monitor/scanapi.py b/monitor/scanapi.py index 88bd513..177affc 100644 --- a/monitor/scanapi.py +++ b/monitor/scanapi.py @@ -184,10 +184,10 @@ class ScanNodeInternal(ScanInterface): # commands at once. values = {} nmap = command.CMD() - print "nmap -oG - -P0 -p22,80,806 %s | grep Host:" % nodename - (oval1,eval) = nmap.run_noexcept("nmap -oG - -P0 -p22,80,806 %s | grep Host:" % nodename) - (oval2,eval) = nmap.run_noexcept("nmap -oG - -P0 -p22,80,806 %s | grep Host:" % nodename) - (oval3,eval) = nmap.run_noexcept("nmap -oG - -P0 -p22,80,806 %s | grep Host:" % nodename) + print "nmap -oG - -P0 -p22,80,806 %s | grep -v Down | grep Ports:" % nodename + (oval1,eval) = nmap.run_noexcept("nmap -oG - -P0 -p22,80,806 %s | grep -v Down | grep Ports:" % nodename) + (oval2,eval) = nmap.run_noexcept("nmap -oG - -P0 -p22,80,806 %s | grep -v Down | grep Ports:" % nodename) + (oval3,eval) = nmap.run_noexcept("nmap -oG - -P0 -p22,80,806 %s | grep -v Down | grep Ports:" % nodename) # NOTE: an empty / error value for oval, will still work. values['port_status'] = {} (o1,continue_probe) = nmap_port_status(oval1) @@ -235,7 +235,7 @@ class ScanNodeInternal(ScanInterface): (oval, errval) = ssh.run_noexcept2(""" <<\EOF echo "{" echo ' "kernel_version":"'`uname -a`'",' - echo ' "bmlog":"'`ls /tmp/bm.log`'",' + echo ' "bmlog":"'`ls /tmp/bm.log || ls /tmp/source/BootManager.py`'",' echo ' "bootcd_version":"'`cat /mnt/cdrom/bootme/ID || cat /usr/bootme/ID`'",' echo ' "boot_server":"'`cat /mnt/cdrom/bootme/BOOTSERVER`'",' echo ' "install_date":"'`python -c "import os,time,stat; print time.ctime(os.stat('/usr/boot/plnode.txt')[stat.ST_CTIME])" || python -c "import os,time,stat; print time.ctime(os.stat('/usr/boot/cacert.pem')[stat.ST_CTIME])"`'",' @@ -249,8 +249,11 @@ class ScanNodeInternal(ScanInterface): echo ' "princeton_comon_running":"'`ls -d /proc/virtual/$ID`'",' echo ' "princeton_comon_procs":"'`vps ax | grep $ID | grep -v grep | wc -l`'",' echo ' "fs_status":"'`grep proc /proc/mounts | grep ro, ; if [ -x /usr/bin/timeout.pl ] ; then timeout.pl 20 touch /var/log/monitor 2>&1 ; if [ -d /vservers/ ] ; then timeout.pl 20 touch /vservers/monitor.log 2>&1 ; fi ; fi`'",' - echo ' "rpm_version":"'`if [ -x /usr/bin/timeout.pl ] ; then timeout.pl 30 rpm -q NodeManager ; fi`'",' - echo ' "rpm_versions":"'`if [ -x /usr/bin/timeout.pl ] ; then timeout.pl 45 rpm -q -a ; fi`'",' + echo ' "rpm_version":"'`if [ -x /usr/bin/timeout.pl ] ; then /usr/bin/timeout.pl 30 rpm -q NodeManager ; fi`'",' + echo ' "rpm_versions":"'`if [ -x /usr/bin/timeout.pl ] ; then /usr/bin/timeout.pl 45 rpm -q -a | sort ; fi`'",' + echo ' "md5sums":"'`md5sum /etc/yum.conf /etc/yum.myplc.d/myplc.repo /etc/yum.myplc.d/stock.repo | awk '{print $1}'`'",' + echo ' "md5sum_yum":"'`grep -v -E "^#" /etc/yum.myplc.d/myplc.repo | md5sum`'",' + echo ' "nada":"'``'",' echo "}" EOF """) @@ -268,6 +271,8 @@ EOF """) 'fs_status' : '', 'uptime' : '', 'dns_status' : '', + 'md5sums' : '', + 'md5sum_yum' : '', 'rpm_version' : '', 'rpm_versions' : '', 'princeton_comon_dir' : "", @@ -346,7 +351,7 @@ EOF """) values['ssh_status'] = True if "2.6.17" in oval or "2.6.2" in oval: values['observed_category'] = 'PROD' - if "bm.log" in values['bmlog']: + if "bm.log" in values['bmlog'] or "BootManager" in values['bmlog']: values['observed_status'] = 'DEBUG' else: values['observed_status'] = 'BOOT' @@ -379,6 +384,7 @@ EOF """) values['firewall'] = False + #print "BEFORE:%s" % values # NOTE: A node is down if some of the public ports are not open if values['observed_status'] == "BOOT": # verify that all ports are open. Else, report node as down. @@ -461,8 +467,11 @@ EOF """) print "ALLVERSIONS: %s %s" % (nodename, values['rpm_versions']) print "RPMVERSION: %s %s" % (nodename, values['rpm_version']) print "UPTIME: %s %s" % (nodename, values['uptime']) + print "MD5SUMS: %s %s" % (nodename, values['md5sums']) + print "MD5SUM_YUM: %s %s" % (nodename, values['md5sum_yum']) values = self.evaluate(nodename, values) + #print "%s %s" % (nodename, values) values['date_checked'] = datetime.now() except: @@ -520,13 +529,13 @@ class ScanPCU(ScanInterface): traceback.print_exc() continue_probe = False - if b_except or not continue_probe: return (None, None, None) + if b_except or not continue_probe: return (None, None) #### RUN NMAP ############################### if continue_probe: nmap = command.CMD() - print "nmap -oG - -P0 -p22,23,80,443,5869,9100,16992 %s | grep Host:" % reboot.pcu_name(values['plc_pcu_stats']) - (oval,eval) = nmap.run_noexcept("nmap -oG - -P0 -p22,23,80,443,5869,9100,16992 %s | grep Host:" % reboot.pcu_name(values['plc_pcu_stats'])) + print "nmap -oG - -P0 -p22,23,80,443,623,5869,9100,16992 %s | grep -v Down | grep Ports:" % reboot.pcu_name(values['plc_pcu_stats']) + (oval,eval) = nmap.run_noexcept("nmap -oG - -P0 -p22,23,80,443,623,5869,9100,16992 %s | grep -v Down | grep Ports:" % reboot.pcu_name(values['plc_pcu_stats'])) # NOTE: an empty / error value for oval, will still work. (values['port_status'], continue_probe) = nmap_port_status(oval) else: