Skip to content

Commit

Permalink
awx modules wait on event processing finished (ansible#15152)
Browse files Browse the repository at this point in the history
This change makes "wait: true" for jobs and syncs
look at the event_processing_finished instead of
finished field.

Right now there is a race condition where
a module might try to delete an inventory, but the events
for an inventory sync have not yet finished. We have a
RelatedJobsPreventDeleteMixin that checks for this condition.

bulk jobs don't have event_processing_finished so we just
use finished field in that case.
  • Loading branch information
fosterseth authored and djyasin committed Sep 11, 2024
1 parent b3a72a6 commit 14599e0
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion awx_collection/plugins/module_utils/controller_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -1038,7 +1038,10 @@ def wait_on_url(self, url, object_name, object_type, timeout=30, interval=2):
# Grab our start time to compare against for the timeout
start = time.time()
result = self.get_endpoint(url)
while not result['json']['finished']:
wait_on_field = 'event_processing_finished'
if wait_on_field not in result['json']:
wait_on_field = 'finished'
while not result['json'][wait_on_field]:
# If we are past our time out fail with a message
if timeout and timeout < time.time() - start:
# Account for Legacy messages
Expand Down

0 comments on commit 14599e0

Please sign in to comment.