facter 4.3.1 → 4.4.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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/lib/docs/generate_cli.rb +1 -1
  3. data/lib/facter/custom_facts/core/execution/base.rb +5 -4
  4. data/lib/facter/custom_facts/core/execution/posix.rb +1 -1
  5. data/lib/facter/custom_facts/core/execution/windows.rb +2 -2
  6. data/lib/facter/custom_facts/core/execution.rb +1 -1
  7. data/lib/facter/custom_facts/core/file_loader.rb +23 -24
  8. data/lib/facter/custom_facts/core/legacy_facter.rb +1 -1
  9. data/lib/facter/custom_facts/util/normalization.rb +8 -23
  10. data/lib/facter/custom_facts/util/windows_root.rb +1 -1
  11. data/lib/facter/facts/debian/architecture.rb +1 -1
  12. data/lib/facter/facts/linux/hypervisors/kvm.rb +2 -2
  13. data/lib/facter/facts/linux/os/architecture.rb +1 -1
  14. data/lib/facter/facts/linux/partitions.rb +4 -0
  15. data/lib/facter/facts/linux/processors/isa.rb +1 -10
  16. data/lib/facter/facts/ol/lsbdistdescription.rb +16 -0
  17. data/lib/facter/facts/ol/lsbdistid.rb +16 -0
  18. data/lib/facter/facts/ol/os/distro/description.rb +19 -0
  19. data/lib/facter/facts/ol/os/distro/id.rb +19 -0
  20. data/lib/facter/facts/windows/hypervisors/kvm.rb +2 -2
  21. data/lib/facter/framework/cli/cli_launcher.rb +3 -3
  22. data/lib/facter/framework/config/config_reader.rb +4 -0
  23. data/lib/facter/framework/config/fact_groups.rb +2 -2
  24. data/lib/facter/framework/core/fact_loaders/fact_loader.rb +14 -2
  25. data/lib/facter/framework/core/file_loader.rb +896 -38
  26. data/lib/facter/framework/core/options/config_file_options.rb +4 -0
  27. data/lib/facter/framework/core/options/options_validator.rb +9 -2
  28. data/lib/facter/framework/detector/os_hierarchy.rb +1 -1
  29. data/lib/facter/framework/formatters/legacy_fact_formatter.rb +1 -1
  30. data/lib/facter/framework/formatters/yaml_fact_formatter.rb +2 -2
  31. data/lib/facter/framework/parsers/query_parser.rb +2 -1
  32. data/lib/facter/patches/sysfilesystem/sys/statvfs.rb +4 -4
  33. data/lib/facter/resolvers/aix/architecture.rb +1 -1
  34. data/lib/facter/resolvers/aix/filesystem.rb +1 -1
  35. data/lib/facter/resolvers/aix/hardware.rb +1 -1
  36. data/lib/facter/resolvers/aix/memory.rb +1 -1
  37. data/lib/facter/resolvers/aix/mountpoints.rb +2 -2
  38. data/lib/facter/resolvers/aix/networking.rb +5 -3
  39. data/lib/facter/resolvers/aix/partitions.rb +2 -2
  40. data/lib/facter/resolvers/bsd/processors.rb +1 -1
  41. data/lib/facter/resolvers/freebsd/processors.rb +2 -2
  42. data/lib/facter/resolvers/freebsd/swap_memory.rb +1 -1
  43. data/lib/facter/resolvers/gce.rb +9 -0
  44. data/lib/facter/resolvers/linux/hostname.rb +2 -2
  45. data/lib/facter/resolvers/load_averages.rb +1 -1
  46. data/lib/facter/resolvers/lspci.rb +1 -1
  47. data/lib/facter/resolvers/macosx/swap_memory.rb +1 -1
  48. data/lib/facter/resolvers/networking.rb +1 -1
  49. data/lib/facter/resolvers/open_vz.rb +1 -1
  50. data/lib/facter/resolvers/os_release.rb +3 -3
  51. data/lib/facter/resolvers/selinux.rb +3 -3
  52. data/lib/facter/resolvers/solaris/ffi/functions.rb +5 -3
  53. data/lib/facter/resolvers/solaris/filesystems.rb +1 -1
  54. data/lib/facter/resolvers/solaris/mountpoints.rb +1 -1
  55. data/lib/facter/resolvers/virt_what.rb +6 -6
  56. data/lib/facter/resolvers/windows/ffi/hardware_ffi.rb +2 -2
  57. data/lib/facter/resolvers/windows/ffi/identity_ffi.rb +1 -1
  58. data/lib/facter/resolvers/windows/ffi/kernel_ffi.rb +2 -2
  59. data/lib/facter/resolvers/windows/ffi/memory_ffi.rb +2 -2
  60. data/lib/facter/resolvers/windows/ffi/networking_ffi.rb +3 -3
  61. data/lib/facter/resolvers/windows/ffi/system32_ffi.rb +1 -1
  62. data/lib/facter/resolvers/windows/ffi/winnls_ffi.rb +1 -1
  63. data/lib/facter/resolvers/windows/hardware_architecture.rb +1 -1
  64. data/lib/facter/resolvers/windows/identity.rb +1 -1
  65. data/lib/facter/resolvers/windows/kernel.rb +1 -1
  66. data/lib/facter/resolvers/windows/memory.rb +1 -1
  67. data/lib/facter/resolvers/windows/networking.rb +1 -1
  68. data/lib/facter/resolvers/windows/system32.rb +1 -1
  69. data/lib/facter/resolvers/windows/timezone.rb +1 -1
  70. data/lib/facter/resolvers/windows/virtualization.rb +2 -2
  71. data/lib/facter/resolvers/xen.rb +1 -1
  72. data/lib/facter/util/api_debugger.rb +1 -1
  73. data/lib/facter/util/facts/windows_release_finder.rb +2 -2
  74. data/lib/facter/util/linux/dhcp.rb +1 -1
  75. data/lib/facter/util/resolvers/ffi/hostname.rb +1 -1
  76. data/lib/facter/util/utils.rb +1 -1
  77. data/lib/facter/version.rb +1 -1
  78. data/lib/facter.rb +15 -6
  79. metadata +11 -8
  80. data/lib/facter/facts/windows/augeas/version.rb +0 -19
