facter 4.0.12 → 4.0.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/.rubocop_todo.yml +10 -366
  4. data/.travis.yml +4 -0
  5. data/VERSION +1 -1
  6. data/lib/custom_facts/core/resolvable.rb +7 -4
  7. data/lib/facter.rb +18 -1
  8. data/lib/facts/bsd/bsd_example_fact.rb +14 -0
  9. data/lib/facts/debian/os/release.rb +3 -0
  10. data/lib/facts/el/memory/swap/available_bytes.rb +1 -1
  11. data/lib/facts/el/memory/swap/total_bytes.rb +1 -1
  12. data/lib/facts/el/memory/system/available_bytes.rb +1 -1
  13. data/lib/facts/el/memory/system/total_bytes.rb +1 -1
  14. data/lib/facts/el/processors/count.rb +1 -1
  15. data/lib/facts/macosx/memory/swap/available_bytes.rb +1 -1
  16. data/lib/facts/macosx/memory/swap/total_bytes.rb +1 -1
  17. data/lib/facts/macosx/memory/system/available_bytes.rb +1 -1
  18. data/lib/facts/macosx/memory/system/total_bytes.rb +1 -1
  19. data/lib/facts/sles/memory/swap/available_bytes.rb +1 -1
  20. data/lib/facts/sles/memory/swap/total_bytes.rb +1 -1
  21. data/lib/facts/sles/memory/system/available_bytes.rb +1 -1
  22. data/lib/facts/sles/memory/system/total_bytes.rb +1 -1
  23. data/lib/facts/sles/processors/count.rb +1 -1
  24. data/lib/facts/windows/memory/system/available_bytes.rb +1 -1
  25. data/lib/facts/windows/memory/system/total_bytes.rb +1 -1
  26. data/lib/framework/cli/cli.rb +2 -0
  27. data/lib/framework/core/options/helper_options.rb +1 -1
  28. data/lib/framework/detector/os_detector.rb +8 -2
  29. data/lib/framework/logging/logger.rb +6 -0
  30. data/lib/resolvers/macosx/processor_resolver.rb +5 -8
  31. data/lib/resolvers/macosx/system_profiler_resolver.rb +3 -5
  32. data/lib/resolvers/networking_linux_resolver.rb +2 -1
  33. data/lib/resolvers/windows/processors_resolver.rb +3 -4
  34. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a35e635fbb713ca5ee0179eb5d82d156682164d849f1d144d8b575d504d6cce
4
- data.tar.gz: e8ec1444f543d735972a7d246d87f0f1bece3153f9cedd9b7f253c3d53c48c51
3
+ metadata.gz: 1473343010204e05f34aa69c3a4f2b5356a97da0697132d8069611701d9d8188
4
+ data.tar.gz: 38f0f8b14f751cbe9ed8fdd2bbab31d34a63bebae9ab65f29b2aa109729828b9
5
5
  SHA512:
6
- metadata.gz: fbe14240f8e0b735e67258583d0122459d4c58e98316aa2790eee2e29aa6621f60665c405798789b94f6a59dd6e5b680498c41a09c5d86d0b04522b28ac12408
7
- data.tar.gz: 9c8c1b6b02de006a8b6188cc178402ceba4deda9600e9dec9cc2666a44a72e25dcb8361681e714b6ca808fe4078863db3a442b490fc80ec938cc63a1d5c7f65a
6
+ metadata.gz: 6d125ace657f1f6519eeecc9f6def5fc97fbe9719b0954c12c3ad4fd3b3afab23a03c351c715c0e6c26bf3233e0180efbc1ead183e3286cca15e9e6cf694017f
7
+ data.tar.gz: 23ae1710217d75204a70d092e4cf46775f932ae45789aebfdcdbe87119f3ba5a07cb97e1b8aba659eaba29b9b688182168a3c9a6c2fa5e308a692b9fa32b2ad3
@@ -18,6 +18,7 @@ Metrics/MethodLength:
18
18
  - 'lib/custom_facts/util/confine.rb'
19
19
  - 'lib/custom_facts/core/execution/windows.rb'
20
20
  - 'lib/custom_facts/core/execution/base.rb'
21
+ - 'lib/framework/detector/os_detector.rb'
21
22
 
22
23
  Metrics/ModuleLength:
23
24
  Max: 100
@@ -78,6 +79,7 @@ Metrics/CyclomaticComplexity:
78
79
  - 'lib/custom_facts/util/confine.rb'
79
80
  - 'lib/custom_facts/core/execution/windows.rb'
80
81
  - 'lib/custom_facts/core/execution/posix.rb'
82
+ - 'lib/framework/detector/os_detector.rb'
81
83
 
82
84
  Lint/RescueException:
83
85
  Exclude:
@@ -1,58 +1,20 @@
1
1
  # This configuration was generated by
2
- # `rubocop --auto-gen-config --exclude-limit 1000`
3
- # on 2020-03-19 13:55:15 +0200 using RuboCop version 0.74.0.
2
+ # `rubocop --auto-gen-config`
3
+ # on 2020-03-24 15:03:01 +0200 using RuboCop version 0.74.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 75
9
+ # Offense count: 76
10
10
  RSpec/AnyInstance:
11
- Exclude:
12
- - 'spec/facter/facter_spec.rb'
13
- - 'spec/facter/resolvers/solaris/solaris_release_resolver_spec.rb'
14
- - 'spec/facter/resolvers/utils/windows/network_utils_spec.rb'
15
- - 'spec/facter/resolvers/windows/dmi_bios_resolver_spec.rb'
16
- - 'spec/facter/resolvers/windows/dmi_computersystem_resolver_spec.rb'
17
- - 'spec/facter/resolvers/windows/identity_resolver_spec.rb'
18
- - 'spec/facter/resolvers/windows/kernel_resolver_spec.rb'
19
- - 'spec/facter/resolvers/windows/memory_resolver_spec.rb'
20
- - 'spec/facter/resolvers/windows/networking_resolver_spec.rb'
21
- - 'spec/facter/resolvers/windows/processors_resolver_spec.rb'
22
- - 'spec/facter/resolvers/windows/system32_resolver_spec.rb'
23
- - 'spec/facter/resolvers/windows/uptime_resolver_spec.rb'
24
- - 'spec/facter/resolvers/windows/virtualization_resolver_spec.rb'
25
- - 'spec/facter/resolvers/windows/win_os_description_resolver_spec.rb'
26
- - 'spec/framework/core/fact_loaders/class_discoverer_spec.rb'
27
- - 'spec/framework/core/fact_loaders/internal_fact_loader_spec.rb'
28
- - 'spec/framework/core/fact_manager_spec.rb'
29
- - 'spec/framework/core/options/options_validator_spec.rb'
30
- - 'spec/mocks/util.rb'
11
+ Enabled: false
31
12
 
