From 099eb191f5e894db1d1718f16a4593419a8358dc Mon Sep 17 00:00:00 2001 From: Jan Richter Date: Fri, 11 Aug 2023 11:57:24 +0200 Subject: [PATCH] status server uris sync up When user sets only one of the status server values (uri, listen) Then the avocado will stop working because it will listen on different uri than the messages will be sent. This change will synchronize these values if the user sets only one of them. Reference: #5740 Signed-off-by: Jan Richter --- avocado/plugins/runner_nrunner.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/avocado/plugins/runner_nrunner.py b/avocado/plugins/runner_nrunner.py index b0ad4d7778..2d3c803372 100644 --- a/avocado/plugins/runner_nrunner.py +++ b/avocado/plugins/runner_nrunner.py @@ -36,6 +36,8 @@ from avocado.core.task.runtime import RuntimeTaskGraph from avocado.core.task.statemachine import TaskStateMachine, Worker +DEFAULT_SERVER_URI = "127.0.0.1:8888" + class RunnerInit(Init): @@ -74,7 +76,7 @@ def initialize(self): settings.register_option( section=section, key="status_server_listen", - default="127.0.0.1:8888", + default=DEFAULT_SERVER_URI, metavar="HOST:PORT", help_msg=help_msg, ) @@ -88,7 +90,7 @@ def initialize(self): settings.register_option( section=section, key="status_server_uri", - default="127.0.0.1:8888", + default=DEFAULT_SERVER_URI, metavar="HOST:PORT", help_msg=help_msg, ) @@ -229,7 +231,23 @@ def _determine_status_server(self, test_suite, config_key): return os.path.join(self.status_server_dir.name, ".status_server.sock") return test_suite.config.get(config_key) + def _sync_status_server_urls(self, config): + server_listen = config.get("run.status_server_listen") + server_uri = config.get("run.status_server_uri") + if not config.get("run.status_server_auto"): + if ( + server_uri is not DEFAULT_SERVER_URI + and server_listen is DEFAULT_SERVER_URI + ): + config["run.status_server_listen"] = server_uri + if ( + server_uri is DEFAULT_SERVER_URI + and server_listen is not DEFAULT_SERVER_URI + ): + config["run.status_server_uri"] = server_listen + def _create_status_server(self, test_suite, job): + self._sync_status_server_urls(test_suite.config) listen = self._determine_status_server(test_suite, "run.status_server_listen") # pylint: disable=W0201 self.status_repo = StatusRepo(job.unique_id)