import ssh.pxssh as pxssh
import ssh.fdpexpect as fdpexpect
import ssh.pexpect as pexpect
-from unified_model import *
+from monitor.model import *
from emailTxt import mailtxt
from nodeconfig import network_config_to_str
import traceback
from nodecommon import *
from nodequery import verify,query_to_dict,node_select
-from unified_model import *
+from monitor.model import *
import os
import time
-from model import *
import bootman # debug nodes
import mailmonitor # down nodes without pcu
import plc
api = plc.getAuthAPI()
-from clean_policy import *
+from monitor.policy import *
def reboot(hostname):
print "CALLING: mailmonitor.reboot(%s)" % hostname
+++ /dev/null
-#
-
-import time
-from datetime import datetime, timedelta
-import re
-
-class MonRecord(object):
- def __init__(self, data):
- self.keys = data.keys()
- self.keys.sort()
- self.__dict__.update(data)
- return
-
- def get(self):
- ret= {}
- for k in self.keys:
- ret[k] = self.__dict__[k]
- return ret
-
- def __repr__(self):
- str = ""
- str += self.host + "\n"
- for k in self.keys:
- if "message" in k or "msg" in k:
- continue
- if 'time' in k:
- s_time=time.strftime("%Y/%m/%d %H:%M:%S",
- time.gmtime(self.__dict__[k]))
- str += "\t'%s' : %s\n" % (k, s_time)
- else:
- str += "\t'%s' : %s\n" % (k, self.__dict__[k])
- str += "\t--"
- return str
-
- def delField(self, field):
- if field in self.__dict__:
- del self.__dict__[field]
-
- if field in self.keys:
- for i in range(0,len(self.keys)):
- if self.keys[i] == field:
- del self.keys[i]
- break
-
-class LogRoll:
- def __init__(self, list=None):
- self.list = list
- if self.list == None:
- self.list = {}
-
- def find(self, host, filter, timerange):
- if host not in self.list:
- return None
-
- host_log_list = self.list[host]
- for log in host_log_list:
- for key in filter.keys():
- #print "searching key %s in log keys" % key
- if key in log.keys:
- #print "%s in log.keys" % key
- cmp = re.compile(filter[key])
- res = cmp.search(log.__getattribute__(key))
- if res != None:
- #print "found match in log: %s %s ~=~ %s" % (log, key, filter[key])
- if log.time > time.time() - timerange:
- print "returning log b/c it occured within time."
- return log
- return None
-
-
- def get(self, host):
- if host in self.list:
- return self.list[host][0]
- else:
- return None
-
- def add(self, log):
- if log.host not in self.list:
- self.list[log.host] = []
-
- self.list[log.host].insert(0,log)
-
-class Log(MonRecord):
- def __init__(self, host, data):
- self.host = host
- MonRecord.__init__(self, data)
- return
-
- def __repr__(self):
- str = " "
- str += self.host + " : { "
- for k in self.keys:
- if "message" in k or "msg" in k:
- continue
- if 'time' in k:
- s_time=time.strftime("%Y/%m/%d %H:%M:%S",
- time.gmtime(self.__dict__[k]))
- #str += " '%s' : %s, " % (k, s_time)
- elif 'action' in k:
- str += "'%s' : %s, " % (k, self.__dict__[k])
- str += "}"
- return str
-
-
-class Diagnose(MonRecord):
- def __init__(self, host):
- self.host = host
- MonRecord.__init__(self, data)
- return
-
-
from os.path import dirname, exists, join\r
import sys\r
\r
-from model import *\r
+from monitor.model import *\r
from emailZabbix import *\r
from monitor import config\r
\r
from monitor.wrapper import mailer
import time
-from model import *
from monitor.const import *
from monitor import util
from monitor import config
+import time
+from datetime import datetime, timedelta
+import re
+
def gethostlist(hostlist_file):
return util.file.getListFromFile(hostlist_file)
del act_all
return True
+class MonRecord(object):
+ def __init__(self, data):
+ self.keys = data.keys()
+ self.keys.sort()
+ self.__dict__.update(data)
+ return
+
+ def get(self):
+ ret= {}
+ for k in self.keys:
+ ret[k] = self.__dict__[k]
+ return ret
+
+ def __repr__(self):
+ str = ""
+ str += self.host + "\n"
+ for k in self.keys:
+ if "message" in k or "msg" in k:
+ continue
+ if 'time' in k:
+ s_time=time.strftime("%Y/%m/%d %H:%M:%S",
+ time.gmtime(self.__dict__[k]))
+ str += "\t'%s' : %s\n" % (k, s_time)
+ else:
+ str += "\t'%s' : %s\n" % (k, self.__dict__[k])
+ str += "\t--"
+ return str
+
+ def delField(self, field):
+ if field in self.__dict__:
+ del self.__dict__[field]
+
+ if field in self.keys:
+ for i in range(0,len(self.keys)):
+ if self.keys[i] == field:
+ del self.keys[i]
+ break
+
+class LogRoll:
+ def __init__(self, list=None):
+ self.list = list
+ if self.list == None:
+ self.list = {}
+
+ def find(self, host, filter, timerange):
+ if host not in self.list:
+ return None
+
+ host_log_list = self.list[host]
+ for log in host_log_list:
+ for key in filter.keys():
+ #print "searching key %s in log keys" % key
+ if key in log.keys:
+ #print "%s in log.keys" % key
+ cmp = re.compile(filter[key])
+ res = cmp.search(log.__getattribute__(key))
+ if res != None:
+ #print "found match in log: %s %s ~=~ %s" % (log, key, filter[key])
+ if log.time > time.time() - timerange:
+ print "returning log b/c it occured within time."
+ return log
+ return None
+
+
+ def get(self, host):
+ if host in self.list:
+ return self.list[host][0]
+ else:
+ return None
+
+ def add(self, log):
+ if log.host not in self.list:
+ self.list[log.host] = []
+
+ self.list[log.host].insert(0,log)
+
+class Log(MonRecord):
+ def __init__(self, host, data):
+ self.host = host
+ MonRecord.__init__(self, data)
+ return
+
+ def __repr__(self):
+ str = " "
+ str += self.host + " : { "
+ for k in self.keys:
+ if "message" in k or "msg" in k:
+ continue
+ if 'time' in k:
+ s_time=time.strftime("%Y/%m/%d %H:%M:%S",
+ time.gmtime(self.__dict__[k]))
+ #str += " '%s' : %s, " % (k, s_time)
+ elif 'action' in k:
+ str += "'%s' : %s, " % (k, self.__dict__[k])
+ str += "}"
+ return str
+
+
+class Diagnose(MonRecord):
+ def __init__(self, host):
+ self.host = host
+ MonRecord.__init__(self, data)
+ return
+
+
+
if __name__ == "__main__":
#r = RT()
#r.email("test", "body of test message", ['database@cs.princeton.edu'])
from const import *
-from unified_model import *
+from monitor.model import *
class MonitorMergeDiagnoseSendEscellate:
act_all = None
import reboot
import time
-from model import *
+from monitor.model import *
import parser as parsermodule
from monitor.const import MINUP
from monitor.database import FindbadNodeRecord, HistoryNodeRecord
-from unified_model import *
+from monitor.model import *
api = plc.getAuthAPI()
from monitor.wrapper import plc, plccache
from datetime import datetime
-from unified_model import PersistFlags
+from monitor.model import PersistFlags
esc = struct.pack('i', 27)
RED = esc + "[1;31m"
import sys
import time
-from model import *
+from monitor.model import *
from nodecommon import *
def get_filefromglob(d, str):
from monitor.pcu import reboot
import time
-from model import *
+from monitor.model import *
from nodecommon import *
-from unified_model import node_end_record, PersistFlags
+#from monitor.model import node_end_record, PersistFlags
parser = parsermodule.getParser()
parser.set_defaults(node=None,
import sys
from monitor import database
from nodecommon import *
-from unified_model import Record
+from monitor.model import Record
import glob
import os
import traceback
from nodecommon import *
from nodequery import verify,query_to_dict,node_select
-from unified_model import *
+from monitor.model import *
api = plc.getAuthAPI()
from nodecommon import *
from nodequery import verify,query_to_dict,node_select
-from unified_model import *
+from monitor.model import *
api = plc.getAuthAPI()
from monitor.pcu import reboot
import time
-from model import *
from nodecommon import *
from monitor import util
from monitor import parser as parsermodule
-from unified_model import *
+from monitor.model import *
parser = parsermodule.getParser()
from monitor import database
import os
import time
-from unified_model import *
+from monitor.model import *
today = time.time()
four_days_ago = today - 60*60*24*4
print "Content-Type: text/html\r\n"
import time
-from unified_model import *
+from monitor.model import *
from monitor import database
from HyperText.HTML import A, BR, IMG, TABLE, TR, TH, TD, EM, quote_body, CENTER
from HyperText.Documents import Document