32
13
  # Offense count: 70
33
14
  # Configuration parameters: Prefixes.
34
15
  # Prefixes: when, with, without
35
16
  RSpec/ContextWording:
36
- Exclude:
37
- - 'spec/custom_facts/core/execution/posix_spec.rb'
38
- - 'spec/custom_facts/core/execution/windows_spec.rb'
39
- - 'spec/custom_facts/shared_contexts/platform.rb'
40
- - 'spec/custom_facts/util/parser_spec.rb'
41
- - 'spec/facter/fact_filter_spec.rb'
42
- - 'spec/facter/facter_spec.rb'
43
- - 'spec/facter/facts/macosx/is_virtual_spec.rb'
44
- - 'spec/facter/resolvers/solaris/current_zone_resolver_spec.rb'
45
- - 'spec/facter/resolvers/solaris/solaris_release_resolver_spec.rb'
46
- - 'spec/facter/resolvers/solaris/zfs_resolver_spec.rb'
47
- - 'spec/facter/resolvers/solaris/zone_resolver_spec.rb'
48
- - 'spec/facter/resolvers/solaris/zpool_resolver_spec.rb'
49
- - 'spec/facter/resolvers/ssh_resolver_spec.rb'
50
- - 'spec/facter/resolvers/utils/windows/network_utils_spec.rb'
51
- - 'spec/framework/config/config_reader_spec.rb'
52
- - 'spec/framework/core/fact_loaders/external_fact_loader_spec.rb'
53
- - 'spec/framework/core/fact_loaders/internal_fact_loader_spec.rb'
54
- - 'spec/framework/core/options_spec.rb'
55
- - 'spec/framework/formatters/legacy_fact_formatter_spec.rb'
17
+ Enabled: false
56
18
 
57
19
  # Offense count: 29
58
20
  RSpec/ExpectInHook:
@@ -73,86 +35,7 @@ RSpec/ExpectInHook:
73
35
  # Offense count: 79
74
36
  # Configuration parameters: CustomTransform, IgnoreMethods.
75
37
  RSpec/FilePath:
76
- Exclude:
77
- - 'spec/custom_facts/core/aggregate_spec.rb'
78
- - 'spec/custom_facts/core/directed_graph_spec.rb'
79
- - 'spec/custom_facts/core/execution/fact_manager_spec.rb'
80
- - 'spec/custom_facts/core/execution/posix_spec.rb'
81
- - 'spec/custom_facts/core/execution/windows_spec.rb'
82
- - 'spec/custom_facts/core/execution_spec.rb'
83
- - 'spec/custom_facts/core/logging_spec.rb'
84
- - 'spec/custom_facts/core/resolvable_spec.rb'
85
- - 'spec/custom_facts/core/suitable_spec.rb'
86
- - 'spec/custom_facts/util/collection_spec.rb'
87
- - 'spec/custom_facts/util/config_spec.rb'
88
- - 'spec/custom_facts/util/confine_spec.rb'
89
- - 'spec/custom_facts/util/directory_loader_spec.rb'
90
- - 'spec/custom_facts/util/fact_spec.rb'
91
- - 'spec/custom_facts/util/loader_spec.rb'
92
- - 'spec/custom_facts/util/normalization_spec.rb'
93
- - 'spec/custom_facts/util/parser_spec.rb'
94
- - 'spec/custom_facts/util/resolution_spec.rb'
95
- - 'spec/facter/facts_utils/bytes_to_human_readable_spec.rb'
96
- - 'spec/facter/facts_utils/uptime_parser_spec.rb'
97
- - 'spec/facter/facts_utils/windows_release_finder_spec.rb'
98
- - 'spec/facter/model/fact_collection_spec.rb'
99
- - 'spec/facter/model/resolved_fact_spec.rb'
100
- - 'spec/facter/resolvers/aio_agent_version_spec.rb'
101
- - 'spec/facter/resolvers/aix/architecture_resolver_spec.rb'
102
- - 'spec/facter/resolvers/aix/ffi_helper_spec.rb'
103
- - 'spec/facter/resolvers/aix/hardware_resolver_spec.rb'
104
- - 'spec/facter/resolvers/disk_resolver_spec.rb'
105
- - 'spec/facter/resolvers/dmi_resolver_spec.rb'
106
- - 'spec/facter/resolvers/filesystems_resolver_spec.rb'
107
- - 'spec/facter/resolvers/fips_enabled_resolver_spec.rb'
108
- - 'spec/facter/resolvers/identity_resolver_spec.rb'
109
- - 'spec/facter/resolvers/load_averages_resolver_spec.rb'
110
- - 'spec/facter/resolvers/macosx/dmi_resolver_spec.rb'
111
- - 'spec/facter/resolvers/memory_resolver_spec.rb'
112
- - 'spec/facter/resolvers/mountpoints_resolver_spec.rb'
113
- - 'spec/facter/resolvers/processors_resolver_spec.rb'
114
- - 'spec/facter/resolvers/redhat_release_resolver_spec.rb'
115
- - 'spec/facter/resolvers/selinux_resolver_spec.rb'
116
- - 'spec/facter/resolvers/solaris/current_zone_resolver_spec.rb'
117
- - 'spec/facter/resolvers/solaris/solaris_release_resolver_spec.rb'
118
- - 'spec/facter/resolvers/solaris/zone_resolver_spec.rb'
119
- - 'spec/facter/resolvers/solaris/zpool_resolver_spec.rb'
120
- - 'spec/facter/resolvers/suse_relese_resolver_spec.rb'
121
- - 'spec/facter/resolvers/system_profile_resolver_spec.rb'
122
- - 'spec/facter/resolvers/utils/aix/odm_query_spec.rb'
123
- - 'spec/facter/resolvers/utils/macosx/filesystem_helper_spec.rb'
124
- - 'spec/facter/resolvers/utils/windows/win32ole_spec.rb'
125
- - 'spec/facter/resolvers/windows/dmi_bios_resolver_spec.rb'
126
- - 'spec/facter/resolvers/windows/dmi_computersystem_resolver_spec.rb'
127
- - 'spec/facter/resolvers/windows/hardware_architecture_resolver_spec.rb'
128
- - 'spec/facter/resolvers/windows/identity_resolver_spec.rb'
129
- - 'spec/facter/resolvers/windows/kernel_resolver_spec.rb'
130
- - 'spec/facter/resolvers/windows/memory_resolver_spec.rb'
131
- - 'spec/facter/resolvers/windows/netkvm_resolver_spec.rb'
132
- - 'spec/facter/resolvers/windows/networking_resolver_spec.rb'
133
- - 'spec/facter/resolvers/windows/processors_resolver_spec.rb'
134
- - 'spec/facter/resolvers/windows/product_release_resolver_spec.rb'
135
- - 'spec/facter/resolvers/windows/system32_resolver_spec.rb'
136
- - 'spec/facter/resolvers/windows/virtualization_resolver_spec.rb'
137
- - 'spec/facter/resolvers/windows/win_os_description_resolver_spec.rb'
138
- - 'spec/framework/config/block_list_spec.rb'
139
- - 'spec/framework/config/config_reader_spec.rb'
140
- - 'spec/framework/core/cache_manager_spec.rb'
141
- - 'spec/framework/core/fact/external/external_fact_manager_spec.rb'
142
- - 'spec/framework/core/fact/internal/internal_fact_manager_spec.rb'
143
- - 'spec/framework/core/fact_loaders/class_discoverer_spec.rb'
144
- - 'spec/framework/core/fact_loaders/external_fact_loader_spec.rb'
145
- - 'spec/framework/core/fact_loaders/fact_loader_spec.rb'
146
- - 'spec/framework/core/fact_loaders/internal_fact_loader_spec.rb'
147
- - 'spec/framework/core/fact_manager_spec.rb'
148
- - 'spec/framework/core/options/options_validator_spec.rb'
149
- - 'spec/framework/core/options_spec.rb'
150
- - 'spec/framework/formatters/fact_formatter_spec.rb'
151
- - 'spec/framework/formatters/hocon_fact_formatter_spec.rb'
152
- - 'spec/framework/formatters/json_fact_formatter_spec.rb'
153
- - 'spec/framework/formatters/legacy_fact_formatter_spec.rb'
154
- - 'spec/framework/formatters/yaml_fact_formatter_spec.rb'
155
- - 'spec/framework/utils/utils_spec.rb'
38
+ Enabled: false
156
39
 
