facter 4.3.1 → 4.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) 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 +2 -1
  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/file_loader.rb +23 -24
  7. data/lib/facter/custom_facts/core/legacy_facter.rb +1 -1
  8. data/lib/facter/custom_facts/util/normalization.rb +8 -23
  9. data/lib/facter/custom_facts/util/windows_root.rb +1 -1
  10. data/lib/facter/facts/debian/architecture.rb +1 -1
  11. data/lib/facter/facts/linux/hypervisors/kvm.rb +2 -2
  12. data/lib/facter/facts/linux/os/architecture.rb +1 -1
  13. data/lib/facter/facts/windows/hypervisors/kvm.rb +2 -2
  14. data/lib/facter/framework/cli/cli_launcher.rb +3 -3
  15. data/lib/facter/framework/config/fact_groups.rb +2 -2
  16. data/lib/facter/framework/core/fact_loaders/fact_loader.rb +1 -1
  17. data/lib/facter/framework/core/file_loader.rb +893 -38
  18. data/lib/facter/framework/detector/os_hierarchy.rb +1 -1
  19. data/lib/facter/framework/formatters/legacy_fact_formatter.rb +1 -1
  20. data/lib/facter/framework/formatters/yaml_fact_formatter.rb +2 -2
  21. data/lib/facter/patches/sysfilesystem/sys/statvfs.rb +4 -4
  22. data/lib/facter/resolvers/aix/architecture.rb +1 -1
  23. data/lib/facter/resolvers/aix/filesystem.rb +1 -1
  24. data/lib/facter/resolvers/aix/hardware.rb +1 -1
  25. data/lib/facter/resolvers/aix/memory.rb +1 -1
  26. data/lib/facter/resolvers/aix/mountpoints.rb +2 -2
  27. data/lib/facter/resolvers/aix/networking.rb +1 -1
  28. data/lib/facter/resolvers/aix/partitions.rb +2 -2
  29. data/lib/facter/resolvers/bsd/processors.rb +1 -1
  30. data/lib/facter/resolvers/freebsd/processors.rb +2 -2
  31. data/lib/facter/resolvers/linux/hostname.rb +2 -2
  32. data/lib/facter/resolvers/load_averages.rb +1 -1
  33. data/lib/facter/resolvers/lspci.rb +1 -1
  34. data/lib/facter/resolvers/networking.rb +1 -1
  35. data/lib/facter/resolvers/open_vz.rb +1 -1
  36. data/lib/facter/resolvers/os_release.rb +2 -2
  37. data/lib/facter/resolvers/selinux.rb +3 -3
  38. data/lib/facter/resolvers/solaris/filesystems.rb +1 -1
  39. data/lib/facter/resolvers/virt_what.rb +6 -6
  40. data/lib/facter/resolvers/windows/ffi/hardware_ffi.rb +2 -2
  41. data/lib/facter/resolvers/windows/ffi/identity_ffi.rb +1 -1
  42. data/lib/facter/resolvers/windows/ffi/kernel_ffi.rb +2 -2
  43. data/lib/facter/resolvers/windows/ffi/memory_ffi.rb +2 -2
  44. data/lib/facter/resolvers/windows/ffi/networking_ffi.rb +3 -3
  45. data/lib/facter/resolvers/windows/ffi/system32_ffi.rb +1 -1
  46. data/lib/facter/resolvers/windows/ffi/winnls_ffi.rb +1 -1
  47. data/lib/facter/resolvers/windows/hardware_architecture.rb +1 -1
  48. data/lib/facter/resolvers/windows/identity.rb +1 -1
  49. data/lib/facter/resolvers/windows/kernel.rb +1 -1
  50. data/lib/facter/resolvers/windows/memory.rb +1 -1
  51. data/lib/facter/resolvers/windows/networking.rb +1 -1
  52. data/lib/facter/resolvers/windows/system32.rb +1 -1
  53. data/lib/facter/resolvers/windows/timezone.rb +1 -1
  54. data/lib/facter/resolvers/windows/virtualization.rb +2 -2
  55. data/lib/facter/resolvers/xen.rb +1 -1
  56. data/lib/facter/util/facts/windows_release_finder.rb +2 -2
  57. data/lib/facter/util/linux/dhcp.rb +1 -1
  58. data/lib/facter/util/utils.rb +1 -1
  59. data/lib/facter/version.rb +1 -1
  60. data/lib/facter.rb +15 -6
  61. metadata +7 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d3dd94ae85f9b9327eac3cbcc63794f202f4eea27d7b8c2c80b8a5b354aca94a
4
- data.tar.gz: a179d9b63edb75738a22d5ed2061c0b2b4313da80dad43af2ad9eb4b1e3bee27
3
+ metadata.gz: a329a8e0a2281e2640784c89bd374f16a2cb75dbbde5a19b5608340371d92601
4
+ data.tar.gz: 9374fd76feb4d7d583b566e6f5c6daffb613fff8c6adeca0fffd9201e6dd676c
5
5
  SHA512:
6
- metadata.gz: 33fd39d071e0033316518b51310290694d869c7b8f3b7d006c66f20629999cbcc549df6ed58b28d46c092664ba3a89c7f5813117bf5bff50c555202e79c99476
7
- data.tar.gz: c824262cd5cdcb601b203bc4675c832348dce77ca9867f008a23cb8f8677812ab858cc3f11012b80deec949515d6419876b5480d25587e2a7df52c9df1c15540
6
+ metadata.gz: 7c1ef71b91e17ba0441a4a56c10fcf1eaea3c09e99754e9a42035e3ddbf41de82268d49b9debef5096eed6673b499b6fd3368473c7cdeaddc0b8ab0a3d0ad4a0
7
+ data.tar.gz: 7c431855c6d26c5bda0f17f647d80c7c593c455ad8bad56aa0b9d5077bb4d59ea0f34a53b512cfe3569d13c46ff477e887e14c45e01d9e55044e0b3311257d81
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'facter/framework/cli/cli_launcher'
3
+ require_relative '../facter/framework/cli/cli_launcher'
4
4
 
5
5
  cli = Facter::Cli.new([])
6
6
 
@@ -106,6 +106,7 @@ module Facter
106
106
  raise Facter::Core::Execution::ExecutionFailure.new, message
107
107
  end
108
108
 
109
+ out.force_encoding(Encoding.default_external) unless out.valid_encoding?
109
110
  [out.strip, stderr]
110
111
  end
111
112
 
@@ -140,7 +141,7 @@ module Facter
140
141
 
141
142
  def builtin_command?(command)
142
143
  output, _status = Open3.capture2("type #{command}")
143
- output.chomp =~ /builtin/ ? true : false
144
+ /builtin/.match?(output.chomp) ? true : false
144
145
  end
145
146
  end
146
147
  end
@@ -44,7 +44,7 @@ module Facter
44
44
 
45
45
  return unless exe && (expanded = which(exe))
46
46
 
47
- expanded = "'#{expanded}'" if expanded =~ /\s/
47
+ expanded = "'#{expanded}'" if /\s/.match?(expanded)
48
48
  expanded << " #{args}" if args
49
49
 
50
50
  expanded
@@ -11,7 +11,7 @@ module Facter
11
11
  def which(bin)
12
12
  # `echo` is allowed for facter 3.x compatibility, otherwise
13
13
  # all commands much be found on the PATH or absolute.
14
- return bin if /^echo$/i =~ bin
14
+ return bin if /^echo$/i.match?(bin)
15
15
 
16
16
  if absolute_path?(bin)
17
17
  return bin if File.executable?(bin)
@@ -56,7 +56,7 @@ module Facter
56
56
 
57
57
  return unless exe && (expanded = which(exe))
58
58
 
59
- expanded = "\"#{expanded}\"" if expanded =~ /\s+/
59
+ expanded = "\"#{expanded}\"" if /\s+/.match?(expanded)
60
60
  expanded << " #{args}" if args
61
61
 
62
62
  expanded
@@ -1,28 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'facter/custom_facts/core/legacy_facter'
4
- require 'facter/custom_facts/util/fact'
5
- require 'facter/custom_facts/util/collection'
6
- require 'facter/custom_facts/util/fact'
7
- require 'facter/custom_facts/util/loader'
8
- require 'facter/custom_facts/core/execution/base'
9
- require 'facter/custom_facts/core/execution/windows'
10
- require 'facter/custom_facts/core/execution/posix'
11
- require 'facter/custom_facts/util/values'
12
- require 'facter/custom_facts/util/confine'
3
+ require_relative '../../../facter/custom_facts/util/fact'
4
+ require_relative '../../../facter/custom_facts/util/collection'
5
+ require_relative '../../../facter/custom_facts/util/fact'
6
+ require_relative '../../../facter/custom_facts/util/loader'
7
+ require_relative '../../../facter/custom_facts/core/execution/base'
8
+ require_relative '../../../facter/custom_facts/core/execution/windows'
9
+ require_relative '../../../facter/custom_facts/core/execution/posix'
10
+ require_relative '../../../facter/custom_facts/util/values'
11
+ require_relative '../../../facter/custom_facts/util/confine'
13
12
 
