Support alarm-event-{create,update}
Change-Id: Ic29d7d5fcf95ff29112bd42fed747c54181e3640
This commit is contained in:
@@ -580,6 +580,27 @@ def common_alarm_gnocchi_resources_arguments(create=False):
|
|||||||
return _wrapper
|
return _wrapper
|
||||||
|
|
||||||
|
|
||||||
|
def common_alarm_event_arguments():
|
||||||
|
def _wrapper(func):
|
||||||
|
@utils.arg('--event-type', dest='event_rule/event_type',
|
||||||
|
metavar='<EVENT_TYPE>',
|
||||||
|
help='Event type for event alarm.')
|
||||||
|
@utils.arg('-q', '--query', dest='event_rule/query', metavar='<QUERY>',
|
||||||
|
help=('key[op]data_type::value; list for filtering events. '
|
||||||
|
'data_type is optional, but if supplied must be '
|
||||||
|
'string, integer, float or datetime.'))
|
||||||
|
@utils.arg('--repeat-actions', dest='repeat_actions',
|
||||||
|
metavar='{True|False}', type=strutils.bool_from_string,
|
||||||
|
default=False,
|
||||||
|
help=('True if actions should be repeatedly notified '
|
||||||
|
'while alarm remains in target state.'))
|
||||||
|
@functools.wraps(func)
|
||||||
|
def _wrapped(*args, **kwargs):
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
return _wrapped
|
||||||
|
return _wrapper
|
||||||
|
|
||||||
|
|
||||||
@common_alarm_arguments(create=True)
|
@common_alarm_arguments(create=True)
|
||||||
@utils.arg('--period', type=int, metavar='<PERIOD>',
|
@utils.arg('--period', type=int, metavar='<PERIOD>',
|
||||||
help='Length of each period (seconds) to evaluate over.')
|
help='Length of each period (seconds) to evaluate over.')
|
||||||
@@ -725,6 +746,23 @@ def do_alarm_combination_create(cc, args={}):
|
|||||||
_display_alarm(alarm)
|
_display_alarm(alarm)
|
||||||
|
|
||||||
|
|
||||||
|
@common_alarm_arguments(create=True)
|
||||||
|
@common_alarm_event_arguments()
|
||||||
|
@_restore_shadowed_arg('project_id', 'alarm_project_id')
|
||||||
|
@_restore_shadowed_arg('user_id', 'alarm_user_id')
|
||||||
|
def do_alarm_event_create(cc, args={}):
|
||||||
|
"""Create a new alarm based on events."""
|
||||||
|
fields = dict(filter(lambda x: x[1] is not None, vars(args).items()))
|
||||||
|
fields = utils.key_with_slash_to_nested_dict(fields)
|
||||||
|
fields['type'] = 'event'
|
||||||
|
fields['event_rule'] = fields.get('event_rule', {})
|
||||||
|
if 'query' in fields['event_rule']:
|
||||||
|
fields['event_rule']['query'] = options.cli_to_array(
|
||||||
|
fields['event_rule']['query'])
|
||||||
|
alarm = cc.alarms.create(**fields)
|
||||||
|
_display_alarm(alarm)
|
||||||
|
|
||||||
|
|
||||||
@utils.arg('-a', '--alarm_id', metavar='<ALARM_ID>',
|
@utils.arg('-a', '--alarm_id', metavar='<ALARM_ID>',
|
||||||
action=obsoleted_by('alarm_id'), help=argparse.SUPPRESS,
|
action=obsoleted_by('alarm_id'), help=argparse.SUPPRESS,
|
||||||
dest='alarm_id_deprecated')
|
dest='alarm_id_deprecated')
|
||||||
@@ -945,6 +983,31 @@ def do_alarm_combination_update(cc, args={}):
|
|||||||
_display_alarm(alarm)
|
_display_alarm(alarm)
|
||||||
|
|
||||||
|
|
||||||
|
@utils.arg('-a', '--alarm_id', metavar='<ALARM_ID>',
|
||||||
|
action=obsoleted_by('alarm_id'), help=argparse.SUPPRESS,
|
||||||
|
dest='alarm_id_deprecated')
|
||||||
|
@utils.arg('alarm_id', metavar='<ALARM_ID>', nargs='?',
|
||||||
|
action=NotEmptyAction, help='ID of the alarm to update.')
|
||||||
|
@common_alarm_arguments()
|
||||||
|
@common_alarm_event_arguments()
|
||||||
|
@_restore_shadowed_arg('project_id', 'alarm_project_id')
|
||||||
|
@_restore_shadowed_arg('user_id', 'alarm_user_id')
|
||||||
|
def do_alarm_event_update(cc, args={}):
|
||||||
|
"""Update an existing alarm based on events."""
|
||||||
|
fields = dict(filter(lambda x: x[1] is not None, vars(args).items()))
|
||||||
|
fields = utils.key_with_slash_to_nested_dict(fields)
|
||||||
|
fields.pop('alarm_id')
|
||||||
|
fields['type'] = 'event'
|
||||||
|
if fields.get('event_rule') and 'query' in fields['event_rule']:
|
||||||
|
fields['event_rule']['query'] = options.cli_to_array(
|
||||||
|
fields['event_rule']['query'])
|
||||||
|
try:
|
||||||
|
alarm = cc.alarms.update(args.alarm_id, **fields)
|
||||||
|
except exc.HTTPNotFound:
|
||||||
|
raise exc.CommandError('Alarm not found: %s' % args.alarm_id)
|
||||||
|
_display_alarm(alarm)
|
||||||
|
|
||||||
|
|
||||||
@utils.arg('-a', '--alarm_id', metavar='<ALARM_ID>',
|
@utils.arg('-a', '--alarm_id', metavar='<ALARM_ID>',
|
||||||
action=obsoleted_by('alarm_id'), help=argparse.SUPPRESS,
|
action=obsoleted_by('alarm_id'), help=argparse.SUPPRESS,
|
||||||
dest='alarm_id_deprecated')
|
dest='alarm_id_deprecated')
|
||||||
|
|||||||
Reference in New Issue
Block a user