From d099e19796b3c6b363c945ba4c36efe02687a366 Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Fri, 15 Oct 2021 16:36:45 -0700 Subject: [PATCH] ansible-test - Move constants to remove symlink. --- .../ansible-test-relocate-constants.yaml | 2 + test/lib/ansible_test/_internal/constants.py | 50 ++++++++++++++++++- .../_util/target/common/constants.py | 44 +--------------- 3 files changed, 52 insertions(+), 44 deletions(-) create mode 100644 changelogs/fragments/ansible-test-relocate-constants.yaml mode change 120000 => 100644 test/lib/ansible_test/_internal/constants.py diff --git a/changelogs/fragments/ansible-test-relocate-constants.yaml b/changelogs/fragments/ansible-test-relocate-constants.yaml new file mode 100644 index 00000000000..b93fbbb7fad --- /dev/null +++ b/changelogs/fragments/ansible-test-relocate-constants.yaml @@ -0,0 +1,2 @@ +bugfixes: + - ansible-test - Relocate constants to eliminate symlink. diff --git a/test/lib/ansible_test/_internal/constants.py b/test/lib/ansible_test/_internal/constants.py deleted file mode 120000 index 07455d8e8b4..00000000000 --- a/test/lib/ansible_test/_internal/constants.py +++ /dev/null @@ -1 +0,0 @@ -../_util/target/common/constants.py \ No newline at end of file diff --git a/test/lib/ansible_test/_internal/constants.py b/test/lib/ansible_test/_internal/constants.py new file mode 100644 index 00000000000..cac7240872e --- /dev/null +++ b/test/lib/ansible_test/_internal/constants.py @@ -0,0 +1,49 @@ +"""Constants used by ansible-test. Imports should not be used in this file (other than to import the target common constants).""" +from __future__ import annotations + +from .._util.target.common.constants import ( + CONTROLLER_PYTHON_VERSIONS, + REMOTE_ONLY_PYTHON_VERSIONS, +) + +# Setting a low soft RLIMIT_NOFILE value will improve the performance of subprocess.Popen on Python 2.x when close_fds=True. +# This will affect all Python subprocesses. It will also affect the current Python process if set before subprocess is imported for the first time. +SOFT_RLIMIT_NOFILE = 1024 + +# File used to track the ansible-test test execution timeout. +TIMEOUT_PATH = '.ansible-test-timeout.json' + +CONTROLLER_MIN_PYTHON_VERSION = CONTROLLER_PYTHON_VERSIONS[0] +SUPPORTED_PYTHON_VERSIONS = REMOTE_ONLY_PYTHON_VERSIONS + CONTROLLER_PYTHON_VERSIONS + +COVERAGE_REQUIRED_VERSION = '4.5.4' + +REMOTE_PROVIDERS = [ + 'default', + 'aws', + 'azure', + 'ibmps', + 'parallels', +] + +SECCOMP_CHOICES = [ + 'default', + 'unconfined', +] + +# This bin symlink map must exactly match the contents of the bin directory. +# It is necessary for payload creation to reconstruct the bin directory when running ansible-test from an installed version of ansible. +# It is also used to construct the injector directory at runtime. +ANSIBLE_BIN_SYMLINK_MAP = { + 'ansible': '../lib/ansible/cli/scripts/ansible_cli_stub.py', + 'ansible-config': 'ansible', + 'ansible-connection': '../lib/ansible/cli/scripts/ansible_connection_cli_stub.py', + 'ansible-console': 'ansible', + 'ansible-doc': 'ansible', + 'ansible-galaxy': 'ansible', + 'ansible-inventory': 'ansible', + 'ansible-playbook': 'ansible', + 'ansible-pull': 'ansible', + 'ansible-test': '../test/lib/ansible_test/_util/target/cli/ansible_test_cli_stub.py', + 'ansible-vault': 'ansible', +} diff --git a/test/lib/ansible_test/_util/target/common/constants.py b/test/lib/ansible_test/_util/target/common/constants.py index 5d4d13eeefb..4d42978e858 100644 --- a/test/lib/ansible_test/_util/target/common/constants.py +++ b/test/lib/ansible_test/_util/target/common/constants.py @@ -1,17 +1,10 @@ -"""Constants used by ansible-test. Imports should not be used in this file.""" +"""Constants used by ansible-test's CLI entry point (as well as the rest of ansible-test). Imports should not be used in this file.""" # NOTE: This file resides in the _util/target directory to ensure compatibility with all supported Python versions. from __future__ import (absolute_import, division, print_function) __metaclass__ = type -# Setting a low soft RLIMIT_NOFILE value will improve the performance of subprocess.Popen on Python 2.x when close_fds=True. -# This will affect all Python subprocesses. It will also affect the current Python process if set before subprocess is imported for the first time. -SOFT_RLIMIT_NOFILE = 1024 - -# File used to track the ansible-test test execution timeout. -TIMEOUT_PATH = '.ansible-test-timeout.json' - REMOTE_ONLY_PYTHON_VERSIONS = ( '2.7', '3.5', @@ -24,38 +17,3 @@ CONTROLLER_PYTHON_VERSIONS = ( '3.9', '3.10', ) - -CONTROLLER_MIN_PYTHON_VERSION = CONTROLLER_PYTHON_VERSIONS[0] -SUPPORTED_PYTHON_VERSIONS = REMOTE_ONLY_PYTHON_VERSIONS + CONTROLLER_PYTHON_VERSIONS - -COVERAGE_REQUIRED_VERSION = '4.5.4' - -REMOTE_PROVIDERS = [ - 'default', - 'aws', - 'azure', - 'ibmps', - 'parallels', -] - -SECCOMP_CHOICES = [ - 'default', - 'unconfined', -] - -# This bin symlink map must exactly match the contents of the bin directory. -# It is necessary for payload creation to reconstruct the bin directory when running ansible-test from an installed version of ansible. -# It is also used to construct the injector directory at runtime. -ANSIBLE_BIN_SYMLINK_MAP = { - 'ansible': '../lib/ansible/cli/scripts/ansible_cli_stub.py', - 'ansible-config': 'ansible', - 'ansible-connection': '../lib/ansible/cli/scripts/ansible_connection_cli_stub.py', - 'ansible-console': 'ansible', - 'ansible-doc': 'ansible', - 'ansible-galaxy': 'ansible', - 'ansible-inventory': 'ansible', - 'ansible-playbook': 'ansible', - 'ansible-pull': 'ansible', - 'ansible-test': '../test/lib/ansible_test/_util/target/cli/ansible_test_cli_stub.py', - 'ansible-vault': 'ansible', -}