@@ -16,6 +16,10 @@ module Facter
16
16
  @options || {}
17
17
  end
18
18
 
19
+ def clear
20
+ @options = {}
21
+ end
22
+
19
23
  private
20
24
 
21
25
  def augment_structured_facts(global_conf)
@@ -55,8 +55,15 @@ module Facter
55
55
  no_custom_facts = !options[:custom_facts]
56
56
  puppet = options[:puppet]
57
57
  custom_dir = options[:custom_dir].nil? ? false : options[:custom_dir].any?
58
- external_dir = options[:external_dir].nil? ? false : options[:external_dir].any?
59
-
58
+ default_external_dir = Facter::OptionStore.default_external_dir
59
+ # --puppet/-p option adds an external directory and is not an explicitly
60
+ # set external_dir from cli or config file
61
+ default_external_dir += [Puppet[:pluginfactdest]] if puppet && const_defined?('Puppet')
62
+ external_dir = if options[:external_dir].nil? || options[:external_dir].none?
63
+ false
64
+ else
65
+ options[:external_dir] != default_external_dir
66
+ end
60
67
  [
61
68
  { 'no-ruby' => no_ruby, 'custom-dir' => custom_dir },
62
69
  { 'no-external-facts' => !options[:external_facts], 'external-dir' => external_dir },
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'facter/config'
3
+ require_relative '../../../facter/config'
4
4
 
5
5
  module Facter
6
6
  class OsHierarchy
@@ -95,7 +95,7 @@ module Facter
95
95
  # quotation marks that come after \ are not removed
96
96
  @log.debug('Remove unnecessary comma and quotation marks on root facts')
97
97
  output.split("\n")
98
- .map! { |line| line =~ /^[\s]+/ ? line : line.gsub(/,$|(?<!\\)\"/, '').gsub('\\"', '"') }.join("\n")
98
+ .map! { |line| /^[\s]+/.match?(line) ? line : line.gsub(/,$|(?<!\\)\"/, '').gsub('\\"', '"') }.join("\n")
99
99
  end
100
100
  end
101
101
  end
@@ -52,9 +52,9 @@ module Facter
52
52
  end
53
53
 
54
54
  def needs_quote?(value)
55
- return false if value =~ /true|false/
55
+ return false if /true|false/.match?(value)
56
56
  return false if value[/^[0-9]+$/]
57
- return true if value =~ /y|Y|yes|Yes|YES|n|N|no|No|NO|True|TRUE|False|FALSE|on|On|ON|off|Off|OFF|:/
57
+ return true if /y|Y|yes|Yes|YES|n|N|no|No|NO|True|TRUE|False|FALSE|on|On|ON|off|Off|OFF|:/.match?(value)
58
58
  return false if value[/[a-zA-Z]/]
59
59
  return false if value[/[0-9]+\.[0-9]+/]
60
60
 
@@ -85,7 +85,8 @@ module Facter
85
85
 
86
86
  return false if fact_with_wildcard && !query_fact.match("^#{fact_name}$")
87
87
 
88
- return false unless fact_with_wildcard || fact_name.match("^#{processed_equery_fact}($|\\.)")
88
+ # Must escape metacharacters (like dots) to ensure the correct fact is found
89
+ return false unless fact_with_wildcard || fact_name.match("^#{Regexp.escape(processed_equery_fact)}($|\\.)")
89
90
 
90
91
  true
91
92
  end
@@ -10,7 +10,7 @@ module Sys
10
10
  # it the second time will make FFI log a warning message.
11
11
  remove_instance_variable(:@layout) if @layout
12
12
 
13
- if RbConfig::CONFIG['host_os'] =~ /darwin|osx|mach/i
13
+ if /darwin|osx|mach/i.match?(RbConfig::CONFIG['host_os'])
14
14
  layout(
15
15
  :f_bsize, :ulong,
16
16
  :f_frsize, :ulong,
@@ -24,7 +24,7 @@ module Sys
24
24
  :f_flag, :ulong,
25
25
  :f_namemax, :ulong
26
26
  )
27
- elsif RbConfig::CONFIG['host'] =~ /bsd/i
27
+ elsif /bsd/i.match?(RbConfig::CONFIG['host'])
28
28
  layout(
29
29
  :f_bavail, :uint64,
30
30
  :f_bfree, :uint64,
@@ -38,7 +38,7 @@ module Sys
38
38
  :f_fsid, :ulong,
39
39
  :f_namemax, :ulong
40
40
  )
41
- elsif RbConfig::CONFIG['host'] =~ /sunos|solaris/i
41
+ elsif /sunos|solaris/i.match?(RbConfig::CONFIG['host'])
42
42
  layout(
43
43
  :f_bsize, :ulong,
44
44
  :f_frsize, :ulong,
@@ -55,7 +55,7 @@ module Sys
55
55
  :f_fstr, [:char, 32],
56
56
  :f_filler, [:ulong, 16]
57
57
  )
58
- elsif RbConfig::CONFIG['host'] =~ /i686/i
58
+ elsif /i686/i.match?(RbConfig::CONFIG['host'])
59
59
  layout(
60
60
  :f_bsize, :ulong,
61
61
  :f_frsize, :ulong,
@@ -14,7 +14,7 @@ module Facter
14
14
  end
15
15
 
16
16
  def read_architecture(fact_name)
17
- require 'facter/util/aix/odm_query'
17
+ require_relative '../../../facter/util/aix/odm_query'
18
18
 
19
19
  proc_number = read_proc
20
20
  odmquery = Facter::Util::Aix::ODMQuery.new
@@ -18,7 +18,7 @@ module Facter
18
18
  return if file_content.empty?
19
19
 
20
20
  file_content = file_content.map do |line|
21
- next if line =~ /#|%/ # skip lines that are comments or defaultvfs line
21
+ next if /#|%/.match?(line) # skip lines that are comments or defaultvfs line
22
22
 
23
23
  line.split(' ').first
24
24
  end
@@ -14,7 +14,7 @@ module Facter
14
14
  end
15
15
 
16
16
  def read_hardware(fact_name)
17
- require 'facter/util/aix/odm_query'
17
+ require_relative '../../../facter/util/aix/odm_query'
18
18
  odmquery = Facter::Util::Aix::ODMQuery.new
19
19
  odmquery
20
20
  .equals('name', 'sys0')
@@ -25,7 +25,7 @@ module Facter
25
25
 
26
26
  result.each_line do |line|
27
27
  @fact_list[:system] = populate_system(line, pagesize) if line.include?('memory')
28
- @fact_list[:swap] = populate_swap(line, pagesize) if line =~ /pg\sspace/
28
+ @fact_list[:swap] = populate_swap(line, pagesize) if /pg\sspace/.match?(line)
29
29
  end
30
30
 
31
31
  @fact_list[fact_name]
@@ -19,7 +19,7 @@ module Facter
19
19
  @fact_list[:mountpoints] = {}
20
20
  output = Facter::Core::Execution.execute('mount', logger: log)
21
21
  output.split("\n").drop(2).map do |line|
22
- next if line =~ /procfs|ahafs/
22
+ next if /procfs|ahafs/.match?(line)
23
23
 
24
24
  add_mount_points_fact(line)
25
25
  end
@@ -40,7 +40,7 @@ module Facter
40
40
  def retrieve_sizes_for_mounts
41
41
  output = Facter::Core::Execution.execute('df -P', logger: log)
42
42
  output.split("\n").drop(1).map do |line|
43
- next if line =~ /-\s+-\s+-/
43
+ next if /-\s+-\s+-/.match?(line)
44
44
 
45
45
  mount_info = line.split("\s")
46
46
  mount_info[3] = translate_to_bytes(mount_info[3])
@@ -43,13 +43,15 @@ module Facter
43
43
  def populate_with_mtu_and_mac!(interfaces)
44
44
  output = Facter::Core::Execution.execute('netstat -in', logger: log)
45
45
  output.each_line do |line|
46
- next if line =~ /Name\s/
46
+ next if /Name\s/.match?(line)
47
47
 
48
48
  info = line.split("\s")
49
49
  interface_name = info[0]
50
50
  mac = info[3][/^([0-9a-f]{1,2}[\.:-]){5}([0-9a-f]{1,2})$/]
51
- interfaces[interface_name][:mtu] = info[1].to_i
52
- interfaces[interface_name][:mac] = format_mac_address(mac) if mac
51
+ if interfaces[interface_name]
52
+ interfaces[interface_name][:mtu] = info[1].to_i
53
+ interfaces[interface_name][:mac] = format_mac_address(mac) if mac
54
+ end
53
55
  end
54
56
  end
55
57
 
@@ -50,8 +50,8 @@ module Facter
50
50
  }
51
51
  mount = info_hash['MOUNT POINT']
52
52
  label = info_hash['LABEL']
53
- part_info[:mount] = mount unless %r{N/A} =~ mount
54
- part_info[:label] = label.strip unless /None/ =~ label
53
+ part_info[:mount] = mount unless %r{N/A}.match?(mount)
54
+ part_info[:label] = label.strip unless /None/.match?(label)
55
55
  part_info
56
56
  end
57
57
 
@@ -15,7 +15,7 @@ module Facter
15
15
  end
16
16
 
17
17
  def collect_processors_info(fact_name)
18
- require 'facter/resolvers/bsd/ffi/ffi_helper'
18
+ require_relative '../../../facter/resolvers/bsd/ffi/ffi_helper'
19
19
 
20
20
  count = logical_count
21
21
  model = processor_model
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'facter/resolvers/bsd/processors'
3
+ require_relative '../../../facter/resolvers/bsd/processors'
4
4
 
5
5
  module Facter
6
6
  module Resolvers
@@ -17,7 +17,7 @@ module Facter
17
17
  end
18
18
 
19
19
  def collect_processors_info(fact_name)
20
- require 'facter/resolvers/freebsd/ffi/ffi_helper'
20
+ require_relative '../../../facter/resolvers/freebsd/ffi/ffi_helper'
21
21
 
22
22
  count = logical_count
23
23
  model = processors_model
@@ -13,7 +13,7 @@ module Facter
13
13
  @fact_list.fetch(fact_name) { read_swap_memory(fact_name) }
14
14
  end
15
15
 
16
- def read_swap_memory(fact_name) # rubocop:disable Metrics/AbcSize
16
+ def read_swap_memory(fact_name)
17
17
  output = Facter::Core::Execution.execute('swapinfo -k', logger: log)
18
18
  data = output.split("\n")[1..-1].map { |line| line.split(/\s+/) }
19
19
 
@@ -39,6 +39,15 @@ module Facter
39
39
  instance_data = gce_data['instance']
40
40
  return if instance_data.nil? || instance_data.empty?
41
41
 
42
+ # See https://cloud.google.com/compute/docs/metadata for information about these values
43
+ %w[sshKeys ssh-keys].each do |name|
44
+ keys = gce_data.dig('project', 'attributes', name)
45
+ gce_data['project']['attributes'][name] = keys.strip.split("\n") if keys
46
+
47
+ keys = instance_data.dig('attributes', name)
48
+ instance_data['attributes'][name] = keys.strip.split("\n") if keys
49
+ end
50
+
42
51
  %w[image machineType zone].each do |key|
43
52
  instance_data[key] = instance_data[key].split('/').last if instance_data[key]
44
53
  end
@@ -40,7 +40,7 @@ module Facter
40
40
  output = Socket.gethostname || ''
41
41
  if output.empty? || output['0.0.0.0']
42
42
  begin
43
- require 'facter/util/resolvers/ffi/hostname'
43
+ require_relative '../../../facter/util/resolvers/ffi/hostname'
44
44
 
45
45
  output = Facter::Util::Resolvers::Ffi::Hostname.getffihostname
46
46
  rescue LoadError => e
@@ -76,7 +76,7 @@ module Facter
76
76
  end
77
77
 
78
78
  def retrieve_fqdn_for_host_with_ffi(host)
79
- require 'facter/util/resolvers/ffi/hostname'
79
+ require_relative '../../../facter/util/resolvers/ffi/hostname'
80
80
 
81
81
  fqdn = Facter::Util::Resolvers::Ffi::Hostname.getffiaddrinfo(host)
82
82
  log.debug("FFI getaddrinfo was called and it retrieved: #{fqdn}")
@@ -13,7 +13,7 @@ module Facter
13
13
  end
14
14
 
15
15
  def read_load_averages(fact_name)
16
- require 'facter/util/resolvers/ffi/load_averages'
16
+ require_relative '../../facter/util/resolvers/ffi/load_averages'
17
17
 
18
18
  log.debug('loading cpu load averages')
19
19
  @fact_list[:load_averages] = %w[1m 5m 15m].zip(Facter::Util::Resolvers::Ffi::LoadAverages
@@ -26,7 +26,7 @@ module Facter
26
26
  end
27
27
 
28
28
  def retrieve_vm(output)
29
- output.each_line { |line| REGEX_VALUES.each { |key, value| return value if line =~ /#{key}/ } }
29
+ output.each_line { |line| REGEX_VALUES.each { |key, value| return value if /#{key}/.match?(line) } }
30
30
 
31
31
  nil
32
32
  end
@@ -13,7 +13,7 @@ module Facter
13
13
  @fact_list.fetch(fact_name) { read_swap_memory(fact_name) }
14
14
  end
15
15
 
16
- def read_swap_memory(fact_name) # rubocop:disable Metrics/AbcSize
16
+ def read_swap_memory(fact_name)
17
17
  output = Facter::Core::Execution.execute('sysctl -n vm.swapusage', logger: log)
18
18
  data = output.match(/^total = ([\d.]+)M used = ([\d.]+)M free = ([\d.]+)M (\(encrypted\))$/)
19
19
 
@@ -71,7 +71,7 @@ module Facter
71
71
  end
72
72
 
73
73
  def extract_dhcp(interface_name, raw_data, parsed_interface_data)
74
- return unless raw_data =~ /status:\s+active/
74
+ return unless /status:\s+active/.match?(raw_data)
75
75
 
76
76
  result = Facter::Core::Execution.execute("ipconfig getoption #{interface_name} " \
77
77
  'server_identifier', logger: log)
@@ -29,7 +29,7 @@ module Facter
29
29
  parts = line.split("\s")
30
30
  next unless parts.size.equal?(2)
31
31
 
32
- next unless /^envID:/ =~ parts[0]
32
+ next unless /^envID:/.match?(parts[0])
33
33
 
34
34
  @fact_list[:id] = parts[1]
35
35
 
@@ -49,7 +49,7 @@ module Facter
49
49
 
50
50
  pairs = []
51
51
  content.each do |line|
52
- pairs << line.strip.delete('"').split('=', 2)
52
+ pairs << line.strip.delete('"').split('=', 2) unless line.start_with?('#')
53
53
  end
54
54
 
55
55
  pairs
@@ -63,13 +63,13 @@ module Facter
63
63
  def process_version_id
64
64
  return unless @fact_list[:version_id]
65
65
 
66
- @fact_list[:version_id] = "#{@fact_list[:version_id]}.0" unless @fact_list[:version_id] =~ /\./
66
+ @fact_list[:version_id] = "#{@fact_list[:version_id]}.0" unless /\./.match?(@fact_list[:version_id])
67
67
  end
68
68
 
69
69
  def process_id
70
70
  return unless @fact_list[:id]
71
71
 
72
- @fact_list[:id] = 'opensuse' if @fact_list[:id] =~ /opensuse/i
72
+ @fact_list[:id] = 'opensuse' if /opensuse/i.match?(@fact_list[:id])
73
73
  end
74
74
 
75
75
  def process_name
@@ -26,7 +26,7 @@ module Facter
26
26
  mountpoint = ''
27
27
 
28
28
  output.each_line do |line|
29
- next unless line =~ /selinuxfs/
29
+ next unless /selinuxfs/.match?(line)
30
30
 
31
31
  mountpoint = line.split("\s")[1]
32
32
  break
@@ -54,8 +54,8 @@ module Facter
54
54
  file_lines = Facter::Util::FileHelper.safe_readlines('/etc/selinux/config')
55
55
 
56
56
  file_lines.map do |line|
57
- @fact_list[:config_mode] = line.split('=').last.strip if line =~ /^SELINUX=/
58
- @fact_list[:config_policy] = line.split('=').last.strip if line =~ /^SELINUXTYPE=/
57
+ @fact_list[:config_mode] = line.split('=').last.strip if /^SELINUX=/.match?(line)
58
+ @fact_list[:config_policy] = line.split('=').last.strip if /^SELINUXTYPE=/.match?(line)
59
59
  end
60
60
 
61
61
  !file_lines.empty? ? true : false
@@ -15,9 +15,11 @@ module Facter
15
15
 
16
16
  def self.ioctl(call_const, pointer, address_family = AF_INET)
17
17
  fd = Ioctl.open_socket(address_family, SOCK_DGRAM, 0)
18
- result = ioctl_base(fd, call_const, pointer)
19
- Ioctl.close_socket(fd, 2)
20
- result
18
+ begin
19
+ ioctl_base(fd, call_const, pointer)
20
+ ensure
21
+ Ioctl.close_socket(fd, 2)
22
+ end
21
23
  end
22
24
  end
23
25
  end
@@ -18,7 +18,7 @@ module Facter
18
18
 
19
19
  file_content = Facter::Core::Execution.execute('/usr/sbin/sysdef', logger: log)
20
20
  files = file_content.split("\n").map do |line|
21
- line.split('/').last if line =~ /^fs\.*/
21
+ line.split('/').last if /^fs\.*/.match?(line)
22
22
  end
23
23
 
24
24
  @fact_list[:file_systems] = files.compact.sort.join(',')
@@ -21,7 +21,7 @@ module Facter
21
21
  end
22
22
  end
23
23
 
24
- def read_mounts(fact_name) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
24
+ def read_mounts(fact_name) # rubocop:disable Metrics/MethodLength
25
25
  @mounts = []
26
26
  @auto_home_paths = []
27
27
 
@@ -28,9 +28,9 @@ module Facter
28
28
  return unless xen_info
29
29
 
30
30
  xen_info = xen_info.to_s
31
- return 'xenu' if xen_info =~ /xen-domu/
32
- return 'xenhvm' if xen_info =~ /xen-hvm/
33
- return 'xen0' if xen_info =~ /xen-dom0/
31
+ return 'xenu' if /xen-domu/.match?(xen_info)
32
+ return 'xenhvm' if /xen-hvm/.match?(xen_info)
33
+ return 'xen0' if /xen-dom0/.match?(xen_info)
34
34
  end
35
35
 
36
36
  def determine_other(output)
@@ -38,8 +38,8 @@ module Facter
38
38
  other_vm = values.first
39
39
  return unless other_vm
40
40
 
41
- return 'zlinux' if other_vm =~ /ibm_systemz/
42
- return retrieve_vserver if other_vm =~ /linux_vserver/
41
+ return 'zlinux' if /ibm_systemz/.match?(other_vm)
42
+ return retrieve_vserver if /linux_vserver/.match?(other_vm)
43
43
  return (values - ['redhat']).first if values.include?('redhat')
44
44
 
45
45
  other_vm
@@ -53,7 +53,7 @@ module Facter
53
53
  parts = line.split("\s")
54
54
  next unless parts.size.equal?(2)
55
55
 
56
- next unless parts[0] =~ /^s_context:|^VxID:/
56
+ next unless /^s_context:|^VxID:/.match?(parts[0])
57
57
  return @fact_list[:vserver] = 'vserver_host' if parts[1] == '0'
58
58
 
59
59
  return @fact_list[:vserver] = 'vserver'
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'facter/resolvers/windows/ffi/ffi'
4
- require 'facter/resolvers/windows/ffi/system_info'
3
+ require_relative '../../../../facter/resolvers/windows/ffi/ffi'
4
+ require_relative '../../../../facter/resolvers/windows/ffi/system_info'
5
5
 
6
6
  module HardwareFFI
7
7
  extend FFI::Library
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'facter/resolvers/windows/ffi/ffi'
3
+ require_relative '../../../../facter/resolvers/windows/ffi/ffi'
4
4
 
5
5
  module IdentityFFI
6
6
  extend FFI::Library
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'facter/resolvers/windows/ffi/ffi'
4
- require 'facter/resolvers/windows/ffi/os_version_info_ex'
3
+ require_relative '../../../../facter/resolvers/windows/ffi/ffi'
4
+ require_relative '../../../../facter/resolvers/windows/ffi/os_version_info_ex'
5
5
 
6
6
  module KernelFFI
7
7
  extend FFI::Library
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'facter/resolvers/windows/ffi/ffi'
4
- require 'facter/resolvers/windows/ffi/performance_information'
3
+ require_relative '../../../../facter/resolvers/windows/ffi/ffi'
4
+ require_relative '../../../../facter/resolvers/windows/ffi/performance_information'
5
5
 
6
6
  module MemoryFFI
7
7
  extend FFI::Library
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'facter/resolvers/windows/ffi/ffi'
4
- require 'facter/resolvers/windows/ffi/network_utils'
5
- require 'facter/resolvers/windows/ffi/ip_adapter_addresses_lh'
3
+ require_relative '../../../../facter/resolvers/windows/ffi/ffi'
4
+ require_relative '../../../../facter/resolvers/windows/ffi/network_utils'
5
+ require_relative '../../../../facter/resolvers/windows/ffi/ip_adapter_addresses_lh'
6
6
 
7
7
  module NetworkingFFI
8
8
  extend FFI::Library
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'facter/resolvers/windows/ffi/ffi'
3
+ require_relative '../../../../facter/resolvers/windows/ffi/ffi'
4
4
 
5
5
  module System32FFI
6
6
  extend FFI::Library
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'facter/resolvers/windows/ffi/ffi'
3
+ require_relative '../../../../facter/resolvers/windows/ffi/ffi'
4
4
 
5
5
  module WinnlsFFI
6
6
  extend FFI::Library
@@ -13,7 +13,7 @@ module Facter
13
13
  end
14
14
 
15
15
  def read_hardware_information(fact_name)
16
- require 'facter/resolvers/windows/ffi/hardware_ffi'
16
+ require_relative '../../../facter/resolvers/windows/ffi/hardware_ffi'
17
17
 
18
18
  sys_info_ptr = FFI::MemoryPointer.new(SystemInfo.size)
19
19
  HardwareFFI::GetNativeSystemInfo(sys_info_ptr)
@@ -16,7 +16,7 @@ module Facter
16
16
  end
17
17
 
18
18
  def find_username
19
- require 'facter/resolvers/windows/ffi/identity_ffi'
19
+ require_relative '../../../facter/resolvers/windows/ffi/identity_ffi'
20
20
 
21
21
  size_ptr = FFI::MemoryPointer.new(:win32_ulong, 1)
22
22
  IdentityFFI::GetUserNameExW(NAME_SAM_COMPATIBLE, FFI::Pointer::NULL, size_ptr)
@@ -15,7 +15,7 @@ module Facter
15
15
  end
16
16
 
17
17
  def read_os_version_information(fact_name)
18
- require 'facter/resolvers/windows/ffi/kernel_ffi'
18
+ require_relative '../../../facter/resolvers/windows/ffi/kernel_ffi'
19
19
 
20
20
  ver_ptr = FFI::MemoryPointer.new(OsVersionInfoEx.size)
21
21
  ver = OsVersionInfoEx.new(ver_ptr)
@@ -15,7 +15,7 @@ module Facter
15
15
  end
16
16
 
17
17
  def read_performance_information
18
- require 'facter/resolvers/windows/ffi/memory_ffi'
18
+ require_relative '../../../facter/resolvers/windows/ffi/memory_ffi'
19
19
 
20
20
  state_ptr = FFI::MemoryPointer.new(PerformanceInformation.size)
21
21
  if MemoryFFI::GetPerformanceInfo(state_ptr, state_ptr.size) == FFI::WIN32FALSE
@@ -15,7 +15,7 @@ module Facter
15
15
  end
16
16
 
17
17
  def read_network_information(fact_name)
18
- require 'facter/resolvers/windows/ffi/networking_ffi'
18
+ require_relative '../../../facter/resolvers/windows/ffi/networking_ffi'
19
19
 
20
20
  size_ptr = FFI::MemoryPointer.new(NetworkingFFI::BUFFER_LENGTH)
21
21
  adapter_addresses = FFI::MemoryPointer.new(IpAdapterAddressesLh.size, NetworkingFFI::BUFFER_LENGTH)
@@ -15,7 +15,7 @@ module Facter
15
15
  end
16
16
 
17
17
  def retrieve_windows_binaries_path
18
- require 'facter/resolvers/windows/ffi/system32_ffi'
18
+ require_relative '../../../facter/resolvers/windows/ffi/system32_ffi'
19
19
 
20
20
  windows_path = ENV['SystemRoot']
21
21
 
@@ -31,7 +31,7 @@ module Facter
31
31
  end
32
32
 
33
33
  def codepage_from_api
34
- require 'facter/resolvers/windows/ffi/winnls_ffi'
34
+ require_relative '../../../facter/resolvers/windows/ffi/winnls_ffi'
35
35
  WinnlsFFI.GetACP.to_s
36
36
  end
37
37
  end
@@ -42,9 +42,9 @@ module Facter
42
42
  manufacturer = comp.Manufacturer
43
43
  if comp.Model =~ /^Virtual Machine/ && manufacturer =~ /^Microsoft/
44
44
  'hyperv'
45
- elsif manufacturer =~ /^Xen/
45
+ elsif /^Xen/.match?(manufacturer)
46
46
  'xen'
47
- elsif manufacturer =~ /^Amazon EC2/
47
+ elsif /^Amazon EC2/.match?(manufacturer)
48
48
  'kvm'
49
49
  else
50
50
  'physical'
@@ -45,7 +45,7 @@ module Facter
45
45
  return if output.empty?
46
46
 
47
47
  output.each_line do |line|
48
- next if line =~ /Domain-0|Name/
48
+ next if /Domain-0|Name/.match?(line)
49
49
 
50
50
  domain = line.match(/^([^\s]*)\s/)
51
51
  domain = domain&.captures&.first
@@ -3,7 +3,7 @@
3
3
  module Facter
4
4
  module Util
5
5
  module ApiDebugger
6
- def self.prepended(receiver) # rubocop:disable Metrics/AbcSize
6
+ def self.prepended(receiver)
7
7
  exclude, print_caller = parse_options(ENV['API_DEBUG'])
8
8
 
9
9
  receiver_methods = receiver.instance_methods - Object.methods