facter 4.0.40 → 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 (141) hide show
  1. checksums.yaml +4 -4
  2. data/lib/facter.rb +72 -19
  3. data/lib/facter/config.rb +355 -0
  4. data/lib/facter/custom_facts/core/aggregate.rb +51 -17
  5. data/lib/facter/custom_facts/core/execution.rb +54 -38
  6. data/lib/facter/custom_facts/core/execution/base.rb +46 -40
  7. data/lib/facter/custom_facts/util/fact.rb +1 -1
  8. data/lib/facter/custom_facts/util/parser.rb +17 -3
  9. data/lib/facter/custom_facts/util/resolution.rb +40 -11
  10. data/lib/facter/facts/linux/ec2_metadata.rb +5 -30
  11. data/lib/facter/facts/linux/ec2_userdata.rb +5 -28
  12. data/lib/facter/facts/linux/is_virtual.rb +7 -46
  13. data/lib/facter/facts/linux/virtual.rb +3 -58
  14. data/lib/facter/facts/rhel/os/release.rb +1 -1
  15. data/lib/facter/facts/solaris/hypervisors/ldom.rb +3 -0
  16. data/lib/facter/facts/solaris/ldom.rb +4 -1
  17. data/lib/facter/facts/solaris/zones.rb +1 -1
  18. data/lib/facter/facts_utils/virtual_detector.rb +78 -0
  19. data/lib/facter/framework/benchmarking/timer.rb +4 -2
  20. data/lib/facter/framework/cli/cli.rb +19 -5
  21. data/lib/facter/framework/config/fact_groups.rb +10 -8
  22. data/lib/facter/framework/core/cache_manager.rb +78 -28
  23. data/lib/facter/framework/core/fact/internal/core_fact.rb +6 -1
  24. data/lib/facter/framework/core/fact/internal/internal_fact_manager.rb +38 -4
  25. data/lib/facter/framework/core/fact_augmenter.rb +1 -1
  26. data/lib/facter/framework/core/fact_loaders/fact_loader.rb +1 -1
  27. data/lib/facter/framework/core/fact_manager.rb +1 -1
  28. data/lib/facter/framework/core/options/config_file_options.rb +16 -5
  29. data/lib/facter/framework/core/options/option_store.rb +40 -20
  30. data/lib/facter/framework/detector/os_hierarchy.rb +5 -9
  31. data/lib/facter/resolvers/aio_agent_version.rb +1 -1
  32. data/lib/facter/resolvers/aix/architecture_resolver.rb +17 -2
  33. data/lib/facter/resolvers/aix/disks.rb +2 -1
  34. data/lib/facter/resolvers/aix/filesystem_resolver.rb +1 -1
  35. data/lib/facter/resolvers/aix/hardware_resolver.rb +2 -1
  36. data/lib/facter/resolvers/aix/load_averages_resolver.rb +2 -1
  37. data/lib/facter/resolvers/aix/memory.rb +2 -1
  38. data/lib/facter/resolvers/aix/mountpoints.rb +2 -1
  39. data/lib/facter/resolvers/aix/networking_resolver.rb +1 -1
  40. data/lib/facter/resolvers/aix/nim.rb +1 -1
  41. data/lib/facter/resolvers/aix/os_level.rb +2 -2
  42. data/lib/facter/resolvers/aix/partitions.rb +2 -1
  43. data/lib/facter/resolvers/aix/processors.rb +2 -1
  44. data/lib/facter/resolvers/aix/serialnumber.rb +1 -1
  45. data/lib/facter/resolvers/augeas_resolver.rb +8 -2
  46. data/lib/facter/resolvers/base_resolver.rb +11 -4
  47. data/lib/facter/resolvers/bsd/processors.rb +13 -8
  48. data/lib/facter/resolvers/cloud.rb +1 -1
  49. data/lib/facter/resolvers/containers.rb +2 -1
  50. data/lib/facter/resolvers/debian_version.rb +1 -1
  51. data/lib/facter/resolvers/disk_resolver.rb +15 -4
  52. data/lib/facter/resolvers/dmi_decode.rb +2 -1
  53. data/lib/facter/resolvers/dmi_resolver.rb +4 -3
  54. data/lib/facter/resolvers/ec2.rb +2 -1
  55. data/lib/facter/resolvers/eos_release_resolver.rb +1 -1
  56. data/lib/facter/resolvers/facterversion_resolver.rb +1 -1
  57. data/lib/facter/resolvers/filesystems_resolver.rb +4 -1
  58. data/lib/facter/resolvers/fips_enabled_resolver.rb +4 -1
  59. data/lib/facter/resolvers/freebsd/dmi_resolver.rb +1 -1
  60. data/lib/facter/resolvers/freebsd/freebsd_version_resolver.rb +9 -7
  61. data/lib/facter/resolvers/freebsd/geom_resolver.rb +14 -21
  62. data/lib/facter/resolvers/freebsd/processors.rb +13 -8
  63. data/lib/facter/resolvers/freebsd/swap_memory_resolver.rb +2 -1
  64. data/lib/facter/resolvers/freebsd/system_memory_resolver.rb +2 -1
  65. data/lib/facter/resolvers/gce.rb +2 -1
  66. data/lib/facter/resolvers/hostname_resolver.rb +2 -1
  67. data/lib/facter/resolvers/identity_resolver.rb +2 -1
  68. data/lib/facter/resolvers/linux/docker_uptime.rb +2 -1
  69. data/lib/facter/resolvers/linux/load_averages.rb +2 -1
  70. data/lib/facter/resolvers/load_averages.rb +2 -1
  71. data/lib/facter/resolvers/lpar_resolver.rb +1 -1
  72. data/lib/facter/resolvers/lsb_release_resolver.rb +1 -1
  73. data/lib/facter/resolvers/lspci.rb +1 -1
  74. data/lib/facter/resolvers/macosx/dmi_resolver.rb +1 -1
  75. data/lib/facter/resolvers/macosx/filesystems_resolver.rb +1 -1
  76. data/lib/facter/resolvers/macosx/load_averages_resolver.rb +2 -1
  77. data/lib/facter/resolvers/macosx/mountpoints_resolver.rb +2 -1
  78. data/lib/facter/resolvers/macosx/processor_resolver.rb +2 -1
  79. data/lib/facter/resolvers/macosx/swap_memory_resolver.rb +2 -1
  80. data/lib/facter/resolvers/macosx/system_memory_resolver.rb +2 -1
  81. data/lib/facter/resolvers/macosx/system_profiler_resolver.rb +1 -3
  82. data/lib/facter/resolvers/memory_resolver.rb +15 -15
  83. data/lib/facter/resolvers/mountpoints_resolver.rb +54 -23
  84. data/lib/facter/resolvers/networking_linux_resolver.rb +15 -9
  85. data/lib/facter/resolvers/networking_resolver.rb +1 -1
  86. data/lib/facter/resolvers/open_vz.rb +1 -1
  87. data/lib/facter/resolvers/os_release_resolver.rb +1 -1
  88. data/lib/facter/resolvers/partitions.rb +62 -58
  89. data/lib/facter/resolvers/path_resolver.rb +1 -1
  90. data/lib/facter/resolvers/processors_resolver.rb +9 -2
  91. data/lib/facter/resolvers/puppet_version_resolver.rb +1 -1
  92. data/lib/facter/resolvers/redhat_release_resolver.rb +1 -1
  93. data/lib/facter/resolvers/ruby_resolver.rb +1 -1
  94. data/lib/facter/resolvers/selinux_resolver.rb +1 -1
  95. data/lib/facter/resolvers/solaris/disks.rb +1 -1
  96. data/lib/facter/resolvers/solaris/dmi.rb +3 -1
  97. data/lib/facter/resolvers/solaris/dmi_sparc.rb +1 -1
  98. data/lib/facter/resolvers/solaris/filesystems.rb +1 -1
  99. data/lib/facter/resolvers/solaris/ipaddress.rb +2 -1
  100. data/lib/facter/resolvers/solaris/ldom.rb +1 -3
  101. data/lib/facter/resolvers/solaris/memory.rb +2 -1
  102. data/lib/facter/resolvers/solaris/mountpoints.rb +60 -0
  103. data/lib/facter/resolvers/solaris/networking.rb +2 -3
  104. data/lib/facter/resolvers/solaris/os_release.rb +6 -4
  105. data/lib/facter/resolvers/solaris/processors.rb +2 -1
  106. data/lib/facter/resolvers/solaris/zone.rb +1 -1
  107. data/lib/facter/resolvers/solaris/zone_name.rb +1 -1
  108. data/lib/facter/resolvers/ssh_resolver.rb +8 -5
  109. data/lib/facter/resolvers/suse_release_resolver.rb +1 -1
  110. data/lib/facter/resolvers/sw_vers_resolver.rb +2 -2
  111. data/lib/facter/resolvers/timezone_resolver.rb +1 -1
  112. data/lib/facter/resolvers/uname_resolver.rb +1 -1
  113. data/lib/facter/resolvers/uptime_resolver.rb +1 -1
  114. data/lib/facter/resolvers/utils/networking.rb +2 -0
  115. data/lib/facter/resolvers/virt_what.rb +1 -1
  116. data/lib/facter/resolvers/vmware.rb +1 -1
  117. data/lib/facter/resolvers/windows/aio_agent_version.rb +1 -1
  118. data/lib/facter/resolvers/windows/dmi_bios_resolver.rb +1 -1
  119. data/lib/facter/resolvers/windows/dmi_computersystem_resolver.rb +1 -1
  120. data/lib/facter/resolvers/windows/fips_resolver.rb +2 -1
  121. data/lib/facter/resolvers/windows/hardware_architecture_resolver.rb +2 -1
  122. data/lib/facter/resolvers/windows/identity_resolver.rb +2 -1
  123. data/lib/facter/resolvers/windows/kernel_resolver.rb +3 -1
  124. data/lib/facter/resolvers/windows/memory_resolver.rb +3 -1
  125. data/lib/facter/resolvers/windows/netkvm_resolver.rb +2 -1
  126. data/lib/facter/resolvers/windows/networking_resolver.rb +2 -1
  127. data/lib/facter/resolvers/windows/processors_resolver.rb +2 -1
  128. data/lib/facter/resolvers/windows/product_release_resolver.rb +2 -1
  129. data/lib/facter/resolvers/windows/ssh.rb +3 -1
  130. data/lib/facter/resolvers/windows/system32_resolver.rb +3 -1
  131. data/lib/facter/resolvers/windows/uptime_resolver.rb +2 -1
  132. data/lib/facter/resolvers/windows/virtualization_resolver.rb +2 -1
  133. data/lib/facter/resolvers/windows/win_os_description_resolver.rb +3 -1
  134. data/lib/facter/resolvers/wpar_resolver.rb +1 -1
  135. data/lib/facter/resolvers/xen.rb +1 -1
  136. data/lib/facter/resolvers/zfs.rb +2 -1
  137. data/lib/facter/resolvers/zpool.rb +2 -1
  138. data/lib/facter/version.rb +1 -1
  139. metadata +7 -5
  140. data/lib/facter/fact_groups.conf +0 -308
  141. data/lib/facter/os_hierarchy.json +0 -36
