- url = "{}/v2/alarms/".format(endpoint)
-
- rule = {'event_type': "threshold",}
- payload = json.dumps({'state': 'alarm',
- 'name': 'my_alarm',
- 'severity': 'moderate',
- 'type': 'event',
- 'event_rule': rule,})
-
- new_alarm = self._aodh_common._perform_request(url, auth_token,
- req_type="post", payload=payload)
- alarm_id =json.loads(new_alarm.text)['alarm_id']
- return alarm_id
+ alarm_id = None
+
+ # TODO(mcgoughh): error check the values sent in the messag
+ alarm_name = values['name']
+
+ # Check that this alarm doesn't exist already
+ alarm_id = self.alarm_check(endpoint, auth_token, alarm_name)
+
+ if alarm_id is None:
+ url = "{}/v2/alarms/".format(endpoint)
+ severity = values['severity']
+
+ # Create a new threshold alarm with a resourceID
+ # specified as a query
+ rule = {'threshold': values['threshold'],
+ 'comparison_operator': 'gt',
+ 'metric': values['metric'],
+ 'resource_id': values['resource_id'],
+ 'resource_type': 'generic',
+ 'aggregation_method': 'last', }
+ payload = json.dumps({'state': 'alarm',
+ 'name': alarm_name,
+ 'severity': self.get_severity(severity),
+ 'type': 'gnocchi_resources_threshold',
+ 'gnocchi_resources_threshold_rule': rule, })
+
+ # Request performed to create alarm
+ new_alarm = self._aodh_common._perform_request(
+ url, auth_token, req_type="post", payload=payload)
+
+ return json.loads(new_alarm.text)['alarm_id']
+ else:
+ return alarm_id
+
+ def delete_alarm(self, endpoint, auth_token, alarmID):
+ """Delete alarm function."""
+ url = "{}/v2/alarms/%s".format(endpoint) % (alarmID)