Merge pull request #6722 from AlanCoding/atomic_inv_del

use atomic transaction to delete inventory in task
This commit is contained in:
Alan Rominger 2017-06-26 11:07:21 -04:00 committed by GitHub
commit 7699e26336

View File

@ -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'}