157
40
  # Offense count: 15
158
41
  # Configuration parameters: AssignmentOnly.
@@ -178,148 +61,18 @@ RSpec/LeakyConstantDeclaration:
178
61
  - 'spec/facter/resolvers/macosx/mountpoints_resolver_spec.rb'
179
62
  - 'spec/facter/resolvers/utils/windows/network_utils_spec.rb'
180
63
 
181
- # Offense count: 322
64
+ # Offense count: 321
182
65
  # Configuration parameters: EnforcedStyle.
183
66
  # SupportedStyles: have_received, receive
184
67
  RSpec/MessageSpies:
185
- Exclude:
186
- - 'spec/custom_facts/core/aggregate_spec.rb'
187
- - 'spec/custom_facts/core/execution/fact_manager_spec.rb'
188
- - 'spec/custom_facts/core/execution/posix_spec.rb'
189
- - 'spec/custom_facts/core/execution/windows_spec.rb'
190
- - 'spec/custom_facts/core/execution_spec.rb'
191
- - 'spec/custom_facts/core/logging_spec.rb'
192
- - 'spec/custom_facts/core/resolvable_spec.rb'
193
- - 'spec/custom_facts/core/suitable_spec.rb'
194
- - 'spec/custom_facts/util/collection_spec.rb'
195
- - 'spec/custom_facts/util/confine_spec.rb'
196
- - 'spec/custom_facts/util/directory_loader_spec.rb'
197
- - 'spec/custom_facts/util/fact_spec.rb'
198
- - 'spec/custom_facts/util/loader_spec.rb'
199
- - 'spec/custom_facts/util/parser_spec.rb'
200
- - 'spec/custom_facts/util/resolution_spec.rb'
201
- - 'spec/facter/facter_spec.rb'
202
- - 'spec/facter/facts/aix/load_averages_spec.rb'
203
- - 'spec/facter/facts/aix/networking/domain_spec.rb'
204
- - 'spec/facter/facts/aix/networking/fqdn_spec.rb'
205
- - 'spec/facter/facts/aix/networking/hostname_spec.rb'
206
- - 'spec/facter/facts/aix/networking/ip_spec.rb'
207
- - 'spec/facter/facts/aix/networking/primary_spec.rb'
208
- - 'spec/facter/facts/aix/os/name_spec.rb'
209
- - 'spec/facter/facts/aix/os/release_spec.rb'
210
- - 'spec/facter/facts/aix/ruby/version_spec.rb'
211
- - 'spec/facter/facts/debian/networking/domain_spec.rb'
212
- - 'spec/facter/facts/debian/networking/fqdn_spec.rb'
213
- - 'spec/facter/facts/debian/networking/hostname_spec.rb'
214
- - 'spec/facter/facts/debian/networking/interfaces_spec.rb'
215
- - 'spec/facter/facts/debian/networking/ip_spec.rb'
216
- - 'spec/facter/facts/debian/networking/primary_spec.rb'
217
- - 'spec/facter/facts/debian/os/family_spec.rb'
218
- - 'spec/facter/facts/debian/ruby/version_spec.rb'
219
- - 'spec/facter/facts/el/networking/domain_spec.rb'
220
- - 'spec/facter/facts/el/networking/fqdn_spec.rb'
221
- - 'spec/facter/facts/el/networking/hostname_spec.rb'
222
- - 'spec/facter/facts/el/networking/interfaces_spec.rb'
223
- - 'spec/facter/facts/el/networking/ip_spec.rb'
224
- - 'spec/facter/facts/el/networking/primary_spec.rb'
225
- - 'spec/facter/facts/macosx/filesystems_spec.rb'
226
- - 'spec/facter/facts/macosx/is_virtual_spec.rb'
227
- - 'spec/facter/facts/macosx/memory/swap/used_spec.rb'
228
- - 'spec/facter/facts/macosx/memory/system/used_spec.rb'
229
- - 'spec/facter/facts/macosx/mountpoints_spec.rb'
230
- - 'spec/facter/facts/macosx/networking/domain_spec.rb'
231
- - 'spec/facter/facts/macosx/networking/fqdn_spec.rb'
232
- - 'spec/facter/facts/macosx/networking/hostname_spec.rb'
233
- - 'spec/facter/facts/macosx/os/architecture_spec.rb'
234
- - 'spec/facter/facts/macosx/os/family_spec.rb'
235
- - 'spec/facter/facts/macosx/os/name_spec.rb'
236
- - 'spec/facter/facts/macosx/ruby/version_spec.rb'
237
- - 'spec/facter/facts/sles/facterversion_spec.rb'
238
- - 'spec/facter/facts/sles/networking/domain_spec.rb'
239
- - 'spec/facter/facts/sles/networking/fqdn_spec.rb'
240
- - 'spec/facter/facts/sles/networking/hostname_spec.rb'
241
- - 'spec/facter/facts/sles/networking/interfaces_spec.rb'
242
- - 'spec/facter/facts/sles/networking/ip_spec.rb'
243
- - 'spec/facter/facts/sles/networking/primary_spec.rb'
244
- - 'spec/facter/facts/sles/os/architecture_spec.rb'
245
- - 'spec/facter/facts/sles/os/name_spec.rb'
246
- - 'spec/facter/facts/sles/os/release_spec.rb'
247
- - 'spec/facter/facts/solaris/facterversion_spec.rb'
248
- - 'spec/facter/facts/solaris/networking/domain_spec.rb'
249
- - 'spec/facter/facts/solaris/networking/fqdn_spec.rb'
250
- - 'spec/facter/facts/solaris/networking/hostname_spec.rb'
251
- - 'spec/facter/facts/solaris/os/architecture_spec.rb'
252
- - 'spec/facter/facts/solaris/os/name_spec.rb'
253
- - 'spec/facter/facts/solaris/os/release_spec.rb'
254
- - 'spec/facter/facts/solaris/ruby/platform_spec.rb'
255
- - 'spec/facter/facts/solaris/ruby/sitedir_spec.rb'
256
- - 'spec/facter/facts/solaris/ruby/version_spec.rb'
257
- - 'spec/facter/facts/windows/dmi/manufacturer_spec.rb'
258
- - 'spec/facter/facts/windows/dmi/product/name_spec.rb'
259
- - 'spec/facter/facts/windows/dmi/product/serial_number_spec.rb'
260
- - 'spec/facter/facts/windows/dmi/product/uuid_spec.rb'
261
- - 'spec/facter/facts/windows/fips_enabled_spec.rb'
262
- - 'spec/facter/facts/windows/identity/user_spec.rb'
263
- - 'spec/facter/facts/windows/ipaddress6_interfaces_spec.rb'
264
- - 'spec/facter/facts/windows/ipaddress_interfaces_spec.rb'
265
- - 'spec/facter/facts/windows/macaddress_interfaces_spec.rb'
266
- - 'spec/facter/facts/windows/memory/system/available_bytes_spec.rb'
267
- - 'spec/facter/facts/windows/memory/system/available_spec.rb'
268
- - 'spec/facter/facts/windows/memory/system/total_bytes_spec.rb'
269
- - 'spec/facter/facts/windows/memory/system/total_spec.rb'
270
- - 'spec/facter/facts/windows/mtu_interfaces_spec.rb'
271
- - 'spec/facter/facts/windows/netmask6_interfaces_spec.rb'
272
- - 'spec/facter/facts/windows/netmask_interfaces_spec.rb'
273
- - 'spec/facter/facts/windows/network6_interfaces_spec.rb'
274
- - 'spec/facter/facts/windows/network_interfaces_spec.rb'
275
- - 'spec/facter/facts/windows/networking/domain_spec.rb'
276
- - 'spec/facter/facts/windows/networking/fqdn_spec.rb'
277
- - 'spec/facter/facts/windows/networking/hostname_spec.rb'
278
- - 'spec/facter/facts/windows/networking/ip6_spec.rb'
279
- - 'spec/facter/facts/windows/networking/mac_spec.rb'
280
- - 'spec/facter/facts/windows/networking/netmask6_spec.rb'
281
- - 'spec/facter/facts/windows/networking/netmask_spec.rb'
282
- - 'spec/facter/facts/windows/networking/network6_spec.rb'
283
- - 'spec/facter/facts/windows/networking/network_spec.rb'
284
- - 'spec/facter/facts/windows/networking/scope6_spec.rb'
285
- - 'spec/facter/facts/windows/os/architecture_spec.rb'
286
- - 'spec/facter/facts/windows/os/family_spec.rb'
287
- - 'spec/facter/facts/windows/os/hardware_spec.rb'
288
- - 'spec/facter/facts/windows/os/name_spec.rb'
289
- - 'spec/facter/facts/windows/os/release_spec.rb'
290
- - 'spec/facter/facts/windows/os/windows/edition_id_spec.rb'
291
- - 'spec/facter/facts/windows/os/windows/installation_type_spec.rb'
292
- - 'spec/facter/facts/windows/os/windows/product_name_spec.rb'
293
- - 'spec/facter/facts/windows/os/windows/release_id_spec.rb'
294
- - 'spec/facter/facts/windows/os/windows/system32_spec.rb'
295
- - 'spec/facter/facts/windows/processors/count_spec.rb'
296
- - 'spec/facter/facts/windows/processors/isa_spec.rb'
297
- - 'spec/facter/facts/windows/processors/physicalcount_spec.rb'
298
- - 'spec/facter/facts/windows/ruby/platform_spec.rb'
299
- - 'spec/facter/facts/windows/ruby/sitedir_spec.rb'
300
- - 'spec/facter/facts/windows/ruby/version_spec.rb'
301
- - 'spec/facter/facts/windows/scope6_interfaces_spec.rb'
302
- - 'spec/facter/resolvers/aix/ffi_helper_spec.rb'
303
- - 'spec/facter/resolvers/lpar_resolver_spec.rb'
304
- - 'spec/facter/resolvers/solaris/current_zone_resolver_spec.rb'
305
- - 'spec/facter/resolvers/solaris/zfs_resolver_spec.rb'
306
- - 'spec/facter/resolvers/solaris/zone_resolver_spec.rb'
307
- - 'spec/facter/resolvers/solaris/zpool_resolver_spec.rb'
308
- - 'spec/facter/resolvers/ssh_resolver_spec.rb'
309
- - 'spec/facter/resolvers/utils/aix/odm_query_spec.rb'
310
- - 'spec/facter/resolvers/wpar_resolver_spec.rb'
311
- - 'spec/framework/config/block_list_spec.rb'
312
- - 'spec/framework/config/config_reader_spec.rb'
313
- - 'spec/framework/core/cache_manager_spec.rb'
314
- - 'spec/framework/core/fact_loaders/external_fact_loader_spec.rb'
315
- - 'spec/framework/detector/os_detector_spec.rb'
68
+ Enabled: false
316
69
 
