foreman_maintain 0.6.5 → 0.6.6

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: 78da2357707f4caa6c3a4aa295c75a07abfff9370800b51b0f03647b2f3abb7f
4
- data.tar.gz: 592c818c90870337f4fdc866a29e09e9f9b483f712603d18b84cc5533563d615
3
+ metadata.gz: 9c41499ac6685ff43c89736a3d159f9b969315668d09bf03c3d4e2517d76a6a8
4
+ data.tar.gz: fb8ba4ab1265156bb620852859ef7ef962abd403d93c72bfa35e1c5de9a40014
5
5
  SHA512:
6
- metadata.gz: 64cf4d1dee1a471a0082fb6daf6ec23812b50ecfb7a32620966c790c2bf976d75fb1b86ae14e73fbda169393abea261fba30c07c00fad589c19ea5ea9902584b
7
- data.tar.gz: 94611d55110abfcb196b9bd758af79352930aa977d36a1deb2c08f412730f596fbfeea19585f03ed671797028e2f7a3e6e4484ecec6e77541c73645260fa1a4c
6
+ metadata.gz: a60e3f5ea25daf3ce10ba16bb48135da6d27cb623c206a990cf6cab092b1e9cf450644973eef1da0c3ab5d5567d506af39b201887afe05d346e59275f273eb5e
7
+ data.tar.gz: 05bbaba6dd6ddad08aa20da138c105b9931d64e1d7453d2256036abc22b7f381a1e01f7df6fc83dd036744ed50e76cb2e5479dd3c026346e0a5d4f66a7a8c80d
@@ -0,0 +1,52 @@
1
+ module Checks::ForemanProxy
2
+ class CheckTftpStorage < ForemanMaintain::Check
3
+ metadata do
4
+ label :check_tftp_storage
5
+ description 'Clean old Kernel and initramfs files from tftp-boot'
6
+ tags :default
7
+ confine do
8
+ feature(:satellite) && feature(:foreman_proxy) &&
9
+ feature(:foreman_proxy).features.include?('tftp') && non_zero_token_duration?
10
+ end
11
+ end
12
+
13
+ def run
14
+ if Dir.exist?(tftp_boot_directory)
15
+ files = old_files_from_tftp_boot
16
+ assert(files.empty?,
17
+ 'There are old initrd and vmlinuz files present in tftp',
18
+ :next_steps => Procedures::Files::Remove.new(:files => files))
19
+ else
20
+ skip "TFTP #{tftp_boot_directory} directory doesn't exist."
21
+ end
22
+ end
23
+
24
+ def old_files_from_tftp_boot
25
+ Dir.entries(tftp_boot_directory).map do |file|
26
+ unless File.directory?(file)
27
+ file_path = tftp_boot_directory + file
28
+ file_path if File.mtime(file_path) + (token_duration * 60) < Time.now
29
+ end
30
+ end.compact
31
+ end
32
+
33
+ def self.non_zero_token_duration?
34
+ lookup_token_duration != 0
35
+ end
36
+
37
+ def tftp_boot_directory
38
+ @tftp_boot_directory ||= "#{feature(:foreman_proxy).tftp_root_directory}/boot/"
39
+ end
40
+
41
+ def token_duration
42
+ @token_duration ||= self.class.lookup_token_duration
43
+ end
44
+
45
+ def self.lookup_token_duration
46
+ data = feature(:foreman_database). \
47
+ query("select s.value, s.default from settings s \
48
+ where category = 'Setting::Provisioning' and name = 'token_duration'")
49
+ YAML.load(data[0]['value'] || data[0]['default'])
50
+ end
51
+ end
52
+ end
@@ -2,7 +2,7 @@ module Checks::Repositories
2
2
  class CheckNonRhRepository < ForemanMaintain::Check
3
3
  metadata do
4
4
  label :check_non_redhat_repository
5
- description "Check whether system don't have any non Red Hat repositories(Eg: EPEL) enabled"
5
+ description 'Check whether system has any non Red Hat repositories (e.g.: EPEL) enabled'
6
6
  tags :pre_upgrade
7
7
  confine do
8
8
  feature(:instance).downstream
@@ -11,7 +11,7 @@ module Checks::Repositories
11
11
 
12
12
  def run
13
13
  with_spinner('Checking repositories enabled on the system') do
14
- assert(!epel_enabled?, 'System is subscribed to non Red Hat repositories(Eg: EPEL)')
14
+ assert(!epel_enabled?, 'System is subscribed to non Red Hat repositories')
15
15
  end
16
16
  end
17
17
 
@@ -5,7 +5,8 @@ class Features::Capsule < ForemanMaintain::Feature
5
5
  label :capsule
6
6
 
7
7
  confine do
8
- package_manager.installed?(['satellite-capsule']) ||
8
+ !package_manager.installed?(['satellite']) &&
9
+ package_manager.installed?(['satellite-capsule']) ||
9
10
  package_manager.installed?(['capsule-installer'])
10
11
  end
11
12
  end
@@ -12,6 +12,9 @@ class Features::ForemanProxy < ForemanMaintain::Feature
12
12
  FOREMAN_PROXY_DHCP_YML_PATHS = ['/etc/foreman-proxy/settings.d/dhcp.yml',
13
13
  '/usr/local/etc/foreman-proxy/settings.d/dhcp.yml'].freeze
14
14
 
15
+ FOREMAN_PROXY_TFTP_YML_PATHS = ['/etc/foreman-proxy/settings.d/tftp.yml',
16
+ '/usr/local/etc/foreman-proxy/settings.d/tftp.yml'].freeze
17
+
15
18
  def valid_dhcp_configs?
16
19
  dhcp_req_pass? && !syntax_error_exists?
17
20
  end
@@ -66,7 +69,7 @@ class Features::ForemanProxy < ForemanMaintain::Feature
66
69
 
67
70
  configs.push('/var/lib/tftpboot') if backup_features.include?('tftp')
68
71
  configs += ['/var/named/', '/etc/named*'] if backup_features.include?('dns')
69
- if backup_features.include?('dhcp')
72
+ if backup_features.include?('dhcp') && dhcp_isc_provider?
70
73
  configs += ['/var/lib/dhcpd', File.dirname(dhcpd_config_file)]
71
74
  end
72
75
  configs.push('/usr/share/xml/scap') if backup_features.include?('openscap')
@@ -113,6 +116,10 @@ class Features::ForemanProxy < ForemanMaintain::Feature
113
116
  @dhcpd_config_file ||= lookup_dhcpd_config_file
114
117
  end
115
118
 
119
+ def tftp_root_directory
120
+ @tftp_root_directory ||= lookup_tftp_root_directory
121
+ end
122
+
116
123
  private
117
124
 
118
125
  def backup_features(for_features)
@@ -209,11 +216,22 @@ class Features::ForemanProxy < ForemanMaintain::Feature
209
216
  dhcpd_config_file
210
217
  end
211
218
 
212
- def lookup_using_dhcp_yml
213
- dhcp_yml_path = lookup_into(FOREMAN_PROXY_DHCP_YML_PATHS)
214
- raise "Couldn't find dhcp.yml file under foreman-proxy" unless dhcp_yml_path
219
+ def dhcp_yml_path
220
+ dhcp_path = lookup_into(FOREMAN_PROXY_DHCP_YML_PATHS)
221
+ raise "Couldn't find dhcp.yml file under foreman-proxy" unless dhcp_path
222
+
223
+ dhcp_path
224
+ end
225
+
226
+ def configs_from_dhcp_yml
227
+ @configs_from_dhcp_yml ||= yaml_load(dhcp_yml_path)
228
+ end
229
+
230
+ def dhcp_isc_provider?
231
+ configs_from_dhcp_yml[:use_provider] == 'dhcp_isc'
232
+ end
215
233
 
216
- configs_from_dhcp_yml = yaml_load(dhcp_yml_path)
234
+ def lookup_using_dhcp_yml
217
235
  if configs_from_dhcp_yml.key?(:dhcp_config)
218
236
  return configs_from_dhcp_yml[:dhcp_config]
219
237
  elsif configs_from_dhcp_yml.key?(:use_provider)
@@ -226,6 +244,13 @@ class Features::ForemanProxy < ForemanMaintain::Feature
226
244
  end
227
245
  end
228
246
 
247
+ def lookup_tftp_root_directory
248
+ tftp_yml_path = lookup_into(FOREMAN_PROXY_TFTP_YML_PATHS)
249
+ raise "Couldn't find tftp.yml file under foreman-proxy" unless tftp_yml_path
250
+
251
+ yaml_load(tftp_yml_path)[:tftproot]
252
+ end
253
+
229
254
  def yaml_load(path)
230
255
  YAML.load_file(path) || {}
231
256
  end
@@ -28,7 +28,7 @@ module ForemanMaintain
28
28
  def config_files
29
29
  [
30
30
  '/etc/httpd',
31
- '/var/www/html/pub',
31
+ '/var/www/html/pub/katello-*',
32
32
  '/etc/squid',
33
33
  '/etc/foreman',
34
34
  '/etc/selinux/targeted/contexts/files/file_contexts.subs',
@@ -15,7 +15,8 @@ module Procedures::Content
15
15
  puts 'Re-running the installer to switch specified content over to pulp3'
16
16
  args = ['--foreman-proxy-content-proxy-pulp-isos-to-pulpcore=true',
17
17
  '--katello-use-pulp-2-for-file=false',
18
- '--katello-use-pulp-2-for-docker=false']
18
+ '--katello-use-pulp-2-for-docker=false',
19
+ '--katello-use-pulp-2-for-yum=false']
19
20
  feature(:installer).run(args.join(' '))
20
21
  end
21
22
  end
@@ -20,6 +20,7 @@ module ForemanMaintain::Scenarios
20
20
  Checks::Restore::ValidateHostname,
21
21
  Procedures::Selinux::SetFileSecurity,
22
22
  Procedures::Restore::Configs)
