foreman_maintain 0.8.17 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f613ab2a7afc435fa01364dac9c15825723b336336676056d7f796b57a21e841
4
- data.tar.gz: fd709a9384cb55f2ccf9a9a7e3be34bf239b24748f8fff49fd2921c08df4c228
3
+ metadata.gz: e995fb504729078ae910121820a8f286d1256b4319d07d25f27a17768ba515af
4
+ data.tar.gz: 8fb3b6231928b49a6c6cd8375a14394b31839452ead4c0a7e3dbc198f405912d
5
5
  SHA512:
6
- metadata.gz: 55958174a3e670b8ccfefeb09695a8fc84a323901c490f2dc0df88669c2f4d7e870f48a3d5c45f42f668f26fec8fe74d6478b29fcdb2a31f4bbd6b85137f8a41
7
- data.tar.gz: 167635eec986782698efdaff762167d18e5a5f63d5f371ebe9600457ced03a6db849465d36c1c9e4fea377dcb47adfec1989e2ed67aaf71dba01d4dcce3a72b3
6
+ metadata.gz: 12ff59c3185962df60825149e3f34892c6bc42071fb39b35aa701b891dd34eb71843784c161e64d0218e669e66a2f85715991f76a319f48f6fb4dbeba55ddf2f
7
+ data.tar.gz: 747024ed62640c6c49406f573557253e6ea96037921633ca94489c20f34f32a1a233c4f6a9bb67bdac45aa9dd8af9bb727733f7531c8d0c5303f56ce59a8ce60
@@ -9,13 +9,11 @@ class Checks::CheckForNewerPackages < ForemanMaintain::Check
9
9
  param :manual_confirmation_version,
10
10
  'Version of satellite (6.9) to ask the user if they are on the latest minor release of.',
11
11
  :required => false
12
+ manual_detection
12
13
  end
13
14
 
14
15
  def run
15
- exit_status, = ForemanMaintain.package_manager.check_update(packages: @packages,
16
- with_status: true)
17
- assert(exit_status == 0, 'An update is available for one of these packages: '\
18
- "#{@packages.join(',')}. Please update before proceeding.")
16
+ check_for_package_update
19
17
  if @manual_confirmation_version
20
18
  question = 'Confirm that you are running the latest minor release of Satellite '\
21
19
  "#{@manual_confirmation_version}"
@@ -23,4 +21,45 @@ class Checks::CheckForNewerPackages < ForemanMaintain::Check
23
21
  abort! if answer != :yes
24
22
  end
25
23
  end
24
+
25
+ def check_for_package_update
26
+ exit_status, output = ForemanMaintain.package_manager.check_update(packages: @packages,
27
+ with_status: true)
28
+ packages_with_updates = []
29
+ if exit_status == 100
30
+ packages_with_updates = compare_pkg_versions(output).select do |_, result|
31
+ result == -1
32
+ end.keys
33
+ end
34
+
35
+ unless packages_with_updates.empty?
36
+ failure_message = 'An update is available for package(s): '\
37
+ "#{packages_with_updates.join(',')}. Please update before proceeding!"
38
+ fail! failure_message
39
+ end
40
+ end
41
+
42
+ def packages_and_versions(output)
43
+ pkgs_versions = {}
44
+ pkg_details = output.split("\n\n")[1].split
45
+ @packages.each do |pkg|
46
+ pkg_details.each_with_index do |ele, index|
47
+ next unless ele.start_with?(pkg)
48
+ pkgs_versions[pkg] = version(pkg_details[index + 1].split('-').first)
49
+ break
50
+ end
51
+ end
52
+ pkgs_versions
53
+ end
54
+
55
+ def compare_pkg_versions(output)
56
+ compare_pkg_versions = {}
57
+ packages_and_versions = packages_and_versions(output)
58
+ pkg_versions610 = { 'python3-pulp-2to3-migration' => version('0.12'),
59
+ 'tfm-rubygem-katello' => version('4.1') }
60
+ packages_and_versions.each do |name, version|
61
+ compare_pkg_versions[name] = version.<=>(pkg_versions610[name])
62
+ end
63
+ compare_pkg_versions
64
+ end
26
65
  end
