Example #1
0
 def __init__(self):
     self.is_running = False
     self.hostname = socket.gethostname()
     self.logger = Log("saas_mon", config=conf)
     self.recover_thres = conf.SAAS_RECOVER_THRESHOLD or (30 * 5)
     self.bad_thres = conf.SAAS_BAD_THRESHOLD or 5
     self.alarm_q = JobQueue(self.logger)
     self.emailalarm = EmailAlarm(self.logger)
     self.last_state = True
Example #2
0
 def __init__(self):
     self.is_running = False
     self.linkage_dict = dict()
     self.logger = Log("icmp_mon", config=config)
     self.alarm_q = JobQueue(self.logger)
     self.emailalarm = EmailAlarm(Log("alarm", config=config))
     self.logger_links = Log("links", config=config)
     if 'log_length_per_link' in dir(config):
         self.log_length_per_link = config.log_length_per_link
     else:
         self.log_length_per_link = 128
     if 'links' not in dir(config):
         self.logger.error("no 'links' in config")
         return
     g_alarm_levels = None
     g_recover = None
     if 'alarm_levels' in dir(config):
         g_alarm_levels = self._parse_alarm_levels(config.alarm_levels)
     if 'recover' in dir(config):
         g_recover = int(config.recover)
     links = config.links
     if isinstance(links, dict):
         for ip, v in links.iteritems():
             if not isinstance(v, dict):
                 v = dict()
             ttl = v.get('ttl')
             if ttl >= 0:
                 pass
             else:
                 ttl = 0
             alarm_levels = v.get('alarm_levels')
             if not alarm_levels and g_alarm_levels:
                 alarm_levels = g_alarm_levels
             elif alarm_levels:
                 alarm_levels = self._parse_alarm_levels(alarm_levels)
                 if not alarm_levels:
                     continue
             else:
                 self.logger.error(
                     "config: %s, missing alarm_levels value" % (ip))
                 continue
             recover = v.get('recover')
             if recover:
                 recover = int(recover)
             elif not recover and g_recover:
                 recover = g_recover
             else:
                 self.logger.error("config: %s, missing recover value" %
                                   (ip))
                 continue
             self.linkage_dict[ip] = Linkage(ip, alarm_levels, recover)
     self.logger.info("%d link loaded from config" %
                      (len(self.linkage_dict.keys())))