facter 4.0.36 → 4.0.41

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 (147) hide show
  1. checksums.yaml +4 -4
  2. data/bin/facter +3 -4
  3. data/lib/facter.rb +163 -23
  4. data/lib/facter/custom_facts/core/execution/base.rb +36 -6
  5. data/lib/facter/custom_facts/util/directory_loader.rb +10 -2
  6. data/lib/facter/custom_facts/util/fact.rb +4 -1
  7. data/lib/facter/facts/aix/disks.rb +1 -1
  8. data/lib/facter/facts/aix/kernel.rb +1 -1
  9. data/lib/facter/facts/aix/kernelmajversion.rb +1 -1
  10. data/lib/facter/facts/aix/kernelrelease.rb +1 -1
  11. data/lib/facter/facts/aix/kernelversion.rb +1 -1
  12. data/lib/facter/facts/aix/os/release.rb +1 -1
  13. data/lib/facter/facts/linux/cloud.rb +15 -0
  14. data/lib/facter/facts/linux/disks.rb +1 -1
  15. data/lib/facter/facts/linux/ec2_metadata.rb +5 -27
  16. data/lib/facter/facts/linux/ec2_userdata.rb +5 -27
  17. data/lib/facter/facts/linux/is_virtual.rb +7 -46
  18. data/lib/facter/facts/linux/partitions.rb +1 -1
  19. data/lib/facter/facts/linux/virtual.rb +3 -58
  20. data/lib/facter/facts/rhel/os/release.rb +2 -2
  21. data/lib/facter/facts/solaris/disks.rb +1 -1
  22. data/lib/facter/facts/ubuntu/lsbdistrelease.rb +23 -0
  23. data/lib/facter/facts_utils/virtual_detector.rb +78 -0
  24. data/lib/facter/framework/benchmarking/timer.rb +23 -0
  25. data/lib/facter/framework/cli/cli.rb +86 -34
  26. data/lib/facter/framework/cli/cli_launcher.rb +34 -38
  27. data/lib/facter/framework/config/fact_groups.rb +36 -2
  28. data/lib/facter/framework/core/cache_manager.rb +30 -18
  29. data/lib/facter/framework/core/fact/internal/internal_fact_manager.rb +2 -1
  30. data/lib/facter/framework/core/fact_loaders/fact_loader.rb +14 -11
  31. data/lib/facter/framework/core/fact_loaders/internal_fact_loader.rb +7 -7
  32. data/lib/facter/framework/core/file_loader.rb +2 -0
  33. data/lib/facter/framework/core/options/config_file_options.rb +5 -3
  34. data/lib/facter/framework/core/options/option_store.rb +30 -11
  35. data/lib/facter/framework/core/session_cache.rb +1 -4
  36. data/lib/facter/framework/logging/logger.rb +3 -11
  37. data/lib/facter/patches/sysfilesystem/sys/statvfs.rb +92 -0
  38. data/lib/facter/resolvers/aio_agent_version.rb +0 -1
  39. data/lib/facter/resolvers/aix/architecture_resolver.rb +0 -1
  40. data/lib/facter/resolvers/aix/disks.rb +2 -3
  41. data/lib/facter/resolvers/aix/filesystem_resolver.rb +0 -1
  42. data/lib/facter/resolvers/aix/hardware_resolver.rb +0 -1
  43. data/lib/facter/resolvers/aix/load_averages_resolver.rb +0 -1
  44. data/lib/facter/resolvers/aix/memory.rb +2 -3
  45. data/lib/facter/resolvers/aix/mountpoints.rb +0 -1
  46. data/lib/facter/resolvers/aix/networking_resolver.rb +0 -1
  47. data/lib/facter/resolvers/aix/nim.rb +0 -1
  48. data/lib/facter/resolvers/aix/os_level.rb +27 -0
  49. data/lib/facter/resolvers/aix/partitions.rb +2 -3
  50. data/lib/facter/resolvers/aix/processors.rb +0 -1
  51. data/lib/facter/resolvers/aix/serialnumber.rb +0 -1
  52. data/lib/facter/resolvers/augeas_resolver.rb +0 -1
  53. data/lib/facter/resolvers/base_resolver.rb +9 -4
  54. data/lib/facter/resolvers/bsd/processors.rb +0 -1
  55. data/lib/facter/resolvers/cloud.rb +39 -0
  56. data/lib/facter/resolvers/containers.rb +0 -1
  57. data/lib/facter/resolvers/debian_version.rb +0 -1
  58. data/lib/facter/resolvers/disk_resolver.rb +0 -1
  59. data/lib/facter/resolvers/dmi_decode.rb +1 -1
  60. data/lib/facter/resolvers/dmi_resolver.rb +0 -1
  61. data/lib/facter/resolvers/ec2.rb +0 -1
  62. data/lib/facter/resolvers/eos_release_resolver.rb +0 -1
  63. data/lib/facter/resolvers/facterversion_resolver.rb +0 -1
  64. data/lib/facter/resolvers/filesystems_resolver.rb +0 -1
  65. data/lib/facter/resolvers/fips_enabled_resolver.rb +0 -1
  66. data/lib/facter/resolvers/freebsd/dmi_resolver.rb +0 -1
  67. data/lib/facter/resolvers/freebsd/freebsd_version_resolver.rb +0 -1
  68. data/lib/facter/resolvers/freebsd/geom_resolver.rb +0 -1
  69. data/lib/facter/resolvers/freebsd/processors.rb +0 -1
  70. data/lib/facter/resolvers/freebsd/swap_memory_resolver.rb +0 -1
  71. data/lib/facter/resolvers/freebsd/system_memory_resolver.rb +0 -1
  72. data/lib/facter/resolvers/gce.rb +0 -1
  73. data/lib/facter/resolvers/hostname_resolver.rb +0 -1
  74. data/lib/facter/resolvers/identity_resolver.rb +0 -1
  75. data/lib/facter/resolvers/linux/docker_uptime.rb +0 -1
  76. data/lib/facter/resolvers/linux/load_averages.rb +0 -1
  77. data/lib/facter/resolvers/load_averages.rb +0 -1
  78. data/lib/facter/resolvers/lpar_resolver.rb +0 -1
  79. data/lib/facter/resolvers/lsb_release_resolver.rb +0 -1
  80. data/lib/facter/resolvers/lspci.rb +0 -1
  81. data/lib/facter/resolvers/macosx/dmi_resolver.rb +0 -1
  82. data/lib/facter/resolvers/macosx/filesystems_resolver.rb +1 -6
  83. data/lib/facter/resolvers/macosx/load_averages_resolver.rb +0 -1
  84. data/lib/facter/resolvers/macosx/mountpoints_resolver.rb +3 -3
  85. data/lib/facter/resolvers/macosx/processor_resolver.rb +0 -1
  86. data/lib/facter/resolvers/macosx/swap_memory_resolver.rb +0 -1
  87. data/lib/facter/resolvers/macosx/system_memory_resolver.rb +0 -1
  88. data/lib/facter/resolvers/macosx/system_profiler_resolver.rb +0 -1
  89. data/lib/facter/resolvers/memory_resolver.rb +6 -2
  90. data/lib/facter/resolvers/mountpoints_resolver.rb +0 -1
  91. data/lib/facter/resolvers/networking_linux_resolver.rb +0 -2
  92. data/lib/facter/resolvers/networking_resolver.rb +0 -1
  93. data/lib/facter/resolvers/open_vz.rb +0 -1
  94. data/lib/facter/resolvers/os_release_resolver.rb +0 -1
  95. data/lib/facter/resolvers/partitions.rb +37 -2
  96. data/lib/facter/resolvers/path_resolver.rb +0 -1
  97. data/lib/facter/resolvers/processors_resolver.rb +0 -1
  98. data/lib/facter/resolvers/puppet_version_resolver.rb +0 -1
  99. data/lib/facter/resolvers/redhat_release_resolver.rb +0 -1
  100. data/lib/facter/resolvers/ruby_resolver.rb +0 -1
  101. data/lib/facter/resolvers/selinux_resolver.rb +0 -1
  102. data/lib/facter/resolvers/solaris/disks.rb +0 -1
  103. data/lib/facter/resolvers/solaris/dmi.rb +0 -1
  104. data/lib/facter/resolvers/solaris/dmi_sparc.rb +0 -1
  105. data/lib/facter/resolvers/solaris/filesystems.rb +0 -1
  106. data/lib/facter/resolvers/solaris/ipaddress.rb +0 -1
  107. data/lib/facter/resolvers/solaris/ldom.rb +0 -1
  108. data/lib/facter/resolvers/solaris/memory.rb +0 -1
  109. data/lib/facter/resolvers/solaris/networking.rb +0 -1
  110. data/lib/facter/resolvers/solaris/os_release.rb +0 -1
  111. data/lib/facter/resolvers/solaris/processors.rb +0 -1
  112. data/lib/facter/resolvers/solaris/zone.rb +0 -1
  113. data/lib/facter/resolvers/solaris/zone_name.rb +0 -1
  114. data/lib/facter/resolvers/ssh_resolver.rb +0 -1
  115. data/lib/facter/resolvers/suse_release_resolver.rb +0 -1
  116. data/lib/facter/resolvers/sw_vers_resolver.rb +0 -1
  117. data/lib/facter/resolvers/timezone_resolver.rb +0 -1
  118. data/lib/facter/resolvers/uname_resolver.rb +0 -1
  119. data/lib/facter/resolvers/uptime_resolver.rb +0 -1
  120. data/lib/facter/resolvers/utils/filesystem_helper.rb +3 -1
  121. data/lib/facter/resolvers/virt_what.rb +0 -1
  122. data/lib/facter/resolvers/vmware.rb +0 -1
  123. data/lib/facter/resolvers/windows/aio_agent_version.rb +0 -1
  124. data/lib/facter/resolvers/windows/dmi_bios_resolver.rb +0 -1
  125. data/lib/facter/resolvers/windows/dmi_computersystem_resolver.rb +0 -1
  126. data/lib/facter/resolvers/windows/fips_resolver.rb +0 -1
  127. data/lib/facter/resolvers/windows/hardware_architecture_resolver.rb +0 -1
  128. data/lib/facter/resolvers/windows/identity_resolver.rb +0 -1
  129. data/lib/facter/resolvers/windows/kernel_resolver.rb +0 -1
  130. data/lib/facter/resolvers/windows/memory_resolver.rb +0 -1
  131. data/lib/facter/resolvers/windows/netkvm_resolver.rb +0 -1
  132. data/lib/facter/resolvers/windows/networking_resolver.rb +0 -1
  133. data/lib/facter/resolvers/windows/processors_resolver.rb +0 -1
  134. data/lib/facter/resolvers/windows/product_release_resolver.rb +0 -1
  135. data/lib/facter/resolvers/windows/ssh.rb +0 -1
  136. data/lib/facter/resolvers/windows/system32_resolver.rb +0 -1
  137. data/lib/facter/resolvers/windows/uptime_resolver.rb +0 -1
  138. data/lib/facter/resolvers/windows/virtualization_resolver.rb +0 -1
  139. data/lib/facter/resolvers/windows/win_os_description_resolver.rb +0 -1
  140. data/lib/facter/resolvers/wpar_resolver.rb +0 -1
  141. data/lib/facter/resolvers/xen.rb +0 -1
  142. data/lib/facter/resolvers/zfs.rb +0 -1
  143. data/lib/facter/resolvers/zpool.rb +0 -1
  144. data/lib/facter/version.rb +1 -1
  145. metadata +9 -4
  146. data/lib/facter/resolvers/aix/os_level_resolver.rb +0 -26
  147. data/lib/facter/resolvers/os_level_resolver.rb +0 -29
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class Mountpoints < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
  BLOCK_SIZE = 512
