diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-06-25 00:19:59 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-06-25 00:19:59 +0000 |
commit | 9f41025689e53ea1f1c7a96198d4f09372910c40 (patch) | |
tree | 8fd23e15eb95e51c79a2274df3f592d8a9eb9cb9 | |
parent | 3e0f36341600c5a3bee371557c766b0592b3ddc6 (diff) | |
parent | 18342a412f2557199dc3d7b1d16f50baf92eac1b (diff) | |
download | python-ceilometerclient-9f41025689e53ea1f1c7a96198d4f09372910c40.tar.gz |
Merge "Fix alarm-threshold-update --query option"
-rw-r--r-- | ceilometerclient/tests/v2/test_shell.py | 46 | ||||
-rw-r--r-- | ceilometerclient/v2/shell.py | 1 |
2 files changed, 32 insertions, 15 deletions
diff --git a/ceilometerclient/tests/v2/test_shell.py b/ceilometerclient/tests/v2/test_shell.py index 819e938..69e6a50 100644 --- a/ceilometerclient/tests/v2/test_shell.py +++ b/ceilometerclient/tests/v2/test_shell.py @@ -178,6 +178,20 @@ class ShellAlarmCommandTest(utils.BaseTestCase): "type": "threshold", "name": "cpu_high"} + THRESHOLD_ALARM_CLI_ARGS = [ + '--name', 'cpu_high', + '--description', 'instance running hot', + '--meter-name', 'cpu_util', + '--threshold', '70.0', + '--comparison-operator', 'gt', + '--statistic', 'avg', + '--period', '600', + '--evaluation-periods', '3', + '--alarm-action', 'log://', + '--alarm-action', 'http://example.com/alarm/state', + '--query', 'resource_id=INSTANCE_ID' + ] + def setUp(self): super(ShellAlarmCommandTest, self).setUp() self.cc = mock.Mock() @@ -241,26 +255,28 @@ class ShellAlarmCommandTest(utils.BaseTestCase): @mock.patch('sys.stdout', new=six.StringIO()) def test_alarm_threshold_create_args(self): + argv = ['alarm-threshold-create'] + self.THRESHOLD_ALARM_CLI_ARGS + self._test_alarm_threshold_action_args('create', argv) + + def test_alarm_threshold_update_args(self): + argv = ['alarm-threshold-update', + '--alarm_id', 'x'] + self.THRESHOLD_ALARM_CLI_ARGS + self._test_alarm_threshold_action_args('update', argv) + + @mock.patch('sys.stdout', new=six.StringIO()) + def _test_alarm_threshold_action_args(self, action, argv): shell = base_shell.CeilometerShell() - argv = ['alarm-threshold-create', - '--name', 'cpu_high', - '--description', 'instance running hot', - '--meter-name', 'cpu_util', - '--threshold', '70.0', - '--comparison-operator', 'gt', - '--statistic', 'avg', - '--period', '600', - '--evaluation-periods', '3', - '--alarm-action', 'log://', - '--alarm-action', 'http://example.com/alarm/state', - '--query', 'resource_id=INSTANCE_ID'] _, args = shell.parse_args(argv) alarm = alarms.Alarm(mock.Mock(), self.ALARM) - self.cc.alarms.create.return_value = alarm + getattr(self.cc.alarms, action).return_value = alarm - ceilometer_shell.do_alarm_threshold_create(self.cc, args) - _, kwargs = self.cc.alarms.create.call_args + func = getattr(ceilometer_shell, 'do_alarm_threshold_' + action) + func(self.cc, args) + _, kwargs = getattr(self.cc.alarms, action).call_args + self._check_alarm_threshold_args(kwargs) + + def _check_alarm_threshold_args(self, kwargs): self.assertEqual('cpu_high', kwargs.get('name')) self.assertEqual('instance running hot', kwargs.get('description')) actions = ['log://', 'http://example.com/alarm/state'] diff --git a/ceilometerclient/v2/shell.py b/ceilometerclient/v2/shell.py index 9a42b0f..b13ab20 100644 --- a/ceilometerclient/v2/shell.py +++ b/ceilometerclient/v2/shell.py @@ -544,6 +544,7 @@ def do_alarm_update(cc, args={}): dest='threshold_rule/threshold', help='Threshold to evaluate against.') @utils.arg('-q', '--query', metavar='<QUERY>', + dest='threshold_rule/query', help='key[op]data_type::value; list. data_type is optional, ' 'but if supplied must be string, integer, float, or boolean.') @utils.arg('--repeat-actions', dest='repeat_actions', |