@@ -8,31 +8,41 @@ module Facter
8
8
  # TODO: constant is not yet available when running puppet facts
9
9
  @log_level = :warn
10
10
  @show_legacy = true
11
+ @custom_facts = true
12
+ @blocked_facts = []
13
+ @ruby = true
14
+ @external_facts = true
15
+ @config = nil
16
+ @user_query = []
17
+ @strict = false
18
+ @json = false
19
+ @cache = true
20
+ @yaml = false
21
+ @puppet = false
22
+ @ttls = []
11
23
  @block = true
12
- @custom_dir = []
24
+ @cli = nil
13
25
  @config_file_custom_dir = []
14
- @custom_facts = true
15
- @external_dir = []
16
26
  @config_file_external_dir = []
17
27
  @default_external_dir = []
18
- @external_facts = true
19
- @ruby = true
20
- @cache = true
21
- @blocked_facts = []
22
- @user_query = []
23
- @block_list = {}
24
28
  @fact_groups = {}
29
+ @sequential = false
30
+ @ttls = []
31
+ @block_list = []
25
32
  @color = true
33
+ @trace = false
26
34
  @timing = false
35
+ @external_dir = []
36
+ @custom_dir = []
27
37
 
28
38
  class << self
29
39
  attr_reader :debug, :verbose, :log_level, :show_legacy,
