facter 4.0.43 → 4.0.44

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: 02e89a2638e45004e55f6b0ec4d902946c844b5253ee4e27139ab01d1ee12a92
4
- data.tar.gz: bd4405449c4804a3c872510042a33c2cd6cf7fd588df8f95a99893fcb9248291
3
+ metadata.gz: 26e4084c96b8e155bea96be6eb69c241acf2974bf31d98ebc20a571f191e3083
4
+ data.tar.gz: 8cfb10254f2474b003c7d5f4739b455302546258b3dd0b65b1768df6e1a38b1e
5
5
  SHA512:
6
- metadata.gz: 31feabfeb9c2008ae30f16b6469cdf689b78e8711d64e3b614481a3e98b41d8271822b6cb26511a56ba5e19394f2ea811552b29168484d8ee377dbd3697f6655
7
- data.tar.gz: f579f81b0dc6fedf937d016e531650c183bc4f89ce66c918f47932af01e97bfc19f0e0f012adcfe36a52e4a9a314685765055fe23bde5aa4cf5b2f92353a450c
6
+ metadata.gz: 74e4755e3dedc6aedcba900d72577faa265f889b31b7ae60f6c85f0221f1e96f748c8b1342d9fc6ea7eafdf57dcacb675f3001465892b968f076c18432cfe9b7
7
+ data.tar.gz: cc030bcb93b65dddf47b5fdbbe39487a95f08794caf0f60985134c733f74a98ede9d0822c3647e9e0ab634eb9c336dd4a33a6f22d26ab8438f105787fbe74614
@@ -20,7 +20,7 @@ module Facter
20
20
  # Method used by puppet-agent to retrieve facts
21
21
  # @param args_as_string [string] facter cli arguments
22
22
  #
23
- # @return nil
23
+ # @return query result
24
24
  #
25
25
  # @api private
26
26
  def resolve(args_as_string)
@@ -42,7 +42,6 @@ module Facter
42
42
  else
43
43
  cli.invoke(:arg_parser)
44
44
  end
45
- nil
46
45
  end
47
46
 
48
47
  # Alias method for Facter.fact()
@@ -228,6 +227,18 @@ module Facter
228
227
  nil
229
228
  end
230
229
 
230
+ # Flushes cached values for all facts. This does not cause code to be
231
+ # reloaded; it only clears the cached results.
232
+ #
233
+ # @return [void]
234
+ #
235
+ # @api public
236
+ def flush
237
+ LegacyFacter.flush
238
+ SessionCache.invalidate_all_caches
239
+ nil
240
+ end
241
+
231
242
  # Loads all facts
232
243
  #
233
244
  # @return [nil]
