summaryrefslogtreecommitdiff
path: root/ceilometerclient/common
diff options
context:
space:
mode:
authorfujioka yuuichi <fujioka-yuuichi@zx.mxh.nes.nec.co.jp>2013-10-28 09:05:57 +0900
committerfujioka yuuichi <fujioka-yuuichi@zx.mxh.nes.nec.co.jp>2013-10-28 09:08:40 +0900
commit1b0f94f20580a55bea52ba468bdeeca3dd4552bd (patch)
treeaced35f8a771ea526d501647773aceecc2143174 /ceilometerclient/common
parent46f12ab64b992efa2e0c42e4cefb643abdf2cd74 (diff)
downloadpython-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.py28
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):