14
- require 'facter/custom_facts/util/config'
13
+ require_relative '../../../facter/custom_facts/util/config'
15
14
 
16
- require 'facter/custom_facts/util/normalization'
17
- require 'facter/custom_facts/core/execution'
18
- require 'facter/custom_facts/core/resolvable'
19
- require 'facter/custom_facts/core/suitable'
20
- require 'facter/custom_facts/util/resolution'
21
- require 'facter/custom_facts/core/directed_graph'
22
- require 'facter/custom_facts/core/resolvable'
23
- require 'facter/custom_facts/core/aggregate'
24
- require 'facter/custom_facts/util/composite_loader'
25
- require 'facter/custom_facts/util/parser'
26
- require 'facter/custom_facts/util/directory_loader'
27
- require 'facter/custom_facts/util/nothing_loader'
28
- require 'facter/custom_facts/util/nothing_loader'
15
+ require_relative '../../../facter/custom_facts/util/normalization'
16
+ require_relative '../../../facter/custom_facts/core/execution'
17
+ require_relative '../../../facter/custom_facts/core/resolvable'
18
+ require_relative '../../../facter/custom_facts/core/suitable'
19
+ require_relative '../../../facter/custom_facts/util/resolution'
20
+ require_relative '../../../facter/custom_facts/core/directed_graph'
21
+ require_relative '../../../facter/custom_facts/core/resolvable'
22
+ require_relative '../../../facter/custom_facts/core/aggregate'
23
+ require_relative '../../../facter/custom_facts/util/composite_loader'
24
+ require_relative '../../../facter/custom_facts/util/parser'
25
+ require_relative '../../../facter/custom_facts/util/directory_loader'
26
+ require_relative '../../../facter/custom_facts/util/nothing_loader'
27
+ require_relative '../../../facter/custom_facts/util/nothing_loader'
@@ -18,7 +18,7 @@
18
18
 
19
19
  require 'pathname'
20
20
 
21
- require 'facter/custom_facts/core/file_loader'
21
+ require_relative '../../../facter/custom_facts/core/file_loader'
22
22
 
23
23
  # Functions as a hash of 'facts' about your system system, such as MAC
24
24
  # address, IP address, architecture, etc.
@@ -38,11 +38,7 @@ module LegacyFacter
38
38
  #
39
39
  # Attempt to normalize and validate the given string.
40
40
  #
41
- # On Ruby 1.8 the string is checked by stripping out all non UTF-8
42
- # characters and comparing the converted string to the original. If they
43
- # do not match then the string is considered invalid.
44
- #
45
- # On Ruby 1.9+, the string is validate by checking that the string encoding
41
+ # The string is validated by checking that the string encoding
46
42
  # is UTF-8 and that the string content matches the encoding. If the string
47
43
  # is not an expected encoding then it is converted to UTF-8.
48
44
  #
@@ -51,27 +47,16 @@ module LegacyFacter
51
47
  # @param value [String]
52
48
  # @return [void]
53
49
 
54
- if RUBY_VERSION =~ /^1\.8/
55
- require 'iconv'
56
-
57
- def normalize_string(value)
58
- converted = Iconv.conv('UTF-8//IGNORE', 'UTF-8', value)
59
- raise NormalizationError, "String #{value.inspect} is not valid UTF-8" if converted != value
50
+ def normalize_string(value)
51
+ value = value.encode(Encoding::UTF_8)
60
52
 
61
- value
53
+ unless value.valid_encoding?
54
+ raise NormalizationError, "String #{value.inspect} doesn't match the reported encoding #{value.encoding}"
62
55
  end
63
- else
64
- def normalize_string(value)
65
- value = value.encode(Encoding::UTF_8)
66
56
 
