summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRohit Jaiswal <rohit.jaiswal@hp.com>2015-10-23 14:46:23 +0000
committerRohit Jaiswal <rohit.jaiswal@hp.com>2015-11-06 07:32:59 +0000
commit19e3ad0149439f3228676db503b3116a312f359e (patch)
tree07b1669144a2d28f198dc7b6d920e9ee4514e2b2
parent674ac7daff4a83187fd7bd38710a2eaec75e7396 (diff)
downloadpython-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.py29
-rw-r--r--ceilometerclient/tests/v2/test_shell.py18
-rw-r--r--ceilometerclient/v2/shell.py5
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']