adds checks for readonly fs, dns errors, resets message timer if
[monitor.git] / findbad.py
index 7e45408..e156856 100755 (executable)
@@ -5,6 +5,7 @@ import sys
 import string
 import time
 import config
+import util.file
 
 
 # QUERY all nodes.
@@ -55,6 +56,8 @@ def collectPingAndSSH(nodename, cohash):
                                echo '  "bmlog":"'`ls /tmp/bm.log`'",'
                                echo '  "bootcd":"'`cat /mnt/cdrom/bootme/ID`'",'
                                echo '  "nm":"'`ps ax | grep nm.py | grep -v grep`'",'
+                               echo '  "readonlyfs":"'`touch /var/log/monitor 2>&1`'",'
+                               echo '  "dns":"'`host boot.planet-lab.org 2>&1`'",'
                                echo '  "princeton_comon":"'`ls -d /vservers/princeton_comon`'",'
 
                                ID=`grep princeton_comon /etc/passwd | awk -F : '{if ( $3 > 500 ) { print $3}}'` 
@@ -69,9 +72,13 @@ EOF                  """)
                                values['sshport'] = port
                                break
                        else:
-                               values.update({'kernel': "", 'bmlog' : "", 'bootcd' : '', 'nm' :
-                               '', 'princeton_comon' : '', 'princeton_comon_running' : '',
-                               'princeton_comon_procs' : '', 'sshport' : None})
+                               values.update({'kernel': "", 'bmlog' : "", 'bootcd' : '', 
+                                                               'nm' : '', 
+                                                               'readonlyfs' : '',
+                                                               'dns' : '',
+                                                               'princeton_comon' : '', 
+                                                               'princeton_comon_running' : '', 
+                                                               'princeton_comon_procs' : '', 'sshport' : None})
        except:
                print traceback.print_exc()
                sys.exit(1)
@@ -342,7 +349,7 @@ def main():
        cohash = cotop.coget(cotop_url)
        l_nodes = syncplcdb.create_plcdb()
        if config.nodelist:
-               f_nodes = config.getListFromFile(config.nodelist)
+               f_nodes = util.file.getListFromFile(config.nodelist)
                l_nodes = filter(lambda x: x['hostname'] in f_nodes, l_nodes)
        elif config.node:
                f_nodes = [config.node]