30
40
  :custom_facts, :blocked_facts, :ruby, :external_facts
31
41
 
32
- attr_accessor :config, :user_query, :strict, :json, :haml,
42
+ attr_accessor :config, :user_query, :strict, :json,
33
43
  :cache, :yaml, :puppet, :ttls, :block, :cli, :config_file_custom_dir,
34
44
  :config_file_external_dir, :default_external_dir, :fact_groups,
35
- :block_list, :color, :trace, :timing
45
+ :block_list, :color, :trace, :sequential, :timing
36
46
 
37
47
  attr_writer :external_dir
38
48
 
@@ -158,26 +168,36 @@ module Facter
158
168
  # TODO: constant is not yet available when running puppet facts
159
169
  @log_level = :warn
160
170
  @show_legacy = true
161
- @block = true
162
171
  @ruby = true
163
172
  @user_query = []
164
- @cli = nil
173
+ @json = false
165
174
  @cache = true
166
- @trace = false
175
+ @yaml = false
176
+ @puppet = false
177
+ @ttls = []
178
+ @block = true
179
+ @cli = nil
180
+ @custom_facts = true
167
181
  reset_config
168
182
  end
169
183
 
170
184
  def reset_config
171
- @custom_dir = []
172
- @custom_facts = true
173
- @external_dir = []
174
- @default_external_dir = []
175
- @config_file_external_dir = []
176
- @external_facts = true
177
185
  @blocked_facts = []
