From dcbebab56c283a637a2b25e18fc28e597bcfcf6a Mon Sep 17 00:00:00 2001 From: Gabriel Adrian Samfira Date: Mon, 23 Oct 2023 13:31:20 +0300 Subject: [PATCH] Add missing region setting in service_credentials This change adds the missing region setting in service_credentials. In a shared keystone multi region setup, this setting is mandatory in order for ceilometer to properly find the services it relies upon from the same region it resides in. Without this setting, the ceilometer-upgrade action will fail (along with any other calls made to ceilometer) if the first endpoint returned by keystone is from a different region. Change-Id: Ie14df0f5fc7ee18072091dbdb3ada817615a6670 Signed-off-by: Gabriel Adrian Samfira --- lib/ceilometer_contexts.py | 1 + templates/rocky/ceilometer.conf | 1 + unit_tests/test_ceilometer_contexts.py | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/lib/ceilometer_contexts.py b/lib/ceilometer_contexts.py index 4216c4e..dd15849 100644 --- a/lib/ceilometer_contexts.py +++ b/lib/ceilometer_contexts.py @@ -113,6 +113,7 @@ class CeilometerContext(OSContextGenerator): 'polling_interval': int(config('polling-interval')), 'enable_all_pollsters': config('enable-all-pollsters'), 'polling_batch_size': config('polling-batch-size'), + 'region': config('region'), } return ctxt diff --git a/templates/rocky/ceilometer.conf b/templates/rocky/ceilometer.conf index a3dbd9f..0b4fcdd 100644 --- a/templates/rocky/ceilometer.conf +++ b/templates/rocky/ceilometer.conf @@ -38,6 +38,7 @@ auth_url = {{ service_protocol }}://{{ service_host }}:{{ service_port }} project_name = {{ admin_tenant_name }} username = {{ admin_user }} password = {{ admin_password }} +region_name = {{ region }} {% if api_version == "3" -%} project_domain_name = {{ admin_domain_name }} user_domain_name = {{ admin_domain_name }} diff --git a/unit_tests/test_ceilometer_contexts.py b/unit_tests/test_ceilometer_contexts.py index f74df98..a4f06e9 100644 --- a/unit_tests/test_ceilometer_contexts.py +++ b/unit_tests/test_ceilometer_contexts.py @@ -128,6 +128,7 @@ class CeilometerContextsTest(CharmTestCase): secret.return_value = 'mysecret' self.assertEqual(contexts.CeilometerContext()(), { 'port': 8777, + 'region': 'RegionOne', 'metering_secret': 'mysecret', 'metering_time_to_live': -1, 'event_time_to_live': -1, @@ -144,6 +145,7 @@ class CeilometerContextsTest(CharmTestCase): context = contexts.CeilometerContext()() self.assertEqual(context, { 'port': 8777, + 'region': 'RegionOne', 'metering_secret': 'mysecret', 'metering_time_to_live': 7776000, 'event_time_to_live': 7776000, @@ -161,6 +163,7 @@ class CeilometerContextsTest(CharmTestCase): context = contexts.CeilometerContext()() self.assertEqual(context, { 'port': 8777, + 'region': 'RegionOne', 'metering_secret': 'mysecret', 'metering_time_to_live': -1, 'event_time_to_live': -1, @@ -176,6 +179,7 @@ class CeilometerContextsTest(CharmTestCase): context = contexts.CeilometerContext()() self.assertEqual(context, { 'port': 8777, + 'region': 'RegionOne', 'metering_secret': 'mysecret', 'metering_time_to_live': -1, 'event_time_to_live': -1,