foreman_maintain 1.3.1 → 1.3.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2f9e8ef6df753833b37ddddb8923706bfe5f53671e3cf21dd3706227f759d292
4
- data.tar.gz: 43d73546fe50ec575de65b7c27b4b05df136ee1ed8076921a3b6548b310dca39
3
+ metadata.gz: a074a4ff24a5bb600f21eea3957d5140984b7a107a9d9f660a6619bc5078a9b2
4
+ data.tar.gz: 34e3377c6e482e89b0e1263592bc93559fd68366b7b8c02144839746b614007e
5
5
  SHA512:
6
- metadata.gz: 2f4d2397cd58b6223f823c599c33695f1d814e24d782f0ee60ef97db953b741e7ad1502ec01f5cf8e24beb472360c16b0434e98461e444a42d3121f49e997a50
7
- data.tar.gz: b09a486b783897e76cc6c70de5ce569bc5889c26a798beb01ab861a9d8baae8884e5160517875a91ad0c71e13fb773e66c97dd05c4c00be2a70fe1753aebe62f
6
+ metadata.gz: 4529548ad99bf3dd8b074840ec2b8c717f3a3ce88a715135d1e66219b932a63f6482a34eb7e3440b7329936371cce18268373c250540d61ba8046e63847e17b5
7
+ data.tar.gz: 16d307e273f41e8cd6f58812ec74f9c531ab857ce370b1455792232e6360544c231d665e23e11cf99d3e4263dd99ef7fdb0d63117aad87a9b8982deb0138d5d2
@@ -6,11 +6,13 @@ module Checks::Backup
6
6
  manual_detection
7
7
  param :backup_dir, 'Directory where to backup to', :required => true
8
8
  param :preserve_dir, 'Directory where to backup to', :flag => true, :default => false
9
+ param :postgres_access, 'Whether the postgres user needs access', :flag => true,
10
+ :default => false
9
11
  end
10
12
 
11
13
  def run
12
14
  assert(File.directory?(@backup_dir), "Backup directory (#{@backup_dir}) does not exist.")
13
- if feature(:instance).postgresql_local?
15
+ if feature(:instance).postgresql_local? && @postgres_access
14
16
  result = system("runuser - postgres -c 'test -w #{@backup_dir}'")