186
+ @external_facts = true
187
+ @config = nil
188
+ @strict = false
189
+ @config_file_custom_dir = []
190
+ @config_file_external_dir = []
191
+ @default_external_dir = []
178
192
  @fact_groups = {}
179
193
  @block_list = {}
194
+ @color = true
195
+ @sequential = false
196
+ @ttls = []
197
+ @trace = false
180
198
  @timing = false
199
+ @external_dir = []
200
+ @custom_dir = []
181
201
  end
182
202
 
183
203
  def fallback_external_dir
@@ -1,29 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'facter/config'
4
+
3
5
  module Facter
4
6
  class OsHierarchy
5
7
  def initialize
6
8
  @log = Log.new(self)
7
- json_file_path = File.join(File.dirname(__FILE__), '../../os_hierarchy.json')
8
- json_file = Util::FileHelper.safe_read(json_file_path)
9
- begin
10
- @json_os_hierarchy = JSON.parse(json_file)
11
- rescue JSON::ParserError => _e
12
- @log.error('Could not parse os_hierarchy json')
13
- end
9
+ @os_hierarchy = Facter::Config::OS_HIERARCHY
14
10
  end
15
11
 
16
12
  def construct_hierarchy(searched_os)
17
13
  return [] if searched_os.nil?
18
14
 
19
15
  searched_os = searched_os.to_s.capitalize
20
- if @json_os_hierarchy.nil?
16
+ if @os_hierarchy.nil?
21
17
  @log.debug("There is no os_hierarchy, will fall back to: #{searched_os}")
22
18
  return [searched_os]
23
19
  end
24
20
 
25
21
  @searched_path = []
26
- search(@json_os_hierarchy, searched_os, [])
22
+ search(@os_hierarchy, searched_os, [])
27
23
 
