# coding: utf8 from warner.cfg import Config import commands from warner.utils import compare, operation from warner.log import getLogger LOG = getLogger(__name__) CONF = Config() class Process: def __init__(self, args): self.args = args self.process_name = self.args["custom"]["process_name"] self.alarm_args = self.args["alarm"] def _alarm(self, value): operator = self.alarm_args["operator"] results = [] for item in self.alarm_args["items"]: comparison_operator = item["comparison_operator"] threshold = item["threshold"] results.append(compare(comparison_operator, threshold, value)) content = { "text": "hello:\nprocess %s is killed!" % self.process_name, "subject": "alarm! by warner." } return operation(operator, results), content def run(self): value = None
# coding: utf8 import os from warner import log import importlib import operator LOG = log.getLogger(__name__) COMPARATORS = { 'gt': operator.gt, 'lt': operator.lt, 'ge': operator.ge, 'le': operator.le, 'eq': operator.eq, 'ne': operator.ne, } XOR_COMPARATORS = {'and': all, 'or': any} def setup_extensions(fpath): (pprefix, psuffix) = os.path.split(fpath) (_, psuf) = os.path.split(pprefix) extensions = {} pfs = [] for (pd, pc, pfs) in os.walk(fpath): if pc: LOG.warning("There is a directory(%s)" % str(pc)) if not pfs: LOG.warning("This is an empty directory.(%s)" % str(pd)) return for pf in pfs: