Sha256: 8ce27be22aa5e469b2e98b4cf3b9803492b0e4ec8d7d0c22d94319a6210f5cdd

Contents?: true

Size: 1.07 KB

Versions: 123

Compression:

Stored size: 1.07 KB

Contents

module Katello
  class HostTraceManager
    def self.resolve_traces(traces)
      traces.each do |trace|
        if trace.reboot_required?
          trace.helper = 'reboot'
        end
      end

      traces_by_host_id = traces.group_by(&:host_id)
      traces_by_helper = traces.group_by(&:helper)

      composers = []

      if traces_by_host_id.size < traces_by_helper.size
        traces_by_host_id.each do |host_id, trace|
          needed_traces = trace.map(&:helper).join(',')
          joined_helpers = { :helper => needed_traces }
          composers << ::JobInvocationComposer.for_feature(:katello_service_restart, [host_id], joined_helpers)
        end
      else
        traces_by_helper.each do |helper, trace|
          helpers = { :helper => helper }
          composers << ::JobInvocationComposer.for_feature(:katello_service_restart, trace.map(&:host_id), helpers)
        end
      end

      job_invocations = []

      composers.each do |composer|
        composer.trigger
        job_invocations << composer.job_invocation
      end

      job_invocations
    end
  end
end

Version data entries

123 entries across 123 versions & 1 rubygems

Version Path
katello-4.16.0 app/services/katello/host_trace_manager.rb
katello-4.15.1 app/services/katello/host_trace_manager.rb
katello-4.16.0.rc2 app/services/katello/host_trace_manager.rb
katello-4.16.0.rc1 app/services/katello/host_trace_manager.rb
katello-4.14.3 app/services/katello/host_trace_manager.rb
katello-4.14.2 app/services/katello/host_trace_manager.rb
katello-4.15.0 app/services/katello/host_trace_manager.rb
katello-4.15.0.rc2 app/services/katello/host_trace_manager.rb
katello-4.15.0.rc1 app/services/katello/host_trace_manager.rb
katello-4.14.1 app/services/katello/host_trace_manager.rb
katello-4.14.0 app/services/katello/host_trace_manager.rb
katello-4.14.0.rc3 app/services/katello/host_trace_manager.rb
katello-4.14.0.rc2 app/services/katello/host_trace_manager.rb
katello-4.14.0.rc1.1 app/services/katello/host_trace_manager.rb
katello-4.14.0.rc1 app/services/katello/host_trace_manager.rb
katello-4.13.1 app/services/katello/host_trace_manager.rb
katello-4.13.0 app/services/katello/host_trace_manager.rb
katello-4.12.1 app/services/katello/host_trace_manager.rb
katello-4.13.0.rc1 app/services/katello/host_trace_manager.rb
katello-4.12.0 app/services/katello/host_trace_manager.rb