28
24
  @searched_path.map { |os_name| os_name.to_s.capitalize }
29
25
  end
@@ -3,7 +3,7 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class AioAgentVersion < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
7
 
8
8
  class << self
9
9
  private
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  class Architecture < BaseResolver
6
6
  # :architecture
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  class << self
9
10
  private
10
11
 
@@ -14,9 +15,11 @@ module Facter
14
15
 
15
16
  def read_architecture(fact_name)
16
17
  require_relative 'utils/odm_query'
18
+
19
+ proc_number = read_proc
17
20
  odmquery = ODMQuery.new
18
21
  odmquery
19
- .equals('name', 'proc0')
22
+ .equals('name', proc_number)
20
23
  .equals('attribute', 'type')
21
24
 
22
25
  result = odmquery.execute
@@ -32,6 +35,18 @@ module Facter
32
35
 
33
36
  @fact_list[fact_name]
34
37
  end
38
+
39
+ def read_proc
40
+ odmquery = ODMQuery.new
41
+ odmquery
42
+ .equals('PdDvLn', 'processor/sys/proc_rspc')
43
+ .equals('status', '1')
44
+
45
+ result = odmquery.execute
46
+ result.each_line do |line|
47
+ return line.split('=')[1].strip.delete('\"') if line.include?('name')
48
+ end
49
+ end
35
50
  end
36
51
  end
37
52
  end
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class Disks < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  class << self
9
10
  private
10
11
 
@@ -4,7 +4,7 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class Filesystem < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
8
 
9
9
  class << self
10
10
  private
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  class Hardware < BaseResolver
6
6
  # :hardware
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 Aix
6
6
  class LoadAverages < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  class << self
9
10
  private
10
11
 
@@ -4,8 +4,9 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class Memory < BaseResolver
7
+ init_resolver
7
8
  # :hardware
8
- @fact_list ||= {}
9
+
9
10
  class << self
10
11
  private
11
12
 
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class Mountpoints < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  BLOCK_SIZE = 512
9
10
 
10
11
  class << self
@@ -4,7 +4,7 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class Networking < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
8
 
9
9
  class << self
10
10
  private
@@ -4,7 +4,7 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class Nim < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
8
 
9
9
  class << self
10
10
  private
@@ -4,7 +4,7 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class OsLevel < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
8
 
9
9
  class << self
10
10
  private
@@ -14,7 +14,7 @@ module Facter
14
14
  end
15
15
 
16
16
  def read_oslevel(fact_name)
17
- output = Facter::Core::Execution.execute('/usr/bin/oslevel -s', { limit: 2, logger: log })
17
+ output = Facter::Core::Execution.execute('/usr/bin/oslevel -s', logger: log)
18
18
  @fact_list[:build] = output unless output.empty?
19
19
  @fact_list[:kernel] = 'AIX'
20
20
 
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class Partitions < 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 Aix
6
6
  class Processors < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  class << self
9
10
  private
10
11
 
@@ -4,7 +4,7 @@ module Facter
4
4
  module Resolvers
5
5
  module Aix
6
6
  class Serialnumber < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
8
 
9
9
  class << self
10
10
  private
@@ -3,7 +3,7 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Augeas < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
7
 
8
8
  class << self
9
9
  private
@@ -20,7 +20,13 @@ module Facter
20
20
  end
21
21
 
22
22
  def read_augeas_from_cli
23
- output = Facter::Core::Execution.execute('augparse --version 2>&1', logger: log)
23
+ command = if File.readable?('/opt/puppetlabs/puppet/bin/augparse')
24
+ '/opt/puppetlabs/puppet/bin/augparse'
25
+ else
26
+ 'augparse'
27
+ end
28
+
29
+ output = Facter::Core::Execution.execute("#{command} --version 2>&1", logger: log)
24
30
  Regexp.last_match(1) if output =~ /^augparse (\d+\.\d+\.\d+)/
25
31
  end
26
32
 
@@ -11,21 +11,28 @@ module Facter
11
11
  @fact_list = {}
