summaryrefslogtreecommitdiff
path: root/glanceclient/common/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'glanceclient/common/utils.py')
-rw-r--r--glanceclient/common/utils.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/glanceclient/common/utils.py b/glanceclient/common/utils.py
index f13efad..9071065 100644
--- a/glanceclient/common/utils.py
+++ b/glanceclient/common/utils.py
@@ -17,6 +17,7 @@ from __future__ import print_function
import errno
import hashlib
+import json
import os
import re
import sys
@@ -106,14 +107,20 @@ def pretty_choice_list(l):
return ', '.join("'%s'" % i for i in l)
-def print_list(objs, fields, formatters=None):
+def print_list(objs, fields, formatters=None, field_settings=None):
formatters = formatters or {}
+ field_settings = field_settings or {}
pt = prettytable.PrettyTable([f for f in fields], caching=False)
pt.align = 'l'
for o in objs:
row = []
for field in fields:
+ if field in field_settings:
+ for setting, value in six.iteritems(field_settings[field]):
+ setting_dict = getattr(pt, setting)
+ setting_dict[field] = value
+
if field in formatters:
row.append(formatters[field](o))
else:
@@ -129,7 +136,10 @@ def print_dict(d, max_column_width=80):
pt = prettytable.PrettyTable(['Property', 'Value'], caching=False)
pt.align = 'l'
pt.max_width = max_column_width
- [pt.add_row(list(r)) for r in six.iteritems(d)]
+ for k, v in six.iteritems(d):
+ if isinstance(v, (dict, list)):
+ v = json.dumps(v)
+ pt.add_row([k, v])
print(strutils.safe_encode(pt.get_string(sortby='Property')))