# 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)
(oval, errval) = ssh.run_noexcept2(""" <<\EOF
echo "{"
echo ' "kernel_version":"'`uname -a`'",'
- echo ' "bmlog":"'`ls /tmp/bm.log`'",'
- echo ' "bootcd_version":"'`cat /mnt/cdrom/bootme/ID`'",'
+ 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])"`'",'
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;}}'`'",'
echo ' "princeton_comon_dir":"'`ls -d /vservers/princeton_comon`'",'
echo ' "uptime":"'`cat /proc/uptime`'",'
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 """)
break
else:
values.update({'kernel_version': "", 'bmlog' : "", 'bootcd_version' : '',
+ 'boot_server' : '',
+ 'install_date' : '',
'nm_status' : '',
'fs_status' : '',
'uptime' : '',
'dns_status' : '',
+ 'md5sums' : '',
+ 'md5sum_yum' : '',
'rpm_version' : '',
'rpm_versions' : '',
'princeton_comon_dir' : "",
continue_slice_check = True
oval = values['princeton_comon_dir']
- if "princeton_comon_dir" in oval:
+ if "princeton_comon" in oval:
values['princeton_comon_dir'] = True
else:
values['princeton_comon_dir'] = False
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'
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.
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:
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: