facter 4.0.39 → 4.0.44

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/bin/facter +3 -4
  3. data/lib/facter.rb +107 -28
  4. data/lib/facter/config.rb +354 -0
  5. data/lib/facter/custom_facts/core/aggregate.rb +51 -17
  6. data/lib/facter/custom_facts/core/execution.rb +27 -35
  7. data/lib/facter/custom_facts/core/execution/base.rb +13 -7
  8. data/lib/facter/custom_facts/util/directory_loader.rb +1 -1
  9. data/lib/facter/custom_facts/util/fact.rb +1 -1
  10. data/lib/facter/custom_facts/util/resolution.rb +40 -11
  11. data/lib/facter/facts/aix/disks.rb +1 -1
  12. data/lib/facter/facts/linux/ec2_metadata.rb +5 -29
  13. data/lib/facter/facts/linux/ec2_userdata.rb +5 -27
  14. data/lib/facter/facts/linux/is_virtual.rb +7 -46
  15. data/lib/facter/facts/linux/virtual.rb +3 -58
  16. data/lib/facter/facts/rhel/os/release.rb +1 -1
  17. data/lib/facter/facts/solaris/disks.rb +1 -1
  18. data/lib/facter/facts/solaris/zones.rb +1 -1
  19. data/lib/facter/facts_utils/virtual_detector.rb +78 -0
  20. data/lib/facter/framework/benchmarking/timer.rb +4 -2
  21. data/lib/facter/framework/cli/cli.rb +83 -36
  22. data/lib/facter/framework/cli/cli_launcher.rb +34 -38
  23. data/lib/facter/framework/config/fact_groups.rb +41 -7
  24. data/lib/facter/framework/core/cache_manager.rb +43 -23
  25. data/lib/facter/framework/core/fact_loaders/fact_loader.rb +14 -11
  26. data/lib/facter/framework/core/options/config_file_options.rb +5 -3
  27. data/lib/facter/framework/core/options/option_store.rb +60 -27
  28. data/lib/facter/framework/detector/os_hierarchy.rb +5 -9
  29. data/lib/facter/framework/logging/logger.rb +1 -5
  30. data/lib/facter/resolvers/aix/architecture_resolver.rb +15 -1
  31. data/lib/facter/resolvers/aix/os_level.rb +1 -1
  32. data/lib/facter/resolvers/augeas_resolver.rb +7 -1
  33. data/lib/facter/resolvers/bsd/processors.rb +11 -7
  34. data/lib/facter/resolvers/disk_resolver.rb +11 -3
  35. data/lib/facter/resolvers/dmi_decode.rb +1 -0
  36. data/lib/facter/resolvers/dmi_resolver.rb +2 -2
  37. data/lib/facter/resolvers/freebsd/geom_resolver.rb +12 -20
  38. data/lib/facter/resolvers/freebsd/processors.rb +11 -7
  39. data/lib/facter/resolvers/memory_resolver.rb +12 -14
  40. data/lib/facter/resolvers/mountpoints_resolver.rb +50 -22
  41. data/lib/facter/resolvers/networking_linux_resolver.rb +10 -5
  42. data/lib/facter/resolvers/partitions.rb +60 -57
  43. data/lib/facter/resolvers/processors_resolver.rb +5 -1
  44. data/lib/facter/resolvers/solaris/dmi.rb +2 -0
  45. data/lib/facter/resolvers/solaris/mountpoints.rb +60 -0
  46. data/lib/facter/resolvers/solaris/networking.rb +1 -2
  47. data/lib/facter/resolvers/solaris/os_release.rb +4 -3
  48. data/lib/facter/resolvers/ssh_resolver.rb +4 -4
  49. data/lib/facter/version.rb +1 -1
  50. metadata +5 -4
  51. data/lib/facter/fact_groups.conf +0 -308
  52. data/lib/facter/os_hierarchy.json +0 -36
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e1cc7c2dc4026c1c24f4140c319b3ac68c5b77dd1b42e61c46f07facff044380
4
- data.tar.gz: 3565addd16973284508cfc3058aab779dcf3bb30d4c65257fc9831cee898a380
3
+ metadata.gz: 26e4084c96b8e155bea96be6eb69c241acf2974bf31d98ebc20a571f191e3083
4
+ data.tar.gz: 8cfb10254f2474b003c7d5f4739b455302546258b3dd0b65b1768df6e1a38b1e
5
5
  SHA512:
6
- metadata.gz: ca715b689b8b050d20021ed104770a75737fed542236826592068d01066adfc369b222dbf94f2d1eb867c5b3d2023689f8ebd458f690f3f969e98c1c39375ddb
7
- data.tar.gz: cf6be422f902d75dcbf6fb6d147c3c95f718ab2129a18756b0ffe0626f3cfb3fd4f652a8c9f3278801826a7e15e35e9574cf11e22780593f79db315c6aa3b87b
6
+ metadata.gz: 74e4755e3dedc6aedcba900d72577faa265f889b31b7ae60f6c85f0221f1e96f748c8b1342d9fc6ea7eafdf57dcacb675f3001465892b968f076c18432cfe9b7
7
+ data.tar.gz: cc030bcb93b65dddf47b5fdbbe39487a95f08794caf0f60985134c733f74a98ede9d0822c3647e9e0ab634eb9c336dd4a33a6f22d26ab8438f105787fbe74614
data/bin/facter CHANGED
@@ -4,8 +4,7 @@
4
4
  require 'pathname'
5
5
  require 'facter/framework/cli/cli_launcher.rb'
6
6
 
7
- cli_launcher = CliLauncher.new(ARGV)
7
+ Facter::OptionsValidator.validate(ARGV)
8
+ processed_arguments = CliLauncher.prepare_arguments(ARGV)
8
9
 
9
- cli_launcher.validate_options
10
- cli_launcher.prepare_arguments
11
- cli_launcher.start
10
+ CliLauncher.start(processed_arguments)
@@ -17,8 +17,31 @@ module Facter
17
17
  @warn_once = []
18
18
 
19
19
  class << self
20
- def clear_messages
21
- logger.debug('clear_messages is not implemented')
20
+ # Method used by puppet-agent to retrieve facts
21
+ # @param args_as_string [string] facter cli arguments
22
+ #
23
+ # @return query result
24
+ #
25
+ # @api private
26
+ def resolve(args_as_string)
27
+ require 'facter/framework/cli/cli_launcher'
28
+
29
+ args = args_as_string.split(' ')
30
+
31
+ Facter::OptionsValidator.validate(args)
32
+ processed_arguments = CliLauncher.prepare_arguments(args, nil)
33
+
34
+ cli = Facter::Cli.new([], processed_arguments)
35
+
36
+ if cli.args.include?(:version)
37
+ cli.invoke(:version, [])
38
+ elsif cli.args.include?('--list-cache-groups')
39
+ cli.invoke(:list_cache_groups, [])
40
+ elsif cli.args.include?('--list-block-groups')
41
+ cli.invoke(:list_block_groups, [])
42
+ else
43
+ cli.invoke(:arg_parser)
44
+ end
22
45
  end
23
46
 
24
47
  # Alias method for Facter.fact()
@@ -62,8 +85,16 @@ module Facter
62
85
  Options[:custom_dir] = []
63
86
  LegacyFacter.collection.invalidate_custom_facts
64
87
  LegacyFacter.collection.reload_custom_facts
88
+ SessionCache.invalidate_all_caches
89
+ nil
65
90
  end
66
91
 
92
+ # Gets the value for a core fact, external or custom facts are
93
+ # not returned with this call. Returns `nil` if no such fact exists.
94
+ #
95
+ # @return [FactCollection] hash with fact names and values
96
+ #
97
+ # @api private
67
98
  def core_value(user_query)
