diff --git a/keystoneclient/utils.py b/keystoneclient/utils.py index f5165dd0a..4c439d73b 100644 --- a/keystoneclient/utils.py +++ b/keystoneclient/utils.py @@ -39,12 +39,25 @@ def print_list(objs, fields, formatters={}): print pt.get_string(sortby=fields[0]) -def print_dict(d): +def _word_wrap(string, max_length=0): + """wrap long strings to be no longer then max_length""" + if max_length <= 0: + return string + return '\n'.join([string[i:i + max_length] for i in + range(0, len(string), max_length)]) + + +def print_dict(d, wrap=0): + """pretty table prints dictionaries. + + Wrap values to max_length wrap if wrap>0 + """ pt = prettytable.PrettyTable(['Property', 'Value'], caching=False) pt.aligns = ['l', 'l'] for (prop, value) in d.iteritems(): if value is None: value = '' + value = _word_wrap(value, max_length=wrap) pt.add_row([prop, value]) print pt.get_string(sortby='Property') diff --git a/keystoneclient/v2_0/shell.py b/keystoneclient/v2_0/shell.py index 23c0d34e6..d058da6f2 100755 --- a/keystoneclient/v2_0/shell.py +++ b/keystoneclient/v2_0/shell.py @@ -406,6 +406,9 @@ def do_endpoint_delete(kc, args): print 'Unable to delete endpoint.' +@utils.arg('--wrap', metavar='', default=79, + help='wrap PKI tokens to a specified length, or 0 to disable') def do_token_get(kc, args): """Display the current user token""" - utils.print_dict(kc.service_catalog.get_token()) + utils.print_dict(kc.service_catalog.get_token(), + wrap=int(args.wrap))