facter 4.0.12 → 4.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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