23
+ add_step_with_context(Procedures::Crond::Stop) if feature(:cron)
23
24
  unless backup.incremental?
24
25
  add_steps_with_context(Procedures::Restore::EnsureMongoEngineMatches,
25
26
  Procedures::Restore::InstallerReset)
@@ -41,6 +42,7 @@ module ForemanMaintain::Scenarios
41
42
  add_steps_with_context(Procedures::Restore::RegenerateQueues) if backup.online_backup?
42
43
  add_steps_with_context(Procedures::Service::Start,
43
44
  Procedures::Service::DaemonReload)
45
+ add_step_with_context(Procedures::Crond::Start) if feature(:cron)
44
46
  end
45
47
  # rubocop:enable Metrics/MethodLength,Metrics/AbcSize
46
48
 
@@ -98,4 +100,15 @@ module ForemanMaintain::Scenarios
98
100
  Procedures::Selinux::SetFileSecurity => :incremental_backup)
99
101
  end
100
102
  end
103
+
104
+ class RestoreRescue < ForemanMaintain::Scenario
105
+ metadata do
106
+ description 'Resuce Restore backup'
107
+ manual_detection
108
+ end
109
+
110
+ def compose
111
+ add_step_with_context(Procedures::Crond::Stop) if feature(:cron)
112
+ end
113
+ end
101
114
  end
