From bab22aa3d7b9015412943926f9b9016f3e431966 Mon Sep 17 00:00:00 2001 From: Lars Beckers Date: Thu, 29 Apr 2021 22:43:54 +0200 Subject: [PATCH] ansible: Respect interpreter_python config variable --- ansible_mitogen/connection.py | 7 ++++--- ansible_mitogen/transport_config.py | 8 ++++++-- docs/changelog.rst | 1 + 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ansible_mitogen/connection.py b/ansible_mitogen/connection.py index ccaba7dca..e4d259546 100644 --- a/ansible_mitogen/connection.py +++ b/ansible_mitogen/connection.py @@ -623,7 +623,7 @@ def get_task_var(self, key, default=None): does not make sense to extract connection-related configuration for the delegated-to machine from them. """ - def _fetch_task_var(task_vars, key): + def _fetch_task_var(task_vars, key, default): """ Special helper func in case vars can be templated """ @@ -641,15 +641,16 @@ def _fetch_task_var(task_vars, key): escape_backslashes=False ) return val + return default task_vars = self._get_task_vars() if self.delegate_to_hostname is None: - return _fetch_task_var(task_vars, key) + return _fetch_task_var(task_vars, key, default) else: delegated_vars = task_vars['ansible_delegated_vars'] if self.delegate_to_hostname in delegated_vars: task_vars = delegated_vars[self.delegate_to_hostname] - return _fetch_task_var(task_vars, key) + return _fetch_task_var(task_vars, key, default) return default diff --git a/ansible_mitogen/transport_config.py b/ansible_mitogen/transport_config.py index 2a7a1e588..ff09026fc 100644 --- a/ansible_mitogen/transport_config.py +++ b/ansible_mitogen/transport_config.py @@ -437,7 +437,9 @@ def port(self): return self._play_context.port def python_path(self, rediscover_python=False): - s = self._connection.get_task_var('ansible_python_interpreter') + s = self._connection.get_task_var('ansible_python_interpreter', + default=C.config.get_config_value('INTERPRETER_PYTHON', + variables=self._task_vars)) # #511, #536: executor/module_common.py::_get_shebang() hard-wires # "/usr/bin/python" as the default interpreter path if no other # interpreter is specified. @@ -660,7 +662,9 @@ def port(self): ) def python_path(self, rediscover_python=False): - s = self._host_vars.get('ansible_python_interpreter') + s = self._host_vars.get('ansible_python_interpreter', + default=C.config.get_config_value('INTERPRETER_PYTHON', + variables=self._task_vars)) # #511, #536: executor/module_common.py::_get_shebang() hard-wires # "/usr/bin/python" as the default interpreter path if no other # interpreter is specified. diff --git a/docs/changelog.rst b/docs/changelog.rst index 21d5d1a3e..7acd4f8de 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -26,6 +26,7 @@ This release separates itself from the v0.2.X releases. Ansible's API changed to * :gh:issue:`770` better check for supported Ansible version * :gh:issue:`731` ansible 2.10 support * :gh:issue:`652` support for ansible collections import hook +* :gh:issue:`740` respect `interpreter_python` global configuration variable v0.2.10 (unreleased)