Broken charting for non compute resources
- Code for resource charts contained query that filtered only nova instances. That condition is removed. Now it filters resources by the meter name. Fixes bug 1243796 Change-Id: I7debb2b457ede83b726934c082f22307ddc0c630
This commit is contained in:
@@ -213,7 +213,8 @@ class MeteringViewTests(test.APITestCase, test.BaseAdminViewTests):
|
|||||||
self.assertEqual(first.storage_objects_incoming_bytes, 4.55)
|
self.assertEqual(first.storage_objects_incoming_bytes, 4.55)
|
||||||
self.assertEqual(first.storage_objects_outgoing_bytes, 4.55)
|
self.assertEqual(first.storage_objects_outgoing_bytes, 4.55)
|
||||||
|
|
||||||
self.assertEqual(len(table_stats), len(resources))
|
# There are only 2 resources regarding object storage in test data
|
||||||
|
self.assertEqual(len(table_stats), 2)
|
||||||
self.assertIsInstance(first, api.ceilometer.GlobalObjectStoreUsage)
|
self.assertIsInstance(first, api.ceilometer.GlobalObjectStoreUsage)
|
||||||
|
|
||||||
def test_stats_page(self):
|
def test_stats_page(self):
|
||||||
@@ -316,7 +317,7 @@ class MeteringViewTests(test.APITestCase, test.BaseAdminViewTests):
|
|||||||
|
|
||||||
ceilometerclient = self.stub_ceilometerclient()
|
ceilometerclient = self.stub_ceilometerclient()
|
||||||
ceilometerclient.resources = self.mox.CreateMockAnything()
|
ceilometerclient.resources = self.mox.CreateMockAnything()
|
||||||
ceilometerclient.resources.list(q=IsA(list)).AndReturn(resources)
|
ceilometerclient.resources.list(q=[]).AndReturn(resources)
|
||||||
|
|
||||||
ceilometerclient.statistics = self.mox.CreateMockAnything()
|
ceilometerclient.statistics = self.mox.CreateMockAnything()
|
||||||
ceilometerclient.statistics.list(meter_name="storage.objects",
|
ceilometerclient.statistics.list(meter_name="storage.objects",
|
||||||
|
@@ -121,10 +121,6 @@ class SamplesView(TemplateView):
|
|||||||
# If some date is missing, just set static window to one day.
|
# If some date is missing, just set static window to one day.
|
||||||
period = 3600 * 24
|
period = 3600 * 24
|
||||||
|
|
||||||
query = [{"field": "metadata.OS-EXT-AZ:availability_zone",
|
|
||||||
"op": "eq",
|
|
||||||
"value": "nova"}]
|
|
||||||
|
|
||||||
additional_query = []
|
additional_query = []
|
||||||
if date_from:
|
if date_from:
|
||||||
additional_query += [{'field': 'timestamp',
|
additional_query += [{'field': 'timestamp',
|
||||||
@@ -175,11 +171,26 @@ class SamplesView(TemplateView):
|
|||||||
stats_attr,
|
stats_attr,
|
||||||
unit)
|
unit)
|
||||||
else:
|
else:
|
||||||
|
query = []
|
||||||
|
|
||||||
|
def filter_by_meter_name(resource):
|
||||||
|
""" Function for filtering of the list of resources.
|
||||||
|
|
||||||
|
Will pick the right resources according to currently selected
|
||||||
|
meter.
|
||||||
|
"""
|
||||||
|
for link in resource.links:
|
||||||
|
if link['rel'] == meter:
|
||||||
|
# If resource has the currently chosen meter.
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
ceilometer_usage = ceilometer.CeilometerUsage(request)
|
ceilometer_usage = ceilometer.CeilometerUsage(request)
|
||||||
try:
|
try:
|
||||||
resources = ceilometer_usage.resources_with_statistics(
|
resources = ceilometer_usage.resources_with_statistics(
|
||||||
query, [meter], period=period, stats_attr=None,
|
query, [meter], period=period, stats_attr=None,
|
||||||
additional_query=additional_query)
|
additional_query=additional_query,
|
||||||
|
filter_func=filter_by_meter_name)
|
||||||
except Exception:
|
except Exception:
|
||||||
resources = []
|
resources = []
|
||||||
exceptions.handle(request,
|
exceptions.handle(request,
|
||||||
|
@@ -104,12 +104,23 @@ def data(TEST):
|
|||||||
metadata={'tag': 'self.counter3', 'display_name': 'test-server'},
|
metadata={'tag': 'self.counter3', 'display_name': 'test-server'},
|
||||||
links=[{'url': 'test_url', 'rel': 'storage.objects'}],
|
links=[{'url': 'test_url', 'rel': 'storage.objects'}],
|
||||||
)
|
)
|
||||||
|
resource_dict_3 = dict(
|
||||||
|
resource_id='fake_resource_id3',
|
||||||
|
project_id='fake_project_id',
|
||||||
|
user_id="fake_user_id",
|
||||||
|
timestamp='2012-07-02T10:42:00.000000',
|
||||||
|
metadata={'tag': 'self.counter3', 'display_name': 'test-server'},
|
||||||
|
links=[{'url': 'test_url', 'rel': 'intance'}],
|
||||||
|
)
|
||||||
resource_1 = resources.Resource(resources.ResourceManager(None),
|
resource_1 = resources.Resource(resources.ResourceManager(None),
|
||||||
resource_dict_1)
|
resource_dict_1)
|
||||||
resource_2 = resources.Resource(resources.ResourceManager(None),
|
resource_2 = resources.Resource(resources.ResourceManager(None),
|
||||||
resource_dict_2)
|
resource_dict_2)
|
||||||
|
resource_3 = resources.Resource(resources.ResourceManager(None),
|
||||||
|
resource_dict_3)
|
||||||
TEST.resources.add(resource_1)
|
TEST.resources.add(resource_1)
|
||||||
TEST.resources.add(resource_2)
|
TEST.resources.add(resource_2)
|
||||||
|
TEST.resources.add(resource_3)
|
||||||
|
|
||||||
# samples
|
# samples
|
||||||
sample_dict_1 = {'resource_id': 'fake_resource_id',
|
sample_dict_1 = {'resource_id': 'fake_resource_id',
|
||||||
|
Reference in New Issue
Block a user