summaryrefslogtreecommitdiff
path: root/ceilometerclient/common/utils.py
diff options
context:
space:
mode:
authorLianhao Lu <lianhao.lu@intel.com>2013-03-29 18:40:44 +0800
committerLianhao Lu <lianhao.lu@intel.com>2013-03-29 18:40:44 +0800
commitf3d044291fe75c2b6ce7a4f8e9a6885d4ffd38c0 (patch)
tree95b49087d4845bae406bbe5e66fdf9805be602c1 /ceilometerclient/common/utils.py
parente30d70074f278f58457d9d2b278815b5ccb39a63 (diff)
downloadpython-ceilometerclient-f3d044291fe75c2b6ce7a4f8e9a6885d4ffd38c0.tar.gz
v2 API: added resource-show.
Added resource-show command for v2 API. blueprint more-cli-cmd. Change-Id: I9e0dcff63b2ac6650094d47a947a2deaaea2ba4d
Diffstat (limited to 'ceilometerclient/common/utils.py')
-rw-r--r--ceilometerclient/common/utils.py29
1 files changed, 20 insertions, 9 deletions
diff --git a/ceilometerclient/common/utils.py b/ceilometerclient/common/utils.py
index 2703b7a..658cdf4 100644
--- a/ceilometerclient/common/utils.py
+++ b/ceilometerclient/common/utils.py
@@ -17,6 +17,7 @@ import errno
import hashlib
import os
import sys
+import textwrap
import uuid
import prettytable
@@ -49,22 +50,32 @@ def print_list(objs, fields, field_labels, formatters={}, sortby=0):
if field in formatters:
row.append(formatters[field](o))
else:
- data = getattr(o, field, None) or ''
+ data = getattr(o, field, '')
row.append(data)
pt.add_row(row)
print pt.get_string(sortby=field_labels[sortby])
-def print_dict(d, formatters={}):
- pt = prettytable.PrettyTable(['Property', 'Value'], caching=False)
+def print_dict(d, dict_property="Property", wrap=0):
+ pt = prettytable.PrettyTable([dict_property, 'Value'], caching=False)
pt.align = 'l'
-
- for field in d.keys():
- if field in formatters:
- pt.add_row([field, formatters[field](d[field])])
+ for k, v in d.iteritems():
+ # convert dict to str to check length
+ if isinstance(v, dict):
+ v = str(v)
+ if wrap > 0:
+ v = textwrap.fill(str(v), wrap)
+ # if value has a newline, add in multiple rows
+ # e.g. fault with stacktrace
+ if v and isinstance(v, basestring) and r'\n' in v:
+ lines = v.strip().split(r'\n')
+ col1 = k
+ for line in lines:
+ pt.add_row([col1, line])
+ col1 = ''
else:
- pt.add_row([field, d[field]])
- print pt.get_string(sortby='Property')
+ pt.add_row([k, v])
+ print pt.get_string()
def find_resource(manager, name_or_id):