Fix ansible-test Azure Pipelines container auth.

This commit is contained in:
Matt Clay 2020-10-14 11:19:13 -07:00
parent 8465f285cc
commit 2ef4b7e07e
2 changed files with 9 additions and 1 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- ansible-test - Using the ``--remote`` option on Azure Pipelines now works from a job running in a container.

View file

@ -151,8 +151,14 @@ class AzurePipelinesAuthHelper(CryptographyAuthHelper):
"""
def publish_public_key(self, public_key_pem): # type: (str) -> None
"""Publish the given public key."""
try:
agent_temp_directory = os.environ['AGENT_TEMPDIRECTORY']
except KeyError as ex:
raise MissingEnvironmentVariable(name=ex.args[0])
# the temporary file cannot be deleted because we do not know when the agent has processed it
with tempfile.NamedTemporaryFile(prefix='public-key-', suffix='.pem', delete=False) as public_key_file:
# placing the file in the agent's temp directory allows it to be picked up when the job is running in a container
with tempfile.NamedTemporaryFile(prefix='public-key-', suffix='.pem', delete=False, dir=agent_temp_directory) as public_key_file:
public_key_file.write(to_bytes(public_key_pem))
public_key_file.flush()