Class: ForemanMaintain::Cli::SelfUpgradeCommand

Inherits:
Base
  • Object
show all
Defined in:
lib/foreman_maintain/cli/self_upgrade_command.rb

Instance Attribute Summary

Attributes inherited from Base

#runner

Instance Method Summary collapse

Methods inherited from Base

#available_checks, #available_procedures, available_tags, #available_tags, completion_map, completion_types, dashize, #dashize, delete_duplicate_assumeyes_if_any, interactive_option, label_option, #label_string, option, #option_wrapper, parameter, #print_check_info, #reporter, #run_scenario, #run_scenarios_and_exit, service_options, subcommand, #tag_string, tags_option, #underscorize

Methods included from ForemanMaintain::Concerns::Logger

#logger

Methods included from ForemanMaintain::Concerns::Finders

#check, #detector, #feature, #find_all_scenarios, #find_checks, #find_procedures, #find_scenarios, #procedure

Instance Method Details

#allow_major_version_upgrade_onlyObject



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/foreman_maintain/cli/self_upgrade_command.rb', line 24

def allow_major_version_upgrade_only
  begin
    next_version = Gem::Version.new(target_version)
  rescue ArgumentError => err
    raise Error::UsageError, "Invalid version! #{err}"
  end
  if current_downstream_version >= next_version
    message = "The target-version #{target_version} should be "\
              "greater than existing version #{current_downstream_version}!"
    raise Error::UsageError, message
  end
end

#current_downstream_versionObject



20
21
22
# File 'lib/foreman_maintain/cli/self_upgrade_command.rb', line 20

def current_downstream_version
  ForemanMaintain.detector.feature(:instance).downstream.current_version
end

#executeObject



7
8
9
10
# File 'lib/foreman_maintain/cli/self_upgrade_command.rb', line 7

def execute
  allow_major_version_upgrade_only
  run_scenario(upgrade_scenario, upgrade_rescue_scenario)
end

#upgrade_rescue_scenarioObject



16
17
18
# File 'lib/foreman_maintain/cli/self_upgrade_command.rb', line 16

def upgrade_rescue_scenario
  Scenarios::SelfUpgradeRescue.new(target_version: target_version)
end

#upgrade_scenarioObject



12
13
14
# File 'lib/foreman_maintain/cli/self_upgrade_command.rb', line 12

def upgrade_scenario
  Scenarios::SelfUpgrade.new(target_version: target_version)
end