foreman_maintain 0.9.1 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/definitions/checks/check_for_newer_packages.rb +5 -3
  3. data/definitions/checks/disk/performance.rb +19 -8
  4. data/definitions/checks/foreman/check_puppet_capsules.rb +43 -0
  5. data/definitions/checks/foreman_proxy/check_tftp_storage.rb +3 -1
  6. data/definitions/checks/pulpcore/group_ownership_check.rb +18 -0
  7. data/definitions/checks/repositories/check_non_rh_repository.rb +9 -4
  8. data/definitions/checks/repositories/check_upstream_repository.rb +4 -4
  9. data/definitions/features/candlepin.rb +1 -2
  10. data/definitions/features/foreman_tasks.rb +11 -0
  11. data/definitions/features/pulpcore.rb +2 -1
  12. data/definitions/features/upstream_repositories.rb +23 -0
  13. data/definitions/procedures/content/prepare.rb +1 -1
  14. data/definitions/procedures/installer/upgrade_rake_task.rb +3 -1
  15. data/definitions/procedures/pulp/remove.rb +12 -0
  16. data/definitions/procedures/pulpcore/migrate.rb +1 -1
  17. data/definitions/procedures/puppet/remove_puppet.rb +50 -0
  18. data/definitions/procedures/puppet/remove_puppet_data.rb +21 -0
  19. data/definitions/procedures/repositories/backup_enabled_repos.rb +16 -0
  20. data/definitions/procedures/repositories/disable.rb +1 -1
  21. data/definitions/procedures/repositories/enable.rb +13 -0
  22. data/definitions/scenarios/puppet.rb +21 -0
  23. data/definitions/scenarios/restore.rb +13 -2
  24. data/definitions/scenarios/self_upgrade.rb +102 -0
  25. data/definitions/scenarios/upgrade_to_capsule_7_0.rb +89 -0
  26. data/definitions/scenarios/upgrade_to_capsule_7_0_z.rb +89 -0
  27. data/definitions/scenarios/upgrade_to_satellite_6_10.rb +1 -8
  28. data/definitions/scenarios/upgrade_to_satellite_7_0.rb +93 -0
  29. data/definitions/scenarios/upgrade_to_satellite_7_0_z.rb +90 -0
  30. data/lib/foreman_maintain/cli/plugin_command.rb +14 -0
  31. data/lib/foreman_maintain/cli/restore_command.rb +5 -1
  32. data/lib/foreman_maintain/cli/self_upgrade_command.rb +38 -0
  33. data/lib/foreman_maintain/cli.rb +4 -0
  34. data/lib/foreman_maintain/concerns/downstream.rb +57 -29
  35. data/lib/foreman_maintain/concerns/system_helpers.rb +11 -4
  36. data/lib/foreman_maintain/repository_manager/el.rb +85 -0
  37. data/lib/foreman_maintain/repository_manager.rb +13 -0
  38. data/lib/foreman_maintain/utils/backup.rb +1 -1
  39. data/lib/foreman_maintain/utils/command_runner.rb +2 -1
  40. data/lib/foreman_maintain/version.rb +1 -1
  41. data/lib/foreman_maintain.rb +1 -0
  42. metadata +19 -3
  43. data/definitions/features/system_repos.rb +0 -50
