facter 4.1.0 → 4.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c5eeb6c68641c9730832a6e41af6bd0bf5367f1953cd737122356a1ddb9a1265
4
- data.tar.gz: 3ead9f3065982b9eb476844a21901d5fd1fa8bc1f165b3118490054b004352df
3
+ metadata.gz: a6ca2540a7ccad083604f2a0a1142cd0e870714dae635dc2fd8d60baa1b1bcbf
4
+ data.tar.gz: 25cec4e7c98a145d3950dd8c345ae04ee2bdc1b04ae78b08acb1674678c24d64
5
5
  SHA512:
6
- metadata.gz: 6c10f947a77e46942b5b062b2f3e1ded108b15f9f3a48202e75681be8590400644f42f6d3f3496061741ed81e8fca9ae314098257f1036d6ac09fee694e9a366
7
- data.tar.gz: 39b85182513dd1a2b8737785cf5b56f946df171c62462bd39cb32008d52ba7cf2c23d27e91e55998e4b037734838f3eba061d3b96d41c11b2cffe1714d1de838
6
+ metadata.gz: e43bf9233eca175b442b0cbda693efcae3f3b0f1e370b9b9ef5bca1c81a9450e4bfc3000d957463cbf49900abc6bf9769ba9664cc6750c17f58ad8abd4cf9730
7
+ data.tar.gz: 47c5a45dd7dfc505cda3d71634258ed7c7ca13e24ee6858219d89480f9b260e278cd8b602a59501a24ec61a7fcb62f1b929330cc5c4b54d34b13718b818280d5
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ module Processors
6
+ class Cores
7
+ FACT_NAME = 'processors.cores'
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Aix::Processors.resolve(:cores_per_socket)
11
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ module Processors
6
+ class Threads
7
+ FACT_NAME = 'processors.threads'
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Aix::Processors.resolve(:threads_per_core)
11
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Linux
5
+ module Processors
6
+ class Cores
7
+ FACT_NAME = 'processors.cores'
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Linux::Lscpu.resolve(:cores_per_socket)
11
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Linux
5
+ module Processors
6
+ class Threads
7
+ FACT_NAME = 'processors.threads'
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Linux::Lscpu.resolve(:threads_per_core)
11
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -10,14 +10,22 @@ module Facts
10
10
 
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::SwVers.resolve(:productversion)
13
- versions = fact_value.split('.')
14
- ver = { 'full' => fact_value, 'major' => "#{versions[0]}.#{versions[1]}", 'minor' => versions[-1] }
13
+ ver = version_hash(fact_value)
15
14
 
16
15
  [Facter::ResolvedFact.new(FACT_NAME, ver),
17
16
  Facter::ResolvedFact.new(ALIASES[0], fact_value, :legacy),
18
17
  Facter::ResolvedFact.new(ALIASES[1], ver['major'], :legacy),
19
18
  Facter::ResolvedFact.new(ALIASES[2], ver['minor'], :legacy)]
20
19
  end
20
+
21
+ def version_hash(fact_value)
22
+ versions = fact_value.split('.')
23
+ if versions[0] == '10'
24
+ { 'full' => fact_value, 'major' => "#{versions[0]}.#{versions[1]}", 'minor' => versions[-1] }
25
+ else
26
+ { 'full' => fact_value, 'major' => versions[0], 'minor' => "#{versions[1]}.#{versions[-1]}" }
27
+ end
28
+ end
21
29
  end
22
30
  end
23
31
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Macosx
5
+ module Processors
6
+ class Cores
7
+ FACT_NAME = 'processors.cores'
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Macosx::Processors.resolve(:cores_per_socket)
11
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Macosx
5
+ module Processors
6
+ class Threads
7
+ FACT_NAME = 'processors.threads'
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Macosx::Processors.resolve(:threads_per_core)
11
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Solaris
5
+ module Processors
6
+ class Cores
7
+ FACT_NAME = 'processors.cores'
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Solaris::Processors.resolve(:cores_per_socket)
11
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Solaris
5
+ module Processors
6
+ class Threads
7
+ FACT_NAME = 'processors.threads'
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Solaris::Processors.resolve(:threads_per_core)
11
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Windows
5
+ module Processors
6
+ class Cores
7
+ FACT_NAME = 'processors.cores'
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Processors.resolve(:cores_per_socket)
11
+
12
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Windows
5
+ module Processors
6
+ class Threads
7
+ FACT_NAME = 'processors.threads'
8
+
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Processors.resolve(:threads_per_core)
11
+
12
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -18,8 +18,8 @@ module Facter
18
18
  @external_fact_loader ||= ExternalFactLoader.new