10
9
 
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class Networking < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
 
10
9
  class << self
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class Nim < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
 
10
9
  class << self
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facter
4
+ module Resolvers
5
+ module Aix
6
+ class OsLevel < BaseResolver
7
+ @fact_list ||= {}
8
+
9
+ class << self
10
+ private
11
+
12
+ def post_resolve(fact_name)
13
+ @fact_list.fetch(fact_name) { read_oslevel(fact_name) }
14
+ end
15
+
16
+ def read_oslevel(fact_name)
17
+ output = Facter::Core::Execution.execute('/usr/bin/oslevel -s', { limit: 2, logger: log })
18
+ @fact_list[:build] = output unless output.empty?
19
+ @fact_list[:kernel] = 'AIX'
20
+
21
+ @fact_list[fact_name]
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class Partitions < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
  class << self
10
9
  private
@@ -14,8 +13,6 @@ module Facter
14
13
  end
15
14
 
16
15
  def query_cudv(fact_name)
17
- @fact_list[:partitions] = {}
18
-
19
16
  odmquery = Facter::ODMQuery.new
20
17
  odmquery.equals('PdDvLn', 'logical_volume/lvsubclass/lvtype')
21
18
 
@@ -23,6 +20,8 @@ module Facter
23
20
 
24
21
  return unless result
