diff options
author | Rohit Jaiswal <rohit.jaiswal@hp.com> | 2015-10-23 14:46:23 +0000 |
---|---|---|
committer | Rohit Jaiswal <rohit.jaiswal@hp.com> | 2015-11-06 07:32:59 +0000 |
commit | 19e3ad0149439f3228676db503b3116a312f359e (patch) | |
tree | 07b1669144a2d28f198dc7b6d920e9ee4514e2b2 | |
parent | 674ac7daff4a83187fd7bd38710a2eaec75e7396 (diff) | |
download | python-ceilometerclient-19e3ad0149439f3228676db503b3116a312f359e.tar.gz |
Fix to disable meter-links on resource-list CLI
This adds an optional param to resource-list
CLI to disable meter-links. By default its
False to generate meter links for backward
compatibility.
This is a cherry-pick from master patch that
enables meter-links on resource-list CLI.
Change-Id: I308b94c8a57833cf30b4815ecec2ff9a50e91af6
Closes-Bug: #1508708
(cherry picked from commit e4a62a20b1d072969e842c38b2885a46a20fc54c)
-rw-r--r-- | ceilometerclient/tests/v2/test_resources.py | 29 | ||||
-rw-r--r-- | ceilometerclient/tests/v2/test_shell.py | 18 | ||||
-rw-r--r-- | ceilometerclient/v2/shell.py | 5 |
3 files changed, 51 insertions, 1 deletions
diff --git a/ceilometerclient/tests/v2/test_resources.py b/ceilometerclient/tests/v2/test_resources.py index 7d4066a..43af846 100644 --- a/ceilometerclient/tests/v2/test_resources.py +++ b/ceilometerclient/tests/v2/test_resources.py @@ -38,6 +38,25 @@ fixtures = { ] ), }, + '/v2/resources?meter_links=0': { + 'GET': ( + {}, + [ + { + 'resource_id': 'c', + 'project_id': 'project_blah', + 'user_id': 'fred', + 'metadata': {'zxc_id': 'blah'}, + }, + { + 'resource_id': 'd', + 'project_id': 'bury_the_ditch', + 'user_id': 'jack', + 'metadata': {'zxc_id': 'foobar'}, + }, + ] + ), + }, '/v2/resources?q.field=resource_id&q.op=&q.type=&q.value=a&meter_links=1': { 'GET': ( @@ -85,6 +104,16 @@ class ResourceManagerTest(utils.BaseTestCase): self.assertEqual(resources[0].resource_id, 'a') self.assertEqual(resources[1].resource_id, 'b') + def test_list_all_with_links_disabled(self): + resources = list(self.mgr.list(links=False)) + expect = [ + 'GET', '/v2/resources?meter_links=0' + ] + self.http_client.assert_called(*expect) + self.assertEqual(2, len(resources)) + self.assertEqual('c', resources[0].resource_id) + self.assertEqual('d', resources[1].resource_id) + def test_list_one(self): resource = self.mgr.get(resource_id='a') expect = [ diff --git a/ceilometerclient/tests/v2/test_shell.py b/ceilometerclient/tests/v2/test_shell.py index 1d42c51..0d62b06 100644 --- a/ceilometerclient/tests/v2/test_shell.py +++ b/ceilometerclient/tests/v2/test_shell.py @@ -1181,3 +1181,21 @@ class ShellShadowedArgsTest(test_shell.ShellTestBase): kwargs.get('project_id')) self.assertEqual('the-user-id-i-want-to-set', kwargs.get('user_id')) + + +class ShellResourceListCommandTest(utils.BaseTestCase): + + def setUp(self): + super(ShellResourceListCommandTest, self).setUp() + self.cc = mock.Mock() + self.cc.resources = mock.Mock() + self.args = mock.Mock() + self.args.query = None + self.args.no_meter_links = True + + def test_resource_list_with_no_links(self): + self.cc.resources.list.return_value = [] + ceilometer_shell.do_resource_list(self.cc, self.args) + self.cc.resources.list.assert_called_once_with( + q=None, + links=False) diff --git a/ceilometerclient/v2/shell.py b/ceilometerclient/v2/shell.py index e2bec46..c6daed4 100644 --- a/ceilometerclient/v2/shell.py +++ b/ceilometerclient/v2/shell.py @@ -994,9 +994,12 @@ def do_alarm_history(cc, args={}): @utils.arg('-q', '--query', metavar='<QUERY>', help='key[op]data_type::value; list. data_type is optional, ' 'but if supplied must be string, integer, float, or boolean.') +@utils.arg('--no-meter-links', dest='no_meter_links', action='store_true', + help='If specified, meter links will not be generated.') def do_resource_list(cc, args={}): """List the resources.""" - resources = cc.resources.list(q=options.cli_to_array(args.query)) + resources = cc.resources.list(q=options.cli_to_array(args.query), + links=not args.no_meter_links) field_labels = ['Resource ID', 'Source', 'User ID', 'Project ID'] fields = ['resource_id', 'source', 'user_id', 'project_id'] |