mirror of
https://github.com/ansible/awx.git
synced 2026-01-10 15:32:07 -03:30
fix: ensure temp files are cleaned up after failed HCC (#15996)
This commit is contained in:
parent
3eb809696a
commit
7ee0aab856
@ -324,10 +324,10 @@ def gather(dest=None, module=None, subset=None, since=None, until=None, collecti
|
||||
settings.AUTOMATION_ANALYTICS_LAST_ENTRIES = json.dumps(last_entries, cls=DjangoJSONEncoder)
|
||||
|
||||
if collection_type != 'dry-run':
|
||||
if succeeded:
|
||||
for fpath in tarfiles:
|
||||
if os.path.exists(fpath):
|
||||
os.remove(fpath)
|
||||
for fpath in tarfiles:
|
||||
if os.path.exists(fpath):
|
||||
os.remove(fpath)
|
||||
|
||||
with disable_activity_stream():
|
||||
if not settings.AUTOMATION_ANALYTICS_LAST_GATHER or until > settings.AUTOMATION_ANALYTICS_LAST_GATHER:
|
||||
# `AUTOMATION_ANALYTICS_LAST_GATHER` is set whether collection succeeds or fails;
|
||||
|
||||
@ -150,3 +150,24 @@ def test_ship_credential(setting_map, expected_result, expected_auth, temp_analy
|
||||
assert mock_analytic_post.call_args[1]['auth'] == expected_auth
|
||||
else:
|
||||
mock_analytic_post.assert_not_called()
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_gather_cleanup_on_auth_failure(mock_valid_license, temp_analytic_tar):
|
||||
settings.INSIGHTS_TRACKING_STATE = True
|
||||
settings.AUTOMATION_ANALYTICS_URL = 'https://example.com/api'
|
||||
settings.REDHAT_USERNAME = 'test_user'
|
||||
settings.REDHAT_PASSWORD = 'test_password'
|
||||
|
||||
with tempfile.NamedTemporaryFile(delete=False, suffix='.tar.gz') as temp_file:
|
||||
temp_file_path = temp_file.name
|
||||
|
||||
try:
|
||||
with mock.patch('awx.main.analytics.core.ship', return_value=False):
|
||||
with mock.patch('awx.main.analytics.core.package', return_value=temp_file_path):
|
||||
gather(module=importlib.import_module(__name__), collection_type='scheduled')
|
||||
|
||||
assert not os.path.exists(temp_file_path), "Temp file was not cleaned up after ship failure"
|
||||
finally:
|
||||
if os.path.exists(temp_file_path):
|
||||
os.remove(temp_file_path)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user