317
70
  # Offense count: 122
318
71
  # Configuration parameters: AggregateFailuresByDefault.
319
72
  RSpec/MultipleExpectations:
320
73
  Max: 9
321
74
 
322
- # Offense count: 177
75
+ # Offense count: 160
323
76
  # Configuration parameters: IgnoreSharedExamples.
324
77
  RSpec/NamedSubject:
325
78
  Exclude:
@@ -328,7 +81,6 @@ RSpec/NamedSubject:
328
81
  - 'spec/custom_facts/core/execution/windows_spec.rb'
329
82
  - 'spec/custom_facts/core/execution_spec.rb'
330
83
  - 'spec/custom_facts/core/logging_spec.rb'
331
- - 'spec/custom_facts/core/resolvable_spec.rb'
332
84
  - 'spec/custom_facts/util/directory_loader_spec.rb'
333
85
  - 'spec/custom_facts/util/fact_spec.rb'
334
86
  - 'spec/custom_facts/util/normalization_spec.rb'
@@ -353,112 +105,4 @@ RSpec/SubjectStub:
353
105
  # Offense count: 242
354
106
  # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
355
107
  RSpec/VerifiedDoubles:
356
- Exclude:
357
- - 'spec/custom_facts/core/aggregate_spec.rb'
358
- - 'spec/custom_facts/util/collection_spec.rb'
359
- - 'spec/custom_facts/util/confine_spec.rb'
360
- - 'spec/custom_facts/util/directory_loader_spec.rb'
361
- - 'spec/custom_facts/util/fact_spec.rb'
362
- - 'spec/custom_facts/util/resolution_spec.rb'
363
- - 'spec/facter/facter_spec.rb'
364
- - 'spec/facter/facts/aix/facterversion_spec.rb'
365
- - 'spec/facter/facts/aix/kernel_spec.rb'
366
- - 'spec/facter/facts/aix/kernelmajversion_spec.rb'
367
- - 'spec/facter/facts/aix/kernelrelease_spec.rb'
368
- - 'spec/facter/facts/aix/kernelversion_spec.rb'
369
- - 'spec/facter/facts/aix/load_averages_spec.rb'
370
- - 'spec/facter/facts/aix/path_spec.rb'
371
- - 'spec/facter/facts/aix/ssh_spec.rb'
372
- - 'spec/facter/facts/debian/facterversion_spec.rb'
373
- - 'spec/facter/facts/debian/kernel_spec.rb'
374
- - 'spec/facter/facts/debian/kernelmajversion_spec.rb'
375
- - 'spec/facter/facts/debian/kernelrelease_spec.rb'
376
- - 'spec/facter/facts/debian/kernelversion_spec.rb'
377
- - 'spec/facter/facts/debian/path_spec.rb'
378
- - 'spec/facter/facts/el/facterversion_spec.rb'
379
- - 'spec/facter/facts/el/kernel_spec.rb'
380
- - 'spec/facter/facts/el/kernelmajversion_spec.rb'
381
- - 'spec/facter/facts/el/kernelrelease_spec.rb'
382
- - 'spec/facter/facts/el/kernelversion_spec.rb'
383
- - 'spec/facter/facts/el/path_spec.rb'
384
- - 'spec/facter/facts/macosx/facterversion_spec.rb'
385
- - 'spec/facter/facts/macosx/filesystems_spec.rb'
386
- - 'spec/facter/facts/macosx/kernel_spec.rb'
387
- - 'spec/facter/facts/macosx/kernelmajversion_spec.rb'
388
- - 'spec/facter/facts/macosx/kernelrelease_spec.rb'
389
- - 'spec/facter/facts/macosx/kernelversion_spec.rb'
390
- - 'spec/facter/facts/macosx/memory/swap/capacity_spec.rb'
391
- - 'spec/facter/facts/macosx/memory/swap/used_bytes_spec.rb'
392
- - 'spec/facter/facts/macosx/memory/swap/used_spec.rb'
393
- - 'spec/facter/facts/macosx/memory/system/capacity_spec.rb'
394
- - 'spec/facter/facts/macosx/memory/system/used_bytes_spec.rb'
395
- - 'spec/facter/facts/macosx/memory/system/used_spec.rb'
396
- - 'spec/facter/facts/macosx/path_spec.rb'
397
- - 'spec/facter/facts/sles/kernel_spec.rb'
398
- - 'spec/facter/facts/sles/kernelmajversion_spec.rb'
399
- - 'spec/facter/facts/sles/kernelrelease_spec.rb'
400
- - 'spec/facter/facts/sles/kernelversion_spec.rb'
401
- - 'spec/facter/facts/sles/path_spec.rb'
402
- - 'spec/facter/facts/solaris/kernel_spec.rb'
403
- - 'spec/facter/facts/solaris/kernelmajversion_spec.rb'
404
- - 'spec/facter/facts/solaris/kernelrelease_spec.rb'
405
- - 'spec/facter/facts/solaris/kernelversion_spec.rb'
406
- - 'spec/facter/facts/solaris/path_spec.rb'
407
- - 'spec/facter/facts/windows/dmi/product/serial_number_spec.rb'
408
- - 'spec/facter/facts/windows/facterversion_spec.rb'
409
- - 'spec/facter/facts/windows/hypervisors/hyperv_spec.rb'
410
- - 'spec/facter/facts/windows/hypervisors/kvm_spec.rb'
411
- - 'spec/facter/facts/windows/hypervisors/virtualbox_spec.rb'
412
- - 'spec/facter/facts/windows/hypervisors/vmware_spec.rb'
413
- - 'spec/facter/facts/windows/hypervisors/xen_spec.rb'
414
- - 'spec/facter/facts/windows/identity/privileged_spec.rb'
415
- - 'spec/facter/facts/windows/memory/system/capacity_spec.rb'
416
- - 'spec/facter/facts/windows/memory/system/used_bytes_spec.rb'
417
- - 'spec/facter/facts/windows/memory/system/used_spec.rb'
418
- - 'spec/facter/facts/windows/networking/dhcp_spec.rb'
419
- - 'spec/facter/facts/windows/networking/interfaces_spec.rb'
420
- - 'spec/facter/facts/windows/networking/mtu_spec.rb'
421
- - 'spec/facter/facts/windows/networking/primary_spec.rb'
422
- - 'spec/facter/facts/windows/path_spec.rb'
423
- - 'spec/facter/facts/windows/processors/models_spec.rb'
424
- - 'spec/facter/facts/windows/virtualization/is_virtual_spec.rb'
425
- - 'spec/facter/facts/windows/virtualization/virtual_spec.rb'
426
- - 'spec/facter/query_parser_spec.rb'
427
- - 'spec/facter/resolvers/aix/architecture_resolver_spec.rb'
428
- - 'spec/facter/resolvers/aix/ffi_helper_spec.rb'
429
- - 'spec/facter/resolvers/aix/hardware_resolver_spec.rb'
430
- - 'spec/facter/resolvers/macosx/mountpoints_resolver_spec.rb'
431
- - 'spec/facter/resolvers/mountpoints_resolver_spec.rb'
432
- - 'spec/facter/resolvers/solaris/current_zone_resolver_spec.rb'
433
- - 'spec/facter/resolvers/solaris/solaris_release_resolver_spec.rb'
434
- - 'spec/facter/resolvers/solaris/zfs_resolver_spec.rb'
435
- - 'spec/facter/resolvers/solaris/zone_resolver_spec.rb'
436
- - 'spec/facter/resolvers/solaris/zpool_resolver_spec.rb'
437
- - 'spec/facter/resolvers/ssh_resolver_spec.rb'
438
- - 'spec/facter/resolvers/utils/windows/network_utils_spec.rb'
439
- - 'spec/facter/resolvers/utils/windows/win32ole_spec.rb'
440
- - 'spec/facter/resolvers/windows/dmi_bios_resolver_spec.rb'
441
- - 'spec/facter/resolvers/windows/dmi_computersystem_resolver_spec.rb'
442
- - 'spec/facter/resolvers/windows/hardware_architecture_resolver_spec.rb'
443
- - 'spec/facter/resolvers/windows/identity_resolver_spec.rb'
444
- - 'spec/facter/resolvers/windows/kernel_resolver_spec.rb'
445
- - 'spec/facter/resolvers/windows/memory_resolver_spec.rb'
446
- - 'spec/facter/resolvers/windows/networking_resolver_spec.rb'
447
- - 'spec/facter/resolvers/windows/processors_resolver_spec.rb'
448
- - 'spec/facter/resolvers/windows/system32_resolver_spec.rb'
449
- - 'spec/facter/resolvers/windows/uptime_resolver_spec.rb'
450
- - 'spec/facter/resolvers/windows/virtualization_resolver_spec.rb'
451
- - 'spec/facter/resolvers/windows/win_os_description_resolver_spec.rb'
452
- - 'spec/framework/config/block_list_spec.rb'
453
- - 'spec/framework/core/cache_manager_spec.rb'
454
- - 'spec/framework/core/fact/external/external_fact_manager_spec.rb'
455
- - 'spec/framework/core/fact/internal/internal_fact_manager_spec.rb'
456
- - 'spec/framework/core/fact_loaders/external_fact_loader_spec.rb'
457
- - 'spec/framework/core/fact_loaders/fact_loader_spec.rb'
458
- - 'spec/framework/core/fact_manager_spec.rb'
459
- - 'spec/framework/core/options_spec.rb'
460
- - 'spec/framework/formatters/hocon_fact_formatter_spec.rb'
461
- - 'spec/framework/formatters/json_fact_formatter_spec.rb'
462
- - 'spec/framework/formatters/legacy_fact_formatter_spec.rb'
463
- - 'spec/framework/formatters/yaml_fact_formatter_spec.rb'
464
- - 'spec/mocks/util.rb'
108
+ Enabled: false
@@ -14,6 +14,10 @@ before_install:
14
14
  - ./cc-test-reporter before-build
