openfact 5.6.1 → 6.0.0

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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/lib/docs/generate.rb +1 -5
  3. data/lib/facter/custom_facts/core/aggregate.rb +2 -4
  4. data/lib/facter/custom_facts/core/execution/base.rb +10 -6
  5. data/lib/facter/custom_facts/core/execution/posix.rb +5 -5
  6. data/lib/facter/custom_facts/core/execution/windows.rb +5 -5
  7. data/lib/facter/custom_facts/core/execution.rb +3 -1
  8. data/lib/facter/custom_facts/core/resolvable.rb +4 -6
  9. data/lib/facter/custom_facts/util/collection.rb +0 -2
  10. data/lib/facter/custom_facts/util/config.rb +1 -1
  11. data/lib/facter/custom_facts/util/directory_loader.rb +2 -6
  12. data/lib/facter/custom_facts/util/fact.rb +2 -21
  13. data/lib/facter/custom_facts/util/parser.rb +5 -5
  14. data/lib/facter/custom_facts/util/resolution.rb +15 -8
  15. data/lib/facter/facts/aix/networking/interfaces.rb +1 -1
  16. data/lib/facter/facts/freebsd/ec2_metadata.rb +1 -1
  17. data/lib/facter/facts/freebsd/ec2_userdata.rb +1 -1
  18. data/lib/facter/facts/linux/az_metadata.rb +1 -1
  19. data/lib/facter/facts/linux/dhcp_servers.rb +1 -1
  20. data/lib/facter/facts/linux/ec2_metadata.rb +1 -1
  21. data/lib/facter/facts/linux/ec2_userdata.rb +1 -1
  22. data/lib/facter/facts/macosx/dhcp_servers.rb +1 -1
  23. data/lib/facter/facts/openbsd/ec2_metadata.rb +1 -1
  24. data/lib/facter/facts/openbsd/ec2_userdata.rb +1 -1
  25. data/lib/facter/facts/solaris/dhcp_servers.rb +1 -1
  26. data/lib/facter/facts/windows/az_metadata.rb +1 -1
  27. data/lib/facter/facts/windows/dhcp_servers.rb +1 -1
  28. data/lib/facter/facts/windows/ec2_metadata.rb +1 -1
  29. data/lib/facter/facts/windows/ec2_userdata.rb +1 -1
  30. data/lib/facter/framework/cli/cli.rb +6 -6
  31. data/lib/facter/framework/core/cache_manager.rb +3 -6
  32. data/lib/facter/framework/core/options/option_store.rb +1 -1
  33. data/lib/facter/framework/core/options.rb +1 -1
  34. data/lib/facter/framework/formatters/legacy_fact_formatter.rb +1 -1
  35. data/lib/facter/models/fact_collection.rb +1 -3
  36. data/lib/facter/resolvers/aix/ffi/ffi_helper.rb +1 -1
  37. data/lib/facter/resolvers/aix/mountpoints.rb +3 -3
  38. data/lib/facter/resolvers/aix/networking.rb +1 -1
  39. data/lib/facter/resolvers/az.rb +1 -1
  40. data/lib/facter/resolvers/ec2.rb +1 -1
  41. data/lib/facter/resolvers/gce.rb +1 -1
  42. data/lib/facter/resolvers/linux/docker_uptime.rb +1 -1
  43. data/lib/facter/resolvers/linux/hostname.rb +1 -1
  44. data/lib/facter/resolvers/linux/processors.rb +1 -1
  45. data/lib/facter/resolvers/macosx/mountpoints.rb +1 -0
  46. data/lib/facter/resolvers/mountpoints.rb +1 -1
  47. data/lib/facter/resolvers/networking.rb +1 -2
  48. data/lib/facter/resolvers/path.rb +1 -1
  49. data/lib/facter/resolvers/selinux.rb +1 -1
  50. data/lib/facter/resolvers/solaris/ffi/functions.rb +1 -0
  51. data/lib/facter/resolvers/solaris/mountpoints.rb +1 -0
  52. data/lib/facter/resolvers/solaris/networking.rb +1 -2
  53. data/lib/facter/resolvers/solaris/os_release.rb +1 -1
  54. data/lib/facter/resolvers/solaris/processors.rb +1 -1
  55. data/lib/facter/resolvers/uname.rb +3 -3
  56. data/lib/facter/resolvers/windows/processors.rb +6 -6
  57. data/lib/facter/resolvers/windows/ssh.rb +1 -1
  58. data/lib/facter/resolvers/windows/system32.rb +1 -1
  59. data/lib/facter/resolvers/windows/timezone.rb +1 -1
  60. data/lib/facter/resolvers/windows/uptime.rb +1 -2
  61. data/lib/facter/resolvers/windows/virtualization.rb +2 -3
  62. data/lib/facter/resolvers/windows/win_os_description.rb +1 -2
  63. data/lib/facter/util/api_debugger.rb +1 -1
  64. data/lib/facter/util/facts/posix/virtual_detector.rb +2 -2
  65. data/lib/facter/util/facts/unit_converter.rb +2 -2
  66. data/lib/facter/util/facts/uptime_parser.rb +9 -9
  67. data/lib/facter/util/macosx/system_profile_executor.rb +1 -1
  68. data/lib/facter/util/resolvers/ffi/hostname.rb +1 -0
  69. data/lib/facter/util/resolvers/ffi/load_averages.rb +1 -0
  70. data/lib/facter/util/resolvers/networking/networking.rb +3 -3
  71. data/lib/facter/version.rb +1 -1
  72. data/lib/facter.rb +1 -1
  73. metadata +9 -21
