1 """Send alarm info from Aodh to SO via MON"""
4 from plugins
.Openstack
.Aodh
.aodh_common
import Aodh_Common
7 class Alarming(object):
8 """Receives alarm info from Aodh."""
11 """Create the aodh_receiver instance."""
12 self
._aodh
_common
= Aodh_Common()
15 """Receive payload from Aodh."""
16 auth_token
= self
._aodh
_common
._authenticate
()
17 endpoint
= self
._aodh
_common
.get_endpoint()
19 alarm_list
= self
._get
_alarm
_list
(endpoint
, auth_token
)
20 # Confirm communication with Aodh by listing alarms
21 print("Alarm List ", alarm_list
.text
)
23 alarm_id
= self
._create
_alarm
(endpoint
, auth_token
)
26 # alarm_info = self._get_alarm_info(endpoint,
27 # auth_token, "372af0e2-5c36-4e4d-8ce9-ca92d97d07d0")
28 # print("Alarm info", alarm_info.text)
31 def _get_alarm_list(self
, endpoint
, auth_token
):
32 """Get a list of alarms that exist in Aodh."""
33 url
= "{}/v2/alarms/".format(endpoint
)
35 alarm_list
= self
._aodh
_common
._perform
_request
(url
, auth_token
,
39 def _get_alarm_info(self
, endpoint
, auth_token
, alarmID
):
40 """Get information about a specific alarm from Aodh."""
41 url
= "{}/v2/alarms/%s".format(endpoint
) % (alarmID
)
43 alarm_details
= self
._aodh
_common
._perform
_request
(url
, auth_token
,
47 def _create_alarm(self
, endpoint
, auth_token
):
48 """Get a list of alarms that exist in Aodh."""
49 url
= "{}/v2/alarms/".format(endpoint
)
51 rule
= {'event_type': "threshold",}
52 payload
= json
.dumps({'state': 'alarm',
54 'severity': 'moderate',
58 new_alarm
= self
._aodh
_common
._perform
_request
(url
, auth_token
,
59 req_type
="post", payload
=payload
)
60 alarm_id
=json
.loads(new_alarm
.text
)['alarm_id']