diff --git a/app/models/ems_refresh/save_inventory_physical_infra.rb b/app/models/ems_refresh/save_inventory_physical_infra.rb index 5de5dc9e415..228cafeb911 100644 --- a/app/models/ems_refresh/save_inventory_physical_infra.rb +++ b/app/models/ems_refresh/save_inventory_physical_infra.rb @@ -101,7 +101,7 @@ def save_physical_storages_inventory(ems, hashes, target = nil) h[:physical_chassis_id] = h.delete(:physical_chassis).try(:[], :id) end - child_keys = %i(computer_system asset_detail physical_disks canister) + child_keys = %i(computer_system asset_detail physical_disks canisters) save_inventory_multi(ems.physical_storages, hashes, deletes, [:ems_ref], child_keys) store_ids_for_new_records(ems.physical_storages, hashes, :ems_ref) end @@ -129,11 +129,18 @@ def save_physical_disks_inventory(physical_storage, hashes) end # - # Saves the canister information of a storage + # Saves the canisters information of a storage # - def save_canister_inventory(physical_storage, hash) - return if hash.nil? - save_inventory_single(:canister, physical_storage, hash) + def save_canisters_inventory(physical_storage, hashes) + return if hashes.nil? + + # Update the associated ids + hashes.each do |h| + h[:physical_storage_id] = h.delete(:physical_storage).try(:[], :id) + end + + child_keys = %i(computer_system) + save_inventory_multi(physical_storage.canisters, hashes, :use_association, [:physical_storage_id], child_keys) end def save_physical_network_ports_inventory(guest_device, hashes, target = nil)