コード例 #1
0
ファイル: clients.py プロジェクト: oubiwann-unsupported/pymon
 def updateState(self):
     now = datetime.now().strftime("%Y.%m.%d %H:%M:%S")
     status = self.workflow.currentStatus
     prev = self.workflow.previousStatus
     state = self.factory.state
     uid = self.factory.uid
     org = self.factory.cfg.check.org
     if org:
         state.set('org', org)
     state.set('previous status', prev)
     state.set('previous status name', cfg.getStateNameFromNumber(prev))
     state.set('current status', status)
     state.set('node', utils.getHostFromURI(uid))
     state.set('service', utils.getFriendlyTypeFromURI(uid))
     try:
         state.set('desc', self.rules.msg)
     except AttributeError:
         # mo msg set
         pass
     statusName = cfg.getStateNameFromNumber(status)
     state.set('current status name', statusName)
     state.set('last check', now)
     if status in [states.ok, states.warn, states.error, states.failed]:
         count_index = 'count %s' % statusName
         state_index = 'last %s' % status
         state.set(state_index, now)
         if status == prev:
             state.set(count_index, state.get(count_index) + 1)
         else:
             state.set(count_index, 1)
コード例 #2
0
ファイル: clients.py プロジェクト: Darkpaw95/pymon
 def updateState(self):
     now = datetime.now().strftime("%Y.%m.%d %H:%M:%S")
     status = self.workflow.currentStatus
     prev = self.workflow.previousStatus
     state = self.factory.state
     uid = self.factory.uid
     org = self.factory.cfg.check.org
     if org:
         state.set('org', org)
     state.set('previous status', prev)
     state.set('previous status name', cfg.getStateNameFromNumber(prev))
     state.set('current status', status)
     state.set('node', utils.getHostFromURI(uid))
     state.set('service', utils.getFriendlyTypeFromURI(uid))
     try:
         state.set('desc', self.rules.msg)
     except AttributeError:
         # mo msg set
         pass
     statusName = cfg.getStateNameFromNumber(status)
     state.set('current status name', statusName)
     state.set('last check', now)
     if status in [states.ok, states.warn, states.error, states.failed]:
         count_index = 'count %s' % statusName
         state_index = 'last %s' % status
         state.set(state_index, now)
         if status == prev:
             state.set(count_index, state.get(count_index) + 1)
         else:
             state.set(count_index, 1)
コード例 #3
0
ファイル: application.py プロジェクト: Darkpaw95/pymon
def setNonChangingState(state, stateNum, uid):
    stateName = cfg.getStateNameFromNumber(stateNum)
    type = utils.getFriendlyTypeFromURI(uid)
    host = utils.getHostFromURI(uid)
    org = cfg.getCheckConfigFromURI(uid).org
    state.set('current status', stateNum)
    state.set('current status name', stateName)
    state.set('count '+stateName, 1)
    state.set('node', host)
    state.set('service', type)
    if org:
        state.set('org', org)
    return state
コード例 #4
0
def setNonChangingState(state, stateNum, uid):
    stateName = cfg.getStateNameFromNumber(stateNum)
    type = utils.getFriendlyTypeFromURI(uid)
    host = utils.getHostFromURI(uid)
    org = cfg.getCheckConfigFromURI(uid).org
    state.set('current status', stateNum)
    state.set('current status name', stateName)
    state.set('count ' + stateName, 1)
    state.set('node', host)
    state.set('service', type)
    if org:
        state.set('org', org)
    return state
コード例 #5
0
ファイル: email.py プロジェクト: oubiwann-unsupported/pymon
 def setSubj(self, *args):
     status = cfg.getStateNameFromNumber(self.status)
     if status == 'unknown':
         self.subj = "Unknown status"
     else:
         msg = getattr(self.factory.cfg.defaults, '%s_message' % status)
         # XXX This try/except is a quick hack that REALLY needs to
         # be done right... just because it's so ugly... and...
         # ugly.
         try:
             self.subj = msg % args
         except TypeError:
             # for "not all arguments converted during string
             # formatting"
             self.subj = msg % args[0]
コード例 #6
0
ファイル: email.py プロジェクト: Darkpaw95/pymon
 def setSubj(self, *args):
     status = cfg.getStateNameFromNumber(self.status)
     if status == 'unknown':
         self.subj = "Unknown status"
     else:
         msg = getattr(self.factory.cfg.defaults, '%s_message' % status)
         # XXX This try/except is a quick hack that REALLY needs to
         # be done right... just because it's so ugly... and...
         # ugly.
         try:
             self.subj = msg % args
         except TypeError:
             # for "not all arguments converted during string
             # formatting"
             self.subj = msg % args[0]
コード例 #7
0
ファイル: email.py プロジェクト: oubiwann-unsupported/pymon
 def sendIt(self):
     if self.status == self.factory.cfg.app.state_definitions.recovering:
         status_id = self.factory.state.get('current status')
         status = cfg.getStateNameFromNumber(status_id)
         self.msg = self.msg + "\r\nRecovering from '%s'." % status
     sendmail = self.factory.cfg.sendmail
     frm = self.factory.cfg.mail_from
     # XXX we probably want to make the actual sending of emails
     # non-blocking. Dererreds anyone?
     # XXX modify this when support for escalation and different
     # group levels is added to pymon
     for address in cfg.getMailList(self.factory.uid):
         email = LocalMail()
         email.setSendmailBinary(sendmail)
         email.setSubject(self.subj)
         email.setTo(address)
         email.setFrom(frm)
         email.setData(self.msg)
         email.send()
         log.info(self.factory.cfg.defaults.sent_message % address)
コード例 #8
0
ファイル: email.py プロジェクト: Darkpaw95/pymon
 def sendIt(self):
     if self.status == self.factory.cfg.app.state_definitions.recovering:
         status_id = self.factory.state.get('current status')
         status = cfg.getStateNameFromNumber(status_id)
         self.msg = self.msg + "\r\nRecovering from '%s'." % status
     sendmail = self.factory.cfg.sendmail
     frm = self.factory.cfg.mail_from
     # XXX we probably want to make the actual sending of emails
     # non-blocking. Dererreds anyone?
     # XXX modify this when support for escalation and different
     # group levels is added to pymon
     for address in cfg.getMailList(self.factory.uid):
         email = LocalMail()
         email.setSendmailBinary(sendmail)
         email.setSubject(self.subj)
         email.setTo(address)
         email.setFrom(frm)
         email.setData(self.msg)
         email.send()
         log.info(self.factory.cfg.defaults.sent_message % address)
コード例 #9
0
 def getStateName(self, stateID):
     return cfg.getStateNameFromNumber(stateID)
コード例 #10
0
ファイル: service.py プロジェクト: Darkpaw95/pymon
 def getStateName(self, stateID):
     return cfg.getStateNameFromNumber(stateID)