summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2022-10-18 08:07:47 +0000
committerGerrit Code Review <review@openstack.org>2022-10-18 08:07:47 +0000
commitb461ca1f18a4c9fb6727255b53b5104a7ab01e8c (patch)
tree5e242cb887b483ae7c67f3917ba95d4138de792e
parent5106f4acc46f87bccfc2174840a9ec29145be0dd (diff)
parentb7c2c7ca965659255e9a611666e58b024c27d804 (diff)
downloadceilometer-b461ca1f18a4c9fb6727255b53b5104a7ab01e8c.tar.gz
Merge "Properly handle 'resource_id' as None for Gnocchi publisher"
-rw-r--r--ceilometer/publisher/gnocchi.py13
-rw-r--r--ceilometer/tests/unit/publisher/test_gnocchi.py36
2 files changed, 36 insertions, 13 deletions
diff --git a/ceilometer/publisher/gnocchi.py b/ceilometer/publisher/gnocchi.py
index 27e499f5..2741ba00 100644
--- a/ceilometer/publisher/gnocchi.py
+++ b/ceilometer/publisher/gnocchi.py
@@ -325,7 +325,18 @@ class GnocchiPublisher(publisher.ConfigPublisherBase):
# NOTE(sileht): skip sample generated by gnocchi itself
data = [s for s in data if not self._is_gnocchi_activity(s)]
- data.sort(key=operator.attrgetter('resource_id'))
+
+ def value_to_sort(object_to_sort):
+ value = object_to_sort.resource_id
+ if not value:
+ LOG.debug("Resource ID was not defined for sample data [%s]. "
+ "Therefore, we will use an empty string as the "
+ "resource ID.", object_to_sort)
+ value = ''
+
+ return value
+
+ data.sort(key=value_to_sort)
resource_grouped_samples = itertools.groupby(
data, key=operator.attrgetter('resource_id'))
diff --git a/ceilometer/tests/unit/publisher/test_gnocchi.py b/ceilometer/tests/unit/publisher/test_gnocchi.py
index 236da69b..a763925d 100644
--- a/ceilometer/tests/unit/publisher/test_gnocchi.py
+++ b/ceilometer/tests/unit/publisher/test_gnocchi.py
@@ -375,18 +375,30 @@ class PublisherTest(base.BaseTestCase):
@mock.patch('ceilometer.publisher.gnocchi.GnocchiPublisher'
'.batch_measures')
def test_unhandled_meter_with_no_resource_id(self, fake_batch):
- samples = [sample.Sample(
- name='unknown.meter',
- unit='GB',
- type=sample.TYPE_GAUGE,
- volume=2,
- user_id='test_user',
- project_id='test_project',
- source='openstack',
- timestamp='2014-05-08 20:23:48.028195',
- resource_id=None,
- resource_metadata={}
- )]
+ samples = [
+ sample.Sample(
+ name='unknown.meter',
+ unit='GB',
+ type=sample.TYPE_GAUGE,
+ volume=2,
+ user_id='test_user',
+ project_id='test_project',
+ source='openstack',
+ timestamp='2014-05-08 20:23:48.028195',
+ resource_id=None,
+ resource_metadata={}),
+ sample.Sample(
+ name='unknown.meter',
+ unit='GB',
+ type=sample.TYPE_GAUGE,
+ volume=2,
+ user_id='test_user',
+ project_id='test_project',
+ source='openstack',
+ timestamp='2014-05-08 20:23:48.028195',
+ resource_id="Some-other-resource-id",
+ resource_metadata={})
+ ]
url = netutils.urlsplit("gnocchi://")
d = gnocchi.GnocchiPublisher(self.conf.conf, url)
d._already_checked_archive_policies = True