25
22
 
23
+ @fact_list[:partitions] = {}
24
+
26
25
  result.each_line do |line|
27
26
  next unless line.include?('name')
28
27
 
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class Processors < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
  class << self
10
9
  private
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class Serialnumber < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
 
10
9
  class << self
@@ -3,7 +3,6 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Augeas < BaseResolver
6
- @semaphore = Mutex.new
7
6
  @fact_list ||= {}
8
7
 
9
8
  class << self
@@ -16,15 +16,20 @@ module Facter
16
16
  end
17
17
 
18
18
  def self.resolve(fact_name)
19
- @semaphore.synchronize do
20
- subscribe_to_manager
21
- post_resolve(fact_name)
22
- end
19
+ subscribe_to_manager
20
+ post_resolve(fact_name)
21
+
22
+ validate_resolution(fact_name)
23
23
  rescue LoadError, NameError => e
24
24
  log.debug("resolving fact #{fact_name}, but #{e}")
25
25
  @fact_list[fact_name] = nil
26
26
  end
27
27
 
28
+ def self.validate_resolution(fact_name)
29
+ @fact_list.fetch(fact_name) { @fact_list[fact_name] = nil }
30
+ @fact_list[fact_name]
31
+ end
32
+
28
33
  def self.post_resolve(_fact_name)
