use cached values more consistently.
[monitor.git] / bootman.py
index cfc47a1..4f8fb54 100755 (executable)
@@ -24,7 +24,9 @@ from monitor import const
 from monitor.model import *
 from monitor.common import email_exception, found_within
 from monitor.database.info.model import *
+from monitor.database.info.interface import *
 from monitor.wrapper import plc
+from monitor.wrapper import plccache
 from monitor.wrapper.emailTxt import mailtxt
 
 from pcucontrol.util import command as moncommands
@@ -58,6 +60,7 @@ class NodeConnection:
                        traceback.print_exc()
                        print self.c.modules.sys.path
                except:
+                       email_exception()
                        traceback.print_exc()
 
                return "unknown"
@@ -70,7 +73,8 @@ class NodeConnection:
 
        def get_bootmanager_log(self):
                download(self.c, "/tmp/bm.log", "log/bm.%s.log.gz" % self.node)
-               os.system("zcat log/bm.%s.log.gz > log/bm.%s.log" % (self.node, self.node))
+               #os.system("zcat log/bm.%s.log.gz > log/bm.%s.log" % (self.node, self.node))
+               os.system("cp log/bm.%s.log.gz log/bm.%s.log" % (self.node, self.node))
                log = open("log/bm.%s.log" % self.node, 'r')
                return log
 
@@ -114,7 +118,7 @@ class NodeConnection:
                ReadNodeConfiguration = c.modules.BootManager.ReadNodeConfiguration
                bm_continue = True
 
-               plcnode = api.GetNodes({'hostname': self.node}, None)[0]
+               plcnode = plccache.GetNodeByName(self.node)
 
                InitializeBootManager.Run(bm.VARS, bm.LOG)
                try: ReadNodeConfiguration.Run(bm.VARS, bm.LOG)
@@ -808,7 +812,7 @@ def restore(sitehist, hostname, config=None, forced_action=None):
                                print "...NOTIFYING OWNERS OF DNS FAILURE on %s!!!" % hostname
                                args = {}
                                try:
-                                       node = api.GetNodes(hostname)[0]
+                                       node = plccache.GetNodeByName(hostname)
                                        net = api.GetNodeNetworks(node['nodenetwork_ids'])[0]
                                except:
                                        email_exception()
@@ -862,7 +866,11 @@ def main():
                sys.exit(1)
 
        for node in nodes:
-               reboot(node, config)
+               # get sitehist
+               lb = plccache.plcdb_hn2lb[node]
+               sitehist = SiteInterface.get_or_make(loginbase=lb)
+               #reboot(node, config)
+               restore(sitehist, node, config=None, forced_action=None)
 
 if __name__ == "__main__":
        main()