diff --git a/app/lib/katello/concerns/base_template_scope_extensions.rb b/app/lib/katello/concerns/base_template_scope_extensions.rb index 5990dbf08c6..67fc8ea534b 100644 --- a/app/lib/katello/concerns/base_template_scope_extensions.rb +++ b/app/lib/katello/concerns/base_template_scope_extensions.rb @@ -239,21 +239,17 @@ def load_errata_applications(filter_errata_type: nil, include_last_reboot: 'yes' search_since = since.present? ? "ended_at > \"#{since}\"" : nil search_result = status.present? && status != 'all' ? "result = #{status}" : nil labels = 'label ^ (Actions::Katello::Host::Erratum::Install, Actions::Katello::Host::Erratum::ApplicableErrataInstall)' - select = 'foreman_tasks_tasks.*' if Katello.with_remote_execution? new_labels = 'label = Actions::RemoteExecution::RunHostJob AND remote_execution_feature.label ^ (katello_errata_install, katello_errata_install_by_search)' labels = [labels, new_labels].map { |label| "(#{label})" }.join(' OR ') - select += ',template_invocations.id AS template_invocation_id' - else - select += ',NULL AS template_invocation_id' end search = [search_up_to, search_since, search_result, "state = stopped", labels].compact.join(' and ') - tasks = load_resource(klass: ForemanTasks::Task, + tasks = load_resource(klass: ForemanTasks::Task.left_outer_joins(:template_invocation), permission: 'view_foreman_tasks', - select: select, + preload: [:template_invocation], search: search) only_host_ids = ::Host.search_for(host_filter).pluck(:id) if host_filter @@ -374,7 +370,7 @@ def errata_ids_from_template_invocation(task, task_input) found = script.lines.find { |line| line.start_with? '# RESOLVED_ERRATA_IDS=' } || '' (found.chomp.split('=', 2).last || '').split(',') else - TemplateInvocationInputValue.joins(:template_input).where("template_invocation_id = ? AND template_inputs.name = ?", task.template_invocation_id, 'errata') + TemplateInvocationInputValue.joins(:template_input).where("template_invocation_id = ? AND template_inputs.name = ?", task.template_invocation.id, 'errata') .first.value.split(',') end end