示例#1
0
class Services(object):
    def __init__(self,inits=('@','!'),**kw):
        self.kw = kw
        self.inits = inits
        self._connect()
        self.failed = ["no MONIT daemon!"]

    def _connect(self):
        try:
            self.instance = Monit(**self.kw)
            self.rebuild()
        except requests.exceptions.ConnectionError:
            self.instance = None

    def update(self):
        try:
            self.instance.update()
            self.check()
        except AttributeError:
            self._connect()

    def rebuild(self):
        srv = []
        for key in self.instance.keys():
            if self.instance[key].type == 'process':
                srv.append(key)
        self.monitored = srv

    def check(self):
        failed = []
        for proc in self.monitored:
            if not self.instance[proc].running:
                failed.append(proc)
        self.failed = failed

    def render(self):
        start = self.inits[0]
        out = strftime('%H:%M')
        if len(self.failed) == 0:
            out += 'OK'.rjust(11)
            out += '\n'
            out += 'services running'
        else:
            start = self.inits[1]
            out += 'SERVICE'.rjust(11)
            out += '\n'
            out += self.failed[0][:16].center(16)
        return start + out
示例#2
0
class Services(object):
    def __init__(self, inits=('@', '!'), **kw):
        self.kw = kw
        self.inits = inits
        self._connect()
        self.failed = ["no MONIT daemon!"]

    def _connect(self):
        try:
            self.instance = Monit(**self.kw)
            self.rebuild()
        except requests.exceptions.ConnectionError:
            self.instance = None

    def update(self):
        try:
            self.instance.update()
            self.check()
        except AttributeError:
            self._connect()

    def rebuild(self):
        srv = []
        for key in self.instance.keys():
            if self.instance[key].type == 'process':
                srv.append(key)
        self.monitored = srv

    def check(self):
        failed = []
        for proc in self.monitored:
            if not self.instance[proc].running:
                failed.append(proc)
        self.failed = failed

    def render(self):
        start = self.inits[0]
        out = strftime('%H:%M')
        if len(self.failed) == 0:
            out += 'OK'.rjust(11)
            out += '\n'
            out += 'services running'
        else:
            start = self.inits[1]
            out += 'SERVICE'.rjust(11)
            out += '\n'
            out += self.failed[0][:16].center(16)
        return start + out
示例#3
0
 def _connect(self):
     try:
         self.instance = Monit(**self.kw)
         self.rebuild()
     except requests.exceptions.ConnectionError:
         self.instance = None
示例#4
0
 def _connect(self):
     try:
         self.instance = Monit(**self.kw)
         self.rebuild()
     except requests.exceptions.ConnectionError:
         self.instance = None