def do_alarm_create(cc, args={}): '''Create a new alarm (Deprecated). Use alarm-threshold-create instead.''' fields = dict(filter(lambda x: not (x[1] is None), vars(args).items())) fields = utils.args_array_to_list_of_dicts(fields, "time_constraints") fields = utils.args_array_to_dict(fields, "matching_metadata") alarm = cc.alarms.create(**fields) _display_alarm(alarm)
def test_args_array_to_list_of_dicts(self): starts = ['0 11 * * *', '"0 11 * * *"', '\'0 11 * * *\''] timezones = [None, 'US/Eastern', '"US/Eastern"', '\'US/Eastern\''] descs = [None, 'de sc', '"de sc"', '\'de sc\''] for start, tz, desc in itertools.product(starts, timezones, descs): my_args = { 'time_constraints': ['name=const1;start=%s;duration=1' % start], 'other': 'value' } expected = { 'time_constraints': [dict(name='const1', start='0 11 * * *', duration='1')], 'other': 'value' } if tz: my_args['time_constraints'][0] += ';timezone=%s' % tz expected['time_constraints'][0]['timezone'] = 'US/Eastern' if desc: my_args['time_constraints'][0] += ';description=%s' % desc expected['time_constraints'][0]['description'] = 'de sc' cleaned = utils.args_array_to_list_of_dicts(my_args, 'time_constraints') self.assertEqual(expected, cleaned)
def do_alarm_gnocchi_aggregation_by_resources_threshold_create(cc, args={}): """Create a new alarm based on computed statistics.""" fields = dict(filter(lambda x: not (x[1] is None), vars(args).items())) fields = utils.args_array_to_list_of_dicts(fields, "time_constraints") fields = utils.key_with_slash_to_nested_dict(fields) fields["type"] = "gnocchi_aggregation_by_resources_threshold" alarm = cc.alarms.create(**fields) _display_alarm(alarm)
def do_alarm_combination_create(cc, args={}): '''Create a new alarm based on state of other alarms.''' fields = dict(filter(lambda x: not (x[1] is None), vars(args).items())) fields = utils.args_array_to_list_of_dicts(fields, 'time_constraints') fields = utils.key_with_slash_to_nested_dict(fields) fields['type'] = 'combination' alarm = cc.alarms.create(**fields) _display_alarm(alarm)
def do_alarm_threshold_create(cc, args={}): """Create a new alarm based on computed statistics.""" fields = dict(filter(lambda x: not (x[1] is None), vars(args).items())) fields = utils.args_array_to_list_of_dicts(fields, "time_constraints") fields = utils.key_with_slash_to_nested_dict(fields) fields["type"] = "threshold" if "query" in fields["threshold_rule"]: fields["threshold_rule"]["query"] = options.cli_to_array(fields["threshold_rule"]["query"]) alarm = cc.alarms.create(**fields) _display_alarm(alarm)
def do_alarm_update(cc, args={}): '''Update an existing alarm (Deprecated).''' fields = dict(filter(lambda x: not (x[1] is None), vars(args).items())) fields = utils.args_array_to_list_of_dicts(fields, "time_constraints") fields = utils.args_array_to_dict(fields, "matching_metadata") fields.pop('alarm_id') 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)
def do_alarm_threshold_create(cc, args={}): '''Create a new alarm based on computed statistics.''' fields = dict(filter(lambda x: not (x[1] is None), vars(args).items())) fields = utils.args_array_to_list_of_dicts(fields, 'time_constraints') fields = utils.key_with_slash_to_nested_dict(fields) fields['type'] = 'threshold' if 'query' in fields['threshold_rule']: fields['threshold_rule']['query'] = options.cli_to_array( fields['threshold_rule']['query']) alarm = cc.alarms.create(**fields) _display_alarm(alarm)
def do_alarm_combination_update(cc, args={}): '''Update an existing alarm based on state of other alarms.''' fields = dict(filter(lambda x: not (x[1] is None), vars(args).items())) fields = utils.args_array_to_list_of_dicts(fields, 'time_constraints') fields = utils.key_with_slash_to_nested_dict(fields) fields.pop('alarm_id') fields['type'] = 'combination' 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)
def do_alarm_combination_update(cc, args={}): """Update an existing alarm based on state of other alarms.""" fields = dict(filter(lambda x: not (x[1] is None), vars(args).items())) fields = utils.args_array_to_list_of_dicts(fields, "time_constraints") fields = utils.key_with_slash_to_nested_dict(fields) fields.pop("alarm_id") fields["type"] = "combination" 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)
def do_alarm_threshold_update(cc, args={}): """Update an existing alarm based on computed statistics.""" fields = dict(filter(lambda x: not (x[1] is None), vars(args).items())) fields = utils.args_array_to_list_of_dicts(fields, "time_constraints") fields = utils.key_with_slash_to_nested_dict(fields) fields.pop("alarm_id") fields["type"] = "threshold" if "threshold_rule" in fields and "query" in fields["threshold_rule"]: fields["threshold_rule"]["query"] = options.cli_to_array(fields["threshold_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)
def do_alarm_threshold_update(cc, args={}): '''Update an existing alarm based on computed statistics.''' fields = dict(filter(lambda x: not (x[1] is None), vars(args).items())) fields = utils.args_array_to_list_of_dicts(fields, 'time_constraints') fields = utils.key_with_slash_to_nested_dict(fields) fields.pop('alarm_id') fields['type'] = 'threshold' if 'threshold_rule' in fields and 'query' in fields['threshold_rule']: fields['threshold_rule']['query'] = options.cli_to_array( fields['threshold_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)