facter 4.0.44 → 4.0.46

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 (127) hide show
  1. checksums.yaml +4 -4
  2. data/lib/facter.rb +15 -1
  3. data/lib/facter/config.rb +1 -0
  4. data/lib/facter/custom_facts/core/execution.rb +28 -4
  5. data/lib/facter/custom_facts/core/execution/base.rb +33 -33
  6. data/lib/facter/custom_facts/util/parser.rb +17 -3
  7. data/lib/facter/facts/solaris/hypervisors/ldom.rb +3 -0
  8. data/lib/facter/facts/solaris/ldom.rb +4 -1
  9. data/lib/facter/framework/cli/cli.rb +19 -5
  10. data/lib/facter/framework/config/fact_groups.rb +5 -3
  11. data/lib/facter/framework/core/cache_manager.rb +57 -15
  12. data/lib/facter/framework/core/fact/internal/core_fact.rb +6 -1
  13. data/lib/facter/framework/core/fact/internal/internal_fact_manager.rb +38 -4
  14. data/lib/facter/framework/core/fact_augmenter.rb +1 -1
  15. data/lib/facter/framework/core/fact_loaders/fact_loader.rb +1 -1
  16. data/lib/facter/framework/core/fact_manager.rb +1 -1
  17. data/lib/facter/framework/core/options/config_file_options.rb +16 -5
  18. data/lib/facter/framework/core/options/option_store.rb +7 -3
  19. data/lib/facter/resolvers/aio_agent_version.rb +1 -1
  20. data/lib/facter/resolvers/aix/architecture_resolver.rb +2 -1
  21. data/lib/facter/resolvers/aix/disks.rb +2 -1
  22. data/lib/facter/resolvers/aix/filesystem_resolver.rb +1 -1
  23. data/lib/facter/resolvers/aix/hardware_resolver.rb +2 -1
  24. data/lib/facter/resolvers/aix/load_averages_resolver.rb +2 -1
  25. data/lib/facter/resolvers/aix/memory.rb +2 -1
  26. data/lib/facter/resolvers/aix/mountpoints.rb +2 -1
  27. data/lib/facter/resolvers/aix/networking_resolver.rb +1 -1
  28. data/lib/facter/resolvers/aix/nim.rb +1 -1
  29. data/lib/facter/resolvers/aix/os_level.rb +1 -1
  30. data/lib/facter/resolvers/aix/partitions.rb +2 -1
  31. data/lib/facter/resolvers/aix/processors.rb +2 -1
  32. data/lib/facter/resolvers/aix/serialnumber.rb +1 -1
  33. data/lib/facter/resolvers/augeas_resolver.rb +1 -1
  34. data/lib/facter/resolvers/base_resolver.rb +11 -4
  35. data/lib/facter/resolvers/bsd/processors.rb +2 -1
  36. data/lib/facter/resolvers/cloud.rb +1 -1
  37. data/lib/facter/resolvers/containers.rb +2 -1
  38. data/lib/facter/resolvers/debian_version.rb +1 -1
  39. data/lib/facter/resolvers/disk_resolver.rb +4 -1
  40. data/lib/facter/resolvers/dmi_decode.rb +1 -1
  41. data/lib/facter/resolvers/dmi_resolver.rb +2 -1
  42. data/lib/facter/resolvers/ec2.rb +2 -1
  43. data/lib/facter/resolvers/eos_release_resolver.rb +1 -1
  44. data/lib/facter/resolvers/facterversion_resolver.rb +1 -1
  45. data/lib/facter/resolvers/filesystems_resolver.rb +4 -1
  46. data/lib/facter/resolvers/fips_enabled_resolver.rb +4 -1
  47. data/lib/facter/resolvers/freebsd/dmi_resolver.rb +1 -1
  48. data/lib/facter/resolvers/freebsd/freebsd_version_resolver.rb +9 -7
  49. data/lib/facter/resolvers/freebsd/geom_resolver.rb +2 -1
  50. data/lib/facter/resolvers/freebsd/processors.rb +2 -1
  51. data/lib/facter/resolvers/freebsd/swap_memory_resolver.rb +2 -1
  52. data/lib/facter/resolvers/freebsd/system_memory_resolver.rb +2 -1
  53. data/lib/facter/resolvers/gce.rb +2 -1
  54. data/lib/facter/resolvers/hostname_resolver.rb +2 -1
  55. data/lib/facter/resolvers/identity_resolver.rb +2 -1
  56. data/lib/facter/resolvers/linux/docker_uptime.rb +2 -1
  57. data/lib/facter/resolvers/linux/load_averages.rb +2 -1
  58. data/lib/facter/resolvers/load_averages.rb +2 -1
  59. data/lib/facter/resolvers/lpar_resolver.rb +1 -1
  60. data/lib/facter/resolvers/lsb_release_resolver.rb +1 -1
  61. data/lib/facter/resolvers/lspci.rb +1 -1
  62. data/lib/facter/resolvers/macosx/dmi_resolver.rb +1 -1
  63. data/lib/facter/resolvers/macosx/filesystems_resolver.rb +1 -1
  64. data/lib/facter/resolvers/macosx/load_averages_resolver.rb +2 -1
  65. data/lib/facter/resolvers/macosx/mountpoints_resolver.rb +2 -1
  66. data/lib/facter/resolvers/macosx/processor_resolver.rb +2 -1
  67. data/lib/facter/resolvers/macosx/swap_memory_resolver.rb +2 -1
  68. data/lib/facter/resolvers/macosx/system_memory_resolver.rb +2 -1
  69. data/lib/facter/resolvers/macosx/system_profiler_resolver.rb +1 -3
  70. data/lib/facter/resolvers/memory_resolver.rb +3 -1
  71. data/lib/facter/resolvers/mountpoints_resolver.rb +4 -1
  72. data/lib/facter/resolvers/networking_linux_resolver.rb +5 -4
  73. data/lib/facter/resolvers/networking_resolver.rb +1 -1
  74. data/lib/facter/resolvers/open_vz.rb +1 -1
  75. data/lib/facter/resolvers/os_release_resolver.rb +1 -1
  76. data/lib/facter/resolvers/partitions.rb +2 -1
  77. data/lib/facter/resolvers/path_resolver.rb +1 -1
  78. data/lib/facter/resolvers/processors_resolver.rb +4 -1
  79. data/lib/facter/resolvers/puppet_version_resolver.rb +1 -1
  80. data/lib/facter/resolvers/redhat_release_resolver.rb +1 -1
  81. data/lib/facter/resolvers/ruby_resolver.rb +1 -1
  82. data/lib/facter/resolvers/selinux_resolver.rb +1 -1
  83. data/lib/facter/resolvers/solaris/disks.rb +1 -1
  84. data/lib/facter/resolvers/solaris/dmi.rb +1 -1
  85. data/lib/facter/resolvers/solaris/dmi_sparc.rb +1 -1
  86. data/lib/facter/resolvers/solaris/filesystems.rb +1 -1
  87. data/lib/facter/resolvers/solaris/ipaddress.rb +2 -1
  88. data/lib/facter/resolvers/solaris/ldom.rb +1 -3
  89. data/lib/facter/resolvers/solaris/memory.rb +2 -1
  90. data/lib/facter/resolvers/solaris/mountpoints.rb +2 -2
  91. data/lib/facter/resolvers/solaris/networking.rb +1 -1
  92. data/lib/facter/resolvers/solaris/os_release.rb +2 -1
  93. data/lib/facter/resolvers/solaris/processors.rb +2 -1
  94. data/lib/facter/resolvers/solaris/zone.rb +1 -1
  95. data/lib/facter/resolvers/solaris/zone_name.rb +1 -1
  96. data/lib/facter/resolvers/ssh_resolver.rb +4 -1
  97. data/lib/facter/resolvers/suse_release_resolver.rb +1 -1
  98. data/lib/facter/resolvers/sw_vers_resolver.rb +2 -2
  99. data/lib/facter/resolvers/timezone_resolver.rb +1 -1
  100. data/lib/facter/resolvers/uname_resolver.rb +1 -1
  101. data/lib/facter/resolvers/uptime_resolver.rb +1 -1
  102. data/lib/facter/resolvers/utils/networking.rb +2 -0
  103. data/lib/facter/resolvers/virt_what.rb +1 -1
  104. data/lib/facter/resolvers/vmware.rb +1 -1
  105. data/lib/facter/resolvers/windows/aio_agent_version.rb +1 -1
  106. data/lib/facter/resolvers/windows/dmi_bios_resolver.rb +1 -1
  107. data/lib/facter/resolvers/windows/dmi_computersystem_resolver.rb +1 -1
  108. data/lib/facter/resolvers/windows/fips_resolver.rb +2 -1
  109. data/lib/facter/resolvers/windows/hardware_architecture_resolver.rb +2 -1
  110. data/lib/facter/resolvers/windows/identity_resolver.rb +2 -1
  111. data/lib/facter/resolvers/windows/kernel_resolver.rb +3 -1
  112. data/lib/facter/resolvers/windows/memory_resolver.rb +3 -1
  113. data/lib/facter/resolvers/windows/netkvm_resolver.rb +2 -1
  114. data/lib/facter/resolvers/windows/networking_resolver.rb +2 -1
  115. data/lib/facter/resolvers/windows/processors_resolver.rb +2 -1
  116. data/lib/facter/resolvers/windows/product_release_resolver.rb +2 -1
  117. data/lib/facter/resolvers/windows/ssh.rb +3 -1
  118. data/lib/facter/resolvers/windows/system32_resolver.rb +3 -1
  119. data/lib/facter/resolvers/windows/uptime_resolver.rb +2 -1
  120. data/lib/facter/resolvers/windows/virtualization_resolver.rb +2 -1
  121. data/lib/facter/resolvers/windows/win_os_description_resolver.rb +3 -1
  122. data/lib/facter/resolvers/wpar_resolver.rb +1 -1
  123. data/lib/facter/resolvers/xen.rb +1 -1
  124. data/lib/facter/resolvers/zfs.rb +2 -1
  125. data/lib/facter/resolvers/zpool.rb +2 -1
  126. data/lib/facter/version.rb +1 -1
  127. metadata +4 -3
