summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Farrellee <matt@redhat.com>2014-01-13 12:47:26 -0500
committerMatthew Farrellee <matt@redhat.com>2014-01-13 12:53:36 -0500
commitaad68ee3b6f81e5bc61165a240104e9f053071f4 (patch)
tree0db7a21197a1d5d784a06314253b0340e0d0961e
parente45918d47892d087350b8a8f92400143499f3519 (diff)
downloadpython-saharaclient-aad68ee3b6f81e5bc61165a240104e9f053071f4.tar.gz
Add some pretty printing for list fields
Change-Id: Id51eb9578b0972f746e48f29099589a7719c52fa
-rw-r--r--savannaclient/api/shell.py13
-rw-r--r--savannaclient/tests/nova/test_shell.py3
2 files changed, 11 insertions, 5 deletions
diff --git a/savannaclient/api/shell.py b/savannaclient/api/shell.py
index 7b0afb6..446adee 100644
--- a/savannaclient/api/shell.py
+++ b/savannaclient/api/shell.py
@@ -16,6 +16,10 @@
from savannaclient.nova import utils
+def _print_list_field(field):
+ return lambda obj: ', '.join(getattr(obj, field))
+
+
#
# Plugins
# ~~~~~~~
@@ -28,7 +32,8 @@ def do_plugins_list(cs, args):
"""Print a list of available plugins."""
plugins = cs.plugins.list()
columns = ('name', 'versions', 'title')
- utils.print_list(plugins, columns)
+ utils.print_list(plugins, columns,
+ {'versions': _print_list_field('versions')})
@utils.arg('--name',
@@ -67,7 +72,7 @@ def do_image_list(cs, args):
"""Print a list of available plugins."""
images = cs.images.list()
columns = ('name', 'id', 'username', 'tags', 'description')
- utils.print_list(images, columns)
+ utils.print_list(images, columns, {'tags': _print_list_field('tags')})
@utils.arg('--id',
@@ -235,8 +240,8 @@ def do_node_group_template_list(cs, args):
"""Print a list of available node group templates."""
templates = cs.node_group_templates.list()
columns = ('name', 'id', 'plugin_name', 'node_processes', 'description')
- # TODO(mattf): Make node_processes pretty
- utils.print_list(templates, columns)
+ utils.print_list(templates, columns,
+ {'node_processes': _print_list_field('node_processes')})
# TODO(mattf): Add --name
diff --git a/savannaclient/tests/nova/test_shell.py b/savannaclient/tests/nova/test_shell.py
index ee8190f..8bdf9a3 100644
--- a/savannaclient/tests/nova/test_shell.py
+++ b/savannaclient/tests/nova/test_shell.py
@@ -40,7 +40,7 @@ FAKE_ENV2 = {'OS_USERNAME': 'username',
class FakePlugin:
name = 'fake'
- versions = '1.0'
+ versions = ['1.0', ]
title = 'a fake plugin'
@@ -54,6 +54,7 @@ class FakeImage:
id = 'aaa-bb-ccc'
username = 'you'
description = None
+ tags = []
class FakeImageManager: