diff --git a/app/models/concerns/foreman/sti.rb b/app/models/concerns/foreman/sti.rb index df1610472f4..94560866813 100644 --- a/app/models/concerns/foreman/sti.rb +++ b/app/models/concerns/foreman/sti.rb @@ -2,10 +2,6 @@ module Foreman module STI extend ActiveSupport::Concern - prepended do - cattr_accessor :preloaded, instance_accessor: false - end - class_methods do # ensures that the correct STI object is created when :type is passed. def new(attributes = nil, &block) diff --git a/app/models/nic/bmc.rb b/app/models/nic/bmc.rb index e9c054c09d6..58d63447fe7 100644 --- a/app/models/nic/bmc.rb +++ b/app/models/nic/bmc.rb @@ -64,6 +64,4 @@ def validate_bmc_proxy errors.add(:type, e.message) end end - - Base.register_type(BMC) end diff --git a/app/models/nic/bond.rb b/app/models/nic/bond.rb index 153e5d2e5c8..0e1bac1f979 100644 --- a/app/models/nic/bond.rb +++ b/app/models/nic/bond.rb @@ -19,6 +19,4 @@ def self.humanized_name N_('Bond') end end - - Base.register_type(Bond) end diff --git a/app/models/nic/bridge.rb b/app/models/nic/bridge.rb index f797559856a..026fb587f46 100644 --- a/app/models/nic/bridge.rb +++ b/app/models/nic/bridge.rb @@ -6,6 +6,4 @@ def self.humanized_name N_('Bridge') end end - - Base.register_type(Bridge) end diff --git a/app/models/nic/managed.rb b/app/models/nic/managed.rb index df14fe61ff3..b9fa49db468 100644 --- a/app/models/nic/managed.rb +++ b/app/models/nic/managed.rb @@ -119,6 +119,4 @@ def setup_clone @old end end - - Base.register_type(Managed) end diff --git a/config/initializers/6_preload_stis.rb b/config/initializers/6_preload_stis.rb deleted file mode 100644 index 53fceaa1543..00000000000 --- a/config/initializers/6_preload_stis.rb +++ /dev/null @@ -1,7 +0,0 @@ -Rails.application.config.to_prepare do - # Preload all classes which use Foreman::STI and using registration methods - # E.g. Base.register_type(BMC) - # Some constants that use such classes may be defined before all the related classes/models are loaded and registered - # E.g. InterfaceTypeMapper::ALLOWED_TYPE_NAMES - Rails.autoloaders.main.eager_load_dir(Rails.root.join('app', 'models', 'nic')) -end diff --git a/config/initializers/foreman.rb b/config/initializers/foreman.rb index 8907abc9d59..e7aa1293f48 100644 --- a/config/initializers/foreman.rb +++ b/config/initializers/foreman.rb @@ -56,3 +56,14 @@ ReportImporter.register_smart_proxy_feature("Puppet") end + +# Preload here all classes which use Foreman::STI and using registration methods +# E.g. Base.register_type(BMC) +# Some constants that use such classes may be defined before all the related classes/models are loaded and registered +# E.g. InterfaceTypeMapper::ALLOWED_TYPE_NAMES +Rails.application.reloader.to_prepare do + Nic::Base.register_type(Nic::Managed) + Nic::Base.register_type(Nic::BMC) + Nic::Base.register_type(Nic::Bond) + Nic::Base.register_type(Nic::Bridge) +end