@@ -13,7 +13,8 @@ module ForemanMaintain
13
13
  :backup_dir => @backup_dir,
14
14
  :incremental_backup => @incremental || incremental_backup?
15
15
  )
16
- run_scenario(scenario)
16
+ rescue_scenario = Scenarios::RestoreRescue.new
17
+ run_scenario(scenario, rescue_scenario)
17
18
  exit runner.exit_code
18
19
  end
19
20
 
@@ -1,3 +1,3 @@
1
1
  module ForemanMaintain
2
- VERSION = '0.6.5'.freeze
2
+ VERSION = '0.6.6'.freeze
3
3
  end
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: 0.6.5
4
+ version: 0.6.6
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: 2020-06-03 00:00:00.000000000 Z
11
+ date: 2020-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clamp
@@ -133,6 +133,7 @@ files:
133
133
  - definitions/checks/foreman/puppet_class_duplicates.rb
134
134
  - definitions/checks/foreman/validate_external_db_version.rb
135
135
  - definitions/checks/foreman_openscap/invalid_report_associations.rb
136
+ - definitions/checks/foreman_proxy/check_tftp_storage.rb
136
137
  - definitions/checks/foreman_proxy/verify_dhcp_config_syntax.rb
137
138
  - definitions/checks/foreman_tasks/invalid/check_old.rb