@@ -0,0 +1,354 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facter
4
+ module Config
5
+ unless defined?(OS_HIERARCHY)
6
+ OS_HIERARCHY = [
7
+ {
8
+ 'Linux' => [
9
+ {
10
+ 'Debian' => %w[
11
+ Elementary
12
+ Ubuntu
13
+ Raspbian
14
+ ]
15
+ },
16
+ {
17
+ 'Rhel' => %w[
18
+ Fedora
19
+ Amzn
20
+ Centos
21
+ Ol
22
+ Scientific
23
+ ]
24
+ },
25
+ {
26
+ 'Sles' => [
27
+ 'Opensuse'
28
+ ]
29
+ }
30
+ ]
31
+ },
32
+ {
33
+ 'Bsd' => [
34
+ 'Freebsd'
35
+ ]
36
+ },
37
+ 'Solaris',
38
+ 'Macosx',
39
+ 'Windows',
40
+ 'Aix'
41
+ ].freeze
42
+ end
43
+ unless defined? FACT_GROUPS
44
+ FACT_GROUPS = {
45
+ 'EC2' => %w[
46
+ ec2_metadata
47
+ ec2_userdata
48
+ ],
49
+ 'GCE' => [
50
+ 'gce'
51
+ ],
52
+ 'augeas' => %w[
53
+ augeas
54
+ augeasversion
55
+ ],
56
+ 'desktop management interface' => %w[
57
+ dmi
58
+ bios_vendor
59
+ bios_version
60
+ bios_release_date
61
+ boardassettag
62
+ boardmanufacturer
63
+ boardproductname
64
+ boardserialnumber
65
+ chassisassettag
66
+ manufacturer
67
+ productname
68
+ serialnumber
69
+ uuid
70
+ chassistype
71
+ ],
72
+ 'file system' => %w[
73
+ mountpoints
74
+ filesystems
75
+ partitions
76
+ ],
77
+ 'hypervisors' => [
78
+ 'hypervisors'
79
+ ],
80
+ 'id' => %w[
81
+ id
82
+ gid
83
+ identity
84
+ ],
85
+ 'kernel' => %w[
86
+ kernel
87
+ kernelversion
88
+ kernelrelease
89
+ kernelmajversion
90
+ ],
91
+ 'load_average' => [
92
+ 'load_averages'
93
+ ],
94
+ 'memory' => %w[
95
+ memory
96
+ memoryfree
97
+ memoryfree_mb
98
+ memorysize
99
+ memorysize_mb
100
+ swapfree
101
+ swapfree_mb
102
+ swapsize
103
+ swapsize_mb
104
+ swapencrypted
105
+ ],
106
+ 'networking' => %w[
107
+ networking
108
+ hostname
109
+ ipaddress
110
+ ipaddress6
111
+ netmask
112
+ netmask6
113
+ network
114
+ network6
115
+ macaddress
116
+ interfaces
117
+ domain
118
+ fqdn
119
+ dhcp_servers
120
+ ],
121
+ 'operating system' => %w[
122
+ os
123
+ operatingsystem
124
+ osfamily
125
+ operatingsystemrelease
126
+ operatingsystemmajrelease
127
+ hardwaremodel
128
+ architecture
129
+ lsbdistid
130
+ lsbdistrelease
131
+ lsbdistcodename
132
+ lsbdistdescription
133
+ lsbmajdistrelease
134
+ lsbminordistrelease
135
+ lsbrelease
136
+ macosx_buildversion
137
+ macosx_productname
138
+ macosx_productversion
139
+ macosx_productversion_major
140
+ macosx_productversion_minor
141
+ windows_edition_id
142
+ windows_installation_type
143
+ windows_product_name
144
+ windows_release_id
145
+ system32
146
+ selinux
147
+ selinux_enforced
148
+ selinux_policyversion
149
+ selinux_current_mode
150
+ selinux_config_mode
151
+ selinux_config_policy
152
+ ],
153
+ 'path' => [
154
+ 'path'
155
+ ],
156
+ 'processor' => %w[
157
+ processors
158
+ processorcount
159
+ physicalprocessorcount
160
+ hardwareisa
161
+ ],
162
+ 'ssh' => %w[
163
+ ssh
164
+ sshdsakey
165
+ sshrsakey
166
+ sshecdsakey
167
+ sshed25519key
168
+ sshfp_dsa
169
+ sshfp_rsa
170
+ sshfp_ecdsa
171
+ sshfp_ed25519
172
+ ],
173
+ 'system profiler' => %w[
174
+ system_profiler
175
+ sp_boot_mode
176
+ sp_boot_rom_version
177
+ sp_boot_volume
178
+ sp_cpu_type
179
+ sp_current_processor_speed
180
+ sp_kernel_version
181
+ sp_l2_cache_core
182
+ sp_l3_cache
183
+ sp_local_host_name
184
+ sp_machine_model
185
+ sp_machine_name
186
+ sp_number_processors
187
+ sp_os_version
188
+ sp_packages
189
+ sp_physical_memory
190
+ sp_platform_uuid
191
+ sp_secure_vm
192
+ sp_serial_number
193
+ sp_smc_version_system
194
+ sp_uptime
195
+ sp_user_name
196
+ ],
197
+ 'timezone' => [
198
+ 'timezone'
199
+ ],
200
+ 'uptime' => %w[
201
+ system_uptime
202
+ uptime
203
+ uptime_days
204
+ uptime_hours
205
+ uptime_seconds
206
+ ],
207
+ 'virtualization' => %w[
208
+ virtual
209
+ is_virtual
210
+ cloud
211
+ ],
212
+ 'legacy' => [
213
+ 'architecture',
214
+ 'augeasversion',
215
+ 'bios_release_date',
216
+ 'bios_vendor',
217
+ 'bios_version',
218
+ 'blockdevice_*_model',
219
+ 'blockdevice_*_size',
220
+ 'blockdevice_*_vendor',
221
+ 'blockdevices',
222
+ 'boardassettag',
223
+ 'boardmanufacturer',
224
+ 'boardproductname',
225
+ 'boardserialnumber',
226
+ 'chassisassettag',
227
+ 'chassistype',
228
+ 'dhcp_servers',
229
+ 'domain',
230
+ 'fqdn',
231
+ 'gid',
232
+ 'hardwareisa',
233
+ 'hardwaremodel',
234
+ 'hostname',
235
+ 'id',
236
+ 'interfaces',
237
+ 'ipaddress',
238
+ 'ipaddress_.*',
239
+ 'ipaddress_*',
240
+ 'ipaddress6',
241
+ 'ipaddress6_.*',
242
+ 'ipaddress6_*',
243
+ 'ldom_*',
244
+ 'lsbdistcodename',
245
+ 'lsbdistdescription',
246
+ 'lsbdistid',
247
+ 'lsbdistrelease',
248
+ 'lsbmajdistrelease',
249
+ 'lsbminordistrelease',
250
+ 'lsbrelease',
251
+ 'macaddress',
252
+ 'macaddress_.*',
253
+ 'macaddress_*',
254
+ 'macosx_buildversion',
255
+ 'macosx_productname',
256
+ 'macosx_productversion',
257
+ 'macosx_productversion_major',
258
+ 'macosx_productversion_minor',
259
+ 'manufacturer',
260
+ 'memoryfree',
261
+ 'memoryfree_mb',
262
+ 'memorysize',
263
+ 'memorysize_mb',
264
+ 'mtu_.*',
265
+ 'mtu_*',
266
+ 'netmask',
267
+ 'netmask_.*',
268
+ 'netmask_*',
269
+ 'netmask6',
270
+ 'netmask6_.*',
271
+ 'netmask6_*',
272
+ 'network',
273
+ 'network_.*',
274
+ 'network_*',
275
+ 'network6',
276
+ 'network6_.*',
277
+ 'network6_*',
278
+ 'operatingsystem',
279
+ 'operatingsystemmajrelease',
280
+ 'operatingsystemrelease',
281
+ 'osfamily',
282
+ 'physicalprocessorcount',
283
+ 'processor.*',
284
+ 'processor*',
285
+ 'processorcount',
286
+ 'productname',
287
+ 'rubyplatform',
288
+ 'rubysitedir',
289
+ 'rubyversion',
290
+ 'scope6',
291
+ 'scope6_.*',
292
+ 'selinux',
293
+ 'selinux_config_mode',
294
+ 'selinux_config_policy',
295
+ 'selinux_current_mode',
296
+ 'selinux_enforced',
297
+ 'selinux_policyversion',
298
+ 'serialnumber',
299
+ 'sp_*',
300
+ 'sp_boot_mode',
301
+ 'sp_boot_rom_version',
302
+ 'sp_boot_volume',
303
+ 'sp_cpu_type',
304
+ 'sp_current_processor_speed',
305
+ 'sp_kernel_version',
306
+ 'sp_l2_cache_core',
307
+ 'sp_l3_cache',
308
+ 'sp_local_host_name',
309
+ 'sp_machine_model',
310
+ 'sp_machine_name',
311
+ 'sp_number_processors',
312
+ 'sp_os_version',
313
+ 'sp_packages',
314
+ 'sp_physical_memory',
315
+ 'sp_platform_uuid',
316
+ 'sp_secure_vm',
317
+ 'sp_serial_number',
318
+ 'sp_smc_version_system',
319
+ 'sp_uptime',
320
+ 'sp_user_name',
321
+ 'ssh.*key',
322
+ 'ssh*key',
323
+ 'sshfp_.*',
324
+ 'sshfp_*',
325
+ 'swapencrypted',
326
+ 'swapfree',
327
+ 'swapfree_mb',
328
+ 'swapsize',
329
+ 'swapsize_mb',
330
+ 'system32',
331
+ 'uptime',
332
+ 'uptime_days',
333
+ 'uptime_hours',
334
+ 'uptime_seconds',
335
+ 'uuid',
336
+ 'windows_edition_id',
337
+ 'windows_installation_type',
338
+ 'windows_product_name',
339
+ 'windows_release_id',
340
+ 'xendomains',
341
+ 'zone_*_brand',
342
+ 'zone_*_id',
343
+ 'zone_*_iptype',
344
+ 'zone_*_name',
345
+ 'zone_*_path',
346
+ 'zone_*_status',
347
+ 'zone_*_uuid',
348
+ 'zonename',
349
+ 'zones'
350
+ ]
351
+ }.freeze
352
+ end
353
+ end
354
+ end
@@ -155,7 +155,7 @@ module Facter
155
155
  @searching
