From cf751568b54dc82115a4a97056a8fe7c6b27f54b Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Mon, 26 Jun 2017 10:46:58 -0400 Subject: [PATCH] use atomic transaction to delete inventory in task --- awx/main/tasks.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/awx/main/tasks.py b/awx/main/tasks.py index d6bdabf6be..a7815eb682 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -358,14 +358,15 @@ def update_host_smart_inventory_memberships(): @task(queue='tower') def delete_inventory(inventory_id): - i = Inventory.objects.filter(id=inventory_id) - if not i.exists(): - logger.error("Delete Inventory failed due to missing inventory: " + str(inventory_id)) - return - i = i[0] with ignore_inventory_computed_fields(), \ ignore_inventory_group_removal(): - i.delete() + with transaction.atomic(): + try: + i = Inventory.objects.get(id=inventory_id) + except Inventory.DoesNotExist: + logger.error("Delete Inventory failed due to missing inventory: " + str(inventory_id)) + return + i.delete() emit_channel_notification( 'inventories-status_changed', {'group_name': 'inventories', 'inventory_id': inventory_id, 'status': 'deleted'}