From ae04b4b09982bf98ed963fb541da5f3bf73b9a17 Mon Sep 17 00:00:00 2001 From: liyingjun Date: Wed, 25 Jun 2014 04:47:25 +0800 Subject: Add tenant uuid when running cinder list --all-tenants Add the tenant uuid to the output when running cinder list --all-tenants, since this is an admin command any way, it would help to list the tenant UUID so we do not have to run cinder show to see the tenant uuid when we have further queries to run. Change-Id: I661789e957fa00947c4d5595f7e0515c27963735 Closes-bug: 1333257 --- cinderclient/tests/v1/test_shell.py | 10 ++++++++++ cinderclient/v1/shell.py | 12 +++++++++--- cinderclient/v2/shell.py | 12 +++++++++--- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/cinderclient/tests/v1/test_shell.py b/cinderclient/tests/v1/test_shell.py index 0b9cbe7..8b7a6ea 100644 --- a/cinderclient/tests/v1/test_shell.py +++ b/cinderclient/tests/v1/test_shell.py @@ -95,6 +95,16 @@ class ShellTest(utils.TestCase): args = Arguments(metadata=input[0]) self.assertEqual(shell_v1._extract_metadata(args), input[1]) + def test_translate_volume_keys(self): + cs = fakes.FakeClient() + v = cs.volumes.list()[0] + setattr(v, 'os-vol-tenant-attr:tenant_id', 'fake_tenant') + setattr(v, '_info', {'attachments': [{'server_id': 1234}], + 'id': 1234, 'name': 'sample-volume', + 'os-vol-tenant-attr:tenant_id': 'fake_tenant'}) + shell_v1._translate_volume_keys([v]) + self.assertEqual(v.tenant_id, 'fake_tenant') + @httpretty.activate def test_list(self): self.register_keystone_auth_fixture() diff --git a/cinderclient/v1/shell.py b/cinderclient/v1/shell.py index 47e0a57..fd7c55d 100644 --- a/cinderclient/v1/shell.py +++ b/cinderclient/v1/shell.py @@ -101,7 +101,8 @@ def _translate_keys(collection, convert): def _translate_volume_keys(collection): - convert = [('displayName', 'display_name'), ('volumeType', 'volume_type')] + convert = [('displayName', 'display_name'), ('volumeType', 'volume_type'), + ('os-vol-tenant-attr:tenant_id', 'tenant_id')] _translate_keys(collection, convert) @@ -179,8 +180,13 @@ def do_list(cs, args): for vol in volumes: servers = [s.get('server_id') for s in vol.attachments] setattr(vol, 'attached_to', ','.join(map(str, servers))) - utils.print_list(volumes, ['ID', 'Status', 'Display Name', - 'Size', 'Volume Type', 'Bootable', 'Attached to']) + if all_tenants: + key_list = ['ID', 'Tenant ID', 'Status', 'Display Name', + 'Size', 'Volume Type', 'Bootable', 'Attached to'] + else: + key_list = ['ID', 'Status', 'Display Name', + 'Size', 'Volume Type', 'Bootable', 'Attached to'] + utils.print_list(volumes, key_list) @utils.arg('volume', metavar='', help='Volume name or ID.') diff --git a/cinderclient/v2/shell.py b/cinderclient/v2/shell.py index 4842709..84c140a 100644 --- a/cinderclient/v2/shell.py +++ b/cinderclient/v2/shell.py @@ -97,7 +97,8 @@ def _translate_keys(collection, convert): def _translate_volume_keys(collection): - convert = [('volumeType', 'volume_type')] + convert = [('volumeType', 'volume_type'), + ('os-vol-tenant-attr:tenant_id', 'tenant_id')] _translate_keys(collection, convert) @@ -177,8 +178,13 @@ def do_list(cs, args): servers = [s.get('server_id') for s in vol.attachments] setattr(vol, 'attached_to', ','.join(map(str, servers))) - utils.print_list(volumes, ['ID', 'Status', 'Name', - 'Size', 'Volume Type', 'Bootable', 'Attached to']) + if all_tenants: + key_list = ['ID', 'Tenant ID', 'Status', 'Name', + 'Size', 'Volume Type', 'Bootable', 'Attached to'] + else: + key_list = ['ID', 'Status', 'Name', + 'Size', 'Volume Type', 'Bootable', 'Attached to'] + utils.print_list(volumes, key_list) @utils.arg('volume', -- cgit v1.2.1