[stable-2.13] ansible-test - Fix target PyPI proxy config..

(cherry picked from commit dcc08eec35)

Co-authored-by: Matt Clay <matt@mystile.com>
pull/79597/head
Matt Clay 2 years ago
parent 000f3244a4
commit 7783c9b1ee

@ -0,0 +1,4 @@
bugfixes:
- ansible-test - Perform PyPI proxy configuration after instances are ready and bootstrapping has been completed.
Only target instances are affected, as controller instances were already handled this way.
This avoids proxy configuration errors when target instances are not yet ready for use.

@ -98,6 +98,7 @@ from ...host_configs import (
from ...host_profiles import (
ControllerProfile,
ControllerHostProfile,
HostProfile,
PosixProfile,
SshTargetHostProfile,
@ -960,13 +961,10 @@ def command_integration_filter(args, # type: TIntegrationConfig
return host_state, internal_targets
def requirements(args, host_state): # type: (IntegrationConfig, HostState) -> None
"""Install requirements."""
target_profile = host_state.target_profiles[0]
configure_pypi_proxy(args, host_state.controller_profile) # integration, windows-integration, network-integration
if isinstance(target_profile, PosixProfile) and not isinstance(target_profile, ControllerProfile):
configure_pypi_proxy(args, target_profile) # integration
install_requirements(args, host_state.controller_profile.python, ansible=True, command=True) # integration, windows-integration, network-integration
def requirements(host_profile: HostProfile) -> None:
"""Install requirements after bootstrapping and delegation."""
if isinstance(host_profile, ControllerHostProfile) and host_profile.controller:
configure_pypi_proxy(host_profile.args, host_profile) # integration, windows-integration, network-integration
install_requirements(host_profile.args, host_profile.python, ansible=True, command=True) # integration, windows-integration, network-integration
elif isinstance(host_profile, PosixProfile) and not isinstance(host_profile, ControllerProfile):
configure_pypi_proxy(host_profile.args, host_profile) # integration

@ -99,7 +99,7 @@ def prepare_profiles(
args, # type: TEnvironmentConfig
targets_use_pypi=False, # type: bool
skip_setup=False, # type: bool
requirements=None, # type: t.Optional[t.Callable[[TEnvironmentConfig, HostState], None]]
requirements=None, # type: t.Optional[t.Callable[[HostProfile], None]]
): # type: (...) -> HostState
"""
Create new profiles, or load existing ones, and return them.
@ -139,7 +139,7 @@ def prepare_profiles(
check_controller_python(args, host_state)
if requirements:
requirements(args, host_state)
requirements(host_state.controller_profile)
def configure(profile): # type: (HostProfile) -> None
"""Configure the given profile."""
@ -148,6 +148,9 @@ def prepare_profiles(
if not skip_setup:
profile.configure()
if requirements:
requirements(profile)
dispatch_jobs([(profile, WrappedThread(functools.partial(configure, profile))) for profile in host_state.target_profiles])
return host_state

Loading…
Cancel
Save