@@ -0,0 +1,34 @@
1
+ module Checks
2
+ class CheckHttpsProxies < ForemanMaintain::Check
3
+ metadata do
4
+ label :https_proxies
5
+ for_feature :foreman_database
6
+ description 'Check for HTTPS proxies from the database'
7
+ manual_detection
8
+ end
9
+
10
+ def run
11
+ https_proxies = find_https_proxies
12
+ unless https_proxies.empty?
13
+ https_proxy_names = https_proxies.map { |proxy| proxy['name'] }
14
+ question = "Syncing repositories through an 'HTTP Proxy' that uses the HTTPS\n"\
15
+ "protocol is not supported directly with Satellite 6.10.\n"\
16
+ "The following proxies use HTTPS: #{https_proxy_names.join(', ')}.\n"\
17
+ "For a suggested solution see https://access.redhat.com/solutions/6414991\n"\
18
+ 'Continue upgrade?'
19
+ answer = ask_decision(question, actions_msg: 'y(yes), q(quit)')
20
+ abort! if answer != :yes
21
+ end
22
+ end
23
+
24
+ def find_https_proxies
25
+ feature(:foreman_database).query(self.class.query_to_get_https_proxies)
26
+ end
27
+
28
+ def self.query_to_get_https_proxies
29
+ <<-SQL
30
+ SELECT \"http_proxies\".* FROM \"http_proxies\" WHERE (http_proxies.url ilike 'https://%')
31
+ SQL
32
+ end
33
+ end
34
+ end
@@ -3,8 +3,7 @@ module Checks::Repositories
3
3
  metadata do
4
4
  description 'Validate availability of repositories'
5
5
  preparation_steps do
6
- [Checks::Repositories::CheckNonRhRepository.new,
7
- Procedures::Packages::Install.new(:packages => [ForemanMaintain::Utils::Facter.package])]
6
+ Checks::Repositories::CheckNonRhRepository.new
8
7
  end
9
8
 
10
9
  confine do
@@ -0,0 +1,24 @@
1
+ require 'foreman_maintain/utils/backup'
2
+
3
+ module Checks::Restore
4
+ class ValidateInterfaces < ForemanMaintain::Check
5
+ metadata do
6
+ description 'Validate network interfaces match the backup'
7
+
8
+ param :backup_dir,
9
+ 'Path to backup directory',
10
+ :required => true
11
+ manual_detection
12
+ end
13
+
14
+ def run
15
+ backup = ForemanMaintain::Utils::Backup.new(@backup_dir)
16
+ invalid_interfaces = backup.validate_interfaces
17
+ msg = 'The following features are enabled in the backup, '\
18
+ "\nbut the system does not have the interfaces used by these features: "
19
+ msg << invalid_interfaces.map { |k, v| "#{k} (#{v['configured']})" }.join(', ')
20
+ msg << '.'
21
+ assert(backup.validate_interfaces.empty?, msg)
22
+ end
23
+ end
24
+ end
@@ -9,6 +9,8 @@ module Procedures::Backup
9
9
  param :online_backup, 'Select for online backup', :flag => true, :default => false
10
10
  end
11
11
 
12
+ PROXY_CONFIG_ENTRIES = %w[dns dns_interface dhcp dhcp_interface].freeze
13
+
12
14
  def run
13
15
  with_spinner('Collecting metadata') do |spinner|
14
16
  metadata = {}
@@ -18,6 +20,8 @@ module Procedures::Backup
18
20
  metadata['rpms'] = rpms(spinner)
19
21
  metadata['incremental'] = @incremental_dir || false
20
22
  metadata['online'] = @online_backup
23
+ metadata['hostname'] = hostname
24
+ metadata['proxy_config'] = proxy_config(spinner)
21
25
  save_metadata(metadata, spinner)
22
26
  end
23
27
  end
@@ -54,5 +58,12 @@ module Procedures::Backup
54
58
  feature(:foreman_proxy).features
55
59
  end
56
60
  end
61
+
62
+ def proxy_config(spinner)
63
+ spinner.update('Collecting proxy configuration')
64
+ feature(:installer).answers['foreman_proxy'].select do |key, _|
65
+ PROXY_CONFIG_ENTRIES.include?(key)
66
+ end
67
+ end
57
68
  end
58
69
  end
@@ -21,7 +21,8 @@ module Procedures::Pulp
21
21
  '/var/lib/pulp/content',
22
22
  '/var/lib/pulp/importers',
23
23
  '/var/lib/pulp/uploads',
24
- '/var/lib/mongodb/'
24
+ '/var/lib/mongodb/',
25
+ '/var/cache/pulp'
25
26
  ]
26
27
  end
27
28
 
@@ -2,10 +2,6 @@ module Procedures::Repositories
2
2
  class Setup < ForemanMaintain::Procedure
