diff --git a/app/models/manageiq/providers/amazon/builder.rb b/app/models/manageiq/providers/amazon/builder.rb deleted file mode 100644 index f9aec6709..000000000 --- a/app/models/manageiq/providers/amazon/builder.rb +++ /dev/null @@ -1,71 +0,0 @@ -class ManageIQ::Providers::Amazon::Builder - class << self - def build_inventory(ems, target) - case target - when ManageIQ::Providers::Amazon::CloudManager - cloud_manager_inventory(ems, target) - when ManageIQ::Providers::Amazon::NetworkManager - inventory( - ems, - target, - ManageIQ::Providers::Amazon::Inventory::Collector::NetworkManager, - ManageIQ::Providers::Amazon::Inventory::Persister::NetworkManager, - [ManageIQ::Providers::Amazon::Inventory::Parser::NetworkManager] - ) - when ManageIQ::Providers::Amazon::StorageManager::Ebs - inventory( - ems, - target, - ManageIQ::Providers::Amazon::Inventory::Collector::StorageManager::Ebs, - ManageIQ::Providers::Amazon::Inventory::Persister::StorageManager::Ebs, - [ManageIQ::Providers::Amazon::Inventory::Parser::StorageManager::Ebs] - ) - when ManageIQ::Providers::Amazon::StorageManager::S3 - inventory( - ems, - target, - ManageIQ::Providers::Amazon::Inventory::Collector::StorageManager::S3, - ManageIQ::Providers::Amazon::Inventory::Persister::StorageManager::S3, - [ManageIQ::Providers::Amazon::Inventory::Parser::StorageManager::S3] - ) - when ManagerRefresh::TargetCollection - inventory( - ems, - target, - ManageIQ::Providers::Amazon::Inventory::Collector::TargetCollection, - ManageIQ::Providers::Amazon::Inventory::Persister::TargetCollection, - [ManageIQ::Providers::Amazon::Inventory::Parser::CloudManager, - ManageIQ::Providers::Amazon::Inventory::Parser::NetworkManager, - ManageIQ::Providers::Amazon::Inventory::Parser::StorageManager::Ebs] - ) - else - # Fallback to ems refresh - cloud_manager_inventory(ems, target) - end - end - - private - - def cloud_manager_inventory(ems, target) - inventory( - ems, - target, - ManageIQ::Providers::Amazon::Inventory::Collector::CloudManager, - ManageIQ::Providers::Amazon::Inventory::Persister::CloudManager, - [ManageIQ::Providers::Amazon::Inventory::Parser::CloudManager] - ) - end - - def inventory(manager, raw_target, collector_class, persister_class, parsers_classes) - collector = collector_class.new(manager, raw_target) - # TODO(lsmola) figure out a way to pass collector info, probably via target - persister = persister_class.new(manager, raw_target, collector) - - ::ManageIQ::Providers::Amazon::Inventory.new( - persister, - collector, - parsers_classes.map(&:new) - ) - end - end -end diff --git a/app/models/manageiq/providers/amazon/inventory.rb b/app/models/manageiq/providers/amazon/inventory.rb index 23ffdc403..ef381cb31 100644 --- a/app/models/manageiq/providers/amazon/inventory.rb +++ b/app/models/manageiq/providers/amazon/inventory.rb @@ -2,4 +2,22 @@ class ManageIQ::Providers::Amazon::Inventory < ManageIQ::Providers::Inventory require_nested :Collector require_nested :Parser require_nested :Persister + + # Default manager for building collector/parser/persister classes + # when failed to get class name from refresh target automatically + def self.default_manager_name + "CloudManager" + end + + def self.parser_classes_for(ems, target) + case target + when ManagerRefresh::TargetCollection + [ManageIQ::Providers::Amazon::Inventory::Parser::CloudManager, + ManageIQ::Providers::Amazon::Inventory::Parser::NetworkManager, + ManageIQ::Providers::Amazon::Inventory::Parser::StorageManager::Ebs] + else + super + end + end + end