diff --git a/tuskar_ui/infrastructure/nodes/views.py b/tuskar_ui/infrastructure/nodes/views.py index 44ed414b6..6596a7736 100644 --- a/tuskar_ui/infrastructure/nodes/views.py +++ b/tuskar_ui/infrastructure/nodes/views.py @@ -185,7 +185,7 @@ class PerformanceView(base.TemplateView): instance_uuid = None json_output = metering_utils.get_nodes_stats( - request, node_uuid, instance_uuid, meter, + request, node_uuid, instance_uuid, image_uuid=None, meter=meter, date_options=date_options, date_from=date_from, date_to=date_to, stats_attr=stats_attr, barchart=barchart) diff --git a/tuskar_ui/infrastructure/roles/views.py b/tuskar_ui/infrastructure/roles/views.py index 7d3760cdf..9c7baa1e8 100644 --- a/tuskar_ui/infrastructure/roles/views.py +++ b/tuskar_ui/infrastructure/roles/views.py @@ -179,7 +179,8 @@ class PerformanceView(base.TemplateView, views.RoleMixin, views.StackMixin): json_output = None else: json_output = metering_utils.get_nodes_stats( - request, image_uuid, meter, date_options=date_options, + request, node_uuid=None, instance_uuid=None, + image_uuid=image_uuid, meter=meter, date_options=date_options, date_from=date_from, date_to=date_to, stats_attr=stats_attr, barchart=barchart, group_by='image_id') diff --git a/tuskar_ui/utils/metering.py b/tuskar_ui/utils/metering.py index ac6c58dec..412310563 100644 --- a/tuskar_ui/utils/metering.py +++ b/tuskar_ui/utils/metering.py @@ -177,13 +177,13 @@ def create_json_output(series, barchart, unit, date_from, date_to): return json_output -def get_nodes_stats(request, node_uuid, instance_uuid, meter, +def get_nodes_stats(request, node_uuid, instance_uuid, image_uuid, meter, date_options=None, date_from=None, date_to=None, stats_attr=None, barchart=None, group_by=None): series = [] meter_list, unit = get_meter_list_and_unit(request, meter) - if instance_uuid: + if instance_uuid or image_uuid: if 'ipmi' in meter: # For IPMI metrics, a resource ID is made of node UUID concatenated # with the metric description. E.g: @@ -203,7 +203,7 @@ def get_nodes_stats(request, node_uuid, instance_uuid, meter, query = {} image_query = [{"field": "metadata.%s" % group_by, "op": "eq", - "value": instance_uuid}] + "value": image_uuid}] query[instance_uuid] = image_query else: query = [{'field': 'resource_id', diff --git a/tuskar_ui/utils/tests.py b/tuskar_ui/utils/tests.py index 408f916c0..2bba88f2a 100644 --- a/tuskar_ui/utils/tests.py +++ b/tuskar_ui/utils/tests.py @@ -287,7 +287,9 @@ class MeteringTests(helpers.TestCase): 'openstack_dashboard.utils.metering.calc_date_args', return_value=('from date', 'to date'), ): - ret = metering.get_nodes_stats(request, 'abc', 'def', 'foo.bar') + ret = metering.get_nodes_stats( + request, node_uuid='abc', instance_uuid='def', image_uuid=None, + meter='foo.bar') self.assertEqual(ret, '') self.assertEqual(create_json_output.call_args_list, [ mock.call([], None, '', 'from date', 'to date')