Merge pull request #11472 from AlanCoding/process_ident

Pass new ansible-runner parameters to reduce number of artifacts we don't need on file system
This commit is contained in:
Alan Rominger
2022-01-20 09:48:44 -05:00
committed by GitHub
5 changed files with 24 additions and 8 deletions

View File

@@ -403,10 +403,11 @@ class BaseTask(object):
Hook for any steps to run after job/task is marked as complete. Hook for any steps to run after job/task is marked as complete.
""" """
instance.log_lifecycle("finalize_run") instance.log_lifecycle("finalize_run")
job_profiling_dir = os.path.join(private_data_dir, 'artifacts/playbook_profiling') artifact_dir = os.path.join(private_data_dir, 'artifacts', str(self.instance.id))
job_profiling_dir = os.path.join(artifact_dir, 'playbook_profiling')
awx_profiling_dir = '/var/log/tower/playbook_profiling/' awx_profiling_dir = '/var/log/tower/playbook_profiling/'
collections_info = os.path.join(private_data_dir, 'artifacts/', 'collections.json') collections_info = os.path.join(artifact_dir, 'collections.json')
ansible_version_file = os.path.join(private_data_dir, 'artifacts/', 'ansible_version.txt') ansible_version_file = os.path.join(artifact_dir, 'ansible_version.txt')
if not os.path.exists(awx_profiling_dir): if not os.path.exists(awx_profiling_dir):
os.mkdir(awx_profiling_dir) os.mkdir(awx_profiling_dir)
@@ -673,6 +674,7 @@ class BaseTask(object):
'settings': { 'settings': {
'job_timeout': self.get_instance_timeout(self.instance), 'job_timeout': self.get_instance_timeout(self.instance),
'suppress_ansible_output': True, 'suppress_ansible_output': True,
'suppress_output_file': True,
}, },
} }
@@ -1159,7 +1161,7 @@ class RunJob(BaseTask):
return return
if job.use_fact_cache: if job.use_fact_cache:
job.finish_job_fact_cache( job.finish_job_fact_cache(
os.path.join(private_data_dir, 'artifacts', 'fact_cache'), os.path.join(private_data_dir, 'artifacts', str(job.id), 'fact_cache'),
fact_modification_times, fact_modification_times,
) )
@@ -1895,7 +1897,7 @@ class RunInventoryUpdate(BaseTask):
return # nothing to save, step out of the way to allow error reporting return # nothing to save, step out of the way to allow error reporting
private_data_dir = inventory_update.job_env['AWX_PRIVATE_DATA_DIR'] private_data_dir = inventory_update.job_env['AWX_PRIVATE_DATA_DIR']
expected_output = os.path.join(private_data_dir, 'artifacts', 'output.json') expected_output = os.path.join(private_data_dir, 'artifacts', str(inventory_update.id), 'output.json')
with open(expected_output) as f: with open(expected_output) as f:
data = json.load(f) data = json.load(f)

View File

@@ -4,6 +4,8 @@ from collections import namedtuple
import concurrent.futures import concurrent.futures
from enum import Enum from enum import Enum
import logging import logging
import os
import shutil
import socket import socket
import sys import sys
import threading import threading
@@ -330,6 +332,12 @@ class AWXReceptorJob:
transmitter_thread.join() transmitter_thread.join()
# Artifacts are an output, but sometimes they are an input as well
# this is the case with fact cache, where clearing facts deletes a file, and this must be captured
artifact_dir = os.path.join(self.runner_params['private_data_dir'], 'artifacts')
if os.path.exists(artifact_dir):
shutil.rmtree(artifact_dir)
resultsock, resultfile = receptor_ctl.get_work_results(self.unit_id, return_socket=True, return_sockfile=True) resultsock, resultfile = receptor_ctl.get_work_results(self.unit_id, return_socket=True, return_sockfile=True)
# Both "processor" and "cancel_watcher" are spawned in separate threads. # Both "processor" and "cancel_watcher" are spawned in separate threads.
# We wait for the first one to return. If cancel_watcher returns first, # We wait for the first one to return. If cancel_watcher returns first,

View File

@@ -1,5 +1,4 @@
aiohttp aiohttp
ansible-runner==2.1.1
ansiconv==1.0.0 # UPGRADE BLOCKER: from 2013, consider replacing instead of upgrading ansiconv==1.0.0 # UPGRADE BLOCKER: from 2013, consider replacing instead of upgrading
asciichartpy asciichartpy
autobahn>=20.12.3 # CVE-2020-35678 autobahn>=20.12.3 # CVE-2020-35678
@@ -61,3 +60,7 @@ uwsgitop
wheel wheel
pip==21.2.4 # see UPGRADE BLOCKERs pip==21.2.4 # see UPGRADE BLOCKERs
setuptools==58.2.0 # see UPGRADE BLOCKERs setuptools==58.2.0 # see UPGRADE BLOCKERs
# Temporarily added to use ansible-runner from git branch, to be removed
# when ansible-runner moves from requirements_git.txt to here
pbr

View File

@@ -4,8 +4,7 @@ aiohttp==3.6.2
# via -r /awx_devel/requirements/requirements.in # via -r /awx_devel/requirements/requirements.in
aioredis==1.3.1 aioredis==1.3.1
# via channels-redis # via channels-redis
ansible-runner==2.1.1 # via -r /awx_devel/requirements/requirements_git.txt
# via -r /awx_devel/requirements/requirements.in
ansiconv==1.0.0 ansiconv==1.0.0
# via -r /awx_devel/requirements/requirements.in # via -r /awx_devel/requirements/requirements.in
asciichartpy==1.5.25 asciichartpy==1.5.25
@@ -225,6 +224,8 @@ oauthlib==3.1.0
# social-auth-core # social-auth-core
openshift==0.11.0 openshift==0.11.0
# via -r /awx_devel/requirements/requirements.in # via -r /awx_devel/requirements/requirements.in
pbr==5.6.0
# via -r /awx_devel/requirements/requirements.in
pexpect==4.7.0 pexpect==4.7.0
# via # via
# -r /awx_devel/requirements/requirements.in # -r /awx_devel/requirements/requirements.in

View File

@@ -1 +1,3 @@
git+https://github.com/ansible/system-certifi.git@devel#egg=certifi git+https://github.com/ansible/system-certifi.git@devel#egg=certifi
# Remove pbr from requirements.in when moving ansible-runner to requirements.in
git+https://github.com/ansible/ansible-runner.git@devel#egg=ansible-runner