From fd1568f83331dd51b5ad5d20a780032a832b7fb8 Mon Sep 17 00:00:00 2001 From: Marcin Piwowarczyk Date: Thu, 26 Jul 2018 01:52:19 +0530 Subject: [PATCH] Enable mutable config in trove New releases of oslo.config support a 'mutable' parameter to Opts. oslo.service provides an option here Icec3e664f3fe72614e373b2938e8dee53cf8bc5e allows services to tell oslo.service they want mutate_config_files to be called by passing a parameter. This commit is to use the same. This allows trove to benefit from I1e7a69de169cc85f4c09954b2f46ce2da7106d90, where the 'debug' option (owned by oslo.log) is made mutable. we should be able to turn debug logging on and off by changing the config. tc goal: https://governance.openstack.org/tc/goals/rocky/enable-mutable-configuration.html Co-Authored-By: Anusree A Change-Id: I02da8ce44d52b0f0dc67660c8ec76b5effb5f73c --- trove/cmd/conductor.py | 3 ++- trove/cmd/guest.py | 2 +- trove/cmd/taskmanager.py | 3 ++- trove/common/wsgi.py | 2 +- trove/tests/unittests/conductor/test_conf.py | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/trove/cmd/conductor.py b/trove/cmd/conductor.py index 793ad6b606..969d21cabd 100644 --- a/trove/cmd/conductor.py +++ b/trove/cmd/conductor.py @@ -34,5 +34,6 @@ def main(conf): rpc_api_version=conductor_api.API.API_LATEST_VERSION, secure_serializer=sz.ConductorHostSerializer) workers = conf.trove_conductor_workers or processutils.get_worker_count() - launcher = openstack_service.launch(conf, server, workers=workers) + launcher = openstack_service.launch(conf, server, workers=workers, + restart_method='mutate') launcher.wait() diff --git a/trove/cmd/guest.py b/trove/cmd/guest.py index d4f90b8381..d45ebf0d49 100644 --- a/trove/cmd/guest.py +++ b/trove/cmd/guest.py @@ -66,5 +66,5 @@ def main(): manager=manager, host=CONF.guest_id, rpc_api_version=guest_api.API.API_LATEST_VERSION) - launcher = openstack_service.launch(CONF, server) + launcher = openstack_service.launch(CONF, server, restart_method='mutate') launcher.wait() diff --git a/trove/cmd/taskmanager.py b/trove/cmd/taskmanager.py index 549e14b292..39d8a767fc 100644 --- a/trove/cmd/taskmanager.py +++ b/trove/cmd/taskmanager.py @@ -38,7 +38,8 @@ def startup(conf, topic): server = rpc_service.RpcService( key=key, manager=conf.taskmanager_manager, topic=topic, rpc_api_version=task_api.API.API_LATEST_VERSION) - launcher = openstack_service.launch(conf, server) + launcher = openstack_service.launch(conf, server, + restart_method='mutate') launcher.wait() diff --git a/trove/common/wsgi.py b/trove/common/wsgi.py index 63d966ac05..70acece194 100644 --- a/trove/common/wsgi.py +++ b/trove/common/wsgi.py @@ -80,7 +80,7 @@ def launch(app_name, port, paste_config_file, data={}, app = pastedeploy.paste_deploy_app(paste_config_file, app_name, data) server = base_wsgi.Service(app, port, host=host, backlog=backlog, threads=threads) - return service.launch(CONF, server, workers) + return service.launch(CONF, server, workers, restart_method='mutate') # Note: taken from Nova diff --git a/trove/tests/unittests/conductor/test_conf.py b/trove/tests/unittests/conductor/test_conf.py index 924dc693f7..a26587e511 100644 --- a/trove/tests/unittests/conductor/test_conf.py +++ b/trove/tests/unittests/conductor/test_conf.py @@ -48,7 +48,7 @@ class ConductorConfTests(trove_testtools.TestCase): super(ConductorConfTests, self).tearDown() def _test_manager(self, conf, rt_mgr_name): - def mock_launch(conf, server, workers): + def mock_launch(conf, server, workers, restart_method): qualified_mgr = "%s.%s" % (server.manager_impl.__module__, server.manager_impl.__class__.__name__) self.assertEqual(rt_mgr_name, qualified_mgr, "Invalid manager")