@@ -0,0 +1,89 @@
1
+ module Scenarios::Capsule_7_0
2
+ class Abstract < ForemanMaintain::Scenario
3
+ def self.upgrade_metadata(&block)
4
+ metadata do
5
+ tags :upgrade_scenario
6
+ confine do
7
+ feature(:capsule) &&
8
+ (feature(:capsule).current_minor_version == '6.10' || \
9
+ ForemanMaintain.upgrade_in_progress == '7.0')
10
+ end
11
+ instance_eval(&block)
12
+ end
13
+ end
14
+
15
+ def target_version
16
+ '7.0'
17
+ end
18
+ end
19
+
20
+ class PreUpgradeCheck < Abstract
21
+ upgrade_metadata do
22
+ description 'Checks before upgrading to Capsule 7.0'
23
+ tags :pre_upgrade_checks
24
+ run_strategy :fail_slow
25
+ end
26
+
27
+ def compose
28
+ add_steps(find_checks(:default))
29
+ add_steps(find_checks(:pre_upgrade))
30
+ add_step(Checks::Repositories::Validate.new(:version => '7.0'))
31
+ end
32
+ end
33
+
34
+ class PreMigrations < Abstract
35
+ upgrade_metadata do
36
+ description 'Procedures before migrating to Capsule 7.0'
37
+ tags :pre_migrations
38
+ end
39
+
40
+ def compose
41
+ add_steps(find_procedures(:pre_migrations))
42
+ add_step(Procedures::Service::Stop.new)
43
+ end
44
+ end
45
+
46
+ class Migrations < Abstract
47
+ upgrade_metadata do
48
+ description 'Migration scripts to Capsule 7.0'
49
+ tags :migrations
50
+ end
51
+
52
+ def set_context_mapping
53
+ context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
54
+ end
55
+
56
+ def compose
57
+ add_step(Procedures::Repositories::Setup.new(:version => '7.0'))
58
+ add_step(Procedures::Packages::UnlockVersions.new)
59
+ add_step(Procedures::Packages::Update.new(:assumeyes => true))
60
+ add_step_with_context(Procedures::Installer::Upgrade)
61
+ end
62
+ end
63
+
64
+ class PostMigrations < Abstract
65
+ upgrade_metadata do
66
+ description 'Procedures after migrating to Capsule 7.0'
67
+ tags :post_migrations
68
+ end
69
+
70
+ def compose
71
+ add_step(Procedures::RefreshFeatures)
72
+ add_step(Procedures::Service::Start.new)
73
+ add_steps(find_procedures(:post_migrations))
74
+ end
75
+ end
76
+
77
+ class PostUpgradeChecks < Abstract
78
+ upgrade_metadata do
79
+ description 'Checks after upgrading to Capsule 7.0'
80
+ tags :post_upgrade_checks
81
+ run_strategy :fail_slow
82
+ end
83
+
84
+ def compose
85
+ add_steps(find_checks(:default))
86
+ add_steps(find_checks(:post_upgrade))
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,89 @@
1
+ module Scenarios::Capsule_7_0_z
2
+ class Abstract < ForemanMaintain::Scenario
3
+ def self.upgrade_metadata(&block)
4
+ metadata do
5
+ tags :upgrade_scenario
6
+ confine do
7
+ feature(:capsule) &&
8
+ (feature(:capsule).current_minor_version == '7.0' || \
9
+ ForemanMaintain.upgrade_in_progress == '7.0.z')
10
+ end
11
+ instance_eval(&block)
12
+ end
13
+ end
14
+
15
+ def target_version
16
+ '7.0.z'
17
+ end
18
+ end
19
+
20
+ class PreUpgradeCheck < Abstract
21
+ upgrade_metadata do
22
+ description 'Checks before upgrading to Capsule 7.0.z'
23
+ tags :pre_upgrade_checks
24
+ run_strategy :fail_slow
25
+ end
26
+
27
+ def compose
28
+ add_steps(find_checks(:default))
29
+ add_steps(find_checks(:pre_upgrade))
30
+ add_step(Checks::Repositories::Validate.new(:version => '7.0'))
31
+ end
32
+ end
33
+
34
+ class PreMigrations < Abstract
35
+ upgrade_metadata do
36
+ description 'Procedures before migrating to Capsule 7.0.z'
37
+ tags :pre_migrations
38
+ end
39
+
40
+ def compose
41
+ add_steps(find_procedures(:pre_migrations))
42
+ add_step(Procedures::Service::Stop.new)
43
+ end
44
+ end
45
+
46
+ class Migrations < Abstract
47
+ upgrade_metadata do
48
+ description 'Migration scripts to Capsule 7.0.z'
49
+ tags :migrations
50
+ end
51
+
52
+ def set_context_mapping
53
+ context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
54
+ end
55
+
56
+ def compose
57
+ add_step(Procedures::Repositories::Setup.new(:version => '7.0'))
58
+ add_step(Procedures::Packages::UnlockVersions.new)
59
+ add_step(Procedures::Packages::Update.new(:assumeyes => true))
60
+ add_step_with_context(Procedures::Installer::Upgrade)
61
+ end
62
+ end
63
+
64
+ class PostMigrations < Abstract
65
+ upgrade_metadata do
66
+ description 'Procedures after migrating to Capsule 7.0.z'
67
+ tags :post_migrations
68
+ end
69
+
70
+ def compose
71
+ add_step(Procedures::RefreshFeatures)
72
+ add_step(Procedures::Service::Start.new)
73
+ add_steps(find_procedures(:post_migrations))
74
+ end
75
+ end
76
+
77
+ class PostUpgradeChecks < Abstract
78
+ upgrade_metadata do
79
+ description 'Checks after upgrading to Capsule 7.0.z'
80
+ tags :post_upgrade_checks
81
+ run_strategy :fail_slow
82
+ end
83
+
84
+ def compose
85
+ add_steps(find_checks(:default))
86
+ add_steps(find_checks(:post_upgrade))
87
+ end
88
+ end
89
+ end
@@ -25,6 +25,7 @@ module Scenarios::Satellite_6_10
25
25
  end
