Sha256: 66c4332daf50d6ff0ae880da2fe23ba5d295b07cae750334a0957ce8e02dde35

Contents?: true

Size: 1.17 KB

Versions: 25

Compression:

Stored size: 1.17 KB

Contents

# frozen_string_literal: true

module Actions
  module ForemanLeapp
    class PreupgradeJob < Actions::EntryAction
      def self.subscribe
        Actions::RemoteExecution::RunHostJob
      end

      def plan(job_invocation, host, *_args)
        return unless ::Helpers::JobHelper.correct_feature?(job_invocation, 'leapp_preupgrade') ||
                      ::Helpers::JobHelper.correct_feature?(job_invocation, 'leapp_remediation_plan')

        plan_self(host_id: host.id, job_invocation_id: job_invocation.id)
      end

      def finalize(*_args)
        host = Host.find(input[:host_id])
        leapp_report = format_output(task.main_action.continuous_output.humanize)

        PreupgradeReport.create_report(host, leapp_report, input[:job_invocation_id])
      end

      private

      def format_output(job_output)
        output = job_output.each_line(chomp: true)
                           .drop_while { |l| !l.start_with? '===leap_upgrade_report_start===' }.drop(1)
                           .take_while { |l| !l.start_with? 'Exit status:' }
                           .reject(&:empty?)
                           .join('')
        JSON.parse(output)
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
foreman_leapp-1.2.3 app/lib/actions/preupgrade_job.rb
foreman_leapp-2.0.3 app/lib/actions/foreman_leapp/preupgrade_job.rb
foreman_leapp-2.0.2 app/lib/actions/foreman_leapp/preupgrade_job.rb
foreman_leapp-1.2.2 app/lib/actions/preupgrade_job.rb
foreman_leapp-1.2.1 app/lib/actions/preupgrade_job.rb
foreman_leapp-1.2.0 app/lib/actions/preupgrade_job.rb
foreman_leapp-0.1.15 app/lib/actions/preupgrade_job.rb
foreman_leapp-1.1.1 app/lib/actions/preupgrade_job.rb
foreman_leapp-1.1.0 app/lib/actions/preupgrade_job.rb
foreman_leapp-1.0.0 app/lib/actions/preupgrade_job.rb
foreman_leapp-0.1.14 app/lib/actions/preupgrade_job.rb
foreman_leapp-0.1.13 app/lib/actions/preupgrade_job.rb
foreman_leapp-0.1.12 app/lib/actions/preupgrade_job.rb
foreman_leapp-0.1.11 app/lib/actions/preupgrade_job.rb
foreman_leapp-0.1.10 app/lib/actions/preupgrade_job.rb
foreman_leapp-0.1.9 app/lib/actions/preupgrade_job.rb
foreman_leapp-0.1.8 app/lib/actions/preupgrade_job.rb
foreman_leapp-0.1.7 app/lib/actions/preupgrade_job.rb
foreman_leapp-0.1.6 app/lib/actions/preupgrade_job.rb
foreman_leapp-0.1.5 app/lib/actions/preupgrade_job.rb