- # Get vim_uuid associated to alarm
- creds = database_manager.get_credentials_for_alarm_id(alarm_id, 'openstack')
- auth_token = Common.get_auth_token(creds.uuid)
- endpoint = Common.get_endpoint("alarming", creds.uuid)
-
- # If authenticated generate and send response message
- if auth_token is not None and endpoint is not None:
- url = "{}/v2/alarms/%s".format(endpoint) % alarm_id
-
- # Get the resource_id of the triggered alarm
- result = Common.perform_request(
- url, auth_token, req_type="get")
- alarm_details = json.loads(result.text)
- gnocchi_rule = alarm_details['gnocchi_resources_threshold_rule']
- resource_id = gnocchi_rule['resource_id']
-
- # Process an alarm notification if resource_id is valid
- if resource_id is not None:
- # Get date and time for response message
- a_date = time.strftime("%d-%m-%Y") + " " + time.strftime("%X")
- # Try generate and send response
- try:
- resp_message = response.generate_response(
- 'notify_alarm', a_id=alarm_id,
- r_id=resource_id,
- sev=values['severity'], date=a_date,
- state=values['current'], vim_type="openstack")
- producer.notify_alarm(
- 'notify_alarm', resp_message)
- log.info("Sent an alarm response to SO: %s", resp_message)
- except Exception as exc:
- log.exception("Couldn't notify SO of the alarm:")
- else:
- log.warning("No resource_id for alarm; no SO response sent.")
- else:
- log.warning("Authentication failure; SO notification not sent.")
+ alarm = database_manager.get_alarm(alarm_id, 'openstack')
+ # Process an alarm notification if resource_id is valid
+ # Get date and time for response message
+ a_date = time.strftime("%d-%m-%Y") + " " + time.strftime("%X")
+ # Try generate and send response
+ try:
+ resp_message = response.generate_response(
+ 'notify_alarm', a_id=alarm_id,
+ vdu_name=alarm.vdu_name,
+ vnf_member_index=alarm.vnf_member_index,
+ ns_id=alarm.ns_id,
+ metric_name=alarm.metric_name,
+ operation=alarm.operation,
+ threshold_value=alarm.threshold,
+ sev=values['severity'],
+ date=a_date,
+ state=values['current'])
+ producer.notify_alarm(
+ 'notify_alarm', resp_message)
+ log.info("Sent an alarm response to SO: %s", resp_message)
+ except Exception as exc:
+ log.exception("Couldn't notify SO of the alarm:")
+