diff --git a/ceilometerclient/tests/v2/test_statistics.py b/ceilometerclient/tests/v2/test_statistics.py index 68a26726..dde4dd60 100644 --- a/ceilometerclient/tests/v2/test_statistics.py +++ b/ceilometerclient/tests/v2/test_statistics.py @@ -181,13 +181,13 @@ class StatisticsManagerTest(utils.BaseTestCase): def test_list_by_meter_name_with_aggregates(self): aggregates = [ + { + 'func': 'count', + }, { 'func': 'cardinality', 'param': 'resource_id', }, - { - 'func': 'count', - } ] stats = list(self.mgr.list(meter_name='instance', aggregates=aggregates)) diff --git a/ceilometerclient/v2/statistics.py b/ceilometerclient/v2/statistics.py index 689992c6..d0b56c9f 100644 --- a/ceilometerclient/v2/statistics.py +++ b/ceilometerclient/v2/statistics.py @@ -26,13 +26,19 @@ class StatisticsManager(base.Manager): def _build_aggregates(self, aggregates): url_aggregates = [] for aggregate in aggregates: - url_aggregates.append( - "aggregate.func=%(func)s" % aggregate - ) if 'param' in aggregate: - url_aggregates.append( + url_aggregates.insert( + 0, "aggregate.param=%(param)s" % aggregate ) + url_aggregates.insert( + 0, + "aggregate.func=%(func)s" % aggregate + ) + else: + url_aggregates.append( + "aggregate.func=%(func)s" % aggregate + ) return url_aggregates def list(self, meter_name, q=None, period=None, groupby=[], aggregates=[]):