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
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())))