15
17
  assert(result, "Postgres user needs write access to the backup directory \n" \
16
18
  "Please allow the postgres user write access to #{@backup_dir}" \
@@ -10,11 +10,7 @@ module ForemanMaintain
10
10
  end
11
11
 
12
12
  def services
13
- if execute?('systemctl is-enabled foreman')
14
- [system_service('foreman', 30, :socket => 'foreman')]
15
- else
16
- [system_service('httpd', 30)]
17
- end
13
+ [system_service('foreman', 30, :socket => 'foreman')]
18
14
  end
19
15
 
20
16
  def plugins
@@ -5,17 +5,13 @@ class Features::Pulpcore < ForemanMaintain::Feature
5
5
 
6
6
  metadata do
7
7
  label :pulpcore
8
-
9
- confine do
10
- ForemanMaintain::Utils::Service::Systemd.new('pulpcore-api', 0).enabled?
11
- end
12
8
  end
13
9
 
14
10
  def services
15
11
  redis_services = feature(:redis) ? feature(:redis).services : []
16
12
 
17
13
  self.class.pulpcore_common_services + configured_workers +
18
- redis_services + feature(:apache).services
14
+ redis_services
19
15
  end
20
16
 
21
17
  def configured_workers
@@ -27,15 +23,6 @@ class Features::Pulpcore < ForemanMaintain::Feature
27
23
  end
28
24
  end
29
25
 
30
- def self.pulpcore_migration_services
31
- pulpcore_common_services + [
32
- ForemanMaintain::Utils.system_service('pulpcore-worker@1', 20),
33
- ForemanMaintain::Utils.system_service('pulpcore-worker@2', 20),
34
- ForemanMaintain::Utils.system_service('pulpcore-worker@3', 20),
35
- ForemanMaintain::Utils.system_service('pulpcore-worker@4', 20),
36
- ]
37
- end
38
-
39
26
  def config_files
40
27
  [
41
28
  '/etc/pulp/settings.py',
@@ -44,22 +31,9 @@ class Features::Pulpcore < ForemanMaintain::Feature
44
31
  end
45
32
 
46
33
  def self.pulpcore_common_services
47
- common_services = [
34
+ [
48
35
  ForemanMaintain::Utils.system_service('pulpcore-api', 10, :socket => 'pulpcore-api'),
49
36
  ForemanMaintain::Utils.system_service('pulpcore-content', 10, :socket => 'pulpcore-content'),
50
37
  ]
51
- common_services + pulpcore_resource_manager_service
52
- end
53
-
54
- def self.pulpcore_resource_manager_service
55
- # The pulpcore_resource_manager is only required on 3.14+
56
- # if the old tasking system is being used
57
- # The foreman-installer does not create unit file for this service,
58
- # if the new tasking system is being used
59
- if feature(:service).unit_file_available?('pulpcore-resource-manager.service')
60
- return [ForemanMaintain::Utils.system_service('pulpcore-resource-manager', 10)]
61
- end
62
-
63
- []
64
38
  end
65
39
  end
@@ -27,7 +27,11 @@ module Procedures::Packages
27
27
  end
28
28
 
29
29
  def description
30
- "Update package(s) #{@packages.join(', ')}"
30
+ if @yum_options.include?('--downloadonly')
31
+ "Download package(s) #{@packages.join(', ')}"
32
+ else
33
+ "Update package(s) #{@packages.join(', ')}"
34
+ end
31
35
  end
32
36
  end
33
37
  end
@@ -1,6 +1,7 @@
1
1
  module Procedures::Pulpcore
2
2
  class Migrate < ForemanMaintain::Procedure
3
3
  include ForemanMaintain::Concerns::SystemService
4
+ include ForemanMaintain::Concerns::PulpCommon
4
5
 
5
6
  metadata do
6
7
  description 'Migrate pulpcore db'
@@ -16,9 +17,7 @@ module Procedures::Pulpcore
16
17
  feature(:service).handle_services(spinner, 'stop', :only => pulp_services)
17
18
 
18
19
  spinner.update('Migrating pulpcore database')
19
- execute!('sudo PULP_SETTINGS=/etc/pulp/settings.py '\
20
- 'DJANGO_SETTINGS_MODULE=pulpcore.app.settings '\
21
- 'pulpcore-manager migrate --noinput')
20
+ execute!(pulpcore_manager('migrate --noinput'))
22
21
  end
23
22
  end
24
23
  end
@@ -1,6 +1,7 @@
1
1
  module Procedures::Pulpcore
2
2
  class TrimRpmChangelogs < ForemanMaintain::Procedure
3
3
  include ForemanMaintain::Concerns::SystemService
4
+ include ForemanMaintain::Concerns::PulpCommon
4
5
 
5
6
  metadata do
6
7
  description 'Trim RPM changelogs in the pulpcore db'
@@ -14,9 +15,7 @@ module Procedures::Pulpcore
14
15
  feature(:service).handle_services(spinner, 'start', :only => necessary_services)
15
16
 
16
17
  spinner.update('Trimming RPM changelogs')
17
- execute!('sudo PULP_SETTINGS=/etc/pulp/settings.py '\
18
- 'DJANGO_SETTINGS_MODULE=pulpcore.app.settings '\
19
- 'pulpcore-manager rpm-trim-changelogs')
18
+ execute!(pulpcore_manager('rpm-trim-changelogs'))
20
19
  end
21
20
  end
22
21
  end
@@ -13,8 +13,7 @@ module Procedures::Service
13
13
  PING_RETRY_INTERVAL = 30
14
14
 
15
15
  def run
16
- run_service_action('stop', common_options)
17
- run_service_action('start', common_options)
16
+ run_service_action('restart', common_options)
18
17
  server_ping_retry if @wait_for_server_response
19
18
  end
20
19
 
@@ -103,10 +103,9 @@ module ForemanMaintain::Scenarios
103
103
  private
104
104
 
105
105
  def prepare_directory
106
- add_steps_with_context(
107
- Procedures::Backup::PrepareDirectory,
108
- Checks::Backup::DirectoryReady
109
- )
106
+ add_step_with_context(Procedures::Backup::PrepareDirectory)
107
+ add_step_with_context(Checks::Backup::DirectoryReady,
108
+ :postgres_access => online_backup? || include_db_dumps?)
110
109
  end
111
110
 
112
111
  def logical_volume_confirmation
@@ -40,7 +40,6 @@ module Scenarios::Capsule_6_14
40
40
 
41
41
  def compose
42
42
  add_steps(find_procedures(:pre_migrations))
43
- add_step(Procedures::Service::Stop.new)
44
43
  end
45
44
  end
46
45
 
@@ -58,7 +57,9 @@ module Scenarios::Capsule_6_14
58
57
  add_step(Procedures::Repositories::Setup.new(:version => '6.14'))
59
58
  modules_to_enable = ["satellite-capsule:#{el_short_name}"]
60
59
  add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
61
- add_step(Procedures::Packages::UnlockVersions.new)
60
+ add_step(Procedures::Packages::Update.new(:assumeyes => true,
61
+ :yum_options => ['--downloadonly']))
62
+ add_step(Procedures::Service::Stop.new)
62
63
  add_step(Procedures::Packages::Update.new(:assumeyes => true))
63
64
  add_step_with_context(Procedures::Installer::Upgrade)
64
65
  end
@@ -40,7 +40,6 @@ module Scenarios::Capsule_6_14_z
40
40
 
41
41
  def compose
42
42
  add_steps(find_procedures(:pre_migrations))
43
- add_step(Procedures::Service::Stop.new)
44
43
  end
45
44
  end
46
45
 
@@ -58,7 +57,9 @@ module Scenarios::Capsule_6_14_z
58
57
  add_step(Procedures::Repositories::Setup.new(:version => '6.14'))
59
58
  modules_to_enable = ["satellite-capsule:#{el_short_name}"]
60
59
  add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
61
- add_step(Procedures::Packages::UnlockVersions.new)
60
+ add_step(Procedures::Packages::Update.new(:assumeyes => true,
61
+ :yum_options => ['--downloadonly']))
62
+ add_step(Procedures::Service::Stop.new)
62
63
  add_step(Procedures::Packages::Update.new(:assumeyes => true))
63
64
  add_step_with_context(Procedures::Installer::Upgrade)
64
65
  end
@@ -54,6 +54,9 @@ module Scenarios::Katello_Nightly
54
54
  add_step(Procedures::Repositories::Setup.new(:version => 'nightly'))
55
55
  modules_to_enable = ["katello:#{el_short_name}", "pulpcore:#{el_short_name}"]
56
56
  add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
57
+ add_step(Procedures::Packages::Update.new(:assumeyes => true,
58
+ :yum_options => ['--downloadonly']))
59
+ add_step(Procedures::Service::Stop.new)
57
60
  add_step(Procedures::Packages::Update.new(:assumeyes => true))
58
61
  add_step_with_context(Procedures::Installer::Upgrade)
59
62
  end
@@ -40,7 +40,6 @@ module Scenarios::Satellite_6_14
40
40
 
41
41
  def compose
42
42
  add_steps(find_procedures(:pre_migrations))
43
- add_step(Procedures::Service::Stop.new)
44
43
  end
45
44
  end
46
45
 
@@ -59,7 +58,9 @@ module Scenarios::Satellite_6_14
59
58
  add_step(Procedures::Repositories::Setup.new(:version => '6.14'))
60
59
  modules_to_enable = ["satellite:#{el_short_name}"]
61
60
  add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
62
- add_step(Procedures::Packages::UnlockVersions.new)
61
+ add_step(Procedures::Packages::Update.new(:assumeyes => true,
62
+ :yum_options => ['--downloadonly']))
63
+ add_step(Procedures::Service::Stop.new)
63
64
  add_step(Procedures::Packages::Update.new(:assumeyes => true))
64
65
  add_step_with_context(Procedures::Installer::Upgrade)
65
66
  add_step(Procedures::Installer::UpgradeRakeTask)
@@ -40,7 +40,6 @@ module Scenarios::Satellite_6_14_z
40
40
 
41
41
  def compose
42
42
  add_steps(find_procedures(:pre_migrations))
43
- add_step(Procedures::Service::Stop.new)
44
43
  end
45
44
  end
46
45
 
@@ -58,7 +57,9 @@ module Scenarios::Satellite_6_14_z
58
57
  add_step(Procedures::Repositories::Setup.new(:version => '6.14'))
59
58
  modules_to_enable = ["satellite:#{el_short_name}"]
60
59
  add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
61
- add_step(Procedures::Packages::UnlockVersions.new)
60
+ add_step(Procedures::Packages::Update.new(:assumeyes => true,
61
+ :yum_options => ['--downloadonly']))
62
+ add_step(Procedures::Service::Stop.new)
62
63
  add_step(Procedures::Packages::Update.new(:assumeyes => true))
63
64
  add_step_with_context(Procedures::Installer::Upgrade)
64
65
  add_step(Procedures::Installer::UpgradeRakeTask)
@@ -4,14 +4,12 @@ from dnfpluginscore import _, logger
4
4
 
5
5
  import configparser
6
6
 
7
+ PROTECT_COMMANDS = ('install', 'downgrade', 'reinstall', 'distro-sync', 'swap', 'upgrade', 'upgrade-minimal')
8
+
7
9
  class ForemanProtector(dnf.Plugin):
8
10
  name = 'foreman-protector'
9
11
  config_name = 'foreman-protector'
10
12
 
11
- def __init__(self,base,cli):
12
- self.base = base
13
- self.cli = cli
14
-
15
13
  def _get_whitelist_file_url(self):
16
14
  try:
17
15
  parser = self.read_config(self.base.conf)
@@ -53,6 +51,8 @@ class ForemanProtector(dnf.Plugin):
53
51
  return final_query
54
52
 
55
53
  def sack(self):
54
+ if self.cli is not None and self.cli.command._basecmd not in PROTECT_COMMANDS:
55
+ return
56
56
  whitelist_and_obsoletes = self._add_obsoletes()
57
57
  all_available_packages = self.base.sack.query().available()
58
58
  excluded_pkgs_query = all_available_packages.difference(whitelist_and_obsoletes)
@@ -10,6 +10,10 @@ module ForemanMaintain
10
10
  # All below directories and their contents are regenerated on installer run
11
11
  %w[assets exports imports sync_imports tmp]
12
12
  end
13
+
14
+ def pulpcore_manager(command)
15
+ "PULP_SETTINGS=/etc/pulp/settings.py runuser -u pulp -- pulpcore-manager #{command}"
16
+ end
13
17
  end
14
18
  end
15
19
  end
@@ -28,7 +28,7 @@ module ForemanMaintain
28
28
  private
29
29
 
30
30
  def load_log_configs
31
- @log_level = @options.fetch(:log_level, ::Logger::DEBUG)
31
+ @log_level = @options.fetch(:log_level, ::Logger::INFO)
32
32
  @log_dir = find_dir_path(@options.fetch(:log_dir, 'log'))
33
33
  @log_file_size = @options.fetch(:log_file_size, 10_000)
34
34
  # Note - If timestamp added to filename then number of log files i.e second
@@ -68,7 +68,7 @@ module ForemanMaintain::PackageManager
68
68
  end
69
69
 
70
70
  def check_update(packages: nil, with_status: false)
71
- yum_action('check-update', packages, :assumeyes => true, :valid_exit_statuses => [100],
71
+ yum_action('check-update', packages, :assumeyes => true, :valid_exit_statuses => [0, 100],
72
72
  :with_status => with_status)
73
73
  end
74
74
 
@@ -5,12 +5,12 @@ require 'foreman_maintain/package_manager/apt'
5
5
 
6
6
  module ForemanMaintain
7
7
  def self.package_manager
8
- @package_manager ||= if el?
9
- ForemanMaintain::PackageManager::Dnf.new
10
- elsif debian_or_ubuntu?
11
- ForemanMaintain::PackageManager::Apt.new
12
- else
13
- raise 'No supported package manager was found'
14
- end
8
+ if el?
9
+ ForemanMaintain::PackageManager::Dnf.new
10
+ elsif debian_or_ubuntu?
11
+ ForemanMaintain::PackageManager::Apt.new
12
+ else
13
+ raise 'No supported package manager was found'
14
+ end
15
15
  end
16
16
  end
@@ -33,6 +33,10 @@ module ForemanMaintain::Utils
33
33
  execute('stop')
34
34
  end
35
35
 
36
+ def restart
37
+ execute('restart')
38
+ end
39
+
36
40
  def enable
37
41
  execute('enable')
38
42
  end
@@ -1,3 +1,3 @@
1
1
  module ForemanMaintain
2
- VERSION = '1.3.1'.freeze
2
+ VERSION = '1.3.2'.freeze
3
3
  end
@@ -143,7 +143,7 @@ module ForemanMaintain
143
143
  # convert size in KB to Bytes
144
144
  log_fsize = config.log_file_size.to_i * 1024
145
145
  @logger = Logger.new(config.log_filename, 10, log_fsize).tap do |logger|
146
- logger.level = LOGGER_LEVEL_MAPPING[config.log_level] || Logger::DEBUG
146
+ logger.level = LOGGER_LEVEL_MAPPING[config.log_level] || Logger::INFO
147
147
  logger.datetime_format = '%Y-%m-%d %H:%M:%S%z '
148
148
  end
149
149
  pickup_log_messages
@@ -180,10 +180,11 @@ module ForemanMaintain
180
180
  puts "Checking for new version of #{package_name}..."
181
181
 
182
182
  enable_maintenance_module
183
+ package_manager = ForemanMaintain.package_manager
183
184
 
184
- if ForemanMaintain.package_manager.update_available?(main_package_name)
185
+ if package_manager.update_available?(main_package_name)
185
186
  puts "\nUpdating #{package_name} package."
186
- ForemanMaintain.package_manager.update(main_package_name, :assumeyes => true)
187
+ package_manager.update(main_package_name, :assumeyes => true)
187
188
  puts "\nThe #{package_name} package successfully updated."\
188
189
  "\nRe-run #{command} with required options!"
189
190
  exit 75
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_maintain
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Nečas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-27 00:00:00.000000000 Z
11
+ date: 2023-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clamp