From 33dcea81b2f2ac5f643c0153c5a70cfec2008555 Mon Sep 17 00:00:00 2001 From: Pawel Koniszewski Date: Wed, 3 Sep 2014 07:37:45 -0400 Subject: Support for Metadata Definitions Catalog API API calls and shell commands added in this patch: - CRUD for metadefs namespaces; - CRUD for metadefs objects; - CRUD for metadefs properites; - CRD for metadefs resource types and resource type associations. Change-Id: I6d15f749038e8fd24fc651f0b314df5be7c673ef Implements: blueprint metadata-schema-catalog-support Co-Authored-By: Facundo Maldonado Co-Authored-By: Michal Dulko Co-Authored-By: Lakshmi N Sampath Co-Authored-By: Pawel Koniszewski --- glanceclient/common/utils.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'glanceclient/common/utils.py') 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'))) -- cgit v1.2.1