19
19
  end
20
20
 
21
- def load(options)
22
- @internal_facts = load_internal_facts(options)
21
+ def load(user_query, options)
22
+ @internal_facts = load_internal_facts(user_query, options)
23
23
  @custom_facts = load_custom_facts(options)
24
24
  @external_facts = load_external_facts(options)
25
25
 
@@ -28,10 +28,10 @@ module Facter
28
28
  @facts = @internal_facts + @external_facts + @custom_facts
29
29
  end
30
30
 
31
- def load_internal_facts(options)
31
+ def load_internal_facts(user_query, options)
32
32
  @log.debug('Loading internal facts')
33
33
  internal_facts = []
34
- if options[:user_query] || options[:show_legacy]
34
+ if user_query || options[:show_legacy]
35
35
  # if we have a user query, then we must search in core facts and legacy facts
36
36
  @log.debug('Loading all internal facts')
37
37
  internal_facts = @internal_loader.facts
@@ -16,7 +16,7 @@ module Facter
16
16
  @options[:user_query] = user_query
17
17
  cache_manager = Facter::CacheManager.new
18
18
 
19
- searched_facts = QueryParser.parse(user_query, @fact_loader.load(@options))
19
+ searched_facts = QueryParser.parse(user_query, @fact_loader.load(user_query, @options))
20
20
 
21
21
  searched_facts, cached_facts = cache_manager.resolve_facts(searched_facts)
22
22
  internal_facts = @internal_fact_mgr.resolve_facts(searched_facts)
@@ -45,11 +45,11 @@ module Facter
45
45
 
46
46
  @cache_manager = Facter::CacheManager.new
47
47
 
48
- custom_facts = custom_fact_by_filename || []
49
- core_and_external_facts = core_or_external_fact || []
48
+ custom_facts = custom_fact_by_filename(user_query) || []
49
+ core_and_external_facts = core_or_external_fact(user_query) || []
50
50
  resolved_facts = core_and_external_facts + custom_facts
51
51
 
52
- resolved_facts = all_custom_facts if resolved_facts.empty?
52
+ resolved_facts = all_custom_facts(user_query) if resolved_facts.empty?
53
53
 
54
54
  @cache_manager.cache_facts(resolved_facts)
55
55
 
@@ -65,7 +65,7 @@ module Facter
65
65
  private
66
66
 
67
67
  def core_fact(user_query, options)
68
- loaded_facts_hash = @fact_loader.load_internal_facts(options)
68
+ loaded_facts_hash = @fact_loader.load_internal_facts(user_query, options)
69
69
 
70
70
  searched_facts = QueryParser.parse(user_query, loaded_facts_hash)
71
71
  searched_facts, cached_facts = @cache_manager.resolve_facts(searched_facts)
@@ -78,14 +78,13 @@ module Facter
78
78
  resolved_facts
79
79
  end
80
80
 
81
- def custom_fact_by_filename
82
- user_query = @options[:user_query]
81
+ def custom_fact_by_filename(user_query)
83
82
  @log.debug("Searching fact: #{user_query} in file: #{user_query}.rb")
84
83
 
85
84
  custom_fact = @fact_loader.load_custom_fact(@options, user_query)
86
85
  return unless custom_fact.any?
87
86
 
88
- searched_facts = parse_user_query(custom_fact, @options)
87
+ searched_facts = parse_user_query(custom_fact, user_query)
89
88
  searched_facts, cached_facts = @cache_manager.resolve_facts(searched_facts)
90
89
 
91
90
  resolved_facts = @external_fact_mgr.resolve_facts(searched_facts)
@@ -93,13 +92,12 @@ module Facter
93
92
  resolved_facts if resolved_facts.any?
94
93
  end
95
94
 
96
- def core_or_external_fact
97
- user_query = @options[:user_query]
95
+ def core_or_external_fact(user_query)
98
96
  @log.debug("Searching fact: #{user_query} in core facts and external facts")
99
97
 
100
98
  core_facts = core_fact([user_query], @options)
101
99
  external_facts = @fact_loader.load_external_facts(@options)
102
- searched_facts = parse_user_query(external_facts, @options)
100
+ searched_facts = parse_user_query(external_facts, user_query)
103
101
  searched_facts, cached_facts = @cache_manager.resolve_facts(searched_facts)
104
102
 
105
103
  resolved_facts = @external_fact_mgr.resolve_facts(searched_facts)
@@ -109,20 +107,19 @@ module Facter
109
107
  resolved_facts unless resolved_facts.map(&:value).compact.empty?
110
108
  end
111
109
 
112
- def all_custom_facts
113
- user_query = @options[:user_query]
110
+ def all_custom_facts(user_query)
114
111
  @log.debug("Searching fact: #{user_query} in all custom facts")
115
112
 
116
113
  custom_facts = @fact_loader.load_custom_facts(@options)
117
- searched_facts = parse_user_query(custom_facts, @options)
114
+ searched_facts = parse_user_query(custom_facts, user_query)
118
115
  searched_facts, cached_facts = @cache_manager.resolve_facts(searched_facts)
119
116
 
120
117
  resolved_facts = @external_fact_mgr.resolve_facts(searched_facts)
121
118
  resolved_facts.concat(cached_facts)
122
119
  end
123
120
 
124
- def parse_user_query(loaded_facts, options)
125
- user_query = Array(options[:user_query])
121
+ def parse_user_query(loaded_facts, user_query)
122
+ user_query = Array(user_query)
126
123
  QueryParser.parse(user_query, loaded_facts)
127
124
  end
128
125
 
@@ -22,19 +22,18 @@ module Facter
22
22
  end
23
23
 
24
24
  def dig_fact(user_query)
25
- split_user_query = Facter::Utils.split_user_query(user_query)
26
- fact = dig(user_query) || dig(*split_user_query)
27
- rescue TypeError
28
- # An incorrect user query (e.g. mountpoints./.available.asd) can cause
29
- # Facter to call dig on a string, which raises a type error.
30
- # If this happens, we assume the query is wrong and silently continue.
31
- ensure
32
- @log.debug("Fact \"#{user_query}\" does not exist") unless fact
33
- fact
25
+ value(user_query)
26
+ rescue KeyError
27
+ nil
34
28
  end
35
29
 
36
30
  def value(user_query)
37
- dig_fact(user_query)
31
+ fetch(user_query) do
32
+ split_user_query = Facter::Utils.split_user_query(user_query)
33
+ split_user_query.reduce(self) do |memo, key|
34
+ memo.fetch(key) { memo.fetch(key.to_s) } if memo.is_a?(Hash) || memo.is_a?(Array)
35
+ end
36
+ end
38
37
  end
39
38
 
40
39
  def bury(*args)
@@ -16,6 +16,8 @@ module Facter
16
16
  def query_pddv(fact_name)
17
17
  @fact_list[:models] = []
18
18
  @fact_list[:logical_count] = 0
19
+ @fact_list[:cores_per_socket] = 0
20
+ @fact_list[:threads_per_core] = 0
19
21
 
20
22
  odmquery = Facter::Util::Aix::ODMQuery.new
21
23
  odmquery.equals('class', 'processor')
@@ -59,6 +61,8 @@ module Facter
59
61
  threads = smt_enabled ? smt_threads : 1
60
62
 
61
63
  @fact_list[:logical_count] += threads
64
+ @fact_list[:cores_per_socket] += 1
65
+ @fact_list[:threads_per_core] = threads
62
66
  @fact_list[:models].concat([type] * threads)
63
67
  end
64
68
 
@@ -9,12 +9,17 @@ module Facter
9
9
  ITEMS = { logical_count: 'hw.logicalcpu_max',
10
10
  physical_count: 'hw.physicalcpu_max',
11
11
  brand: 'machdep.cpu.brand_string',
12
- speed: 'hw.cpufrequency_max' }.freeze
12
+ speed: 'hw.cpufrequency_max',
13
+ cores_per_socket: 'machdep.cpu.core_count',
14
+ threads_per_core: 'machdep.cpu.thread_count' }.freeze
15
+
13
16
  class << self
14
17
  # :logicalcount
15
18
  # :models
16
19
  # :physicalcount
17
20
  # :speed
21
+ # :cores_per_socket
22
+ # :threads_per_core
18
23
 
19
24
  private