26
26
 
27
27
  def compose
28
+ add_step(Checks::Pulpcore::GroupOwnershipCheck)
28
29
  add_step(Checks::Puppet::WarnAboutPuppetRemoval)
29
30
  add_step(Checks::CheckForNewerPackages.new(:packages => [foreman_plugin_name('katello'),
30
31
  'python3-pulp-2to3-migration'],
@@ -61,13 +62,6 @@ module Scenarios::Satellite_6_10
61
62
  context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
62
63
  end
63
64
 
64
- def check_var_lib_pulp
65
- group_id = File.stat('/var/lib/pulp/').gid
66
- if Etc.getgrgid(group_id).name != 'pulp'
67
- raise "Please run 'foreman-maintain prep-6.10-upgrade' prior to upgrading."
68
- end
69
- end
70
-
71
65
  def pulp3_switchover_steps
72
66
  add_step(Procedures::Service::Enable.
73
67
  new(:only => Features::Pulpcore.pulpcore_migration_services))
@@ -79,7 +73,6 @@ module Scenarios::Satellite_6_10
79
73
  end
80
74
 
81
75
  def compose
82
- check_var_lib_pulp
83
76
  unless check_min_version(foreman_plugin_name('katello'), '4.0')
84
77
  pulp3_switchover_steps
85
78
  end
@@ -0,0 +1,93 @@
1
+ module Scenarios::Satellite_7_0
2
+ class Abstract < ForemanMaintain::Scenario
3
+ def self.upgrade_metadata(&block)
4
+ metadata do
5
+ tags :upgrade_scenario
6
+ confine do
7
+ feature(:satellite) &&
8
+ (feature(:satellite).current_minor_version == '6.10' || \
9
+ ForemanMaintain.upgrade_in_progress == '7.0')
10
+ end
11
+ instance_eval(&block)
12
+ end
13
+ end
14
+
15
+ def target_version
16
+ '7.0'
17
+ end
18
+ end
19
+
20
+ class PreUpgradeCheck < Abstract
21
+ upgrade_metadata do
22
+ description 'Checks before upgrading to Satellite 7.0'
23
+ tags :pre_upgrade_checks
24
+ run_strategy :fail_slow
25
+ end
26
+
27
+ def compose
28
+ add_steps(find_checks(:default))
29
+ add_steps(find_checks(:pre_upgrade))
30
+
31
+ add_step(Checks::Foreman::CheckpointSegments)
32
+ add_step(Checks::Repositories::Validate.new(:version => '7.0'))
33
+ end
34
+ end
35
+
36
+ class PreMigrations < Abstract
37
+ upgrade_metadata do
38
+ description 'Procedures before migrating to Satellite 7.0'
39
+ tags :pre_migrations
40
+ end
41
+
42
+ def compose
43
+ add_steps(find_procedures(:pre_migrations))
44
+ add_step(Procedures::Service::Stop.new)
45
+ end
46
+ end
47
+
48
+ class Migrations < Abstract
49
+ upgrade_metadata do
50
+ description 'Migration scripts to Satellite 7.0'
51
+ tags :migrations
52
+ run_strategy :fail_fast
53
+ end
54
+
55
+ def set_context_mapping
56
+ context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
57
+ end
58
+
59
+ def compose
60
+ add_step(Procedures::Repositories::Setup.new(:version => '7.0'))
61
+ add_step(Procedures::Packages::UnlockVersions.new)
62
+ add_step(Procedures::Packages::Update.new(:assumeyes => true))
63
+ add_step_with_context(Procedures::Installer::Upgrade)
64
+ add_step(Procedures::Installer::UpgradeRakeTask)
65
+ end
66
+ end
67
+
68
+ class PostMigrations < Abstract
69
+ upgrade_metadata do
70
+ description 'Procedures after migrating to Satellite 7.0'
71
+ tags :post_migrations
72
+ end
73
+
74
+ def compose
75
+ add_step(Procedures::RefreshFeatures)
76
+ add_step(Procedures::Service::Start.new)
77
+ add_steps(find_procedures(:post_migrations))
78
+ end
79
+ end
80
+
81
+ class PostUpgradeChecks < Abstract
82
+ upgrade_metadata do
83
+ description 'Checks after upgrading to Satellite 7.0'
84
+ tags :post_upgrade_checks
85
+ run_strategy :fail_slow
86
+ end
87
+
88
+ def compose
89
+ add_steps(find_checks(:default))
90
+ add_steps(find_checks(:post_upgrade))
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,90 @@
1
+ module Scenarios::Satellite_7_0_z
2
+ class Abstract < ForemanMaintain::Scenario
3
+ def self.upgrade_metadata(&block)
4
+ metadata do
5
+ tags :upgrade_scenario
6
+ confine do
7
+ feature(:satellite) &&
8
+ (feature(:satellite).current_minor_version == '7.0' || \
9
+ ForemanMaintain.upgrade_in_progress == '7.0.z')
10
+ end
11
+ instance_eval(&block)
12
+ end
13
+ end
14
+
15
+ def target_version
16
+ '7.0.z'
17
+ end
18
+ end
19
+
20
+ class PreUpgradeCheck < Abstract
21
+ upgrade_metadata do
22
+ description 'Checks before upgrading to Satellite 7.0.z'
23
+ tags :pre_upgrade_checks
24
+ run_strategy :fail_slow
25
+ end
26
+
27
+ def compose
28
+ add_steps(find_checks(:default))
29
+ add_steps(find_checks(:pre_upgrade))
30
+ add_step(Checks::Repositories::Validate.new(:version => '7.0'))
31
+ end
32
+ end
33
+
34
+ class PreMigrations < Abstract
35
+ upgrade_metadata do
36
+ description 'Procedures before migrating to Satellite 7.0.z'
37
+ tags :pre_migrations
38
+ end
39
+
40
+ def compose
41
+ add_steps(find_procedures(:pre_migrations))
42
+ add_step(Procedures::Service::Stop.new)
43
+ end
44
+ end
45
+
46
+ class Migrations < Abstract
47
+ upgrade_metadata do
48
+ description 'Migration scripts to Satellite 7.0.z'
49
+ tags :migrations
50
+ end
51
+
52
+ def set_context_mapping
53
+ context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
54
+ end
55
+
56
+ def compose
57
+ add_step(Procedures::Repositories::Setup.new(:version => '7.0'))
58
+ add_step(Procedures::Packages::UnlockVersions.new)
59
+ add_step(Procedures::Packages::Update.new(:assumeyes => true))
60
+ add_step_with_context(Procedures::Installer::Upgrade)
61
+ add_step(Procedures::Installer::UpgradeRakeTask)
62
+ end
63
+ end
64
+
65
+ class PostMigrations < Abstract
66
+ upgrade_metadata do
67
+ description 'Procedures after migrating to Satellite 7.0.z'
68
+ tags :post_migrations
69
+ end
70
+
71
+ def compose
72
+ add_step(Procedures::RefreshFeatures)
73
+ add_step(Procedures::Service::Start.new)
74
+ add_steps(find_procedures(:post_migrations))
75
+ end
76
+ end
77
+
78
+ class PostUpgradeChecks < Abstract
79
+ upgrade_metadata do
80
+ description 'Checks after upgrading to Satellite 7.0.z'
81
+ tags :post_upgrade_checks
82
+ run_strategy :fail_slow
83
+ end
84
+
85
+ def compose
86
+ add_steps(find_checks(:default))
87
+ add_steps(find_checks(:post_upgrade))
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,14 @@
1
+ module ForemanMaintain
2
+ module Cli
3
+ class PluginCommand < Base
4
+ subcommand 'purge-puppet', 'Remove the Puppet feature' do
5
+ option ['-f', '--remove-all-data'], :flag, 'Purge all the Puppet data',
6
+ :attribute_name => :remove_data
7
+
8
+ def execute
9
+ run_scenarios_and_exit(Scenarios::Puppet::RemovePuppet.new(:remove_data => remove_data?))
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -7,11 +7,15 @@ module ForemanMaintain
7
7
 
8
8
  option ['-i', '--incremental'], :flag, 'Restore an incremental backup',
9
9
  :attribute_name => :incremental, :completion => { :type => :directory }
10
+ option ['-n', '--dry-run'], :flag,
11
+ 'Check if backup could be restored, without performing the restore',
12
+ :attribute_name => :dry_run
10
13
 
11
14
  def execute
12
15
  scenario = Scenarios::Restore.new(
13
16
  :backup_dir => @backup_dir,
14
- :incremental_backup => @incremental || incremental_backup?
17
+ :incremental_backup => @incremental || incremental_backup?,
18
+ :dry_run => @dry_run
15
19
  )
16
20
  rescue_scenario = Scenarios::RestoreRescue.new
17
21
  run_scenario(scenario, rescue_scenario)
@@ -0,0 +1,38 @@
1
+ module ForemanMaintain
2
+ module Cli
3
+ class SelfUpgradeCommand < Base
4
+ option ['--target-version'], 'TARGET_VERSION',\
5
+ 'Major version of the Satellite or Capsule'\
6
+ ', e.g 7.0', :required => true
7
+ def execute
8
+ allow_major_version_upgrade_only
9
+ run_scenario(upgrade_scenario, upgrade_rescue_scenario)
10
+ end
11
+
12
+ def upgrade_scenario
13
+ Scenarios::SelfUpgrade.new(target_version: target_version)
14
+ end
15
+
16
+ def upgrade_rescue_scenario
17
+ Scenarios::SelfUpgradeRescue.new(target_version: target_version)
18
+ end
19
+
20
+ def current_downstream_version
21
+ ForemanMaintain.detector.feature(:instance).downstream.current_version
22
+ end
23
+
24
+ def allow_major_version_upgrade_only
25
+ begin
26
+ next_version = Gem::Version.new(target_version)
27
+ rescue ArgumentError => err
28
+ raise Error::UsageError, "Invalid version! #{err}"
29
+ end
30
+ if current_downstream_version >= next_version
31
+ message = "The target-version #{target_version} should be "\
32
+ "greater than existing version #{current_downstream_version}!"
33
+ raise Error::UsageError, message
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -11,6 +11,8 @@ require 'foreman_maintain/cli/restore_command'
11
11
  require 'foreman_maintain/cli/maintenance_mode_command'
12
12
  require 'foreman_maintain/cli/packages_command'
13
13
  require 'foreman_maintain/cli/content_command'
14
+ require 'foreman_maintain/cli/plugin_command'
15
+ require 'foreman_maintain/cli/self_upgrade_command'
14
16
 
15
17
  module ForemanMaintain
16
18
  module Cli
@@ -25,6 +27,8 @@ module ForemanMaintain
25
27
  subcommand 'packages', 'Lock/Unlock package protection, install, update', PackagesCommand
26
28
  subcommand 'advanced', 'Advanced tools for server maintenance', AdvancedCommand
27
29
  subcommand 'content', 'Content related commands', ContentCommand
30
+ subcommand 'plugin', 'Manage optional plugins on your server', PluginCommand
31
+ subcommand 'self-upgrade', 'Perform major version self upgrade', SelfUpgradeCommand
28
32
  subcommand 'maintenance-mode', 'Control maintenance-mode for application',
29
33
  MaintenanceModeCommand
30
34
  if ForemanMaintain.detector.feature(:satellite) &&
@@ -17,6 +17,10 @@ module ForemanMaintain
17
17
  current_version.to_s[/^\d+\.\d+/]
18
18
  end
19
19
 
20
+ def repository_manager
21
+ ForemanMaintain.repository_manager
22
+ end
23
+
20
24
  # TODO: Modify activation_key changes as per server
21
25
  def setup_repositories(version)
22
26
  activation_key = ENV['EXTERNAL_SAT_ACTIVATION_KEY']
@@ -26,18 +30,14 @@ module ForemanMaintain
26
30
  execute!(%(subscription-manager register #{org_options}\
27
31
  --activationkey #{shellescape(activation_key)} --force))
28
32
  else
29
- execute!(%(subscription-manager repos --disable '*'))
30
- enable_options = rh_repos(version).map { |r| "--enable=#{r}" }.join(' ')
31
- execute!(%(subscription-manager repos #{enable_options}))
33
+ repository_manager.rhsm_disable_repos('*')
34
+ repository_manager.rhsm_enable_repos(rh_repos(version))
32
35
  end
33
36
  end
34
37
 
35
38
  def absent_repos(version)
36
- all_repo_lines = execute(%(LANG=en_US.utf-8 subscription-manager repos --list 2>&1 | ) +
37
- %(grep '^Repo ID:')).split("\n")
38
- all_repos = all_repo_lines.map { |line| line.split(/\s+/).last }
39
39
  repos_required = rh_repos(version)
40
- repos_found = repos_required & all_repos
40
+ repos_found = repos_required & repository_manager.rhsm_list_repos.keys
41
41
  repos_required - repos_found
42
42
  end
43
43
 
@@ -74,21 +74,36 @@ module ForemanMaintain
74
74
 
75
75
  def ansible_repo(server_version)
76
76
  if server_version >= version('6.8')
77
- "rhel-#{el_major_version}-server-ansible-2.9-rpms"
77
+ ansible_version = '2.9'
78
78
  elsif server_version >= version('6.6')
79
- "rhel-#{el_major_version}-server-ansible-2.8-rpms"
79
+ ansible_version = '2.8'
80
80
  elsif server_version >= version('6.4')
81
- "rhel-#{el_major_version}-server-ansible-2.6-rpms"
81
+ ansible_version = '2.6'
82
+ end
83
+
84
+ if el7?
85
+ "rhel-#{el_major_version}-server-ansible-#{ansible_version}-rpms"
86
+ else
87
+ "ansible-#{ansible_version}-for-rhel-#{el_major_version}-x86_64-rpms"
82
88
  end
83
89
  end
84
90
 
91
+ def use_beta_repos?
92
+ ENV['FOREMAN_MAINTAIN_USE_BETA'] == '1'
93
+ end
94
+
85
95
  def product_specific_repos(full_version)
86
- repos = []
87
- repos << if ENV['FOREMAN_MAINTAIN_USE_BETA'] == '1'
88
- "rhel-server-#{el_major_version}-#{package_name}-6-beta-rpms"
89
- else
90
- "rhel-#{el_major_version}-server-#{package_name}-#{full_version}-rpms"
91
- end
96
+ maj_version = full_version[0]
97
+ repos = if el7? && use_beta_repos?
98
+ ["rhel-server-#{el_major_version}-#{package_name}-#{maj_version}-beta-rpms"]
99
+ elsif el7?
100
+ ["rhel-#{el_major_version}-server-#{package_name}-#{full_version}-rpms"]
101
+ elsif use_beta_repos?
102
+ ["#{package_name}-#{maj_version}-beta-for-rhel-#{el_major_version}-x86_64-rpms"]
103
+ else
104
+ ["#{package_name}-#{full_version}-for-rhel-#{el_major_version}-x86_64-rpms"]
105
+ end
106
+
92
107
  repos << puppet4_repo(full_version) unless puppet4_repo(full_version).nil?
93
108
  repos.concat(common_repos(full_version))
94
109
  end
@@ -101,22 +116,35 @@ module ForemanMaintain
101
116
  end
102
117
 
103
118
  def common_repos(full_version)
104
- repos_arrary = if ENV['FOREMAN_MAINTAIN_USE_BETA'] == '1'
105
- ["rhel-#{el_major_version}-server-satellite-maintenance-6-beta-rpms",
106
- "rhel-#{el_major_version}-server-satellite-tools-6-beta-rpms"]
107
- else
108
- ["rhel-#{el_major_version}-server-satellite-maintenance-6-rpms",
109
- "rhel-#{el_major_version}-server-satellite-tools-#{full_version}-rpms"]
110
- end
111
-
112
- return repos_arrary.first(1) if feature(:satellite)
113
-
114
- repos_arrary
119
+ sat_maint_version = if version(full_version) >= version('7.0') && !use_beta_repos?
120
+ full_version
121
+ else
122
+ full_version[0]
123
+ end
124
+
125
+ # rubocop:disable Metrics/LineLength
126
+ repos = if el7? && use_beta_repos?
127
+ ["rhel-#{el_major_version}-server-satellite-maintenance-#{sat_maint_version}-beta-rpms"]
128
+ elsif el7?
129
+ ["rhel-#{el_major_version}-server-satellite-maintenance-#{sat_maint_version}-rpms"]
130
+ elsif use_beta_repos?
131
+ ["satellite-maintenance-#{sat_maint_version}-beta-for-rhel-#{el_major_version}-x86_64-rpms"]
132
+ else
133
+ ["satellite-maintenance-#{sat_maint_version}-for-rhel-#{el_major_version}-x86_64-rpms"]
134
+ end
135
+ # rubocop:enable Metrics/LineLength
136
+
137
+ repos
115
138
  end
116
139
 
117
140
  def main_rh_repos
118
- ["rhel-#{el_major_version}-server-rpms",
119
- "rhel-server-rhscl-#{el_major_version}-rpms"]
141
+ if el7?
142
+ ["rhel-#{el_major_version}-server-rpms",
143
+ "rhel-server-rhscl-#{el_major_version}-rpms"]
144
+ else
145
+ ["rhel-#{el_major_version}-for-x86_64-baseos-rpms",
146
+ "rhel-#{el_major_version}-for-x86_64-appstream-rpms"]
147
+ end
120
148
  end
121
149
 
122
150
  def version_from_source
@@ -185,6 +185,10 @@ module ForemanMaintain
185
185
  ForemanMaintain.package_manager
186
186
  end
187
187
 
188
+ def repository_manager
189
+ ForemanMaintain.repository_manager
190
+ end
191
+
188
192
  def ruby_prefix(scl = true)
189
193
  if debian?
190
194
  'ruby-'
@@ -196,15 +200,13 @@ module ForemanMaintain
196
200
  end
197
201
 
198
202
  def foreman_plugin_name(plugin)
199
- if debian?
200
- plugin.tr!('_', '-')
201
- end
203
+ plugin = plugin.tr('_', '-') if debian?
202
204
  ruby_prefix + plugin
203
205
  end
204
206
 
205
207
  def proxy_plugin_name(plugin)
206
208
  if debian?
207
- plugin.tr!('_', '-')
209
+ plugin = plugin.tr('_', '-')
208
210
  proxy_plugin_prefix = 'smart-proxy-'
209
211
  else
210
212
  proxy_plugin_prefix = 'smart_proxy_'
@@ -213,6 +215,11 @@ module ForemanMaintain
213
215
  ruby_prefix(scl) + proxy_plugin_prefix + plugin
214
216
  end
215
217
 
218
+ def hammer_plugin_name(plugin)
219
+ plugin = plugin.tr('_', '-') if debian?
220
+ [hammer_package, plugin].join(debian? ? '-' : '_')
221
+ end
222
+
216
223
  def hammer_package
217
224
  hammer_prefix = if debian?
218
225
  'hammer-cli'