diff options
| author | fujioka yuuichi <fujioka-yuuichi@zx.mxh.nes.nec.co.jp> | 2013-10-28 09:05:57 +0900 |
|---|---|---|
| committer | fujioka yuuichi <fujioka-yuuichi@zx.mxh.nes.nec.co.jp> | 2013-10-28 09:08:40 +0900 |
| commit | 1b0f94f20580a55bea52ba468bdeeca3dd4552bd (patch) | |
| tree | aced35f8a771ea526d501647773aceecc2143174 /ceilometerclient/common | |
| parent | 46f12ab64b992efa2e0c42e4cefb643abdf2cd74 (diff) | |
| download | python-ceilometerclient-1b0f94f20580a55bea52ba468bdeeca3dd4552bd.tar.gz | |
Fix order of sample list
Samples of "ceilometer sample-list" are sorted by Resource ID and
Volume.
Expected order is Timestamp.
This pache fixes this problem.
Change-Id: I338014e5868b2176a3afd549e13d0dd6118b3ac1
Closes-Bug: #1227495
Diffstat (limited to 'ceilometerclient/common')
| -rw-r--r-- | ceilometerclient/common/utils.py | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/ceilometerclient/common/utils.py b/ceilometerclient/common/utils.py index fe21378..82f5b08 100644 --- a/ceilometerclient/common/utils.py +++ b/ceilometerclient/common/utils.py @@ -14,6 +14,7 @@ # under the License. from __future__ import print_function +import itertools import os import six import sys @@ -23,6 +24,7 @@ import uuid import prettytable from ceilometerclient import exc +from ceilometerclient.openstack.common import cliutils from ceilometerclient.openstack.common import importutils @@ -48,20 +50,20 @@ def pretty_choice_list(l): def print_list(objs, fields, field_labels, formatters={}, sortby=0): - pt = prettytable.PrettyTable([f for f in field_labels], - caching=False, print_empty=False) - pt.align = 'l' - for o in objs: - row = [] - for field in fields: - if field in formatters: - row.append(formatters[field](o)) - else: - data = getattr(o, field, '') - row.append(data) - pt.add_row(row) - print(pt.get_string(sortby=field_labels[sortby])) + def _make_default_formatter(field): + return lambda o: getattr(o, field, '') + + new_formatters = {} + for field, field_label in itertools.izip(fields, field_labels): + if field in formatters: + new_formatters[field_label] = formatters[field] + else: + new_formatters[field_label] = _make_default_formatter(field) + + cliutils.print_list(objs, field_labels, + formatters=new_formatters, + sortby_index=sortby) def print_dict(d, dict_property="Property", wrap=0): |
