diff --git a/app/models/ems_refresh/save_inventory_physical_infra.rb b/app/models/ems_refresh/save_inventory_physical_infra.rb index 9ca52b5aec7..cf538ceb3eb 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) + child_keys = %i(computer_system asset_detail physical_disk) save_inventory_multi(ems.physical_storages, hashes, deletes, [:ems_ref], child_keys) store_ids_for_new_records(ems.physical_storages, hashes, :ems_ref) end @@ -114,6 +114,14 @@ def save_asset_detail_inventory(parent, hash) save_inventory_single(:asset_detail, parent, hash) end + # + # Saves the drive information of a storage + # + def save_physical_disk_inventory(parent, hash) + return if hash.nil? + save_inventory_single(:physical_disk, parent, hash) + end + def save_physical_network_ports_inventory(guest_device, hashes, target = nil) return if hashes.nil? diff --git a/app/models/physical_disk.rb b/app/models/physical_disk.rb new file mode 100644 index 00000000000..282261eb3fe --- /dev/null +++ b/app/models/physical_disk.rb @@ -0,0 +1,5 @@ +class PhysicalDisk < ApplicationRecord + belongs_to :physical_storage, :foreign_key => :physical_storage_id, :inverse_of => :physical_disks + + acts_as_miq_taggable +end diff --git a/app/models/physical_storage.rb b/app/models/physical_storage.rb index 958be0e8af5..29efe4cb0d4 100644 --- a/app/models/physical_storage.rb +++ b/app/models/physical_storage.rb @@ -9,6 +9,8 @@ class PhysicalStorage < ApplicationRecord has_one :asset_detail, :as => :resource, :dependent => :destroy, :inverse_of => false has_many :guest_devices, :through => :hardware + has_many :physical_disks, :dependent => :destroy, :inverse_of => :physical_storages + def my_zone ems = ext_management_system ems ? ems.my_zone : MiqServer.my_zone