mirror of
https://gitee.com/qpy-solutions/tracker-v2.git
synced 2025-05-18 18:48:25 +08:00
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
|
|
from usr import settings
|
|
from usr.logging import getLogger
|
|
from usr.common import Singleton
|
|
|
|
log = getLogger(__name__)
|
|
|
|
|
|
class AlertMonitor(Singleton):
|
|
'''
|
|
Recv alert signals and process them
|
|
'''
|
|
def __init__(self, alert_read_cb=None):
|
|
self.alert_read_cb = alert_read_cb
|
|
|
|
def post_alert(self, alert_code, alert_info):
|
|
if settings.ALERTCODE.get(alert_code):
|
|
current_settings = settings.settings.get()
|
|
alert_status = current_settings.get('app', {}).get('sw_' + settings.ALERTCODE.get(alert_code))
|
|
if alert_status:
|
|
if self.alert_read_cb:
|
|
return self.alert_read_cb(settings.ALERTCODE.get(alert_code), alert_info)
|
|
else:
|
|
log.warn('Alert callback is not defined.')
|
|
else:
|
|
log.warn('%s status is %s' % (settings.ALERTCODE.get(alert_code), alert_status))
|
|
else:
|
|
log.error('altercode (%s) is not exists. alert info: %s' % (alert_code, alert_info))
|
|
|
|
return False
|