15
15
  jobs:
16
16
  include:
17
+ - rvm: 2.7
18
+ script:
19
+ - bundle exec rake spec
20
+
17
21
  - rvm: 2.6
18
22
  script:
19
23
  - bundle exec rubocop
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.0.12
1
+ 4.0.13
@@ -15,6 +15,7 @@ module LegacyFacter
15
15
  # @return [Integer]
16
16
  # @api public
17
17
  attr_accessor :timeout
18
+ attr_reader :logger
18
19
 
19
20
  # Return the timeout period for resolving a value.
20
21
  # (see #timeout)
@@ -69,14 +70,16 @@ module LegacyFacter
69
70
 
70
71
  LegacyFacter::Util::Normalization.normalize(result)
71
72
  rescue Timeout::Error => e
72
- LegacyFacter.log_exception(e, "Timed out after #{limit} seconds while resolving #{qualified_name}")
73
+ Facter.log_exception(e, "Timed out after #{limit} seconds while resolving #{qualified_name}")
74
+
73
75
  nil
74
76
  rescue LegacyFacter::Util::Normalization::NormalizationError => e
75
- LegacyFacter.log_exception(e, "Fact resolution #{qualified_name} resolved to an invalid value: #{e.message}")
77
+ Facter.log_exception(e, "Fact resolution #{qualified_name} resolved to an invalid value: #{e.message}")
78
+
76
79
  nil