156
156
  end
157
157
 
158
- # Lock our searching process, so we never ge stuck in recursion.
158
+ # Lock our searching process, so we never get stuck in recursion.
159
159
  def searching
160
160
  raise "Caught recursion on #{@name}" if searching?
161
161
 
@@ -27,7 +27,7 @@ module Facts
27
27
  fact_value = {}
28
28
  fact_value['full'] = version
29
29
  fact_value['major'] = versions[0]
30
- fact_value['minor'] = versions[1].gsub(/^0([1-9])/, '\1') if versions[1]
30
+ fact_value['minor'] = versions[1] if versions[1]
31
31
  fact_value
32
32
  end
33
33
  end
@@ -7,11 +7,13 @@ module Facter
7
7
  module Benchmarking
8
8
  class Timer
9
9
  class << self
10
- def measure(fact_name)
10
+ def measure(fact_name, prefix_message = '')
11
11
  if Options[:timing]
12
12
  time = Benchmark.measure { yield }
13
13
 
14
- puts "fact `#{fact_name}`, took: #{time.format('%r')} seconds"
14
+ log = "fact '#{fact_name}', took: #{time.format('%r')} seconds"
15
+ prefix_message = "#{prefix_message} " unless prefix_message.empty?
16
+ puts "#{prefix_message}#{log}"
15
17
  else
