4 from datetime import datetime, timedelta
7 class MonRecord(object):
8 def __init__(self, data):
9 self.keys = data.keys()
11 self.__dict__.update(data)
17 ret[k] = self.__dict__[k]
22 str += self.host + "\n"
24 if "message" in k or "msg" in k:
27 s_time=time.strftime("%Y/%m/%d %H:%M:%S",
28 time.gmtime(self.__dict__[k]))
29 str += "\t'%s' : %s\n" % (k, s_time)
31 str += "\t'%s' : %s\n" % (k, self.__dict__[k])
35 def delField(self, field):
36 if field in self.__dict__:
37 del self.__dict__[field]
39 if field in self.keys:
40 for i in range(0,len(self.keys)):
41 if self.keys[i] == field:
46 def __init__(self, list=None):
51 def find(self, host, filter, timerange):
52 if host not in self.list:
55 host_log_list = self.list[host]
56 for log in host_log_list:
57 for key in filter.keys():
58 #print "searching key %s in log keys" % key
60 #print "%s in log.keys" % key
61 cmp = re.compile(filter[key])
62 res = cmp.search(log.__getattribute__(key))
64 #print "found match in log: %s %s ~=~ %s" % (log, key, filter[key])
65 if log.time > time.time() - timerange:
66 print "returning log b/c it occured within time."
73 return self.list[host][0]
78 if log.host not in self.list:
79 self.list[log.host] = []
81 self.list[log.host].insert(0,log)
84 def __init__(self, host, data):
86 MonRecord.__init__(self, data)
91 str += self.host + " : { "
93 if "message" in k or "msg" in k:
96 s_time=time.strftime("%Y/%m/%d %H:%M:%S",
97 time.gmtime(self.__dict__[k]))
98 #str += " '%s' : %s, " % (k, s_time)
100 str += "'%s' : %s, " % (k, self.__dict__[k])
105 class Diagnose(MonRecord):
106 def __init__(self, host):
108 MonRecord.__init__(self, data)