77
80
  rescue StandardError => e
78
- LegacyFacter.log_exception(e, "Error while resolving custom fact #{qualified_name}: #{e.message}")
79
- at_exit { exit 1 }
81
+ Facter.log_exception(e, "Error while resolving custom fact #{qualified_name}: #{e.message}")
82
+
80
83
  raise Facter::ResolveCustomFactError
81
84
  end
82
85
 
@@ -14,6 +14,7 @@ module Facter
14
14
  Log.add_legacy_logger(STDOUT)
15
15
  @logger = Log.new(self)
16
16
  @already_searched = {}
17
+ @trace = false
17
18
 
18
19
  class << self
19
20
  def clear_messages
@@ -201,7 +202,7 @@ module Facter
201
202
  #
202
203
  # @api public
203
204
  def trace?
204
- LegacyFacter.trace?
205
+ @trace
205
206
  end
206
207
 
207
208
  # Enable or disable trace
@@ -212,6 +213,7 @@ module Facter
212
213
  # @api public
213
214
  def trace(bool)
214
215
  LegacyFacter.trace(bool)
216
+ @trace = bool
215
217
  end
216
218
 
217
219
  # Gets the value for a fact. Returns `nil` if no such fact exists.
@@ -256,6 +258,21 @@ module Facter
256
258
  [fact_formatter.format(resolved_facts), status || 0]
257
259
  end
258
260
 
261
+ def log_exception(exception, message = :default)
262
+ arr = []
263
+ if message == :default
264
+ arr << exception.message
265
+ elsif message
266
+ arr << message
267
+ end
268
+ if @trace
269
+ arr << 'backtrace:'
270
+ arr.concat(exception.backtrace)
271
+ end
272
+
273
+ @logger.error(arr.flatten.join("\n"))
274
+ end
275
+
259
276
  private
260
277
 
261
278
  def add_fact_to_searched_facts(user_query, value)
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Bsd
5
+ class ExampleFact
6
+ FACT_NAME = 'example.fact'
7
+
8
+ def call_the_resolver
9
+ fact_value = 'example_fact_value'
10
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -9,6 +9,9 @@ module Facts
9
9
 
10
10
  def call_the_resolver
11
11
  fact_value = Facter::Resolvers::LsbRelease.resolve(:release)
12
+
13
+ return Facter::ResolvedFact.new(FACT_NAME, nil) unless fact_value
14
+
12
15
  versions = fact_value.split('.')