20
25
 
@@ -33,6 +38,8 @@ module Facter
33
38
  build_physical_count(processors_data[1])
34
39
  build_models(processors_data[2])
35
40
  build_speed(processors_data[3])
41
+ build_cores_per_socket(processors_data[4])
42
+ build_threads_per_core(processors_data[5], processors_data[4])
36
43
  end
37
44
 
38
45
  def build_logical_count(count)
@@ -51,6 +58,14 @@ module Facter
51
58
  def build_speed(value)
52
59
  @fact_list[:speed] = value.split(': ')[1].to_i
53
60
  end
61
+
62
+ def build_cores_per_socket(count)
63
+ @fact_list[:cores_per_socket] = count.split(': ')[1].to_i
64
+ end
65
+
66
+ def build_threads_per_core(number_of_threads, number_of_cores)
67
+ @fact_list[:threads_per_core] = number_of_threads.split(': ')[1].to_i / number_of_cores.split(': ')[1].to_i
68
+ end
54
69
  end
55
70
  end
56
71
  end
@@ -63,7 +63,8 @@ module Facter
63
63
  end
64
64
 
65
65
  def extract_mac(raw_data, parsed_interface_data)
66
- mac = raw_data.match(/(?:ether|lladdr)\s+(\w?\w:\w?\w:\w?\w:\w?\w:\w?\w:\w?\w)/)&.captures&.first
66
+ mac = raw_data.match(/(?:ether|lladdr)\s+((?:\w?\w:){5}\w?\w)|(?:infiniband)\s+((?:\w?\w:){19}\w?\w)/)
67
+ &.captures&.compact&.first
67
68
  parsed_interface_data[:mac] = mac unless mac.nil?
68
69
  end
69
70
 
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facter
4
+ module Resolvers
5
+ module Linux
6
+ class Lscpu < BaseResolver
7
+ init_resolver
8
+
9
+ ITEMS = { threads_per_core: "-e 'Thread(s)'",
10
+ cores_per_socket: "-e 'Core(s)'" }.freeze
11
+
12
+ class << self
13
+ #:cores_per_socket
14
+ #:threads_per_core
15
+
16
+ private
17
+
18
+ def post_resolve(fact_name, _options)
19
+ @fact_list.fetch(fact_name) { read_cpuinfo(fact_name) }
20
+ end
21
+
22
+ def read_cpuinfo(fact_name)
23
+ lscpu_output = Facter::Core::Execution.execute("lscpu | grep #{ITEMS.values.join(' ')}", logger: log)
24
+ build_fact_list(lscpu_output.split("\n"))
25
+ @fact_list[fact_name]
26
+ end
27
+
28
+ def build_fact_list(processors_data)
29
+ build_threads_per_core(processors_data[0])
30
+ build_cores_per_socket(processors_data[1])
31
+ end
32
+
33
+ def build_threads_per_core(index)
34
+ @fact_list[:threads_per_core] = index.split(': ')[1].to_i
35
+ end
36
+
37
+ def build_cores_per_socket(index)
38
+ @fact_list[:cores_per_socket] = index.split(': ')[1].to_i
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -28,6 +28,13 @@ module Facter
28
28
  @fact_list[:physical_count] = output.scan(/chip_id .*/).uniq.size
29
29
  @fact_list[:speed] = output.scan(/current_clock_Hz .*/).first.gsub(/[a-zA-z\s]+/, '').to_i
30
30
  @fact_list[:models] = output.scan(/brand .*/).map { |elem| elem.gsub(/brand(\s+)/, '') }
31
+ calculate_threads_cores(output)
32
+ end
33
+
34
+ def calculate_threads_cores(output)
35
+ @fact_list[:core_count] = output.scan(/\score_id .*/).uniq.size
36
+ @fact_list[:threads_per_core] = @fact_list[:logical_count] / @fact_list[:core_count]
37
+ @fact_list[:cores_per_socket] = @fact_list[:core_count] / @fact_list[:physical_count]
31
38
  end
32
39
  end
33
40
  end
@@ -19,14 +19,19 @@ module Facter
19
19
 
20
20
  def read_fact_from_win32_processor(fact_name)
21
21
  win = Facter::Util::Windows::Win32Ole.new
