Jump to: navigation, search

Difference between revisions of "Ceilometer/blueprints/alarm-api"

(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"