13
16
  release = {
14
17
  'full' => fact_value,
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Linux::Memory.resolve(:swap_free)
13
13
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
14
- Facter::ResolvedFact.new(ALIASES, fact_value ? (fact_value / (1024.0 * 1024.0)).round(2) : nil, :legacy)]
14
+ Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::BytesConverter.to_mb(fact_value), :legacy)]
15
15
  end
16
16
  end
17
17
  end
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Linux::Memory.resolve(:swap_total)
13
13
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
14
- Facter::ResolvedFact.new(ALIASES, fact_value ? (fact_value / (1024.0 * 1024.0)).round(2) : nil, :legacy)]
14
+ Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::BytesConverter.to_mb(fact_value), :legacy)]
15
15
  end
16
16
  end
17
17
  end
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Linux::Memory.resolve(:memfree)
13
13
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
14
- Facter::ResolvedFact.new(ALIASES, fact_value ? (fact_value / (1024.0 * 1024.0)).round(2) : nil, :legacy)]
14
+ Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::BytesConverter.to_mb(fact_value), :legacy)]
15
15
  end
16
16
  end
17
17
  end
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Linux::Memory.resolve(:total)
13
13
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
14
- Facter::ResolvedFact.new(ALIASES, fact_value ? (fact_value / (1024.0 * 1024.0)).round(2) : nil, :legacy)]
14
+ Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::BytesConverter.to_mb(fact_value), :legacy)]
15
15
  end
16
16
  end
17
17
  end
@@ -5,7 +5,7 @@ module Facts
5
5
  module Processors
6
6
  class Count
7
7
  FACT_NAME = 'processors.count'
8
- ALIASES = 'processorscount'
8
+ ALIASES = 'processorcount'
9
9
 
10
10
  def call_the_resolver
11
11
  fact_value = Facter::Resolvers::Linux::Processors.resolve(:processors)
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Macosx::SwapMemory.resolve(:available_bytes)
13
13
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
14
- Facter::ResolvedFact.new(ALIASES, fact_value ? (fact_value / (1024.0 * 1024.0)).round(2) : nil, :legacy)]
14
+ Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::BytesConverter.to_mb(fact_value), :legacy)]
15
15
  end
16
16
  end
17
17
  end
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Macosx::SwapMemory.resolve(:total_bytes)
13
13
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
14
- Facter::ResolvedFact.new(ALIASES, fact_value ? (fact_value / (1024.0 * 1024.0)).round(2) : nil, :legacy)]
14
+ Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::BytesConverter.to_mb(fact_value), :legacy)]
15
15
  end
16
16
  end
17
17
  end
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Macosx::SystemMemory.resolve(:available_bytes)
13
13
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
14
- Facter::ResolvedFact.new(ALIASES, fact_value ? (fact_value / (1024.0 * 1024.0)).round(2) : nil, :legacy)]
14
+ Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::BytesConverter.to_mb(fact_value), :legacy)]
15
15
  end
16
16
  end
17
17
  end
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Macosx::SystemMemory.resolve(:total_bytes)
13
13
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
14
- Facter::ResolvedFact.new(ALIASES, fact_value ? (fact_value / (1024.0 * 1024.0)).round(2) : nil, :legacy)]
14
+ Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::BytesConverter.to_mb(fact_value), :legacy)]
15
15
  end
16
16
  end
17
17
  end
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Linux::Memory.resolve(:swap_free)
13
13
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
14
- Facter::ResolvedFact.new(ALIASES, fact_value ? (fact_value / (1024.0 * 1024.0)).round(2) : nil, :legacy)]
14
+ Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::BytesConverter.to_mb(fact_value), :legacy)]
15
15
  end
16
16
  end
17
17
  end
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Linux::Memory.resolve(:swap_total)
13
13
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
14
- Facter::ResolvedFact.new(ALIASES, fact_value ? (fact_value / (1024.0 * 1024.0)).round(2) : nil, :legacy)]
14
+ Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::BytesConverter.to_mb(fact_value), :legacy)]
15
15
  end
16
16
  end
17
17
  end
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Linux::Memory.resolve(:memfree)
13
13
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
14
- Facter::ResolvedFact.new(ALIASES, fact_value ? (fact_value / (1024.0 * 1024.0)).round(2) : nil, :legacy)]
14
+ Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::BytesConverter.to_mb(fact_value), :legacy)]
15
15
  end
16
16
  end
17
17
  end
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Linux::Memory.resolve(:total)
13
13
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
14
- Facter::ResolvedFact.new(ALIASES, fact_value ? (fact_value / (1024.0 * 1024.0)).round(2) : nil, :legacy)]
14
+ Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::BytesConverter.to_mb(fact_value), :legacy)]
15
15
  end
16
16
  end
17
17
  end
@@ -5,7 +5,7 @@ module Facts
5
5
  module Processors
6
6
  class Count
7
7
  FACT_NAME = 'processors.count'
8
- ALIASES = 'processorscount'
8
+ ALIASES = 'processorcount'
9
9
 
10
10
  def call_the_resolver
11
11
  fact_value = Facter::Resolvers::Linux::Processors.resolve(:processors)
@@ -12,7 +12,7 @@ module Facts
12
12
  fact_value = Facter::Resolvers::Memory.resolve(:available_bytes)
13
13
 
14
14
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
15
- Facter::ResolvedFact.new(ALIASES, fact_value ? (fact_value / (1024.0 * 1024.0)).round(2) : nil, :legacy)]
15
+ Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::BytesConverter.to_mb(fact_value), :legacy)]
16
16
  end
17
17
  end
18
18
  end
@@ -12,7 +12,7 @@ module Facts
12
12
  fact_value = Facter::Resolvers::Memory.resolve(:total_bytes)
13
13
 
14
14
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
15
- Facter::ResolvedFact.new(ALIASES, fact_value ? (fact_value / (1024.0 * 1024.0)).round(2) : nil, :legacy)]
15
+ Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::BytesConverter.to_mb(fact_value), :legacy)]
16
16
  end
17
17
  end
18
18
  end
@@ -108,6 +108,8 @@ module Facter
108
108
  def query(*args)
109
109
  output, status = Facter.to_user_output(@options, *args)
110
110
  puts output
111
+
112
+ status = 1 if Facter::Log.errors?
111
113
  exit status
112
114
  end
113
115
 
@@ -16,7 +16,7 @@ module Facter
16
16
  validate_log_level
17
17
 
18
18
  Log.level = @options[:log_level]
19
- LegacyFacter.trace(@options[:trace])
19
+ Facter.trace(@options[:trace])
20
20
  end
21
21
 
22
22
  private
@@ -21,7 +21,9 @@ class OsDetector
21
21
  :macosx
22
22
  when /linux/
23
23
  detect_distro