29
34
  raise NotImplementedError, "You must implement post_resolve(fact_name) method in #{name}"
30
35
  end
@@ -5,7 +5,6 @@ module Facter
5
5
  module Bsd
6
6
  class Processors < BaseResolver
7
7
  @log = Facter::Log.new(self)
8
- @semaphore = Mutex.new
9
8
  @fact_list ||= {}
10
9
  class << self
11
10
  private
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facter
4
+ module Resolvers
5
+ class Cloud < BaseResolver
6
+ # cloud_provider
7
+
8
+ @fact_list ||= {}
9
+
10
+ class << self
11
+ private
12
+
13
+ def post_resolve(fact_name)
14
+ @fact_list.fetch(fact_name) { detect_azure(fact_name) }
15
+ end
16
+
17
+ def detect_azure(fact_name)
18
+ search_dirs = %w[/var/lib/dhcp /var/lib/NetworkManager]
19
+ search_dirs.each do |path|
20
+ next if !File.readable?(path) || !File.directory?(path)
21
+
22
+ files = Dir.entries(path)
23
+ files.select! { |filename| filename =~ /^dhclient.*lease.*$/ }
24
+ files.each do |file|
25
+ path = File.join([path, file])
26
+ output = Util::FileHelper.safe_read(path)
27
+
28
+ if output.include?('option unknown-245') || output.include?('option 245')
29
+ @fact_list[:cloud_provider] = 'azure'
30
+ return @fact_list[fact_name]
31
+ end
32
+ end
33
+ end
34
+ nil
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -6,7 +6,6 @@ module Facter
6
6
  # :virtual
7
7
  # :hypervisor
8
8
 
9
- @semaphore = Mutex.new
10
9
  @fact_list ||= {}
11
10
  INFO = { 'docker' => 'id', 'lxc' => 'name' }.freeze
12
11
 
@@ -7,7 +7,6 @@ module Facter
7
7
  # :minor
8
8
  # :full
9
9
 
10
- @semaphore = Mutex.new
11
10
  @fact_list ||= {}
12
11
 
13
12
  class << self
@@ -5,7 +5,6 @@ module Facter
5
5
  module Linux
6
6
  class Disk < BaseResolver
7
7
  @log = Facter::Log.new(self)
8
- @semaphore = Mutex.new
9
8
  @fact_list ||= {}
10
9
  DIR = '/sys/block'
11
10
  FILE_PATHS = { model: 'device/model', size: 'size', vendor: 'device/vendor' }.freeze
@@ -3,7 +3,6 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class DmiDecode < BaseResolver
6
- @semaphore = Mutex.new
7
6
  @fact_list ||= {}
8
7
 