@@ -3,7 +3,7 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class DmiDecode < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
7
 
8
8
  ADDRESS_TO_VERSION = {
9
9
  0xe8480 => 'ESXi 2.5',
@@ -5,7 +5,8 @@ module Facter
5
5
  module Linux
6
6
  class DmiBios < BaseResolver
7
7
  @log = Facter::Log.new(self)
8
- @fact_list ||= {}
8
+
9
+ init_resolver
9
10
 
10
11
  class << self
11
12
  # :bios_vendor
@@ -3,7 +3,8 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Ec2 < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
+
7
8
  EC2_METADATA_ROOT_URL = 'http://169.254.169.254/latest/meta-data/'
8
9
  EC2_USERDATA_ROOT_URL = 'http://169.254.169.254/latest/user-data/'
9
10
  EC2_SESSION_TIMEOUT = 5
@@ -7,7 +7,7 @@ module Facter
7
7
  # :version
8
8
  # :codename
9
9
 
10
- @fact_list ||= {}
10
+ init_resolver
11
11
 
12
12
  class << self
13
13
  private
@@ -3,7 +3,7 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Facterversion < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
7
 
8
8
  class << self
9
9
  private
@@ -5,8 +5,11 @@ module Facter
5
5
  module Linux
6
6
  class Filesystems < BaseResolver
7
7
  # :systems
8
- @fact_list ||= {}
8
+
9
+ init_resolver
10
+
9
11
  @log = Facter::Log.new(self)
12
+
10
13
  class << self
11
14
  private
12
15
 
@@ -5,8 +5,11 @@ module Facter
5
5
  module Linux
6
6
  class FipsEnabled < BaseResolver
7
7
  #:fips_enabled
8
- @fact_list ||= {}
8
+
9
+ init_resolver
10
+
9
11
  @log = Facter::Log.new(self)
12
+
10
13
  class << self
11
14
  private
12
15
 
@@ -4,7 +4,7 @@ module Facter
4
4
  module Resolvers
5
5
  module Freebsd
6
6
  class DmiBios < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
8
 
9
9
  class << self
10
10
  #:model
@@ -4,7 +4,7 @@ module Facter
4
4
  module Resolvers
5
5
  module Freebsd
6
6
  class FreebsdVersion < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
8
 
9
9
  class << self
10
10
  private
@@ -14,10 +14,13 @@ module Facter
14
14
  end
15
15
 
16
16
  def freebsd_version_system_call(fact_name)
17
- output = Facter::Core::Execution.execute('/bin/freebsd-version -kru', logger: log)
18
- return if output.empty?
17
+ output = Facter::Core::Execution.execute('/bin/freebsd-version -k', logger: log)
19
18
 
20
- build_fact_list(output)
19
+ @fact_list[:installed_kernel] = output.strip unless output.empty?
20
+
21
+ output = Facter::Core::Execution.execute('/bin/freebsd-version -ru', logger: log)
22
+
23
+ build_fact_list(output) unless output.empty?
21
24
 
22
25
  @fact_list[fact_name]
23
26
  end
@@ -25,9 +28,8 @@ module Facter
25
28
  def build_fact_list(output)
26
29
  freebsd_version_results = output.split("\n")
27
30
 
28
- @fact_list[:installed_kernel] = freebsd_version_results[0].strip
29
- @fact_list[:running_kernel] = freebsd_version_results[1].strip
30
- @fact_list[:installed_userland] = freebsd_version_results[2].strip
31
+ @fact_list[:running_kernel] = freebsd_version_results[0].strip
32
+ @fact_list[:installed_userland] = freebsd_version_results[1].strip
31
33
  end
32
34
  end
33
35
  end
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  module Freebsd
6
6
  class Geom < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  DISKS_ATTRIBUTES = %i[read_model read_serial_number read_size].freeze
9
10
  PARTITIONS_ATTRIBUTES = %i[read_partlabel read_partuuid read_size].freeze
10
11
 
@@ -6,8 +6,9 @@ module Facter
6
6
  module Resolvers
7
7
  module Freebsd
8
8
  class Processors < BaseResolver
9
+ init_resolver
9
10
  @log = Facter::Log.new(self)
10
- @fact_list ||= {}
11
+
11
12
  class << self
12
13
  private
13
14
 
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  module Freebsd
6
6
  class SwapMemory < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  class << self
9
10
  private
10
11
 
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  module Freebsd
6
6
  class SystemMemory < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  class << self
9
10
  private
10
11
 
@@ -3,7 +3,8 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Gce < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
+
7
8
  METADATA_URL = 'http://metadata.google.internal/computeMetadata/v1/?recursive=true&alt=json'
8
9
  HEADERS = { "Metadata-Flavor": 'Google', "Accept": 'application/json' }.freeze
9
10
 
@@ -3,7 +3,8 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Hostname < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
+
7
8
  class << self
8
9
  private
9
10
 
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  class PosxIdentity < BaseResolver
6
6
  @log = Facter::Log.new(self)
7
- @fact_list ||= {}
7
+
8
+ init_resolver
8
9
 
9
10
  class << self
10
11
  private
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  module Linux
6
6
  class DockerUptime < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  class << self
9
10
  private
10
11
 
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  module Linux
6
6
  class LoadAverages < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  class << self
9
10
  private
10
11
 
@@ -3,7 +3,8 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class LoadAverages < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
+
7
8
  class << self
8
9
  private
9
10
 
@@ -3,7 +3,7 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Lpar < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
7
 
8
8
  class << self
9
9
  private
@@ -9,7 +9,7 @@ module Facter
9
9
  # :release
10
10
  # :codename
11
11
 
12
- @fact_list ||= {}
12
+ init_resolver
13
13
 
14
14
  class << self
15
15
  private
@@ -3,7 +3,7 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Lspci < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
7
 
8
8
  REGEX_VALUES = { 'VirtualBox' => 'virtualbox', 'XenSource' => 'xenhvm',
9
9
  'Microsoft Corporation Hyper-V' => 'hyperv', 'Class 8007: Google, Inc' => 'gce',
@@ -4,7 +4,7 @@ module Facter
4
4
  module Resolvers
5
5
  module Macosx
6
6
  class DmiBios < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
8
 
9
9
  class << self
10
10
  #:model
@@ -5,7 +5,7 @@ module Facter
5
5
  module Macosx
6
6
  class Filesystems < BaseResolver
7
7
  # :macosx_filesystems
8
- @fact_list ||= {}
8
+ init_resolver
9
9
 
10
10
  class << self
11
11
  private
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  module Macosx
6
6
  class LoadAverages < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  class << self
9
10
  private
10
11
 
@@ -5,7 +5,8 @@ module Facter
5
5
  module Macosx
6
6
  class Mountpoints < BaseResolver
7
7
  include Facter::FilesystemHelper
8
- @fact_list ||= {}
8
+ init_resolver
9
+
9
10
  class << self
10
11
  private
11
12
 
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  module Macosx
6
6
  class Processors < BaseResolver
7
- @fact_list = {}
7
+ init_resolver
8
+
8
9
  ITEMS = { logical_count: 'hw.logicalcpu_max',
9
10
  physical_count: 'hw.physicalcpu_max',
10
11
  brand: 'machdep.cpu.brand_string',
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  module Macosx
6
6
  class SwapMemory < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  class << self
9
10
  private
10
11
 
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  module Macosx
6
6
  class SystemMemory < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  class << self
9
10
  private
10
11
 
@@ -15,7 +15,7 @@ module Facter
15
15
  SP_ETHERNET_DATA_TYPE = %i[type bus vendor_id device_id subsystem_vendor_id
16
16
  subsystem_id revision_id bsd_name kext_name location version].freeze
17
17
 
18
- @fact_list = {}
18
+ init_resolver
19
19
 
20
20
  class << self
21
21
  private
@@ -25,8 +25,6 @@ module Facter
25
25
  end
26
26
 
27
27
  def retrieve_system_profiler(fact_name)
28
- @fact_list ||= {}
29
-
30
28
  case fact_name
31
29
  when *SP_HARDWARE_DATA_TYPE
32
30
  @fact_list.merge!(SystemProfileExecutor.execute('SPHardwareDataType'))
@@ -4,8 +4,10 @@ module Facter
4
4
  module Resolvers
5
5
  module Linux
6
6
  class Memory < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  @log = Facter::Log.new(self)
10
+
9
11
  class << self
10
12
  private
11
13
 
@@ -4,8 +4,11 @@ module Facter
4
4
  module Resolvers
5
5
  class Mountpoints < BaseResolver
6
6
  include Facter::FilesystemHelper
7
- @fact_list ||= {}
7
+
8
+ init_resolver
9
+
8
10
  @log = Facter::Log.new(self)
11
+
9
12
  class << self
10
13
  private
11
14
 
@@ -3,7 +3,8 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class NetworkingLinux < BaseResolver
6
- @fact_list = {}
6
+ init_resolver
7
+
7
8
  DIRS = ['/var/lib/dhclient/', '/var/lib/dhcp/', '/var/lib/dhcp3/', '/var/lib/NetworkManager/', '/var/db/'].freeze
8
9
 
9
10
  class << self
@@ -16,8 +17,6 @@ module Facter
16
17
  end
17
18
 
18
19
  def retrieve_network_info(fact_name)
19
- @fact_list ||= {}
20
-
21
20
  retrieve_interface_info
22
21
  retrieve_interfaces_mac_and_mtu
23
22
  retrieve_default_interface
@@ -113,6 +112,8 @@ module Facter
113
112
  "ip4_mask_length = #{ip4_mask_length}")
114
113
 
115
114
  binding = ::Resolvers::Utils::Networking.build_binding(ip4_address, ip4_mask_length)
115
+ return unless binding
116
+
116
117
  build_network_info_structure!(network_info, interface_name, :bindings)
117
118
 
118
119
  network_info[interface_name][:bindings] << binding
@@ -120,7 +121,7 @@ module Facter
120
121
 
121
122
  def retrieve_name_and_ip_info(tokens)
122
123
  interface_name = tokens[1]
123
- ip_info = tokens[3].split('/')
124
+ ip_info = tokens[4] =~ /peer/ ? tokens[5].split('/') : tokens[3].split('/')
124
125
  ip_address = ip_info[0]
125
126
  ip_mask_length = ip_info[1]
126
127
 
@@ -3,7 +3,7 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Networking < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
7
 
8
8
  class << self
9
9
  private
@@ -5,7 +5,7 @@ module Facter
5
5
  class OpenVz < BaseResolver
6
6
  # build
7
7
 
8
- @fact_list ||= {}
8
+ init_resolver
9
9
 
10
10
  class << self
11
11
  private
@@ -14,7 +14,7 @@ module Facter
14
14
  # :support_url
15
15
  # :bug_report_url
16
16
 
17
- @fact_list ||= {}
17
+ init_resolver
18
18
 
19
19
  class << self
20
20
  private