deleting util from this location
[monitor.git] / monitor_policy.py
index e8789da..f7c3edb 100644 (file)
@@ -1,18 +1,25 @@
-from config import config
-#print "policy"
-config = config()
-import soltesz
+import config
+import database
 import time
 import mailer
-from www.printbadnodes import cmpCategoryVal
+from unified_model import cmpCategoryVal
 import sys
 import emailTxt
 import string
 
-from policy import get_ticket_id, print_stats, close_rt_backoff, reboot_node
 from rt import is_host_in_rt_tickets
 import plc
 
+def get_ticket_id(record):
+       if 'ticket_id' in record and record['ticket_id'] is not "" and record['ticket_id'] is not None:
+               return record['ticket_id']
+       elif            'found_rt_ticket' in record and \
+                record['found_rt_ticket'] is not "" and \
+                record['found_rt_ticket'] is not None:
+               return record['found_rt_ticket']
+       else:
+               return None
+
 # Time to enforce policy
 POLSLEEP = 7200
 
@@ -49,13 +56,13 @@ class Merge:
                self.merge_list = l_merge
 
                # the hostname to loginbase mapping
-               self.plcdb_hn2lb = soltesz.dbLoad("plcdb_hn2lb")
+               self.plcdb_hn2lb = database.dbLoad("plcdb_hn2lb")
 
                # Previous actions taken on nodes.
-               self.act_all = soltesz.if_cached_else(1, "act_all", lambda : {})
-               self.findbad = soltesz.if_cached_else(1, "findbad", lambda : {})
+               self.act_all = database.if_cached_else(1, "act_all", lambda : {})
+               self.findbad = database.if_cached_else(1, "findbad", lambda : {})
 
-               self.cache_all = soltesz.if_cached_else(1, "act_all", lambda : {})
+               self.cache_all = database.if_cached_else(1, "act_all", lambda : {})
                self.sickdb = {}
                self.mergedb = {}
 
@@ -257,8 +264,8 @@ class RT:
 class Diagnose:
        def __init__(self, record_list):
                self.record_list = record_list
-               self.plcdb_hn2lb = soltesz.dbLoad("plcdb_hn2lb")
-               self.findbad = soltesz.if_cached_else(1, "findbad", lambda : {})
+               self.plcdb_hn2lb = database.dbLoad("plcdb_hn2lb")
+               self.findbad = database.if_cached_else(1, "findbad", lambda : {})
 
                self.diagnose_in = {}
                self.diagnose_out = {}
@@ -823,16 +830,27 @@ class Diagnose:
 
                return up
 
+def close_rt_backoff(args):
+       if 'ticket_id' in args and (args['ticket_id'] != "" and args['ticket_id'] != None):
+               mailer.closeTicketViaRT(args['ticket_id'], 
+                                                               "Ticket CLOSED automatically by SiteAssist.")
+               plc.enableSlices(args['hostname'])
+               plc.enableSliceCreation(args['hostname'])
+       return
+
+def reboot_node(args):
+       host = args['hostname']
+       return reboot.reboot_policy(host, True, config.debug)
 
 class Action:
        def __init__(self, diagnose_out):
                # the hostname to loginbase mapping
-               self.plcdb_hn2lb = soltesz.dbLoad("plcdb_hn2lb")
+               self.plcdb_hn2lb = database.dbLoad("plcdb_hn2lb")
 
                # Actions to take.
                self.diagnose_db = diagnose_out
                # Actions taken.
-               self.act_all   = soltesz.if_cached_else(1, "act_all", lambda : {})
+               self.act_all   = database.if_cached_else(1, "act_all", lambda : {})
 
                # A dict of actions to specific functions. PICKLE doesnt' like lambdas.
                self.actions = {}
@@ -869,24 +887,24 @@ class Action:
                        print err
                        if config.policysavedb:
                                print "Saving Databases... act_all"
-                               soltesz.dbDump("act_all", self.act_all)
-                               soltesz.dbDump("diagnose_out", self.diagnose_db)
+                               database.dbDump("act_all", self.act_all)
+                               database.dbDump("diagnose_out", self.diagnose_db)
                        sys.exit(1)
 
                #print_stats("sites_observed", stats)
                #print_stats("sites_diagnosed", stats)
                #print_stats("nodes_diagnosed", stats)
-               print_stats("sites_emailed", stats)
+               self.print_stats("sites_emailed", stats)
                #print_stats("nodes_actedon", stats)
                print string.join(stats['allsites'], ",")
 
                if config.policysavedb:
                        print "Saving Databases... act_all"
-                       #soltesz.dbDump("policy.eventlog", self.eventlog)
+                       #database.dbDump("policy.eventlog", self.eventlog)
                        # TODO: remove 'diagnose_out', 
                        #       or at least the entries that were acted on.
-                       soltesz.dbDump("act_all", self.act_all)
-                       soltesz.dbDump("diagnose_out", self.diagnose_db)
+                       database.dbDump("act_all", self.act_all)
+                       database.dbDump("diagnose_out", self.diagnose_db)
 
        def accumSites(self):
                """
@@ -1091,10 +1109,10 @@ class Action:
                
                if config.policysavedb:
                        #print "Saving Databases... act_all, diagnose_out"
-                       #soltesz.dbDump("act_all", self.act_all)
+                       #database.dbDump("act_all", self.act_all)
                        # remove site record from diagnose_out, it's in act_all as done.
                        del self.diagnose_db[loginbase]
-                       #soltesz.dbDump("diagnose_out", self.diagnose_db)
+                       #database.dbDump("diagnose_out", self.diagnose_db)
 
                print "sleeping for 1 sec"
                time.sleep(1)