68
99
  user_query = user_query.to_s
69
100
  resolved_facts = Facter::FactManager.instance.resolve_core([user_query])
@@ -115,8 +146,16 @@ module Facter
115
146
  LegacyFacter.define_fact(name, options, &block)
116
147
  end
117
148
 
149
+ # Stores a proc that will be used to output custom messages.
150
+ # The proc must receive one parameter that will be the message to log.
151
+ # @param block [Proc] a block defining messages handler
152
+ #
153
+ # @return [nil]
154
+ #
155
+ # @api public
118
156
  def on_message(&block)
119
157
  Facter::Log.on_message(&block)
158
+ nil
120
159
  end
121
160
 
122
161
  # Check whether debugging is enabled
@@ -149,7 +188,6 @@ module Facter
149
188
  def each
150
189
  log_blocked_facts
151
190
  resolved_facts = Facter::FactManager.instance.resolve_facts
152
- SessionCache.invalidate_all_caches
153
191
 
154
192
  resolved_facts.each do |fact|
155
193
  yield(fact.name, fact.value)
@@ -185,6 +223,19 @@ module Facter
185
223
  LegacyFacter.reset
186
224
  Options[:custom_dir] = []
187
225
  Options[:external_dir] = []
226
+ SessionCache.invalidate_all_caches
227
+ nil
228
+ end
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
188
239
  nil
189
240
  end
190
241
 
@@ -199,26 +250,26 @@ module Facter
199
250
  end
200
251
 
201
252
  # Register directories to be searched for custom facts. The registered directories
202
- # must be absolute paths or they will be ignored.
203
- #
253
+ # must be absolute paths or they will be ignored.
204
254
  # @param dirs [Array<String>] An array of searched directories
205
255
  #
206
- # @return [void]
256
+ # @return [nil]
207
257
  #
208
258
  # @api public
209
259
  def search(*dirs)
210
260
  Options[:custom_dir] += dirs
261
+ nil
211
262
  end
212
263
 
213
264
  # Registers directories to be searched for external facts.
214
- #
215
265
  # @param dirs [Array<String>] An array of searched directories
216
266
  #
217
- # @return [void]
267
+ # @return [nil]
218
268
  #
219
269
  # @api public
220
270
  def search_external(dirs)
221
271
  Options[:external_dir] += dirs
272
+ nil
222
273
  end
223
274
 
224
275
  # Returns the registered search directories.for external facts.
@@ -242,14 +293,13 @@ module Facter
242
293
  # Gets a hash mapping fact names to their values
243
294
  # The hash contains core facts, legacy facts, custom facts and external facts (all facts that can be resolved).
244
295
  #
245
- # @return [FactCollection] the hash of fact names and values
296
+ # @return [FactCollection] hash with fact names and values
246
297
  #
247
298
  # @api public
248
299
  def to_hash
249
300
  log_blocked_facts
250
301
 
251
302
  resolved_facts = Facter::FactManager.instance.resolve_facts
252
- Facter::SessionCache.invalidate_all_caches
253
303
  Facter::FactCollection.new.build_fact_collection!(resolved_facts)
254
304
  end
255
305
 
@@ -265,7 +315,7 @@ module Facter
265
315
  # Enable or disable trace
266
316
  # @param bool [bool] Set trace on debug state
267
317
  #
268
- # @return [type] [description]
318
+ # @return [bool] Value of trace debug state
269
319
  #
270
320
  # @api public
271
321
  def trace(bool)
@@ -284,6 +334,27 @@ module Facter
284
334
  @already_searched[user_query]&.value
285
335
  end
286
336
 
