diff --git a/app/models/katello/concerns/host_managed_extensions.rb b/app/models/katello/concerns/host_managed_extensions.rb index c10f6be51ed..b0d2210dc56 100644 --- a/app/models/katello/concerns/host_managed_extensions.rb +++ b/app/models/katello/concerns/host_managed_extensions.rb @@ -342,12 +342,13 @@ def import_module_streams(module_streams) context: module_stream["context"] } end - AvailableModuleStream.insert_all( - streams, - unique_by: %w[name stream context], - returning: %w[id name stream context] - ) - + if streams.any? + AvailableModuleStream.insert_all( + streams, + unique_by: %w[name stream context], + returning: %w[id name stream context] + ) + end indexed_module_streams = module_streams.index_by do |module_stream| available_module_stream_id_from( name: module_stream["name"], @@ -355,7 +356,6 @@ def import_module_streams(module_streams) context: module_stream["context"] ) end - sync_available_module_stream_associations(indexed_module_streams) end diff --git a/test/models/concerns/host_managed_extensions_test.rb b/test/models/concerns/host_managed_extensions_test.rb index b6b05af85f8..ac95bc1f40e 100644 --- a/test/models/concerns/host_managed_extensions_test.rb +++ b/test/models/concerns/host_managed_extensions_test.rb @@ -367,6 +367,10 @@ def test_import_modules_with_active_field assert_equal 2, @foreman_host.host_available_module_streams.unknown.count end + def clear_cached_available_module_streams + @foreman_host.instance_variable_set(:@indexed_available_module_streams, nil) + end + def test_import_modules_with_update modules_json = [make_module_json("enabled21111", "enabled")] prior_count = HostAvailableModuleStream.count @@ -384,6 +388,7 @@ def test_import_modules_with_update assert_empty @foreman_host.reload.host_available_module_streams assert_equal prior_count, HostAvailableModuleStream.count + clear_cached_available_module_streams @foreman_host.import_module_streams([make_module_json("xxxx", "enabled", 'blah', ["default"])]) assert_equal "enabled", @foreman_host.reload.host_available_module_streams.first.status assert_equal ["default"], @foreman_host.reload.host_available_module_streams.first.installed_profiles