controllers should allow refreshes while findall is running.
[monitor.git] / siteinfo.py
index e9dc9d5..4b4daf7 100755 (executable)
@@ -1,18 +1,16 @@
 #!/usr/bin/python
 
-import plc
+from monitor.wrapper import plc
 api = plc.getAuthAPI()
 
-import database
-import reboot
+from monitor import database
 
 import time
-from model import *
-from nodecommon import *
+from monitor.common import *
 
-import util.file
-
-import parser as parsermodule
+from monitor import util
+from monitor import parser as parsermodule
+from monitor.model import *
 
 
 parser = parsermodule.getParser()
@@ -31,7 +29,6 @@ parser.add_option("", "--disable", dest="disable", action="store_true",
                                        help="")
 config = parsermodule.parse_args(parser)
 
-from unified_model import *
 def color_sitestatus(status):
        if status == "good":
                return green(status)
@@ -65,11 +62,11 @@ def plc_print_siteinfo(plcsite):
                         diff_time(plcsite['last_updated']))
 
        print ""
-       nodes = api.GetNodes(plcsite['node_ids'])
+       nodes = plccache.GetNodesByIds(plcsite['node_ids'])
        print "   Checked: %s" % time.ctime()
        print "\t                               host     | state | obs   |   created   |   updated   | last_contact "
        for plcnode in nodes:
-               fbnode = fb['nodes'][plcnode['hostname']]['values']
+               fbnode = FindbadNodeRecord.get_latest_by(hostname=plcnode['hostname']).to_dict()
                plcnode['state'] = color_boot_state(get_current_state(fbnode))
                print "\t  %37s |  %5s |  %5s | %11.11s | %11.11s | %12s " % \
                (plcnode['hostname'], color_boot_state(plcnode['boot_state']), plcnode['state'], 
@@ -77,13 +74,12 @@ def plc_print_siteinfo(plcsite):
                diff_time(plcnode['last_contact']))
 
 
-fb = database.dbLoad("findbad")
 act_all = database.dbLoad("act_all")
 
 for site in config.args:
        config.site = site
 
-       plc_siteinfo = api.GetSites({'login_base': config.site})[0]
+       plc_siteinfo = plccache.GetSitesByName([config.site])
        url = "https://www.planet-lab.org/db/sites/index.php?site_pattern="
        plc_siteinfo['url'] = url + plc_siteinfo['login_base']
 
@@ -91,7 +87,7 @@ for site in config.args:
                # rerun findbad with the nodes in the given nodes.
                import os
                file = "findbad.txt"
-               nodes = api.GetNodes(plc_siteinfo['node_ids'], ['hostname'])
+               nodes = plccache.GetNodesByIds(plc_siteinfo['node_ids'])
                nodes = [ n['hostname'] for n in nodes ]
                util.file.setFileFromList(file, nodes)
                os.system("./findbad.py --cachenodes --debug=0 --dbname=findbad --increment --nodelist %s" % file)