337
+ # Gets the values for multiple facts.
338
+ #
339
+ # @param options [Hash] parameters for the fact - attributes
340
+ # of {Facter::Util::Fact} and {Facter::Util::Resolution} can be
341
+ # supplied here
342
+ # @param user_queries [String] the fact names
343
+ #
344
+ # @return [FactCollection] hash with fact names and values
345
+ #
346
+ # @api public
347
+ def values(options, user_queries)
348
+ init_cli_options(options, user_queries)
349
+ resolved_facts = Facter::FactManager.instance.resolve_facts(user_queries)
350
+
351
+ if user_queries.count.zero?
352
+ Facter::FactCollection.new.build_fact_collection!(resolved_facts)
353
+ else
354
+ FormatterHelper.retrieve_facts_to_display_for_user_query(user_queries, resolved_facts)
355
+ end
356
+ end
357
+
287
358
  # Returns Facter version
288
359
  #
289
360
  # @return [String] Current version
@@ -303,7 +374,6 @@ module Facter
303
374
  logger.info("executed with command line: #{ARGV.drop(1).join(' ')}")
304
375
  log_blocked_facts
305
376
  resolved_facts = Facter::FactManager.instance.resolve_facts(args)
306
- SessionCache.invalidate_all_caches
307
377
  fact_formatter = Facter::FormatterFactory.build(Facter::Options.get)
308
378
 
309
379
  status = error_check(resolved_facts)
@@ -311,23 +381,22 @@ module Facter
311
381
  [fact_formatter.format(resolved_facts), status || 0]
312
382
  end
313
383
 
314
- def log_exception(exception, message = :default)
315
- arr = []
316
- if message == :default
317
- arr << exception.message
318
- elsif message
319
- arr << message
320
- end
321
- if Options[:trace]
322
- arr << 'backtrace:'
323
- arr.concat(exception.backtrace)
324
- end
384
+ # Logs an exception and an optional message
385
+ #
386
+ # @return [nil]
387
+ #
388
+ # @api public
389
+ def log_exception(exception, message = nil)
390
+ error_message = []
391
+
392
+ error_message << message.to_s unless message.nil? || (message.is_a?(String) && message.empty?)
325
393
 
326
- logger.error(arr.flatten.join("\n"))
394
+ parse_exception(exception, error_message)
395
+ logger.error(error_message.flatten.join("\n"))
396
+ nil
327
397
  end
328
398
 
329
399
  # Returns a list with the names of all solved facts
330
- #
331
400
  # @return [Array] the list with all the fact names
332
401
  #
333
402
  # @api public
@@ -336,7 +405,6 @@ module Facter
336
405
  end
337
406
 
338
407
  # Logs the message parameter as a warning.
339
- #
340
408
  # @param message [Object] the warning object to be displayed
341
409
  #
342
410
  # @return [nil]
@@ -348,7 +416,6 @@ module Facter
348
416
  end
349
417
 
350
418
  # Logs only once the same warning message.
351
- #
352
419
  # @param message [Object] the warning message object
353
420
  #
354
421
  # @return [nil]
@@ -365,6 +432,19 @@ module Facter
365
432
 
366
433
  private
367
434
 
435
+ def parse_exception(exception, error_message)
436
+ if exception.is_a?(Exception)
437
+ error_message << exception.message if error_message.empty?
438
+
439
+ if Options[:trace] && !exception.backtrace.nil?
440
+ error_message << 'backtrace:'
441
+ error_message.concat(exception.backtrace)
442
+ end
443
+ elsif error_message.empty?
444
+ error_message << exception.to_s
445
+ end
446
+ end
447
+
368
448
  def logger
369
449
  @logger ||= Log.new(self)
370
450
  end
@@ -386,7 +466,6 @@ module Facter
386
466
  def resolve_fact(user_query)
387
467
  user_query = user_query.to_s
388
468
  resolved_facts = Facter::FactManager.instance.resolve_facts([user_query])
389
- SessionCache.invalidate_all_caches
390
469
  # we must make a distinction between custom facts that return nil and nil facts
391
470
  # Nil facts should not be packaged as ResolvedFacts! (add_fact_to_searched_facts packages facts)
392
471
  resolved_facts = resolved_facts.reject { |fact| fact.type == :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