9
8
  ADDRESS_TO_VERSION = {
@@ -38,6 +37,7 @@ module Facter
38
37
  @fact_list[:virtualbox_version] = output.match(/vboxVer_(\S+)/)&.captures&.first
39
38
  @fact_list[:virtualbox_revision] = output.match(/vboxRev_(\S+)/)&.captures&.first
40
39
  @fact_list[:vmware_version] = extract_vmware_version(output)
40
+ @fact_list[:vendor] = output.match(/Vendor: (\S+)/)&.captures&.first
41
41
 
42
42
  @fact_list[fact_name]
43
43
  end
@@ -5,7 +5,6 @@ module Facter
5
5
  module Linux
6
6
  class DmiBios < BaseResolver
7
7
  @log = Facter::Log.new(self)
8
- @semaphore = Mutex.new
9
8
  @fact_list ||= {}
10
9
 
11
10
  class << self
@@ -3,7 +3,6 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Ec2 < BaseResolver
6
- @semaphore = Mutex.new
7
6
  @fact_list ||= {}
8
7
  EC2_METADATA_ROOT_URL = 'http://169.254.169.254/latest/meta-data/'
9
8
  EC2_USERDATA_ROOT_URL = 'http://169.254.169.254/latest/user-data/'
@@ -7,7 +7,6 @@ module Facter
7
7
  # :version
8
8
  # :codename
9
9
 
10
- @semaphore = Mutex.new
11
10
  @fact_list ||= {}
12
11
 
13
12
  class << self
@@ -3,7 +3,6 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Facterversion < BaseResolver
6
- @semaphore = Mutex.new
7
6
  @fact_list ||= {}
8
7
 
9
8
  class << self
@@ -5,7 +5,6 @@ module Facter
5
5
  module Linux
6
6
  class Filesystems < BaseResolver
7
7
  # :systems
8
- @semaphore = Mutex.new
9
8
  @fact_list ||= {}
10
9
  @log = Facter::Log.new(self)
11
10
  class << self
@@ -5,7 +5,6 @@ module Facter
5
5
  module Linux
6
6
  class FipsEnabled < BaseResolver
7
7
  #:fips_enabled
8
- @semaphore = Mutex.new
9
8
  @fact_list ||= {}
10
9
  @log = Facter::Log.new(self)
11
10
  class << self
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Freebsd
6
6
  class DmiBios < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
 
10
9
  class << self
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Freebsd
6
6
  class FreebsdVersion < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
 
10
9
  class << self
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Freebsd
6
6
  class Geom < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
 
10
9
  class << self
@@ -7,7 +7,6 @@ module Facter
7
7
  module Freebsd
8
8
  class Processors < BaseResolver
9
9
  @log = Facter::Log.new(self)
10
- @semaphore = Mutex.new
11
10
  @fact_list ||= {}
12
11
  class << self
13
12
  private
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Freebsd
6
6
  class SwapMemory < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
  class << self
10
9
  private
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Freebsd
6
6
  class SystemMemory < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
  class << self
10
9
  private
@@ -3,7 +3,6 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Gce < BaseResolver
6
- @semaphore = Mutex.new
7
6
  @fact_list ||= {}
8
7
  METADATA_URL = 'http://metadata.google.internal/computeMetadata/v1/?recursive=true&alt=json'
9
8
  HEADERS = { "Metadata-Flavor": 'Google', "Accept": 'application/json' }.freeze
@@ -3,7 +3,6 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Hostname < BaseResolver
6
- @semaphore = Mutex.new
7
6
  @fact_list ||= {}
8
7
  class << self
9
8
  private
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  class PosxIdentity < BaseResolver
6
6
  @log = Facter::Log.new(self)
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
 
10
9
  class << self
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Linux
6
6
  class DockerUptime < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
  class << self
10
9
  private
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Linux
6
6
  class LoadAverages < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
  class << self
10
9
  private
@@ -3,7 +3,6 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class LoadAverages < BaseResolver
6
- @semaphore = Mutex.new
7
6
  @fact_list ||= {}
8
7
  class << self
9
8
  private
@@ -3,7 +3,6 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Lpar < BaseResolver
6
- @semaphore = Mutex.new
7
6
  @fact_list ||= {}
8
7
 
9
8
  class << self
@@ -9,7 +9,6 @@ module Facter
9
9
  # :release
10
10
  # :codename
11
11
 
12
- @semaphore = Mutex.new
13
12
  @fact_list ||= {}
14
13
 
15
14
  class << self
@@ -3,7 +3,6 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Lspci < BaseResolver
6
- @semaphore = Mutex.new
7
6
  @fact_list ||= {}
8
7
 
9
8
  REGEX_VALUES = { 'VirtualBox' => 'virtualbox', 'XenSource' => 'xenhvm',
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Macosx
6
6
  class DmiBios < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
 
10
9
  class << self
@@ -5,7 +5,6 @@ module Facter
5
5
  module Macosx
6
6
  class Filesystems < BaseResolver
7
7
  # :macosx_filesystems
8
- @semaphore = Mutex.new
9
8
  @fact_list ||= {}
10
9
 
11
10
  class << self
@@ -17,11 +16,7 @@ module Facter
17
16
 
18
17
  def read_filesystems(fact_name)
19
18
  output = Facter::Core::Execution.execute('mount', logger: log)
20
- filesystems = []
21
- output.each_line do |line|
22
- filesystem = line.match(/\(([a-z]+)\,*/).to_s
23
- filesystems << filesystem[1..-2]
24
- end
19
+ filesystems = output.scan(/\(([a-z]+)\,*/).flatten
25
20
  @fact_list[:macosx_filesystems] = filesystems.uniq.sort.join(',')
26
21
  @fact_list[fact_name]
27
22
  end
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Macosx
6
6
  class LoadAverages < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
  class << self
10
9
  private