@@ -33,7 +33,7 @@ module Facter
33
33
 
34
34
  return if Libc.getkerninfo(KINFO_READ | KINFO_GET_AVENRUN, averages, averages_size, 0).negative?
35
35
 
36
- averages.read_array_of_long_long(3).map { |x| (x / 65_536.0) }
36
+ averages.read_array_of_long_long(3).map { |x| x / 65_536.0 }
37
37
  end
38
38
 
39
39
  def self.read_interfaces
@@ -31,11 +31,11 @@ module Facter
31
31
  def add_mount_points_fact(line)
32
32
  elem = line.split("\s")
33
33
 
34
- if line[0] != ' '
34
+ if line[0] == ' '
35
+ device = elem[0]
36
+ else
35
37
  server = elem.shift
36
38
  device = "#{server}:#{elem[0]}"
37
- else
38
- device = elem[0]
39
39
  end
40
40
 
41
41
  @fact_list[:mountpoints][elem[1]] = { device: device, filesystem: elem[2],
@@ -16,7 +16,7 @@ module Facter
16
16
  def read_netstat(fact_name)
17
17
  @fact_list[:interfaces] = {}
18
18
  output = Facter::Core::Execution.execute('netstat -rn', logger: log)
19
- output = output.each_line.select { |line| (line =~ /\s\s[0-9]+.[0-9]+.[0-9]+.[0-9]+|\s\s.*:[0-9a-f]+/) }
19
+ output = output.each_line.select { |line| line =~ /\s\s[0-9]+.[0-9]+.[0-9]+.[0-9]+|\s\s.*:[0-9a-f]+/ }
20
20
  @fact_list[:interfaces] = load_interfaces
21
21
 
22
22
  populate_with_mtu_and_mac!(@fact_list[:interfaces])
@@ -30,7 +30,7 @@ module Facter
30
30
  end
31
31
 
32
32
  def determine_session_timeout
33
- session_env = ENV['AZ_SESSION_TIMEOUT']
33
+ session_env = ENV.fetch('AZ_SESSION_TIMEOUT', nil)
34
34
  session_env ? session_env.to_i : AZ_SESSION_TIMEOUT
35
35
  end
36
36
  end
@@ -56,7 +56,7 @@ module Facter
56
56
  end
57
57
 
58
58
  def determine_session_timeout
59
- session_env = ENV['EC2_SESSION_TIMEOUT']
59
+ session_env = ENV.fetch('EC2_SESSION_TIMEOUT', nil)
60
60
  session_env ? session_env.to_i : EC2_SESSION_TIMEOUT
61
61
  end
62
62
 
@@ -6,7 +6,7 @@ module Facter
6
6
  init_resolver
7
7
 
8
8
  METADATA_URL = 'http://metadata.google.internal/computeMetadata/v1/?recursive=true&alt=json'
9
- HEADERS = { "Metadata-Flavor": 'Google', "Accept": 'application/json' }.freeze
9
+ HEADERS = { 'Metadata-Flavor': 'Google', Accept: 'application/json' }.freeze
10
10
 
11
11
  class << self
12
12
  private
@@ -36,7 +36,7 @@ module Facter
36
36
  end
37
37
 
38
38
  def convert_to_seconds(days, hours, minutes, seconds)
39
- days * 24 * 3600 + hours * 3600 + minutes * 60 + seconds
39
+ (days * 24 * 3600) + (hours * 3600) + (minutes * 60) + seconds
40
40
  end
41
41
  end
42
42
  end
@@ -50,7 +50,7 @@ module Facter
50
50
  end
51
51
 
52
52
  log.debug("Tried to retrieve hostname and got: #{output}")
53
- output unless output&.empty?
53
+ output unless output && output.empty?
54
54
  end
55
55
 
56
56
  def parse_fqdn(output)
@@ -70,7 +70,7 @@ module Facter
70
70
  .select { |dir| dir =~ /cpu[0-9]+$/ }
71
71
  .select { |dir| File.exist?("/sys/devices/system/cpu/#{dir}/topology/physical_package_id") }
72
72
  .map do |dir|
73
- Facter::Util::FileHelper.safe_read("/sys/devices/system/cpu/#{dir}/topology/physical_package_id").strip
73
+ Facter::Util::FileHelper.safe_read("/sys/devices/system/cpu/#{dir}/topology/physical_package_id").strip
74
74
  end
75
75
  .uniq.count
76
76
  end
@@ -5,6 +5,7 @@ module Facter
5
5
  module Macosx
6
6
  class Mountpoints < BaseResolver
7
7
  include Facter::Util::Resolvers::FilesystemHelper
8
+
8
9
  init_resolver
9
10
 
10
11
  class << self
@@ -48,7 +48,7 @@ module Facter
48
48
  mount = {}
49
49
  get_mount_data(file_system, mount)
50
50
 
51
- if mount[:path] =~ %r{^/(proc|sys)} && mount[:filesystem] != 'tmpfs' || mount[:filesystem] == 'autofs'
51
+ if (mount[:path] =~ %r{^/(proc|sys)} && mount[:filesystem] != 'tmpfs') || mount[:filesystem] == 'autofs'
52
52
  next
53
53
  end
54
54
 
@@ -97,8 +97,7 @@ module Facter
97
97
  def extract_dhcp(interface_name, raw_data, parsed_interface_data)
98
98
  return unless /status:\s+active/.match?(raw_data)
99
99
 
100
- result = Facter::Core::Execution.execute("ipconfig getoption #{interface_name} " \
101
- 'server_identifier', logger: log)
100
+ result = Facter::Core::Execution.execute("ipconfig getoption #{interface_name} server_identifier", logger: log)
102
101
 
103
102
  parsed_interface_data[:dhcp] = result.match(/^[\d.a-f:\s]+$/)&.to_s&.strip unless result.empty?
104
103
  end
@@ -13,7 +13,7 @@ module Facter
13
13
  end
14
14
 
15
15
  def read_path_from_env
16
- @fact_list[:path] = ENV['PATH']
16
+ @fact_list[:path] = ENV.fetch('PATH', nil)
17
17
  end
18
18
  end
19
19
  end
@@ -58,7 +58,7 @@ module Facter
58
58
  @fact_list[:config_policy] = line.split('=').last.strip if /^SELINUXTYPE=/.match?(line)
59
59
  end
60
60
 
61
- !file_lines.empty? ? true : false
61
+ file_lines.empty? ? false : true
62
62
  end
63
63
  end
64
64
  end
@@ -6,6 +6,7 @@ module Facter
6
6
  module FFI
7
7
  module Ioctl
8
8
  extend ::FFI::Library
9
+
9
10
  ffi_lib ::FFI::Library::LIBC, 'socket'
10
11
 
11
12
  attach_function :ioctl_base, :ioctl, %i[int int pointer], :int
@@ -5,6 +5,7 @@ module Facter
5
5
  module Solaris
6
6
  class Mountpoints < BaseResolver
7
7
  include Facter::Util::Resolvers::FilesystemHelper
8
+
8
9
  init_resolver
9
10
 
10
11
  class << self
@@ -55,8 +55,7 @@ module Facter
55
55
  ioctl = FFI::Ioctl.ioctl(FFI::SIOCGARP, arp, lifreq.ss_family)
56
56
 
57
57
  if ioctl == -1
58
- @log.debug("Could not read MAC address for interface #{lifreq.name} "\
59
- "error code is: #{::FFI::LastError.error}")
58
+ @log.debug("Could not read MAC address for interface #{lifreq.name} error code is: #{::FFI::LastError.error}")
60
59
  end
61
60
 
62
61
  mac = arp.sa_data_to_mac
@@ -35,7 +35,7 @@ module Facter
35
35
  def search_for_os_version(regex_pattern, text)
36
36
  result = text.match(regex_pattern)
37
37
  major, minor = result.captures if result
38
- minor = regex_pattern == /Solaris (\d+)/ ? '0' : minor
38
+ minor = '0' if regex_pattern == /Solaris (\d+)/
39
39
  [major, minor] if major && minor
40
40
  end
41
41
  end
@@ -24,7 +24,7 @@ module Facter
24
24
  end
25
25
 
26
26
  def parse_output(output)
27
- @fact_list[:logical_count] = output.scan(/module/).size
27
+ @fact_list[:logical_count] = output.scan('module').size
28
28
  @fact_list[:physical_count] = output.scan(/chip_id .*/).uniq.size
29
29
  # .scan(//current_clock_Hz\s+(\d+)/) returns [['123']] (or [['123'], ['456']] if there are more matches)
30
30
  @fact_list[:speed] = output.scan(/current_clock_Hz\s+(\d+)/).first&.first&.to_i
@@ -28,7 +28,9 @@ module Facter
28
28
  def build_fact_list(output)
29
29
  uname_results = output.split("\n")
30
30
 
31
- if !uname_results.empty?
31
+ if uname_results.empty?
32
+ log.warn('Request to uname returned no output. Uname related facts are not populated.')
33
+ else
32
34
  @fact_list[:machine],
33
35
  @fact_list[:nodename],
34
36
  @fact_list[:processor],
@@ -39,8 +41,6 @@ module Facter
39
41
  # Fall back to -m (machine), which is the procedure suggested by the
40
42
  # uutils/coreutils developers.
41
43
  @fact_list[:processor] = @fact_list[:machine] if @fact_list[:processor] == 'unknown'
42
- else
43
- log.warn('Request to uname returned no output. Uname related facts are not populated.')
44
44
  end
45
45
  end
46
46
  end
@@ -19,14 +19,14 @@ module Facter
19
19
 
20
20
  def read_fact_from_win32_processor(fact_name)
21
21
  win = Facter::Util::Windows::Win32Ole.new
22
- query_string = 'SELECT Name,'\
23
- 'Architecture,'\
24
- 'NumberOfLogicalProcessors,'\
25
- 'NumberOfCores FROM Win32_Processor'
22
+ query_string = 'SELECT Name,' \
23
+ 'Architecture,' \
24
+ 'NumberOfLogicalProcessors,' \
25
+ 'NumberOfCores FROM Win32_Processor'
26
26
  proc = win.exec_query(query_string)
27
27
  unless proc
28
- log.debug 'WMI query returned no results'\
29
- 'for Win32_Processor with values Name, Architecture and NumberOfLogicalProcessors.'
28
+ log.debug 'WMI query returned no results' \
29
+ 'for Win32_Processor with values Name, Architecture and NumberOfLogicalProcessors.'
30
30
  return
31
31
  end
32
32
  result = iterate_proc(proc)
@@ -33,7 +33,7 @@ module Facter
33
33
  end
34
34
 
35
35
  def determine_ssh_dir
36
- progdata_dir = ENV['programdata']
36
+ progdata_dir = ENV['programdata'] # rubocop:disable Style/FetchEnvVar
37
37
 
38
38
  return if !progdata_dir || progdata_dir.empty?
39
39
 
@@ -15,7 +15,7 @@ module Facter
15
15
  def retrieve_windows_binaries_path
16
16
  require_relative '../../../facter/resolvers/windows/ffi/system32_ffi'
17
17
 
18
- windows_path = ENV['SystemRoot']
18
+ windows_path = ENV['SystemRoot'] # rubocop:disable Style/FetchEnvVar
19
19
 
20
20
  if !windows_path || windows_path.empty?
21
21
  @log.debug 'Unable to find correct value for SystemRoot enviroment variable'
@@ -22,7 +22,7 @@ module Facter
22
22
 
23
23
  def codepage
24
24
  result = codepage_from_api
25
- result&.empty? ? codepage_from_registry : result
25
+ result && result.empty? ? codepage_from_registry : result
26
26
  end
27
27
 
28
28
  def codepage_from_registry
@@ -19,8 +19,7 @@ module Facter
19
19
  win = Facter::Util::Windows::Win32Ole.new
20
20
  opsystem = win.return_first('SELECT LocalDateTime,LastBootUpTime FROM Win32_OperatingSystem')
21
21
  unless opsystem
22
- @log.debug 'WMI query returned no results'\
23
- 'for Win32_OperatingSystem with values LocalDateTime and LastBootUpTime.'
22
+ @log.debug 'WMI query returned no results for Win32_OperatingSystem with values LocalDateTime and LastBootUpTime.'
24
23
  return
25
24
  end
26
25
 
@@ -30,8 +30,7 @@ module Facter
30
30
  win = Facter::Util::Windows::Win32Ole.new
31
31
  comp = win.exec_query('SELECT Manufacturer,Model,OEMStringArray FROM Win32_ComputerSystem')
32
32
  unless comp
33
- @log.debug 'WMI query returned no results for Win32_ComputerSystem with values'\
34
- ' Manufacturer, Model and OEMStringArray.'
33
+ @log.debug 'WMI query returned no results for Win32_ComputerSystem with values Manufacturer, Model and OEMStringArray.'
35
34
  return
36
35
  end
37
36
 
@@ -49,7 +48,7 @@ module Facter
49
48
  'hyperv'
50
49
  elsif /^Xen/.match?(manufacturer)
51
50
  'xen'
52
- elsif /^Amazon EC2/.match?(manufacturer)
51
+ elsif /^(Amazon EC2|QEMU)/.match?(manufacturer)
53
52
  'kvm'
54
53
  else
55
54
  'physical'
@@ -16,8 +16,7 @@ module Facter
16
16
  win = Facter::Util::Windows::Win32Ole.new
17
17
  op_sys = win.return_first('SELECT ProductType,OtherTypeDescription FROM Win32_OperatingSystem')
18
18
  unless op_sys
19
- @log.debug 'WMI query returned no results for Win32_OperatingSystem'\
20
- 'with values ProductType and OtherTypeDescription.'
19
+ @log.debug 'WMI query returned no results for Win32_OperatingSystem with values ProductType and OtherTypeDescription.'
21
20
  return
22
21
  end
23
22
  @fact_list[:consumerrel] = (op_sys.ProductType == 1)
@@ -4,7 +4,7 @@ module Facter
4
4
  module Util
5
5
  module ApiDebugger
6
6
  def self.prepended(receiver)
7
- exclude, print_caller = parse_options(ENV['API_DEBUG'])
7
+ exclude, print_caller = parse_options(ENV.fetch('API_DEBUG', nil))
8
8
 
9
9
  receiver_methods = receiver.instance_methods - Object.methods
10
10
  receiver_methods.each do |meth|
@@ -8,8 +8,8 @@ module Facter
8
8
  class << self
9
9
  def platform
10
10
  @fact_value ||= # rubocop:disable Naming/MemoizedInstanceVariableName
11
- check_docker_lxc || check_freebsd || check_openbsd || check_gce || check_illumos_lx || \
12
- retrieve_from_virt_what || check_vmware || check_open_vz || check_vserver || \
11
+ check_docker_lxc || check_freebsd || check_openbsd || check_gce || check_illumos_lx ||
12
+ retrieve_from_virt_what || check_vmware || check_open_vz || check_vserver ||
13
13
  check_xen || check_other_facts || check_lspci || 'physical'
14
14
  end
15
15
 
@@ -42,7 +42,7 @@ module Facter
42
42
  def determine_exponent(bytes)
43
43
  prefix = %w[KiB MiB GiB TiB PiB EiB]
44
44
  exp = (Math.log2(bytes) / 10.0).floor
45
- converted_number = (100.0 * (bytes / 1024.0**exp)).round / 100.0
45
+ converted_number = (100.0 * (bytes / (1024.0**exp))).round / 100.0
46
46
 
47
47
  if (converted_number - 1024.0).abs < Float::EPSILON
48
48
  exp += 1
@@ -57,7 +57,7 @@ module Facter
57
57
  def determine_metric_prefix(num)
58
58
  metric_prefix = { 0 => '', 3 => 'k', 6 => 'M', 9 => 'G', 12 => 'T' }
59
59
  power = Math.log10(num).floor
60
- display_exponent = power - power % 3
60
+ display_exponent = power - (power % 3)
61
61
  coefficient = power.zero? ? num.to_f : num.fdiv(10**display_exponent)
62
62
  [coefficient, metric_prefix[display_exponent]]
63
63
  end
@@ -75,23 +75,23 @@ module Facter
75
75
  def calculate_days_hours_minutes(output)
76
76
  return unless output =~ /(\d+) day(?:s|\(s\))?,?\s+(\d+):-?(\d+)/
77
77
 
78
- SECS_IN_A_DAY * Regexp.last_match(1).to_i +
79
- SECS_IN_AN_HOUR * Regexp.last_match(2).to_i +
80
- SECS_IN_A_MINUTE * Regexp.last_match(3).to_i
78
+ (SECS_IN_A_DAY * Regexp.last_match(1).to_i) +
79
+ (SECS_IN_AN_HOUR * Regexp.last_match(2).to_i) +
80
+ (SECS_IN_A_MINUTE * Regexp.last_match(3).to_i)
81
81
  end
82
82
 
83
83
  def calculate_days_hours(output)
84
84
  return unless output =~ /(\d+) day(?:s|\(s\))?,\s+(\d+) hr(?:s|\(s\))?,/
85
85
 
86
- SECS_IN_A_DAY * Regexp.last_match(1).to_i +
87
- SECS_IN_AN_HOUR * Regexp.last_match(2).to_i
86
+ (SECS_IN_A_DAY * Regexp.last_match(1).to_i) +
87
+ (SECS_IN_AN_HOUR * Regexp.last_match(2).to_i)
88
88
  end
89
89
 
90
90
  def calculate_days_minutes(output)
91
91
  return unless output =~ /(\d+) day(?:s|\(s\))?,\s+(\d+) min(?:s|\(s\))?,/
92
92
 
93
- SECS_IN_A_DAY * Regexp.last_match(1).to_i +
94
- SECS_IN_A_MINUTE * Regexp.last_match(2).to_i
93
+ (SECS_IN_A_DAY * Regexp.last_match(1).to_i) +
94
+ (SECS_IN_A_MINUTE * Regexp.last_match(2).to_i)
95
95
  end
96
96
 
97
97
  def calculate_days(output)
@@ -106,8 +106,8 @@ module Facter
106
106
  def calculate_hours_minutes(output)
107
107
  return unless output =~ /up\s+(\d+):-?(\d+),/
108
108
 
109
- SECS_IN_AN_HOUR * Regexp.last_match(1).to_i +
110
- SECS_IN_A_MINUTE * Regexp.last_match(2).to_i
109
+ (SECS_IN_AN_HOUR * Regexp.last_match(1).to_i) +
110
+ (SECS_IN_A_MINUTE * Regexp.last_match(2).to_i)
111
111
  end
112
112
 
113
113
  def calculate_hours(output)
@@ -28,7 +28,7 @@ module Facter
28
28
 
29
29
  def normalize_keys(system_profiler_hash)
30
30
  system_profiler_hash.transform_keys do |k|
31
- k.downcase.tr(' ', '_').delete("\(\)").to_sym
31
+ k.downcase.tr(' ', '_').delete('()').to_sym
32
32
  end.to_h
33
33
  end
34
34
  end
@@ -21,6 +21,7 @@ module Facter
21
21
  HOST_NAME_MAX = 64
22
22
 
23
23
  extend ::FFI::Library
24
+
24
25
  ffi_lib ::FFI::Library::LIBC
25
26
 
26
27
  attach_function :getaddrinfo, %i[string string pointer pointer], :int
@@ -8,6 +8,7 @@ module Facter
8
8
  module Ffi
9
9
  module LoadAverages
10
10
  extend ::FFI::Library
11
+
11
12
  ffi_lib ::FFI::Library::LIBC
12
13
 
13
14
  attach_function :getloadavg, %i[pointer int], :int
@@ -117,9 +117,9 @@ module Facter
117
117
  binding = find_valid_binding(bindings)
118
118
  ip_protocol_type = ipv4_type ? '' : '6'
119
119
 
120
- values["ip#{ip_protocol_type}".to_sym] = binding[:address]
121
- values["netmask#{ip_protocol_type}".to_sym] = binding[:netmask]
122
- values["network#{ip_protocol_type}".to_sym] = binding[:network]
120
+ values[:"ip#{ip_protocol_type}"] = binding[:address]
121
+ values[:"netmask#{ip_protocol_type}"] = binding[:netmask]
122
+ values[:"network#{ip_protocol_type}"] = binding[:network]
123
123
  values[:scope6] = get_scope(binding[:address]) unless ipv4_type
124
124
  end
125
125
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Facter
4
- VERSION = '5.6.1' unless defined?(VERSION)
4
+ VERSION = '6.0.0' unless defined?(VERSION)
5
5
  end
data/lib/facter.rb CHANGED
@@ -530,7 +530,7 @@ module Facter
530
530
  resolved_facts = Facter::FactManager.instance.resolve_facts(user_query)
531
531
  user_querie = resolved_facts.uniq(&:user_query).map(&:user_query).first
532
532
 
533
- resolved_facts.reject! { |fact| fact.type == :custom && fact.value.nil? } if user_querie&.empty?
533
+ resolved_facts.reject! { |fact| fact.type == :custom && fact.value.nil? } if user_querie && user_querie.empty?
534
534
 
535
535
  resolved_facts
536
536
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openfact
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.6.1
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenVox Project
@@ -87,20 +87,14 @@ dependencies:
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '1.28'
91
- - - "<"
92
- - !ruby/object:Gem::Version
93
- version: '1.85'
90
+ version: 1.88.0
94
91
  type: :development
95
92
  prerelease: false
96
93
  version_requirements: !ruby/object:Gem::Requirement
97
94
  requirements:
98
95
  - - "~>"
99
96
  - !ruby/object:Gem::Version
100
- version: '1.28'
101
- - - "<"
102
- - !ruby/object:Gem::Version
103
- version: '1.85'
97
+ version: 1.88.0
104
98
  - !ruby/object:Gem::Dependency
105
99
  name: rubocop-performance
106
100
  requirement: !ruby/object:Gem::Requirement
@@ -285,22 +279,16 @@ dependencies:
285
279
  name: thor
286
280
  requirement: !ruby/object:Gem::Requirement
287
281
  requirements:
288
- - - ">="
289
- - !ruby/object:Gem::Version
290
- version: 1.0.1
291
- - - "<"
282
+ - - "~>"
292
283
  - !ruby/object:Gem::Version
293
- version: '2'
284
+ version: '1.5'
294
285
  type: :runtime
295
286
  prerelease: false
296
287
  version_requirements: !ruby/object:Gem::Requirement
297
288
  requirements:
298
- - - ">="
299
- - !ruby/object:Gem::Version
300
- version: 1.0.1
301
- - - "<"
289
+ - - "~>"
302
290
  - !ruby/object:Gem::Version
303
- version: '2'
291
+ version: '1.5'
304
292
  - !ruby/object:Gem::Dependency
305
293
  name: tsort
306
294
  requirement: !ruby/object:Gem::Requirement
@@ -1292,14 +1280,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1292
1280
  requirements:
1293
1281
  - - ">="
1294
1282
  - !ruby/object:Gem::Version
1295
- version: '2.5'
1283
+ version: '3.0'
1296
1284
  required_rubygems_version: !ruby/object:Gem::Requirement
1297
1285
  requirements:
1298
1286
  - - ">="
1299
1287
  - !ruby/object:Gem::Version
1300
1288
  version: '0'
1301
1289
  requirements: []
1302
- rubygems_version: 4.0.6
1290
+ rubygems_version: 4.0.16
1303
1291
  specification_version: 4
1304
1292
  summary: OpenFact, a system inventory tool
1305
1293
  test_files: []