diff options
| author | Lianhao Lu <lianhao.lu@intel.com> | 2013-03-29 18:40:44 +0800 |
|---|---|---|
| committer | Lianhao Lu <lianhao.lu@intel.com> | 2013-03-29 18:40:44 +0800 |
| commit | f3d044291fe75c2b6ce7a4f8e9a6885d4ffd38c0 (patch) | |
| tree | 95b49087d4845bae406bbe5e66fdf9805be602c1 /ceilometerclient/common/utils.py | |
| parent | e30d70074f278f58457d9d2b278815b5ccb39a63 (diff) | |
| download | python-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.py | 29 |
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): |