22
- proc = win.exec_query('SELECT Name,Architecture,NumberOfLogicalProcessors FROM Win32_Processor')
22
+ query_string = 'SELECT Name,'\
23
+ 'Architecture,'\
24
+ 'NumberOfLogicalProcessors,'\
25
+ 'NumberOfCores FROM Win32_Processor'
26
+ proc = win.exec_query(query_string)
23
27
  unless proc
24
28
  log.debug 'WMI query returned no results'\
25
29
  'for Win32_Processor with values Name, Architecture and NumberOfLogicalProcessors.'
26
30
  return
27
31
  end
28
32
  result = iterate_proc(proc)
29
- build_fact_list(result)
33
+ cores_threads = calculate_cores_threads(proc, result)
34
+ build_fact_list(result, cores_threads)
30
35
  @fact_list[fact_name]
31
36
  end
32
37
 
@@ -40,7 +45,29 @@ module Facter
40
45
  isa ||= find_isa(proc.Architecture)
41
46
  end
42
47
 
43
- { models: models, isa: isa, logical_count: logical_count.zero? ? models.count : logical_count }
48
+ { models: models,
49
+ isa: isa,
50
+ logical_count: logical_processors_count(logical_count, models.count) }
51
+ end
52
+
53
+ def calculate_cores_threads(result_proc, data_proc)
54
+ cores = 0
55
+ threads_per_core = 0
56
+ result_proc.each do |proc|
57
+ cores = proc.NumberOfCores
58
+ threads_per_core = if check_hyperthreading(data_proc[:logical_count], cores) ||
59
+ cores > data_proc[:logical_count]
60
+ 1
61
+ else
62
+ data_proc[:logical_count] / (cores * data_proc[:models].size)
63
+ end
64
+ end
65
+ { cores_per_socket: cores,
66
+ threads_per_core: threads_per_core }
67
+ end
68
+
69
+ def check_hyperthreading(cores, logical_processors)
70
+ cores == logical_processors
44
71
  end
45
72
 
46
73
  def find_isa(arch)
@@ -52,11 +79,21 @@ module Facter
52
79
  log.debug 'Unable to determine processor type: unknown architecture'
53
80
  end
54
81
 
55
- def build_fact_list(result)
82
+ def logical_processors_count(logical_count, models_count)
83
+ if logical_count.zero?
84
+ models_count
85
+ else
86
+ logical_count
87
+ end
88
+ end
89
+
90
+ def build_fact_list(result, cores_threads)
56
91
  @fact_list[:count] = result[:logical_count]
57
92
  @fact_list[:isa] = result[:isa]
58
93
  @fact_list[:models] = result[:models]
59
94
  @fact_list[:physicalcount] = result[:models].size
95
+ @fact_list[:cores_per_socket] = cores_threads[:cores_per_socket]
96
+ @fact_list[:threads_per_core] = cores_threads[:threads_per_core]
60
97
  end
61
98
  end
62
99
  end
@@ -36,7 +36,7 @@ module Facter
36
36
  def search_for_mac(ifaddr)
37
37
  mac = mac_from_bonded_interface(ifaddr.name)
38
38
  mac ||= mac_from(ifaddr)
39
- mac if !mac.nil? && mac != '00:00:00:00:00:00' && mac =~ /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/
39
+ mac if !mac.nil? && mac != '00:00:00:00:00:00' && mac =~ /^([0-9A-Fa-f]{2}[:-]){5,19}([0-9A-Fa-f]{2})$/
40
40
  end
41
41
 
42
42
  def mac_from_bonded_interface(interface_name)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Facter
4
- VERSION = '4.1.0' unless defined?(VERSION)
4
+ VERSION = '4.1.1' unless defined?(VERSION)
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facter
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 4.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-14 00:00:00.000000000 Z
11
+ date: 2021-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -260,10 +260,12 @@ files:
260
260
  - lib/facter/facts/aix/partitions.rb
261
261
  - lib/facter/facts/aix/path.rb
262
262
  - lib/facter/facts/aix/processor.rb
263
+ - lib/facter/facts/aix/processors/cores.rb
263
264
  - lib/facter/facts/aix/processors/count.rb
264
265
  - lib/facter/facts/aix/processors/isa.rb
265
266
  - lib/facter/facts/aix/processors/models.rb
266
267
  - lib/facter/facts/aix/processors/speed.rb
268
+ - lib/facter/facts/aix/processors/threads.rb
267
269
  - lib/facter/facts/aix/ruby/platform.rb