3
3
  metadata do
4
4
  description 'Setup repositories'
5
- preparation_steps do
6
- Procedures::Packages::Install.new(:packages => [ForemanMaintain::Utils::Facter.package])
7
- end
8
-
9
5
  confine do
10
6
  feature(:instance).downstream || feature(:upstream)
11
7
  end
@@ -56,7 +56,11 @@ module Procedures::Restore
56
56
  def reset_qpid_jrnls
57
57
  # on restore without pulp data qpid fails to start
58
58
  # https://access.redhat.com/solutions/4645231
59
- execute('rm -rf /var/lib/qpidd/.qpidd/qls/dat2/__db.00*')
59
+ ['/var/lib/qpidd/.qpidd/', '/var/lib/qpidd/'].each do |qpidd_path|
60
+ if Dir.exist?("#{qpidd_path}/qls/dat2/")
61
+ execute("rm -rf #{qpidd_path}/qls/dat2/__db.00*")
62
+ end
63
+ end
60
64
  end
61
65
  end
62
66
  end
@@ -18,6 +18,7 @@ module ForemanMaintain::Scenarios
18
18
  add_steps_with_context(Checks::Restore::ValidateBackup,
19
19
  Procedures::Restore::Confirmation,
20
20
  Checks::Restore::ValidateHostname,
21
+ Checks::Restore::ValidateInterfaces,
21
22
  Procedures::Selinux::SetFileSecurity,
22
23
  Procedures::Restore::Configs)
23
24
  add_step_with_context(Procedures::Crond::Stop) if feature(:cron)