67
- unless value.valid_encoding?
68
- raise NormalizationError, "String #{value.inspect} doesn't match the reported encoding #{value.encoding}"
69
- end
70
-
71
- value
72
- rescue EncodingError
73
- raise NormalizationError, "String encoding #{value.encoding} is not UTF-8 and could not be converted to UTF-8"
74
- end
57
+ value
58
+ rescue EncodingError
59
+ raise NormalizationError, "String encoding #{value.encoding} is not UTF-8 and could not be converted to UTF-8"
75
60
  end
76
61
 
77
62
  # Validate all elements of the array.
@@ -4,7 +4,7 @@ module LegacyFacter
4
4
  module Util
5
5
  module Root
6
6
  def self.root?
7
- require 'facter/resolvers/windows/ffi/identity_ffi'
7
+ require_relative '../../../facter/resolvers/windows/ffi/identity_ffi'
8
8
  IdentityFFI.privileged?
9
9
  end
10
10
  end
@@ -10,7 +10,7 @@ module Facts
10
10
  def call_the_resolver
11
11
  fact_value = Facter::Resolvers::Uname.resolve(:machine)
12
12
  fact_value = 'amd64' if fact_value == 'x86_64'
13
- fact_value = 'i386' if fact_value =~ /i[3456]86|pentium/
13
+ fact_value = 'i386' if /i[3456]86|pentium/.match?(fact_value)
14
14
 
15
15
  [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
16
16
  end
@@ -52,9 +52,9 @@ module Facts
52
52
 
53
53
  return { google: true } if manufacturer == 'Google'
54
54
 
55
- return { openstack: true } if manufacturer =~ /^OpenStack/
55
+ return { openstack: true } if /^OpenStack/.match?(manufacturer)
56
56
 
57
- return { amazon: true } if manufacturer =~ /^Amazon/
57
+ return { amazon: true } if /^Amazon/.match?(manufacturer)
58
58
 
59
59
  {}
60
60
  end
@@ -10,7 +10,7 @@ module Facts
10
10
  def call_the_resolver
11
11
  fact_value = Facter::Resolvers::Uname.resolve(:machine)
12
12
 
13
- fact_value = 'i386' if fact_value =~ /i[3456]86|pentium/
13
+ fact_value = 'i386' if /i[3456]86|pentium/.match?(fact_value)
14
14
 
15
15
  [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
16
16
  end
@@ -27,9 +27,9 @@ module Facts
27
27
 
28
28
  return { google: true } if manufacturer == 'Google'
29
29
 
30
- return { openstack: true } if Facter::Resolvers::DMIComputerSystem.resolve(:name) =~ /^OpenStack/
30
+ return { openstack: true } if /^OpenStack/.match?(Facter::Resolvers::DMIComputerSystem.resolve(:name))
31
31
 
32
- return { amazon: true } if manufacturer =~ /^Amazon/
32
+ return { amazon: true } if /^Amazon/.match?(manufacturer)
33
33
  end
34
34
  end
35
35
  end
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'facter/framework/logging/logger.rb'
4
+ require_relative '../../../facter/framework/logging/logger.rb'
5
5
  Facter::Log.output(STDERR)
6
- require 'facter'
7
- require 'facter/framework/cli/cli'
6
+ require_relative '../../../facter'
7
+ require_relative '../../../facter/framework/cli/cli'
8
8
 
9
9
  class CliLauncher
10
10
  class << self
@@ -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 FactGroups
@@ -64,7 +64,7 @@ module Facter
64
64
  def get_fact(fact_name)
65
65
  return @facts_ttls[fact_name] if @facts_ttls[fact_name]
66
66
 
67
- result = @facts_ttls.select { |name, fact| break fact if fact_name =~ /^#{name}\..*/ }
67
+ result = @facts_ttls.select { |name, fact| break fact if /^#{name}\..*/.match?(fact_name) }
68
68
  return nil if result == {}
69
69
 
70
70
  result
@@ -103,7 +103,7 @@ module Facter
103
103
 
104
104
  blocked_facts.each do |blocked|
105
105
  facts.each do |fact|
106
- next unless fact.name =~ /^#{blocked}\..*|^#{blocked}$/
106
+ next unless /^#{blocked}\..*|^#{blocked}$/.match?(fact.name)
107
107
 
108
108
  if fact.type == :core
109
109
  reject_list_core << fact