From e586bd9754045b13541708bc4e6e03b044db7d29 Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Thu, 18 Jul 2013 10:47:54 -0400 Subject: [PATCH] Be more strict on inventory checking on inventory import. --- awx/main/management/commands/inventory_import.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/awx/main/management/commands/inventory_import.py b/awx/main/management/commands/inventory_import.py index a86b62b39a..fe77558621 100644 --- a/awx/main/management/commands/inventory_import.py +++ b/awx/main/management/commands/inventory_import.py @@ -331,6 +331,7 @@ class ExecutableJsonLoader(BaseLoader): class GenericLoader(object): + def __init__(self, src): LOGGER.debug("preparing loaders") @@ -459,21 +460,18 @@ class Command(BaseCommand): # list, delete it if overwrite: LOGGER.info("deleting any hosts not in the remote source: %s" % host_names.keys()) - Host.objects.exclude(name__in = host_names.keys()).delete() + Host.objects.exclude(name__in = host_names.keys()).filter(inventory=inventory).delete() # if overwrite is set, for each group in the database but NOT in the local # list, delete it if overwrite: LOGGER.info("deleting any groups not in the remote source") - Group.objects.exclude(name__in = group_names.keys()).delete() + Group.objects.exclude(name__in = group_names.keys()).filter(inventory=inventory).delete() # if overwrite is set, throw away all invalid child relationships for groups if overwrite: LOGGER.info("clearing any child relationships to rebuild from remote source") - db_groups = Group.objects.all() - #for g in db_groups: - # g.children.clear() - # g.save() + db_groups = Group.objects.filter(inventory=inventory) for db_group in db_groups: db_kids = db_group.children.all()