@@ -87,6 +88,7 @@ module ForemanMaintain::Scenarios
87
88
  context.map(:backup_dir,
88
89
  Checks::Restore::ValidateBackup => :backup_dir,
89
90
  Checks::Restore::ValidateHostname => :backup_dir,
91
+ Checks::Restore::ValidateInterfaces => :backup_dir,
90
92
  Procedures::Restore::Configs => :backup_dir,
91
93
  Procedures::Restore::DropDatabases => :backup_dir,
92
94
  Procedures::Restore::PgGlobalObjects => :backup_dir,
@@ -29,6 +29,7 @@ module Scenarios::Satellite_6_10
29
29
  add_step(Checks::CheckForNewerPackages.new(:packages => [foreman_plugin_name('katello'),
30
30
  'python3-pulp-2to3-migration'],
31
31
  :manual_confirmation_version => '6.9'))
32
+ add_step(Checks::CheckHttpsProxies)
32
33
  add_steps(find_checks(:default))
33
34
  add_steps(find_checks(:pre_upgrade))
34
35
 
@@ -0,0 +1,70 @@
1
+ module ForemanMaintain
2
+ module Concerns
3
+ module OsFacts
4
+ OS_RELEASE_FILE = '/etc/os-release'.freeze
5
+ FALLBACK_OS_RELEASE_FILE = '/usr/lib/os-release'.freeze
6
+
7
+ def os_release_file
8
+ if File.file?(OS_RELEASE_FILE)
9
+ return OS_RELEASE_FILE
10
+ elsif File.file?(FALLBACK_OS_RELEASE_FILE)
11
+ return FALLBACK_OS_RELEASE_FILE
12
+ else
13
+ puts "The #{OS_RELEASE_FILE} and #{FALLBACK_OS_RELEASE_FILE} files are missing! "\
14
+ "Can't continue the execution without Operating System's facts!"
15
+ exit 1
16
+ end
17
+ end
18
+
19
+ def facts
20
+ unless defined?(@facts)
21
+ @facts = {}
22
+ regex = /^(["'])(.*)(\1)$/
23
+ File.open(os_release_file) do |file|
24
+ file.readlines.each do |line|
25
+ line.strip! # drop any whitespace, including newlines from start and end of the line
26
+ next if line.start_with?('#') # ignore comments
27
+ # split at most into 2 items, if the value ever contains an =
28
+ key, value = line.split('=', 2)
29
+ next unless key && value
30
+ @facts[key] = value.gsub(regex, '\2').delete('\\')
31
+ end
32
+ end
33
+ end
34
+ @facts
35
+ end
36
+
37
+ def os_version_id
38
+ facts.fetch('VERSION_ID')
39
+ end
40
+
41
+ def os_id
42
+ facts.fetch('ID')
43
+ end
44
+
45
+ def os_id_like_list
46
+ facts.fetch('ID_LIKE', '').split
47
+ end
48
+
49
+ def el?
50
+ File.exist?('/etc/redhat-release')
51
+ end
52
+
53
+ def debian?
54
+ File.exist?('/etc/debian_version')
55
+ end
56
+
57
+ def el7?
58
+ el_major_version == 7
59
+ end
60
+
61
+ def el8?
62
+ el_major_version == 8
63
+ end
64
+
65
+ def el_major_version
66
+ return os_version_id.to_i if el?
67
+ end
68
+ end
69
+ end
70
+ end
@@ -8,6 +8,7 @@ module ForemanMaintain
8
8
  module SystemHelpers
9
9
  include Logger
10
10
  include Concerns::Finders
11
+ include ForemanMaintain::Concerns::OsFacts
11
12
 
12
13
  def self.included(klass)
13
14
  klass.extend(self)
@@ -147,7 +148,7 @@ module ForemanMaintain
147
148
  end
148
149
 
149
150
  def format_shell_args(options = {})
150
- options.map { |shell_optn, val| " #{shell_optn} '#{shellescape(val)}'" }.join
151
+ options.map { |shell_optn, val| " #{shell_optn} #{shellescape(val)}" }.join
151
152
  end
152
153
 
153
154
  def find_symlinks(dir_path)
@@ -184,38 +185,13 @@ module ForemanMaintain
184
185
  ForemanMaintain.package_manager
185
186
  end
186
187
 
187
- def os_facts
188
- facter = ForemanMaintain::Utils::Facter.path
189
- @os_facts ||= JSON.parse(execute("#{facter} -j os"))
190
- end
191
-
192
- def el?
193
- os_facts['os']['family'] == 'RedHat'
194
- end
195
-
196
- def debian?
197
- os_facts['os']['family'] == 'Debian'
198
- end
199
-
200
- def el7?
201
- os_facts['os']['release']['major'] == '7' && el?
202
- end
203
-
204
- def el8?
205
- os_facts['os']['release']['major'] == '8' && el?
206
- end
207
-
208
- def el_major_version
209
- return os_facts['os']['release']['major'] if el?
210
- end
211
-
212
188
  def ruby_prefix(scl = true)
213
- if el7? && scl
189
+ if debian?
190
+ 'ruby-'
191
+ elsif el7? && scl
214
192
  'tfm-rubygem-'
215
- elsif el7? || el8?
193
+ else
216
194
  'rubygem-'
217
- elsif debian?
218
- 'ruby-'
219
195
  end
220
196
  end
221
197
 
@@ -77,11 +77,15 @@ module ForemanMaintain
77
77
  end
78
78
 
79
79
  def valid_fpc_backup?
80
- fpc_online_backup? || fpc_standard_backup? || fpc_logical_backup?
80
+ fpc_online_backup? || fpc_standard_backup? || fpc_logical_backup? || \
81
+ # fpc can have setup where mongo or pulpcore db is external but not both
82
+ fpc_hybrid_db_backup?
81
83
  end
82
84
 
83
85
  def valid_katello_backup?
84
- katello_online_backup? || katello_standard_backup? || katello_logical_backup?
86
+ katello_online_backup? || katello_standard_backup? || katello_logical_backup? || \
87
+ # Katello can have setup where some of dbs are external but not all
88
+ katello_hybrid_db_backup?
85
89
  end
86
90
 
87
91
  def valid_foreman_backup?
@@ -104,7 +108,6 @@ module ForemanMaintain
104
108
  true
105
109
  end
106
110
 
107
- # TODO: Need to check for pulpcore feature?
108
111
  def katello_standard_backup?
109
112
  present = [:pgsql_data]
110
113
  absent = [:candlepin_dump, :foreman_dump, :pulpcore_dump, :mongo_dump]
@@ -155,6 +158,14 @@ module ForemanMaintain
155
158
  :absent => absent)
156
159
  end
157
160
 
161
+ def katello_hybrid_db_backup?
162
+ all_dbs = { :pgsql_data => %w[candlepin foreman], :mongo_data => [] }
163
+ all_dbs[:pgsql_data] << 'pulpcore' if feature(:pulpcore_database)
164
+ all_dbs[:mongo_data] << 'mongo' if feature(:mongo)
165
+ present, absent = dumps_for_hybrid_db_setup(all_dbs)
166
+ check_file_existence(:present => present, :absent => absent)
167
+ end
168
+
158
169
  def fpc_standard_backup?
159
170
  present = []
160
171
  absent = [:candlepin_dump, :foreman_dump, :pulpcore_dump, :mongo_dump]
@@ -207,6 +218,15 @@ module ForemanMaintain
207
218
  check_file_existence(:present => present, :absent => absent)
208
219
  end
209
220
 
221
+ def fpc_hybrid_db_backup?
222
+ all_dbs = { :pgsql_data => [], :mongo_data => [] }
223
+ all_dbs[:pgsql_data] << 'pulpcore' if feature(:pulpcore_database)
224
+ all_dbs[:mongo_data] << 'mongo' if feature(:mongo)
225
+ present, absent = dumps_for_hybrid_db_setup(all_dbs)
226
+ absent.concat [:candlepin_dump, :foreman_dump]
227
+ check_file_existence(:present => present, :absent => absent)
228
+ end
229
+
210
230
  def foreman_standard_backup?
211
231
  check_file_existence(:present => [:pgsql_data],
212
232
  :absent => [:candlepin_dump, :foreman_dump, :pulpcore_dump,
@@ -224,21 +244,67 @@ module ForemanMaintain
224
244
  :absent => [:candlepin_dump, :mongo_data, :mongo_dump, :pulpcore_dump])
225
245
  end
226
246
 
247
+ # rubocop:disable Metrics/MethodLength
248
+ def dumps_for_hybrid_db_setup(dbs_hash)
249
+ present = []
250
+ absent = []
251
+ dbs_hash.each do |data_file, dbs|
252
+ dbs.each do |db|
253
+ feature_label = db == 'mongo' ? db : "#{db}_database"
254
+ dump_file = "#{db}_dump"
255
+ if feature(feature_label.to_sym).local?
256
+ present |= [data_file]
257
+ absent << dump_file.to_sym
258
+ else
259
+ present << dump_file.to_sym
260
+ end
261
+ end
262
+ absent |= [data_file] unless present.include?(data_file)
263
+ end
264
+ [present, absent]
265
+ end
266
+ # rubocop:enable Metrics/MethodLength
267
+
227
268
  def validate_hostname?
228
269
  # make sure that the system hostname is the same as the backup
229
- config_tarball = file_map[:config_files][:path]
230
- tar_cmd = "tar zxf #{config_tarball} etc/httpd/conf/httpd.conf --to-stdout --occurrence=1"
231
- status, httpd_config = execute_with_status(tar_cmd)
232
-
233
- # Incremental backups sometimes don't include httpd.conf. Since a "base" backup
234
- # is restored before an incremental, we can assume that the hostname is checked
235
- # during the base backup restore
236
- if status == 0
237
- match = httpd_config.match(/\s*ServerName\s+"*([^ "]+)"*\s*$/)
238
- match ? match[1] == hostname : false
270
+ hostname_from_metadata = metadata.fetch('hostname', nil)
271
+ if hostname_from_metadata
272
+ hostname_from_metadata == hostname
239
273
  else
240
- true
274
+ config_tarball = file_map[:config_files][:path]
275
+ tar_cmd = "tar zxf #{config_tarball} etc/httpd/conf/httpd.conf --to-stdout --occurrence=1"
276
+ status, httpd_config = execute_with_status(tar_cmd)
277
+
278
+ # Incremental backups sometimes don't include httpd.conf. Since a "base" backup
279
+ # is restored before an incremental, we can assume that the hostname is checked
280
+ # during the base backup restore
281
+ if status == 0
282
+ match = httpd_config.match(/\s*ServerName\s+"*([^ "]+)"*\s*$/)
283
+ match ? match[1] == hostname : false
284
+ else
285
+ true
286
+ end
287
+ end
288
+ end
289
+
290
+ def validate_interfaces
291
+ # I wanted to do `Socket.getifaddrs.map(&:name).uniq`,
292
+ # but this has to work with Ruby 2.0, and Socket.getifaddrs is 2.1+
293
+ errors = {}
294
+ system_interfaces = Dir.children('/sys/class/net')
295
+
296
+ proxy_config = metadata.fetch('proxy_config', {})
297
+
298
+ %w[dns dhcp].each do |feature|
299
+ next unless proxy_config.fetch(feature, false)
300
+
301
+ wanted_interface = proxy_config.fetch("#{feature}_interface", 'lo')
302
+ unless system_interfaces.include?(wanted_interface)
303
+ errors[feature] = { 'configured' => wanted_interface, 'available' => system_interfaces }
304
+ end
241
305
  end
306
+
307
+ return errors
242
308
  end
243
309
 
244
310
  def metadata
@@ -7,4 +7,3 @@ require 'foreman_maintain/utils/curl_response'
7
7
  require 'foreman_maintain/utils/mongo_core'
8
8
  require 'foreman_maintain/utils/service'
9
9
  require 'foreman_maintain/utils/system_helpers'
10
- require 'foreman_maintain/utils/facter'
@@ -1,3 +1,3 @@
1
1
  module ForemanMaintain
2
- VERSION = '0.8.17'.freeze
2
+ VERSION = '0.9.1'.freeze
3
3
  end
@@ -15,6 +15,7 @@ module ForemanMaintain
15
15
  require 'foreman_maintain/concerns/finders'
16
16
  require 'foreman_maintain/concerns/metadata'
17
17
  require 'foreman_maintain/concerns/scenario_metadata'
18
+ require 'foreman_maintain/concerns/os_facts'
18
19
  require 'foreman_maintain/concerns/system_helpers'
19
20
  require 'foreman_maintain/concerns/system_service'
20
21
  require 'foreman_maintain/concerns/hammer'
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.8.17
4
+ version: 0.9.1
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: 2021-09-22 00:00:00.000000000 Z
11
+ date: 2021-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clamp
@@ -84,16 +84,30 @@ dependencies:
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "<"
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
88
102
  - !ruby/object:Gem::Version
89
- version: 11.0.0
103
+ version: 0.50.0
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - "<"
108
+ - - '='
95
109
  - !ruby/object:Gem::Version
96
- version: 11.0.0
110
+ version: 0.50.0
97
111
  description: Provides various features that helps keeping the Foreman/Satellite up
98
112
  and running.
99
113
  email: inecas@redhat.com
@@ -134,6 +148,7 @@ files:
134
148
  - definitions/checks/foreman/check_corrupted_roles.rb
135
149
  - definitions/checks/foreman/check_duplicate_permission.rb
136
150
  - definitions/checks/foreman/check_duplicate_roles.rb
151
+ - definitions/checks/foreman/check_https_proxies.rb
137
152
  - definitions/checks/foreman/db_up.rb
138
153
  - definitions/checks/foreman/facts_names.rb
139
154
  - definitions/checks/foreman/puppet_class_duplicates.rb
@@ -162,6 +177,7 @@ files:
162
177
  - definitions/checks/repositories/validate.rb
163
178
  - definitions/checks/restore/validate_backup.rb
164
179
  - definitions/checks/restore/validate_hostname.rb
180
+ - definitions/checks/restore/validate_interfaces.rb
165
181
  - definitions/checks/root_user.rb
166
182
  - definitions/checks/server_ping.rb
167
183
  - definitions/checks/services_up.rb
@@ -362,6 +378,7 @@ files:
362
378
  - lib/foreman_maintain/concerns/hammer.rb
363
379
  - lib/foreman_maintain/concerns/logger.rb
364
380
  - lib/foreman_maintain/concerns/metadata.rb
381
+ - lib/foreman_maintain/concerns/os_facts.rb
365
382
  - lib/foreman_maintain/concerns/primary_checks.rb
366
383
  - lib/foreman_maintain/concerns/pulp_common.rb
367
384
  - lib/foreman_maintain/concerns/reporter.rb
@@ -401,7 +418,6 @@ files:
401
418
  - lib/foreman_maintain/utils/disk/io_device.rb
402
419
  - lib/foreman_maintain/utils/disk/nil_device.rb
403
420
  - lib/foreman_maintain/utils/disk/stats.rb
404
- - lib/foreman_maintain/utils/facter.rb
405
421
  - lib/foreman_maintain/utils/hash_tools.rb
406
422
  - lib/foreman_maintain/utils/mongo_core.rb
407
423
  - lib/foreman_maintain/utils/response.rb
@@ -1,17 +0,0 @@
1
- module ForemanMaintain::Utils
2
- module Facter
3
- include ForemanMaintain::Concerns::SystemHelpers
4
-
5
- FACTER_FILES = %w[/usr/bin/facter /opt/puppetlabs/bin/facter].freeze
6
-
7
- def self.package
8
- puppet_version = version(execute!('/opt/puppetlabs/bin/puppet --version'))
9
-
10
- puppet_version.major >= 4 ? 'puppet-agent' : 'facter'
11
- end
12
-
13
- def self.path
14
- FACTER_FILES.find { |path| File.exist?(path) }
15
- end
16
- end
17
- end