12
12
  end
13
13
 
14
+ def self.init_resolver
15
+ @fact_list = {}
16
+ @semaphore = Mutex.new
17
+ end
18
+
14
19
  def self.subscribe_to_manager
15
20
  Facter::SessionCache.subscribe(self)
16
21
  end
17
22
 
18
23
  def self.resolve(fact_name)
19
- subscribe_to_manager
20
- post_resolve(fact_name)
24
+ @semaphore.synchronize do
25
+ subscribe_to_manager
26
+ post_resolve(fact_name)
21
27
 
22
- validate_resolution(fact_name)
28
+ cache_nil_for_unresolved_facts(fact_name)
29
+ end
23
30
  rescue LoadError, NameError => e
24
31
  log.debug("resolving fact #{fact_name}, but #{e}")
25
32
  @fact_list[fact_name] = nil
26
33
  end
27
34
 
28
- def self.validate_resolution(fact_name)
35
+ def self.cache_nil_for_unresolved_facts(fact_name)
29
36
  @fact_list.fetch(fact_name) { @fact_list[fact_name] = nil }
30
37
  @fact_list[fact_name]
31
38
  end
@@ -4,8 +4,9 @@ module Facter
4
4
  module Resolvers
5
5
  module Bsd
6
6
  class Processors < BaseResolver
7
+ init_resolver
7
8
  @log = Facter::Log.new(self)
8
- @fact_list ||= {}
9
+
9
10
  class << self
10
11
  private
11
12
 
@@ -16,8 +17,12 @@ module Facter
16
17
  def collect_processors_info(fact_name)
17
18
  require 'facter/resolvers/bsd/ffi/ffi_helper'
18
19
 
19
- @fact_list[:logical_count] = logical_count
20
- @fact_list[:models] = Array.new(logical_count, model) if logical_count && model
20
+ count = logical_count
21
+ model = processor_model
22
+ speed = processor_speed
23
+
24
+ @fact_list[:logical_count] = count
25
+ @fact_list[:models] = Array.new(count, model) if count && model
21
26
  @fact_list[:speed] = speed * 1000 * 1000 if speed
22
27
 
23
28
  @fact_list[fact_name]
@@ -28,16 +33,16 @@ module Facter
28
33
  HW_NCPU = 3
29
34
  HW_CPUSPEED = 12
30
35
 
31
- def model
32
- @model ||= Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_MODEL])
36
+ def processor_model
37
+ Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_MODEL])
33
38
  end
34
39
 
35
40
  def logical_count
36
- @logical_count ||= Facter::Bsd::FfiHelper.sysctl(:uint32_t, [CTL_HW, HW_NCPU])
41
+ Facter::Bsd::FfiHelper.sysctl(:uint32_t, [CTL_HW, HW_NCPU])
37
42
  end
38
43
 
39
- def speed
40
- @speed ||= Facter::Bsd::FfiHelper.sysctl(:uint32_t, [CTL_HW, HW_CPUSPEED])
44
+ def processor_speed
45
+ Facter::Bsd::FfiHelper.sysctl(:uint32_t, [CTL_HW, HW_CPUSPEED])
41
46
  end
42
47
  end
43
48
  end
@@ -5,7 +5,7 @@ module Facter
5
5
  class Cloud < BaseResolver
6
6
  # cloud_provider
7
7
 
8
- @fact_list ||= {}
8
+ init_resolver
9
9
 
10
10
  class << self
11
11
  private
@@ -6,7 +6,8 @@ module Facter
6
6
  # :virtual
7
7
  # :hypervisor
8
8
 
9
- @fact_list ||= {}
9
+ init_resolver
10
+
10
11
  INFO = { 'docker' => 'id', 'lxc' => 'name' }.freeze
11
12
 
12
13
  class << self
@@ -7,7 +7,7 @@ module Facter
7
7
  # :minor
8
8
  # :full
9
9
 
10
- @fact_list ||= {}
10
+ init_resolver
11
11
 
12
12
  class << self
13
13
  private