From 2dc8d1c2413c97460484c248a49c70b466263785 Mon Sep 17 00:00:00 2001 From: Esdras Vidal Date: Mon, 10 Sep 2018 17:35:47 -0300 Subject: [PATCH] Fix Canisters save inventory --- .../save_inventory_physical_infra.rb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) 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)