Allow alarm-threshold-update to upate generic attributes
Fixes bug 1253989 Previously, generic (i.e. non-threshold-related) alarm attributes could not be updated with the alarm-threshold-update command. An attempt to do so failed semi-silently when a non-existent dict key was referenced. Now, all alarm attributes can be updated with this command. Change-Id: Iba3f21de879fb853575dcec1730de7873eab8afd
This commit is contained in:
@@ -172,7 +172,7 @@ class ShellAlarmCommandTest(utils.BaseTestCase):
|
|||||||
self.args = mock.Mock()
|
self.args = mock.Mock()
|
||||||
self.args.alarm_id = self.ALARM_ID
|
self.args.alarm_id = self.ALARM_ID
|
||||||
|
|
||||||
def _do_test_alarm_update_repeat_actions(self, repeat_actions):
|
def _do_test_alarm_update_repeat_actions(self, method, repeat_actions):
|
||||||
self.args.threshold = 42.0
|
self.args.threshold = 42.0
|
||||||
if repeat_actions is not None:
|
if repeat_actions is not None:
|
||||||
self.args.repeat_actions = repeat_actions
|
self.args.repeat_actions = repeat_actions
|
||||||
@@ -183,7 +183,7 @@ class ShellAlarmCommandTest(utils.BaseTestCase):
|
|||||||
self.cc.alarms.update.return_value = alarm[0]
|
self.cc.alarms.update.return_value = alarm[0]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ceilometer_shell.do_alarm_update(self.cc, self.args)
|
method(self.cc, self.args)
|
||||||
args, kwargs = self.cc.alarms.update.call_args
|
args, kwargs = self.cc.alarms.update.call_args
|
||||||
self.assertEqual(self.ALARM_ID, args[0])
|
self.assertEqual(self.ALARM_ID, args[0])
|
||||||
self.assertEqual(42.0, kwargs.get('threshold'))
|
self.assertEqual(42.0, kwargs.get('threshold'))
|
||||||
@@ -196,13 +196,40 @@ class ShellAlarmCommandTest(utils.BaseTestCase):
|
|||||||
sys.stdout = orig
|
sys.stdout = orig
|
||||||
|
|
||||||
def test_alarm_update_repeat_actions_untouched(self):
|
def test_alarm_update_repeat_actions_untouched(self):
|
||||||
self._do_test_alarm_update_repeat_actions(None)
|
method = ceilometer_shell.do_alarm_update
|
||||||
|
self._do_test_alarm_update_repeat_actions(method, None)
|
||||||
|
|
||||||
def test_alarm_update_repeat_actions_set(self):
|
def test_alarm_update_repeat_actions_set(self):
|
||||||
self._do_test_alarm_update_repeat_actions(True)
|
method = ceilometer_shell.do_alarm_update
|
||||||
|
self._do_test_alarm_update_repeat_actions(method, True)
|
||||||
|
|
||||||
def test_alarm_update_repeat_actions_clear(self):
|
def test_alarm_update_repeat_actions_clear(self):
|
||||||
self._do_test_alarm_update_repeat_actions(False)
|
method = ceilometer_shell.do_alarm_update
|
||||||
|
self._do_test_alarm_update_repeat_actions(method, False)
|
||||||
|
|
||||||
|
def test_alarm_combination_update_repeat_actions_untouched(self):
|
||||||
|
method = ceilometer_shell.do_alarm_combination_update
|
||||||
|
self._do_test_alarm_update_repeat_actions(method, None)
|
||||||
|
|
||||||
|
def test_alarm_combination_update_repeat_actions_set(self):
|
||||||
|
method = ceilometer_shell.do_alarm_combination_update
|
||||||
|
self._do_test_alarm_update_repeat_actions(method, True)
|
||||||
|
|
||||||
|
def test_alarm_combination_update_repeat_actions_clear(self):
|
||||||
|
method = ceilometer_shell.do_alarm_combination_update
|
||||||
|
self._do_test_alarm_update_repeat_actions(method, False)
|
||||||
|
|
||||||
|
def test_alarm_threshold_update_repeat_actions_untouched(self):
|
||||||
|
method = ceilometer_shell.do_alarm_threshold_update
|
||||||
|
self._do_test_alarm_update_repeat_actions(method, None)
|
||||||
|
|
||||||
|
def test_alarm_threshold_update_repeat_actions_set(self):
|
||||||
|
method = ceilometer_shell.do_alarm_threshold_update
|
||||||
|
self._do_test_alarm_update_repeat_actions(method, True)
|
||||||
|
|
||||||
|
def test_alarm_threshold_update_repeat_actions_clear(self):
|
||||||
|
method = ceilometer_shell.do_alarm_threshold_update
|
||||||
|
self._do_test_alarm_update_repeat_actions(method, False)
|
||||||
|
|
||||||
|
|
||||||
class ShellSampleListCommandTest(utils.BaseTestCase):
|
class ShellSampleListCommandTest(utils.BaseTestCase):
|
||||||
|
|||||||
@@ -436,7 +436,7 @@ def do_alarm_threshold_update(cc, args={}):
|
|||||||
fields = utils.key_with_slash_to_nested_dict(fields)
|
fields = utils.key_with_slash_to_nested_dict(fields)
|
||||||
fields.pop('alarm_id')
|
fields.pop('alarm_id')
|
||||||
fields['type'] = 'threshold'
|
fields['type'] = 'threshold'
|
||||||
if 'query' in fields['threshold_rule']:
|
if 'threshold_rule' in fields and 'query' in fields['threshold_rule']:
|
||||||
fields['threshold_rule']['query'] = options.cli_to_array(
|
fields['threshold_rule']['query'] = options.cli_to_array(
|
||||||
fields['threshold_rule']['query'])
|
fields['threshold_rule']['query'])
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user