replace the smart inventory membership lock with a new Django 2.2 flag

This commit is contained in:
Ryan Petrello
2019-07-22 11:11:36 -04:00
parent f6c357659d
commit 1cedf244b7

View File

@@ -602,7 +602,6 @@ def update_inventory_computed_fields(inventory_id, should_update_hosts=True):
def update_smart_memberships_for_inventory(smart_inventory): def update_smart_memberships_for_inventory(smart_inventory):
with advisory_lock('update_smart_memberships_for_inventory-{}'.format(smart_inventory.id)):
current = set(SmartInventoryMembership.objects.filter(inventory=smart_inventory).values_list('host_id', flat=True)) current = set(SmartInventoryMembership.objects.filter(inventory=smart_inventory).values_list('host_id', flat=True))
new = set(smart_inventory.hosts.values_list('id', flat=True)) new = set(smart_inventory.hosts.values_list('id', flat=True))
additions = new - current additions = new - current
@@ -616,7 +615,7 @@ def update_smart_memberships_for_inventory(smart_inventory):
SmartInventoryMembership(inventory_id=smart_inventory.id, host_id=host_id) SmartInventoryMembership(inventory_id=smart_inventory.id, host_id=host_id)
for host_id in additions for host_id in additions
] ]
SmartInventoryMembership.objects.bulk_create(add_for_inventory) SmartInventoryMembership.objects.bulk_create(add_for_inventory, ignore_conflicts=True)
logger.debug('Smart host membership cached for {}, {} additions, {} removals, {} total count.'.format( logger.debug('Smart host membership cached for {}, {} additions, {} removals, {} total count.'.format(
smart_inventory.pk, len(additions), len(removals), len(new) smart_inventory.pk, len(additions), len(removals), len(new)
)) ))