24
- when /solaris|bsd/
24
+ when /bsd/
25
+ :bsd
26
+ when /solaris/
25
27
  :solaris
26
28
  when /aix/
27
29
  :aix
@@ -44,12 +46,14 @@ class OsDetector
44
46
  @identifier
45
47
  end
46
48
 
47
- def create_hierarchy(operating_system) # rubocop:disable Metrics/CyclomaticComplexity:
49
+ def create_hierarchy(operating_system)
48
50
  return [] unless operating_system
49
51
 
50
52
  case operating_system.to_sym
51
53
  when :ubuntu
52
54
  %w[Debian]
55
+ when :elementary
56
+ %w[Debian]
53
57
  when :fedora
54
58
  %w[El]
55
59
  when :amzn
@@ -60,6 +64,8 @@ class OsDetector
60
64
  %w[El]
61
65
  when :opensuse
62
66
  %w[Sles]
67
+ when :bsd
68
+ %w[Solaris Bsd]
63
69
  else
64
70
  [operating_system.to_s.capitalize]
65
71
  end
@@ -11,6 +11,7 @@ module Facter
11
11
  @@logger = MultiLogger.new([@@file_logger])
12
12
  @@logger.level = :warn
13
13
  @@message_callback = nil
14
+ @@has_errors = false
14
15
 
15
16
  class << self
16
17
  def on_message(&block)
@@ -24,6 +25,10 @@ module Facter
24
25
  def level
25
26
  @@logger.level
26
27
  end
28
+
29
+ def errors?
30
+ @@has_errors
31
+ end
27
32
  end
28
33
 
29
34
  def initialize(logged_class)
@@ -88,6 +93,7 @@ module Facter
88
93
  end
89
94
 
90
95
  def error(msg, colorize = false)
96
+ @@has_errors = true
91
97
  msg = colorize(msg, RED) if colorize && !OsDetector.instance.detect.eql?(:windows)
92
98
  @@logger.error(@class_name + ' - ' + msg)
93
99
  end
@@ -6,7 +6,7 @@ module Facter
6
6
  class Processors < BaseResolver
7
7
  @log = Facter::Log.new(self)
8
8
  @semaphore = Mutex.new
9
- @fact_list ||= {}
9
+ @fact_list = {}
10
10
  ITEMS = { logical_count: 'hw.logicalcpu_max',
11
11
  physical_count: 'hw.physicalcpu_max',
12
12
  brand: 'machdep.cpu.brand_string',
@@ -16,16 +16,13 @@ module Facter
16
16
  # :models
17
17
  # :physicalcount
18
18
  # :speed
19
- def resolve(fact_name)
20
- @semaphore.synchronize do
21
- result ||= @fact_list[fact_name]
22
- subscribe_to_manager
23
- result || read_processor_data(fact_name)
24
- end
25
- end
26
19
 
27
20
  private
28
21
 
22
+ def post_resolve(fact_name)
23
+ @fact_list.fetch(fact_name) { read_processor_data(fact_name) }
24
+ end
25
+
29
26
  def read_processor_data(fact_name)
30
27
  output, _status = Open3.capture2("sysctl #{ITEMS.values.join(' ')}")
31
28
  build_fact_list(output.split("\n"))
@@ -28,22 +28,20 @@ module Facter
28
28
  # time_since_boot
29
29
  # smc_version_system
30
30
 
31
- @log = Facter::Log.new(self)
32
31
  @semaphore = Mutex.new
32
+ @fact_list = {}
33
33
 
34
34
  class << self
35
35
  private
36
36
 
37
37
  def post_resolve(fact_name)
38
- retrieve_system_profiler(fact_name) if @fact_list.nil?
39
-
40
- @fact_list[fact_name]
38
+ @fact_list.fetch(fact_name) { retrieve_system_profiler(fact_name) }
41
39
  end
42
40
 
43
41
  def retrieve_system_profiler(fact_name)
44
42
  @fact_list ||= {}
45
43
 
46
- @log.debug 'Executing command: system_profiler SPSoftwareDataType SPHardwareDataType'
44
+ log.debug 'Executing command: system_profiler SPSoftwareDataType SPHardwareDataType'
47
45
  output, _status = Open3.capture2('system_profiler SPHardwareDataType SPSoftwareDataType')
48
46
  @fact_list = output.scan(/.*:[ ].*$/).map { |e| e.strip.match(/(.*?): (.*)/).captures }.to_h
49
47
  normalize_factlist
@@ -4,12 +4,13 @@ module Facter
4
4
  module Resolvers
5
5
  class NetworkingLinux < BaseResolver
6
6
  @semaphore = Mutex.new
7
+ @fact_list = {}
7
8
 
8
9
  class << self
9
10
  private
10
11
 
11
12
  def post_resolve(fact_name)
12
- retrieve_network_info(fact_name) if @fact_list.nil?
13
+ @fact_list.fetch(fact_name) { retrieve_network_info(fact_name) }
13
14
 
14
15
  @fact_list[fact_name]
15
16
  end
@@ -3,9 +3,8 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Processors < BaseResolver
6
- @log = Facter::Log.new(self)
7
6
  @semaphore = Mutex.new
8
- @fact_list ||= {}
7
+ @fact_list = {}
9
8
  class << self
10
9
  # Count
11
10
  # Isa
@@ -22,7 +21,7 @@ module Facter
22
21
  win = Win32Ole.new
23
22
  proc = win.exec_query('SELECT Name,Architecture,NumberOfLogicalProcessors FROM Win32_Processor')
24
23
  unless proc
25
- @log.debug 'WMI query returned no results'\
24
+ log.debug 'WMI query returned no results'\
26
25
  'for Win32_Processor with values Name, Architecture and NumberOfLogicalProcessors.'
27
26
  return
28
27
  end
@@ -50,7 +49,7 @@ module Facter
50
49
  isa = architecture_hash[arch]
51
50
  return isa if isa
52
51
 
53
- @log.debug 'Unable to determine processor type: unknown architecture'
52
+ log.debug 'Unable to determine processor type: unknown architecture'
54
53
  end
55
54
 
56
55
  def build_fact_list(result)
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.0.12
4
+ version: 4.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-20 00:00:00.000000000 Z
11
+ date: 2020-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -281,6 +281,7 @@ files:
281
281
  - lib/facts/aix/system_uptime/seconds.rb
282
282
  - lib/facts/aix/system_uptime/uptime.rb
283
283
  - lib/facts/aix/timezone.rb
284
+ - lib/facts/bsd/bsd_example_fact.rb
284
285
  - lib/facts/debian/augeas/version.rb
285
286
  - lib/facts/debian/disks.rb
286
287
  - lib/facts/debian/dmi/bios/release_date.rb