138
139
  - definitions/checks/foreman_tasks/invalid/check_pending_state.rb
@@ -284,8 +285,6 @@ files:
284
285
  - definitions/scenarios/packages.rb
285
286
  - definitions/scenarios/restore.rb
286
287
  - definitions/scenarios/services.rb
287
- - definitions/scenarios/upgrade_to_capsule_6_7.rb
288
- - definitions/scenarios/upgrade_to_capsule_6_7_z.rb
289
288
  - definitions/scenarios/upgrade_to_capsule_6_8.rb
290
289
  - definitions/scenarios/upgrade_to_capsule_6_8_z.rb
291
290
  - definitions/scenarios/upgrade_to_satellite_6_2.rb
@@ -1,88 +0,0 @@
1
- module Scenarios::Capsule_6_7
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.6' || \
9
- ForemanMaintain.upgrade_in_progress == '6.7')
10
- end
11
- instance_eval(&block)
12
- end
13
- end
14
-
15
- def target_version
16
- '6.7'
17
- end
18
- end
19
-
20
- class PreUpgradeCheck < Abstract
21
- upgrade_metadata do
22
- description 'Checks before upgrading to Capsule 6.7'
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 => '6.7'))
31
- end
32
- end
33
-
34
- class PreMigrations < Abstract
35
- upgrade_metadata do
36
- description 'Procedures before migrating to Capsule 6.7'
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 6.7'
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 => '6.7'))
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 6.7'
67
- tags :post_migrations
68
- end
69
-
70
- def compose
71
- add_step(Procedures::Service::Start.new)
72
- add_steps(find_procedures(:post_migrations))
73
- end
74
- end
75
-
76
- class PostUpgradeChecks < Abstract
77
- upgrade_metadata do
78
- description 'Checks after upgrading to Capsule 6.7'
79
- tags :post_upgrade_checks
80
- run_strategy :fail_slow
81
- end
82
-
83
- def compose
84
- add_steps(find_checks(:default))
85
- add_steps(find_checks(:post_upgrade))
86
- end
87
- end
88
- end
@@ -1,88 +0,0 @@
1
- module Scenarios::Capsule_6_7_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 == '6.7' || \
9
- ForemanMaintain.upgrade_in_progress == '6.7.z')
10
- end
11
- instance_eval(&block)
12
- end
13
- end
14
-
15
- def target_version
16
- '6.7.z'
17
- end
18
- end
19
-
20
- class PreUpgradeCheck < Abstract
21
- upgrade_metadata do
22
- description 'Checks before upgrading to Capsule 6.7.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 => '6.7'))
31
- end
32
- end
33
-
34
- class PreMigrations < Abstract
35
- upgrade_metadata do
36
- description 'Procedures before migrating to Capsule 6.7.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 6.7.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 => '6.7'))
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 6.7.z'
67
- tags :post_migrations
68
- end
69
-
70
- def compose
71
- add_step(Procedures::Service::Start.new)
72
- add_steps(find_procedures(:post_migrations))
73
- end
74
- end
75
-
76
- class PostUpgradeChecks < Abstract
77
- upgrade_metadata do
78
- description 'Checks after upgrading to Capsule 6.7.z'
79
- tags :post_upgrade_checks
80
- run_strategy :fail_slow
81
- end
82
-
83
- def compose
84
- add_steps(find_checks(:default))
85
- add_steps(find_checks(:post_upgrade))
86
- end
87
- end
88
- end