268
270
  - lib/facter/facts/aix/ruby/sitedir.rb
269
271
  - lib/facter/facts/aix/ruby/version.rb
@@ -489,11 +491,13 @@ files:
489
491
  - lib/facter/facts/linux/partitions.rb
490
492
  - lib/facter/facts/linux/path.rb
491
493
  - lib/facter/facts/linux/processor.rb
494
+ - lib/facter/facts/linux/processors/cores.rb
492
495
  - lib/facter/facts/linux/processors/count.rb
493
496
  - lib/facter/facts/linux/processors/isa.rb
494
497
  - lib/facter/facts/linux/processors/models.rb
495
498
  - lib/facter/facts/linux/processors/physicalcount.rb
496
499
  - lib/facter/facts/linux/processors/speed.rb
500
+ - lib/facter/facts/linux/processors/threads.rb
497
501
  - lib/facter/facts/linux/ruby/platform.rb
498
502
  - lib/facter/facts/linux/ruby/sitedir.rb
499
503
  - lib/facter/facts/linux/ruby/version.rb
@@ -576,11 +580,13 @@ files:
576
580
  - lib/facter/facts/macosx/os/name.rb
577
581
  - lib/facter/facts/macosx/os/release.rb
578
582
  - lib/facter/facts/macosx/path.rb
583
+ - lib/facter/facts/macosx/processors/cores.rb
579
584
  - lib/facter/facts/macosx/processors/count.rb
580
585
  - lib/facter/facts/macosx/processors/isa.rb
581
586
  - lib/facter/facts/macosx/processors/models.rb
582
587
  - lib/facter/facts/macosx/processors/physicalcount.rb
583
588
  - lib/facter/facts/macosx/processors/speed.rb
589
+ - lib/facter/facts/macosx/processors/threads.rb
584
590
  - lib/facter/facts/macosx/ruby/platform.rb
585
591
  - lib/facter/facts/macosx/ruby/sitedir.rb
586
592
  - lib/facter/facts/macosx/ruby/version.rb
@@ -716,11 +722,13 @@ files:
716
722
  - lib/facter/facts/solaris/os/name.rb
717
723
  - lib/facter/facts/solaris/os/release.rb
718
724
  - lib/facter/facts/solaris/path.rb
725
+ - lib/facter/facts/solaris/processors/cores.rb
719
726
  - lib/facter/facts/solaris/processors/count.rb
720
727
  - lib/facter/facts/solaris/processors/isa.rb
721
728
  - lib/facter/facts/solaris/processors/models.rb
722
729
  - lib/facter/facts/solaris/processors/physicalcount.rb
723
730
  - lib/facter/facts/solaris/processors/speed.rb
731
+ - lib/facter/facts/solaris/processors/threads.rb
724
732
  - lib/facter/facts/solaris/ruby/platform.rb
725
733
  - lib/facter/facts/solaris/ruby/sitedir.rb
726
734
  - lib/facter/facts/solaris/ruby/version.rb
@@ -810,10 +818,12 @@ files:
810
818
  - lib/facter/facts/windows/os/windows/system32.rb
811
819
  - lib/facter/facts/windows/path.rb
812
820
  - lib/facter/facts/windows/processor.rb
821
+ - lib/facter/facts/windows/processors/cores.rb
813
822
  - lib/facter/facts/windows/processors/count.rb
814
823
  - lib/facter/facts/windows/processors/isa.rb
815
824
  - lib/facter/facts/windows/processors/models.rb
816
825
  - lib/facter/facts/windows/processors/physicalcount.rb
826
+ - lib/facter/facts/windows/processors/threads.rb
817
827
  - lib/facter/facts/windows/ruby/platform.rb
818
828
  - lib/facter/facts/windows/ruby/sitedir.rb
819
829
  - lib/facter/facts/windows/ruby/version.rb
@@ -933,6 +943,7 @@ files:
933
943
  - lib/facter/resolvers/partitions.rb
934
944
  - lib/facter/resolvers/path.rb
935
945
  - lib/facter/resolvers/processors.rb
946
+ - lib/facter/resolvers/processors_lscpu.rb
936
947
  - lib/facter/resolvers/redhat_release.rb
937
948
  - lib/facter/resolvers/release_from_first_line.rb
938
949
  - lib/facter/resolvers/ruby.rb