16
18
  yield
17
19
  end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'facter/config'
4
+
3
5
  module Facter
4
6
  class FactGroups
5
7
  attr_reader :groups, :block_list, :facts_ttls
@@ -8,10 +10,8 @@ module Facter
8
10
 
9
11
  STRING_TO_SECONDS = { 'seconds' => 1, 'minutes' => 60, 'hours' => 3600, 'days' => 3600 * 24 }.freeze
10
12
 
11
- def initialize(group_list_path = nil)
12
- default_path = File.join(File.dirname(__FILE__), '../../fact_groups.conf')
13
- @groups_file_path = group_list_path || default_path
14
- @groups ||= File.readable?(@groups_file_path) ? Hocon.load(@groups_file_path) : {}
13
+ def initialize
14
+ @groups = Facter::Config::FACT_GROUPS.dup
15
15
  load_groups
16
16
  load_groups_from_options
17
17
  load_facts_ttls
@@ -91,7 +91,7 @@ module Facter
91
91
 
92
92
  def load_groups
93
93
  config = ConfigReader.init(Options[:config])
94
- @block_list = config.block_list || {}
94
+ @block_list = config.block_list || []
95
95
  @groups_ttls = config.ttls || []
96
96
  @groups.merge!(config.fact_groups) if config.fact_groups
97
97
  end