summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliyingjun <liyingjun1988@gmail.com>2014-06-25 04:47:25 +0800
committerliyingjun <liyingjun1988@gmail.com>2014-06-27 03:29:27 +0800
commitae04b4b09982bf98ed963fb541da5f3bf73b9a17 (patch)
tree9b94209c6e79bb2ed1302fc6e56286377c7057fd
parent0c4010e7fbc9939905e8647afbe1358c384dc658 (diff)
downloadpython-cinderclient-ae04b4b09982bf98ed963fb541da5f3bf73b9a17.tar.gz
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
-rw-r--r--cinderclient/tests/v1/test_shell.py10
-rw-r--r--cinderclient/v1/shell.py12
-rw-r--r--cinderclient/v2/shell.py12
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='<volume>', 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',