class ForemanMaintain::Cli::UpgradeCommand

Public Class Methods

disable_self_upgrade_option() click to toggle source
# File lib/foreman_maintain/cli/upgrade_command.rb, line 4
def self.disable_self_upgrade_option
  option '--disable-self-upgrade', :flag, 'Disable automatic self upgrade',
    :default => false
end

Public Instance Methods

allow_self_upgrade?() click to toggle source
# File lib/foreman_maintain/cli/upgrade_command.rb, line 17
def allow_self_upgrade?
  !disable_self_upgrade?
end
execute() click to toggle source
# File lib/foreman_maintain/cli/upgrade_command.rb, line 42
def execute
  ForemanMaintain.validate_downstream_packages
  ForemanMaintain.perform_self_upgrade if allow_self_upgrade?

  exit_code = try_upgrade do
    upgrade_runner.run_phase(:pre_upgrade_checks)
    upgrade_runner.exit_code
  end

  exit exit_code
end
try_upgrade() { || ... } click to toggle source
# File lib/foreman_maintain/cli/upgrade_command.rb, line 21
      def try_upgrade
        if upgrade_runner.available?
          yield
        else
          instance = ForemanMaintain.detector.feature(:instance)
          msg = <<~BANNER

            There are no upgrades available.
            The current version of #{instance.product_name} is #{instance.current_major_version}.
            Consider using the update command.
          BANNER

          puts msg
          ForemanMaintain::UpgradeRunner::WARNING_EXIT_CODE
        end
      end
upgrade_runner() click to toggle source
# File lib/foreman_maintain/cli/upgrade_command.rb, line 9
def upgrade_runner
  return @upgrade_runner if defined? @upgrade_runner
  @upgrade_runner = ForemanMaintain::UpgradeRunner.new(reporter,
    :assumeyes => assumeyes?,
    :whitelist => whitelist || [],
    :force => force?).tap(&:load)
end