Skip to content

Commit

Permalink
Updated alarm_notify script to reflect changes in sandesh alarm
Browse files Browse the repository at this point in the history
structure

Change-Id: I755f53c67a9e3b0a679a5fabdb3440cc899bdea2
Closes-Bug: #1604903
  • Loading branch information
Sundaresan Rajangam committed Aug 4, 2016
1 parent c444121 commit 77398ee
Showing 1 changed file with 13 additions and 37 deletions.
50 changes: 13 additions & 37 deletions src/opserver/alarm_notify.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ def __init__(self):
self._args = None
self._email_server = None
self._sender_email_pwd = None
self._alarm_types = None
self._analytics_api_name_to_table_name = UVE_MAP
self._table_name_to_analytics_api_name = \
{v: k for k, v in UVE_MAP.iteritems()}
Expand All @@ -71,9 +70,6 @@ def run(self):
try:
if self._parse_args() != 0:
return
self._alarm_types = self._get_alarm_types()
if not self._alarm_types:
return
if not self._connect_to_smtp_server():
return
init_alarm_sub = 'Contrail Alarms Notification!'
Expand Down Expand Up @@ -166,26 +162,6 @@ def _login_to_smtp_server():
return False
# end _login_to_smtp_server

def _get_alarm_types(self):
alarm_types_url = 'http://{0}:{1}/analytics/alarm-types'.format(
self._args.analytics_api_server,
self._args.analytics_api_server_port)
alarm_types = None
try:
resp = requests.get(alarm_types_url)
except requests.ConnectionError:
print 'Could not connect to analytics-api {0}:{1}'.format(
self._args.analytics_api_server,
self._args.analytics_api_server_port)
else:
if resp.status_code == 200:
try:
alarm_types = json.loads(resp.text)
except ValueError:
pass
return alarm_types
# end _get_alarm_types

def _listen_and_notify_alarms(self):
while True:
try:
Expand Down Expand Up @@ -247,29 +223,29 @@ def _parse_alarm(self, alarm):
alarm_info = ContrailAlarmInfo()
try:
alarm_info.type = alarm_elt['type']
alarm_description = alarm_elt.get('description')
if alarm_description:
desc = alarm_description.split('.', 1)
alarm_info.summary = desc[0]
if len(desc) == 2:
alarm_info.description = desc[1]
else:
alarm_info.description = desc[0]
else:
alarm_info.summary = alarm_info.type
alarm_info.description = ''
alarm_info.severity = alarm_elt['severity']
alarm_info.timestamp = datetime.datetime.fromtimestamp(
alarm_elt['timestamp']/1000000.0).strftime(
'%Y-%m-%d %H:%M:%S')
alarm_info.ack = 'Acknowledged' if alarm_elt['ack'] \
else 'Unacknowledged'
alarm_info.details = json.dumps(alarm_elt['any_of'],
indent=4)
alarm_info.details = json.dumps(
alarm_elt['alarm_rules'], indent=4)
except KeyError:
print 'Error parsing alarm'
self._log_alarm(alarm_elt)
else:
try:
alarm_tbl_info = \
self._alarm_types[alarm_data.table]
alarm_info.summary, alarm_info.description = tuple(
alarm_tbl_info[alarm_info.type].split('.', 1))
except KeyError:
alarm_info.summary = alarm_type
alarm_info.description = ''
alarm_info.summary = alarm_info.summary.lstrip()
alarm_info.description = \
alarm_info.description.lstrip()
alarm_data.alarms.append(alarm_info)
return alarm_data
return None
Expand Down

0 comments on commit 77398ee

Please sign in to comment.