Difference between revisions of "Ceilometer/blueprints/alarm-api"
< Ceilometer | blueprints
(Created page with "== Original == <nowiki> class Alarm(_Base): """Representation of an alarm. """ alarm_id = wtypes.text "The UUID of the alarm" name = wtypes.text "T...") |
|||
Line 1: | Line 1: | ||
== Original == | == Original == | ||
+ | |||
+ | === Controllers === | ||
+ | <nowiki> | ||
+ | class AlarmController(rest.RestController): | ||
+ | """Manages operations on a single alarm. | ||
+ | """ | ||
+ | |||
+ | @wsme_pecan.wsexpose(Alarm, wtypes.text) | ||
+ | def get(self): | ||
+ | |||
+ | @wsme.validate(Alarm) | ||
+ | @wsme_pecan.wsexpose(Alarm, wtypes.text, body=Alarm) | ||
+ | def put(self, data): | ||
+ | |||
+ | @wsme_pecan.wsexpose(None, wtypes.text, status_code=204) | ||
+ | def delete(self): | ||
+ | |||
+ | # TODO(eglynn): add pagination marker to signature once overall | ||
+ | # API support for pagination is finalized | ||
+ | @wsme_pecan.wsexpose([AlarmChange], [Query]) | ||
+ | def history(self, q=[]): | ||
+ | </nowiki> | ||
+ | |||
+ | <nowiki> | ||
+ | class AlarmsController(rest.RestController): | ||
+ | """Manages operations on the alarms collection. | ||
+ | """ | ||
+ | |||
+ | @wsme.validate(Alarm) | ||
+ | @wsme_pecan.wsexpose(Alarm, body=Alarm, status_code=201) | ||
+ | def post(self, data): | ||
+ | """Create a new alarm.""" | ||
+ | |||
+ | @wsme_pecan.wsexpose([Alarm], [Query]) | ||
+ | def get_all(self, q=[]): | ||
+ | """Return all alarms, based on the query provided. | ||
+ | |||
+ | :param q: Filter rules for the alarms to be returned. | ||
+ | """ | ||
+ | </nowiki> | ||
+ | |||
+ | === Alarm class === | ||
<nowiki> | <nowiki> | ||
class Alarm(_Base): | class Alarm(_Base): | ||
Line 66: | Line 108: | ||
"The matching_metadata of the alarm" | "The matching_metadata of the alarm" | ||
</nowiki> | </nowiki> | ||
+ | |||
+ | == Updated == | ||
+ | |||
+ | class Alarm(_Base): | ||
+ | """Representation of an alarm. | ||
+ | """ | ||
+ | |||
+ | alarm_id = wtypes.text | ||
+ | "The UUID of the alarm" | ||
+ | |||
+ | name = wtypes.text | ||
+ | "The name for the alarm" | ||
+ | |||
+ | description = wtypes.text | ||
+ | "The description of the alarm" | ||
+ | |||
+ | meter_name = wtypes.text | ||
+ | "The name of meter" | ||
+ | |||
+ | project_id = wtypes.text | ||
+ | "The ID of the project or tenant that owns the alarm" | ||
+ | |||
+ | user_id = wtypes.text | ||
+ | "The ID of the user who created the alarm" | ||
+ | |||
+ | comparison_operator = wtypes.Enum(str, 'lt', 'le', 'eq', 'ne', 'ge', 'gt') | ||
+ | "The comparison against the alarm threshold" | ||
+ | |||
+ | threshold = float | ||
+ | "The threshold of the alarm" | ||
+ | |||
+ | statistic = wtypes.Enum(str, 'max', 'min', 'avg', 'sum', 'count') | ||
+ | "The statistic to compare to the threshold" | ||
+ | |||
+ | enabled = bool | ||
+ | "This alarm is enabled?" | ||
+ | |||
+ | evaluation_periods = int | ||
+ | "The number of periods to evaluate the threshold" | ||
+ | |||
+ | period = int | ||
+ | "The time range in seconds over which to evaluate the threshold" | ||
+ | |||
+ | timestamp = datetime.datetime | ||
+ | "The date of the last alarm definition update" | ||
+ | |||
+ | state = wtypes.Enum(str, 'ok', 'alarm', 'insufficient data') | ||
+ | "The state offset the alarm" | ||
+ | |||
+ | state_timestamp = datetime.datetime | ||
+ | "The date of the last alarm state changed" | ||
+ | |||
+ | ok_actions = [wtypes.text] | ||
+ | "The actions to do when alarm state change to ok" | ||
+ | |||
+ | alarm_actions = [wtypes.text] | ||
+ | "The actions to do when alarm state change to alarm" | ||
+ | |||
+ | insufficient_data_actions = [wtypes.text] | ||
+ | "The actions to do when alarm state change to insufficient data" | ||
+ | |||
+ | repeat_actions = bool | ||
+ | "The actions should be re-triggered on each evaluation cycle" | ||
+ | |||
+ | matching_metadata = {wtypes.text: wtypes.text} | ||
+ | "The matching_metadata of the alarm" |
Revision as of 13:39, 5 September 2013
Original
Controllers
class AlarmController(rest.RestController): """Manages operations on a single alarm. """ @wsme_pecan.wsexpose(Alarm, wtypes.text) def get(self): @wsme.validate(Alarm) @wsme_pecan.wsexpose(Alarm, wtypes.text, body=Alarm) def put(self, data): @wsme_pecan.wsexpose(None, wtypes.text, status_code=204) def delete(self): # TODO(eglynn): add pagination marker to signature once overall # API support for pagination is finalized @wsme_pecan.wsexpose([AlarmChange], [Query]) def history(self, q=[]):
class AlarmsController(rest.RestController): """Manages operations on the alarms collection. """ @wsme.validate(Alarm) @wsme_pecan.wsexpose(Alarm, body=Alarm, status_code=201) def post(self, data): """Create a new alarm.""" @wsme_pecan.wsexpose([Alarm], [Query]) def get_all(self, q=[]): """Return all alarms, based on the query provided. :param q: Filter rules for the alarms to be returned. """
Alarm class
class Alarm(_Base): """Representation of an alarm. """ alarm_id = wtypes.text "The UUID of the alarm" name = wtypes.text "The name for the alarm" description = wtypes.text "The description of the alarm" meter_name = wtypes.text "The name of meter" project_id = wtypes.text "The ID of the project or tenant that owns the alarm" user_id = wtypes.text "The ID of the user who created the alarm" comparison_operator = wtypes.Enum(str, 'lt', 'le', 'eq', 'ne', 'ge', 'gt') "The comparison against the alarm threshold" threshold = float "The threshold of the alarm" statistic = wtypes.Enum(str, 'max', 'min', 'avg', 'sum', 'count') "The statistic to compare to the threshold" enabled = bool "This alarm is enabled?" evaluation_periods = int "The number of periods to evaluate the threshold" period = int "The time range in seconds over which to evaluate the threshold" timestamp = datetime.datetime "The date of the last alarm definition update" state = wtypes.Enum(str, 'ok', 'alarm', 'insufficient data') "The state offset the alarm" state_timestamp = datetime.datetime "The date of the last alarm state changed" ok_actions = [wtypes.text] "The actions to do when alarm state change to ok" alarm_actions = [wtypes.text] "The actions to do when alarm state change to alarm" insufficient_data_actions = [wtypes.text] "The actions to do when alarm state change to insufficient data" repeat_actions = bool "The actions should be re-triggered on each evaluation cycle" matching_metadata = {wtypes.text: wtypes.text} "The matching_metadata of the alarm"
Updated
class Alarm(_Base):
"""Representation of an alarm. """
alarm_id = wtypes.text "The UUID of the alarm"
name = wtypes.text "The name for the alarm"
description = wtypes.text "The description of the alarm"
meter_name = wtypes.text "The name of meter"
project_id = wtypes.text "The ID of the project or tenant that owns the alarm"
user_id = wtypes.text "The ID of the user who created the alarm"
comparison_operator = wtypes.Enum(str, 'lt', 'le', 'eq', 'ne', 'ge', 'gt') "The comparison against the alarm threshold"
threshold = float "The threshold of the alarm"
statistic = wtypes.Enum(str, 'max', 'min', 'avg', 'sum', 'count') "The statistic to compare to the threshold"
enabled = bool "This alarm is enabled?"
evaluation_periods = int "The number of periods to evaluate the threshold"
period = int "The time range in seconds over which to evaluate the threshold"
timestamp = datetime.datetime "The date of the last alarm definition update"
state = wtypes.Enum(str, 'ok', 'alarm', 'insufficient data') "The state offset the alarm"
state_timestamp = datetime.datetime "The date of the last alarm state changed"
ok_actions = [wtypes.text] "The actions to do when alarm state change to ok"
alarm_actions = [wtypes.text] "The actions to do when alarm state change to alarm"
insufficient_data_actions = [wtypes.text] "The actions to do when alarm state change to insufficient data"
repeat_actions = bool "The actions should be re-triggered on each evaluation cycle"
matching_metadata = {wtypes.text: wtypes.text} "The matching_metadata of the alarm"