diff --git a/app/models/manager_refresh/inventory_collection.rb b/app/models/manager_refresh/inventory_collection.rb index 4ceef9e5478..0d7a7d1ca86 100644 --- a/app/models/manager_refresh/inventory_collection.rb +++ b/app/models/manager_refresh/inventory_collection.rb @@ -378,6 +378,10 @@ def data_collection_finalized? data_collection_finalized end + def supports_sti? + @supports_sti_cache ||= model_class.column_names.include?("type") + end + def <<(inventory_object) unless data_index[inventory_object.manager_uuid] data_index[inventory_object.manager_uuid] = inventory_object @@ -476,6 +480,13 @@ def new_inventory_object(hash) def build(hash) hash = hash.merge(builder_params) inventory_object = new_inventory_object(hash) + + uuid = inventory_object.manager_uuid + # Each InventoryObject must be able to build an UUID, return nil if it can't + return nil if uuid.blank? + # Return existing InventoryObject if we have it + return data_index[uuid] if data_index[uuid] + # Store new InventoryObject and return it push(inventory_object) inventory_object end