From 275a77acb68f1c0e5dd704e5a49c6ae4510e1b04 Mon Sep 17 00:00:00 2001 From: Tiago Pasqualini Date: Sat, 29 Oct 2022 21:53:15 -0300 Subject: [PATCH] Add check to expose internal endpoints Currently, the charm ignores the use-internal-endpoints config option that is being inherited from the Openstack Layer. This patch adds a check to ensure that the internal endpoint is exposed if this is set to True. Closes-bug: #1995188 Change-Id: I48a04ac619204ba109d87ca05de7cbe308592486 (cherry picked from commit 8a4940bbb108124246ad3ae830964cf58dfc9ec3) (cherry picked from commit 4d50f9ab40c8948771a7338949a84a3899c426d7) (cherry picked from commit 1a0d3f4765ad359f6c9dd6d384377c859e7a36fe) (cherry picked from commit 20381223c8a77cd021da74289af3a095da0de53f) (cherry picked from commit 9caf724caae86fdf474edc56eb280307521a6049) (cherry picked from commit ace9be35cbb30a3f2bcd941496e7bb122e380af3) --- src/reactive/designate_handlers.py | 5 ++++- unit_tests/test_designate_handlers.py | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/reactive/designate_handlers.py b/src/reactive/designate_handlers.py index 141c101..9bfe6a1 100644 --- a/src/reactive/designate_handlers.py +++ b/src/reactive/designate_handlers.py @@ -214,7 +214,10 @@ def cluster_connected(hacluster): @reactive.when('dnsaas.connected') def expose_endpoint(endpoint): with charm.provide_charm_instance() as instance: - endpoint.expose_endpoint(instance.public_url) + if hookenv.config('use-internal-endpoints'): + endpoint.expose_endpoint(instance.internal_url) + else: + endpoint.expose_endpoint(instance.public_url) @reactive.when_not('dont-set-assess-status') diff --git a/unit_tests/test_designate_handlers.py b/unit_tests/test_designate_handlers.py index 27535be..7a66938 100644 --- a/unit_tests/test_designate_handlers.py +++ b/unit_tests/test_designate_handlers.py @@ -140,8 +140,14 @@ class TestHandlers(test_utils.PatchHelper): self.is_data_changed().__exit__.return_value = None keystone = mock.MagicMock() handlers.maybe_setup_endpoint(keystone) - self.is_data_changed.called_once_with(mock.ANY, args) keystone.register_endpoints.assert_called_once_with(*args) + endpoint = mock.MagicMock() + handlers.expose_endpoint(endpoint) + endpoint.expose_endpoint.assert_called_once_with('i1') + endpoint = mock.MagicMock() + self.patch_object(handlers.hookenv, 'config', return_value=False) + handlers.expose_endpoint(endpoint) + endpoint.expose_endpoint.assert_called_once_with('p1') def test_configure_designate_basic(self): the_charm = self._patch_provide_charm_instance()