From 437a08eb6de7bf87a8c874e756f9b6b523911e68 Mon Sep 17 00:00:00 2001 From: elara-leitstellentechnik Date: Wed, 21 Apr 2021 00:28:24 +0200 Subject: [PATCH] Map Debian 8 to Python 2 (#74152) * Map Debian 8 to Python 2 If Python 3 is installed on Debian 8 Ansible cannot run, as the version is too old (3.4) * Add integration test for python interpreter discovery on Debian 8 * fix test issue on Debian 9, add changelog * un"fix" not broken test :D Co-authored-by: Fabian Klemp Co-authored-by: Matt Davis --- changelogs/fragments/debian8_discovery.yml | 2 ++ lib/ansible/config/base.yml | 1 + .../targets/interpreter_discovery_python/tasks/main.yml | 7 +++++-- 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 changelogs/fragments/debian8_discovery.yml diff --git a/changelogs/fragments/debian8_discovery.yml b/changelogs/fragments/debian8_discovery.yml new file mode 100644 index 00000000000..d502b24fe3f --- /dev/null +++ b/changelogs/fragments/debian8_discovery.yml @@ -0,0 +1,2 @@ +bugfixes: +- interpreter discovery - Debian 8 and lower will avoid unsupported Python3 version in interpreter discovery diff --git a/lib/ansible/config/base.yml b/lib/ansible/config/base.yml index 1b088a1cd14..7f0fff9b55d 100644 --- a/lib/ansible/config/base.yml +++ b/lib/ansible/config/base.yml @@ -1482,6 +1482,7 @@ INTERPRETER_PYTHON_DISTRO_MAP: '6': /usr/bin/python '8': /usr/libexec/platform-python debian: + '8': /usr/bin/python '10': /usr/bin/python3 fedora: '23': /usr/bin/python3 diff --git a/test/integration/targets/interpreter_discovery_python/tasks/main.yml b/test/integration/targets/interpreter_discovery_python/tasks/main.yml index be15186fb28..b8bafd1511e 100644 --- a/test/integration/targets/interpreter_discovery_python/tasks/main.yml +++ b/test/integration/targets/interpreter_discovery_python/tasks/main.yml @@ -140,8 +140,11 @@ - name: debian assertions assert: that: - - auto_out.ansible_facts.discovered_interpreter_python == '/usr/bin/python3' - when: distro == 'debian' and distro_version is version('10', '>=') + # Debian 8 and older + - auto_out.ansible_facts.discovered_interpreter_python == '/usr/bin/python' and distro_version is version('8', '<=') or distro_version is version('8', '>') + # Debian 10 and newer + - auto_out.ansible_facts.discovered_interpreter_python == '/usr/bin/python3' and distro_version is version('10', '>=') or distro_version is version('10', '<') + when: distro == 'debian' - name: fedora assertions assert: