facter 4.0.43 → 4.0.49

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 (291) hide show
  1. checksums.yaml +4 -4
  2. data/lib/docs/generate.rb +32 -0
  3. data/lib/docs/template.erb +34 -0
  4. data/lib/facter.rb +65 -9
  5. data/lib/facter/config.rb +385 -0
  6. data/lib/facter/custom_facts/core/aggregate.rb +7 -0
  7. data/lib/facter/custom_facts/core/execution.rb +28 -4
  8. data/lib/facter/custom_facts/core/execution/base.rb +33 -33
  9. data/lib/facter/custom_facts/util/collection.rb +1 -2
  10. data/lib/facter/custom_facts/util/directory_loader.rb +1 -1
  11. data/lib/facter/custom_facts/util/fact.rb +39 -3
  12. data/lib/facter/custom_facts/util/loader.rb +1 -1
  13. data/lib/facter/custom_facts/util/parser.rb +17 -3
  14. data/lib/facter/custom_facts/util/resolution.rb +2 -2
  15. data/lib/facter/facts/aix/disks.rb +1 -1
  16. data/lib/facter/facts/aix/interfaces.rb +1 -0
  17. data/lib/facter/facts/aix/memory/swap/available.rb +1 -1
  18. data/lib/facter/facts/aix/memory/swap/available_bytes.rb +1 -1
  19. data/lib/facter/facts/aix/memory/swap/total.rb +1 -1
  20. data/lib/facter/facts/aix/memory/swap/total_bytes.rb +1 -1
  21. data/lib/facter/facts/aix/memory/swap/used.rb +1 -1
  22. data/lib/facter/facts/aix/memory/system/available.rb +1 -1
  23. data/lib/facter/facts/aix/memory/system/available_bytes.rb +1 -1
  24. data/lib/facter/facts/aix/memory/system/total.rb +1 -1
  25. data/lib/facter/facts/aix/memory/system/total_bytes.rb +1 -1
  26. data/lib/facter/facts/aix/memory/system/used.rb +1 -1
  27. data/lib/facter/facts/aix/processors/speed.rb +1 -1
  28. data/lib/facter/facts/aix/ssh.rb +1 -1
  29. data/lib/facter/facts/aix/sshalgorithmkey.rb +1 -1
  30. data/lib/facter/facts/aix/sshfp_algorithm.rb +1 -1
  31. data/lib/facter/facts/bsd/processors/speed.rb +1 -1
  32. data/lib/facter/facts/freebsd/is_virtual.rb +25 -0
  33. data/lib/facter/facts/freebsd/memory/swap/available.rb +1 -1
  34. data/lib/facter/facts/freebsd/memory/swap/available_bytes.rb +1 -1
  35. data/lib/facter/facts/freebsd/memory/swap/total.rb +1 -1
  36. data/lib/facter/facts/freebsd/memory/swap/total_bytes.rb +1 -1
  37. data/lib/facter/facts/freebsd/memory/swap/used.rb +1 -1
  38. data/lib/facter/facts/freebsd/memory/system/available.rb +1 -1
  39. data/lib/facter/facts/freebsd/memory/system/available_bytes.rb +1 -1
  40. data/lib/facter/facts/freebsd/memory/system/total.rb +1 -1
  41. data/lib/facter/facts/freebsd/memory/system/total_bytes.rb +1 -1
  42. data/lib/facter/facts/freebsd/memory/system/used.rb +1 -1
  43. data/lib/facter/facts/freebsd/processors/speed.rb +1 -1
  44. data/lib/facter/facts/freebsd/ssh.rb +1 -1
  45. data/lib/facter/facts/freebsd/sshalgorithmkey.rb +1 -1
  46. data/lib/facter/facts/freebsd/sshfp_algorithm.rb +1 -1
  47. data/lib/facter/facts/freebsd/virtual.rb +22 -0
  48. data/lib/facter/facts/linux/dhcp_servers.rb +1 -0
  49. data/lib/facter/facts/linux/disks.rb +1 -1
  50. data/lib/facter/facts/linux/ec2_metadata.rb +1 -1
  51. data/lib/facter/facts/linux/ec2_userdata.rb +1 -1
  52. data/lib/facter/facts/linux/hypervisors/kvm.rb +1 -1
  53. data/lib/facter/facts/linux/hypervisors/xen.rb +1 -1
  54. data/lib/facter/facts/linux/interfaces.rb +1 -0
  55. data/lib/facter/facts/linux/is_virtual.rb +2 -2
  56. data/lib/facter/facts/linux/memory/swap/available.rb +1 -1
  57. data/lib/facter/facts/linux/memory/swap/available_bytes.rb +1 -1
  58. data/lib/facter/facts/linux/memory/swap/total.rb +1 -1
  59. data/lib/facter/facts/linux/memory/swap/total_bytes.rb +1 -1
  60. data/lib/facter/facts/linux/memory/swap/used.rb +1 -1
  61. data/lib/facter/facts/linux/memory/system/available.rb +1 -1
  62. data/lib/facter/facts/linux/memory/system/available_bytes.rb +1 -1
  63. data/lib/facter/facts/linux/memory/system/total.rb +1 -1
  64. data/lib/facter/facts/linux/memory/system/total_bytes.rb +1 -1
  65. data/lib/facter/facts/linux/memory/system/used.rb +1 -1
  66. data/lib/facter/facts/linux/os/family.rb +4 -2
  67. data/lib/facter/facts/linux/processors/speed.rb +1 -1
  68. data/lib/facter/facts/linux/ssh.rb +1 -1
  69. data/lib/facter/facts/linux/sshalgorithmkey.rb +1 -1
  70. data/lib/facter/facts/linux/sshfp_algorithm.rb +1 -1
  71. data/lib/facter/facts/linux/virtual.rb +1 -1
  72. data/lib/facter/facts/macosx/dhcp_servers.rb +1 -0
  73. data/lib/facter/facts/macosx/interfaces.rb +1 -0
  74. data/lib/facter/facts/macosx/memory/swap/available.rb +1 -1
  75. data/lib/facter/facts/macosx/memory/swap/available_bytes.rb +1 -1
  76. data/lib/facter/facts/macosx/memory/swap/total.rb +1 -1
  77. data/lib/facter/facts/macosx/memory/swap/total_bytes.rb +1 -1
  78. data/lib/facter/facts/macosx/memory/swap/used.rb +1 -1
  79. data/lib/facter/facts/macosx/memory/system/available.rb +1 -1
  80. data/lib/facter/facts/macosx/memory/system/available_bytes.rb +1 -1
  81. data/lib/facter/facts/macosx/memory/system/total.rb +1 -1
  82. data/lib/facter/facts/macosx/memory/system/total_bytes.rb +1 -1
  83. data/lib/facter/facts/macosx/memory/system/used.rb +1 -1
  84. data/lib/facter/facts/macosx/processors/speed.rb +1 -1
  85. data/lib/facter/facts/macosx/ssh.rb +1 -1
  86. data/lib/facter/facts/macosx/sshalgorithmkey.rb +1 -1
  87. data/lib/facter/facts/macosx/sshfp_algorithm.rb +1 -1
  88. data/lib/facter/facts/rhel/os/release.rb +1 -1
  89. data/lib/facter/facts/solaris/dhcp_servers.rb +1 -0
  90. data/lib/facter/facts/solaris/disks.rb +1 -1
  91. data/lib/facter/facts/solaris/hypervisors/ldom.rb +3 -0
  92. data/lib/facter/facts/solaris/interfaces.rb +1 -0
  93. data/lib/facter/facts/solaris/is_virtual.rb +2 -2
  94. data/lib/facter/facts/solaris/ldom.rb +34 -4
  95. data/lib/facter/facts/solaris/memory/swap/available.rb +1 -1
  96. data/lib/facter/facts/solaris/memory/swap/available_bytes.rb +1 -1
  97. data/lib/facter/facts/solaris/memory/swap/total.rb +1 -1
  98. data/lib/facter/facts/solaris/memory/swap/total_bytes.rb +1 -1
  99. data/lib/facter/facts/solaris/memory/swap/used.rb +1 -1
  100. data/lib/facter/facts/solaris/memory/system/available.rb +1 -1
  101. data/lib/facter/facts/solaris/memory/system/available_bytes.rb +1 -1
  102. data/lib/facter/facts/solaris/memory/system/total.rb +1 -1
  103. data/lib/facter/facts/solaris/memory/system/total_bytes.rb +1 -1
  104. data/lib/facter/facts/solaris/memory/system/used.rb +1 -1
  105. data/lib/facter/facts/solaris/processors/speed.rb +1 -1
  106. data/lib/facter/facts/solaris/ssh.rb +1 -1
  107. data/lib/facter/facts/solaris/sshalgorithmkey.rb +1 -1
  108. data/lib/facter/facts/solaris/sshfp_algorithm.rb +1 -1
  109. data/lib/facter/facts/solaris/virtual.rb +1 -1
  110. data/lib/facter/facts/windows/dhcp_servers.rb +1 -0
  111. data/lib/facter/facts/windows/interfaces.rb +1 -0
  112. data/lib/facter/facts/windows/memory/system/available.rb +1 -1
  113. data/lib/facter/facts/windows/memory/system/available_bytes.rb +1 -1
  114. data/lib/facter/facts/windows/memory/system/total.rb +1 -1
  115. data/lib/facter/facts/windows/memory/system/total_bytes.rb +1 -1
  116. data/lib/facter/facts/windows/memory/system/used.rb +1 -1
  117. data/lib/facter/facts/windows/networking/fqdn.rb +1 -1
  118. data/lib/facter/facts/windows/os/release.rb +1 -1
  119. data/lib/facter/framework/benchmarking/timer.rb +4 -2
  120. data/lib/facter/framework/cli/cli.rb +20 -6
  121. data/lib/facter/framework/config/fact_groups.rb +10 -8
  122. data/lib/facter/framework/core/cache_manager.rb +62 -17
  123. data/lib/facter/framework/core/fact/internal/core_fact.rb +6 -1
  124. data/lib/facter/framework/core/fact/internal/internal_fact_manager.rb +38 -4
  125. data/lib/facter/framework/core/fact_augmenter.rb +1 -1
  126. data/lib/facter/framework/core/fact_loaders/external_fact_loader.rb +4 -2
  127. data/lib/facter/framework/core/fact_loaders/fact_loader.rb +17 -1
  128. data/lib/facter/framework/core/fact_manager.rb +15 -3
  129. data/lib/facter/framework/core/file_loader.rb +6 -2
  130. data/lib/facter/framework/core/options/config_file_options.rb +16 -5
  131. data/lib/facter/framework/core/options/option_store.rb +42 -20
  132. data/lib/facter/framework/detector/os_detector.rb +1 -0
  133. data/lib/facter/framework/detector/os_hierarchy.rb +5 -9
  134. data/lib/facter/framework/logging/logger.rb +3 -3
  135. data/lib/facter/models/fact_collection.rb +11 -1
  136. data/lib/facter/models/loaded_fact.rb +2 -1
  137. data/lib/facter/resolvers/aio_agent_version.rb +2 -2
  138. data/lib/facter/resolvers/aix/{architecture_resolver.rb → architecture.rb} +19 -4
  139. data/lib/facter/resolvers/aix/disks.rb +6 -5
  140. data/lib/facter/resolvers/aix/{filesystem_resolver.rb → filesystem.rb} +2 -2
  141. data/lib/facter/resolvers/aix/{hardware_resolver.rb → hardware.rb} +4 -3
  142. data/lib/facter/resolvers/aix/{load_averages_resolver.rb → load_averages.rb} +2 -1
  143. data/lib/facter/resolvers/aix/memory.rb +4 -3
  144. data/lib/facter/resolvers/aix/mountpoints.rb +6 -5
  145. data/lib/facter/resolvers/aix/{networking_resolver.rb → networking.rb} +4 -3
  146. data/lib/facter/resolvers/aix/nim.rb +1 -1
  147. data/lib/facter/resolvers/aix/os_level.rb +1 -1
  148. data/lib/facter/resolvers/aix/partitions.rb +7 -6
  149. data/lib/facter/resolvers/aix/processors.rb +5 -4
  150. data/lib/facter/resolvers/aix/serialnumber.rb +2 -2
  151. data/lib/facter/resolvers/{augeas_resolver.rb → augeas.rb} +8 -2
  152. data/lib/facter/resolvers/base_resolver.rb +14 -4
  153. data/lib/facter/resolvers/bsd/processors.rb +13 -8
  154. data/lib/facter/resolvers/cloud.rb +2 -2
  155. data/lib/facter/resolvers/containers.rb +5 -4
  156. data/lib/facter/resolvers/debian_version.rb +2 -2
  157. data/lib/facter/resolvers/{disk_resolver.rb → disk.rb} +17 -6
  158. data/lib/facter/resolvers/{dmi_resolver.rb → dmi.rb} +3 -2
  159. data/lib/facter/resolvers/dmi_decode.rb +1 -1
  160. data/lib/facter/resolvers/ec2.rb +5 -2
  161. data/lib/facter/resolvers/{eos_release_resolver.rb → eos_release.rb} +2 -2
  162. data/lib/facter/resolvers/{facterversion_resolver.rb → facterversion.rb} +1 -1
  163. data/lib/facter/resolvers/{filesystems_resolver.rb → filesystems.rb} +5 -2
  164. data/lib/facter/resolvers/{fips_enabled_resolver.rb → fips_enabled.rb} +5 -2
  165. data/lib/facter/resolvers/freebsd/{dmi_resolver.rb → dmi.rb} +1 -1
  166. data/lib/facter/resolvers/freebsd/{freebsd_version_resolver.rb → freebsd_version.rb} +9 -7
  167. data/lib/facter/resolvers/freebsd/{geom_resolver.rb → geom.rb} +15 -22
  168. data/lib/facter/resolvers/freebsd/processors.rb +13 -8
  169. data/lib/facter/resolvers/freebsd/{swap_memory_resolver.rb → swap_memory.rb} +5 -3
  170. data/lib/facter/resolvers/freebsd/{system_memory_resolver.rb → system_memory.rb} +4 -2
  171. data/lib/facter/resolvers/freebsd/virtual.rb +45 -0
  172. data/lib/facter/resolvers/gce.rb +3 -2
  173. data/lib/facter/resolvers/hostname.rb +92 -0
  174. data/lib/facter/resolvers/{identity_resolver.rb → identity.rb} +2 -1
  175. data/lib/facter/resolvers/linux/docker_uptime.rb +3 -2
  176. data/lib/facter/resolvers/linux/load_averages.rb +3 -2
  177. data/lib/facter/resolvers/load_averages.rb +5 -3
  178. data/lib/facter/resolvers/{lpar_resolver.rb → lpar.rb} +1 -1
  179. data/lib/facter/resolvers/{lsb_release_resolver.rb → lsb_release.rb} +1 -1
  180. data/lib/facter/resolvers/lspci.rb +1 -1
  181. data/lib/facter/resolvers/macosx/{dmi_resolver.rb → dmi.rb} +1 -1
  182. data/lib/facter/resolvers/macosx/{filesystems_resolver.rb → filesystems.rb} +1 -1
  183. data/lib/facter/resolvers/macosx/{load_averages_resolver.rb → load_averages.rb} +2 -1
  184. data/lib/facter/resolvers/macosx/{mountpoints_resolver.rb → mountpoints.rb} +9 -8
  185. data/lib/facter/resolvers/macosx/{processor_resolver.rb → processor.rb} +2 -1
  186. data/lib/facter/resolvers/macosx/{swap_memory_resolver.rb → swap_memory.rb} +2 -1
  187. data/lib/facter/resolvers/macosx/{system_memory_resolver.rb → system_memory.rb} +2 -1
  188. data/lib/facter/resolvers/macosx/{system_profiler_resolver.rb → system_profiler.rb} +4 -6
  189. data/lib/facter/resolvers/{memory_resolver.rb → memory.rb} +4 -2
  190. data/lib/facter/resolvers/mountpoints.rb +90 -0
  191. data/lib/facter/resolvers/{networking_resolver.rb → networking.rb} +9 -6
  192. data/lib/facter/resolvers/networking_linux.rb +296 -0
  193. data/lib/facter/resolvers/open_vz.rb +2 -4
  194. data/lib/facter/resolvers/{os_release_resolver.rb → os_release.rb} +2 -2
  195. data/lib/facter/resolvers/partitions.rb +67 -63
  196. data/lib/facter/resolvers/{path_resolver.rb → path.rb} +1 -1
  197. data/lib/facter/resolvers/{processors_resolver.rb → processors.rb} +6 -3
  198. data/lib/facter/resolvers/{redhat_release_resolver.rb → redhat_release.rb} +2 -2
  199. data/lib/facter/resolvers/{ruby_resolver.rb → ruby.rb} +1 -1
  200. data/lib/facter/resolvers/{selinux_resolver.rb → selinux.rb} +4 -4
  201. data/lib/facter/resolvers/solaris/disks.rb +2 -2
  202. data/lib/facter/resolvers/solaris/dmi.rb +3 -1
  203. data/lib/facter/resolvers/solaris/dmi_sparc.rb +1 -1
  204. data/lib/facter/resolvers/solaris/filesystems.rb +1 -1
  205. data/lib/facter/resolvers/solaris/ipaddress.rb +2 -1
  206. data/lib/facter/resolvers/solaris/ldom.rb +1 -3
  207. data/lib/facter/resolvers/solaris/memory.rb +4 -3
  208. data/lib/facter/resolvers/solaris/mountpoints.rb +13 -12
  209. data/lib/facter/resolvers/solaris/networking.rb +50 -43
  210. data/lib/facter/resolvers/solaris/os_release.rb +7 -5
  211. data/lib/facter/resolvers/solaris/processors.rb +2 -1
  212. data/lib/facter/resolvers/solaris/zone.rb +1 -1
  213. data/lib/facter/resolvers/solaris/zone_name.rb +1 -1
  214. data/lib/facter/resolvers/{ssh_resolver.rb → ssh.rb} +12 -8
  215. data/lib/facter/resolvers/{suse_release_resolver.rb → suse_release.rb} +2 -2
  216. data/lib/facter/resolvers/{sw_vers_resolver.rb → sw_vers.rb} +2 -2
  217. data/lib/facter/resolvers/{timezone_resolver.rb → timezone.rb} +1 -1
  218. data/lib/facter/resolvers/{uname_resolver.rb → uname.rb} +1 -1
  219. data/lib/facter/resolvers/{uptime_resolver.rb → uptime.rb} +3 -3
  220. data/lib/facter/resolvers/virt_what.rb +1 -1
  221. data/lib/facter/resolvers/vmware.rb +1 -1
  222. data/lib/facter/resolvers/windows/aio_agent_version.rb +2 -2
  223. data/lib/facter/resolvers/windows/{dmi_bios_resolver.rb → dmi_bios.rb} +2 -2
  224. data/lib/facter/resolvers/windows/{dmi_computersystem_resolver.rb → dmi_computersystem.rb} +2 -2
  225. data/lib/facter/resolvers/windows/{fips_resolver.rb → fips.rb} +2 -1
  226. data/lib/facter/resolvers/windows/{hardware_architecture_resolver.rb → hardware_architecture.rb} +2 -1
  227. data/lib/facter/resolvers/windows/{identity_resolver.rb → identity.rb} +2 -1
  228. data/lib/facter/resolvers/windows/{kernel_resolver.rb → kernel.rb} +3 -1
  229. data/lib/facter/resolvers/windows/{memory_resolver.rb → memory.rb} +7 -1
  230. data/lib/facter/resolvers/windows/{netkvm_resolver.rb → netkvm.rb} +2 -1
  231. data/lib/facter/resolvers/windows/{networking_resolver.rb → networking.rb} +18 -4
  232. data/lib/facter/resolvers/windows/{processors_resolver.rb → processors.rb} +3 -2
  233. data/lib/facter/resolvers/windows/{product_release_resolver.rb → product_release.rb} +2 -1
  234. data/lib/facter/resolvers/windows/ssh.rb +5 -3
  235. data/lib/facter/resolvers/windows/{system32_resolver.rb → system32.rb} +3 -1
  236. data/lib/facter/resolvers/windows/{uptime_resolver.rb → uptime.rb} +3 -2
  237. data/lib/facter/resolvers/windows/{virtualization_resolver.rb → virtualization.rb} +3 -2
  238. data/lib/facter/resolvers/windows/{win_os_description_resolver.rb → win_os_description.rb} +4 -2
  239. data/lib/facter/resolvers/{wpar_resolver.rb → wpar.rb} +1 -1
  240. data/lib/facter/resolvers/xen.rb +2 -2
  241. data/lib/facter/resolvers/zfs.rb +2 -1
  242. data/lib/facter/resolvers/zpool.rb +2 -1
  243. data/lib/facter/util/aix/info_extractor.rb +24 -0
  244. data/lib/facter/util/aix/odm_query.rb +46 -0
  245. data/lib/facter/util/api_debugger.rb +33 -29
  246. data/lib/facter/util/facts/facts_utils.rb +30 -0
  247. data/lib/facter/util/facts/unit_converter.rb +61 -0
  248. data/lib/facter/util/facts/uptime_parser.rb +128 -0
  249. data/lib/facter/util/facts/virtual_detector.rb +90 -0
  250. data/lib/facter/util/facts/windows_release_finder.rb +55 -0
  251. data/lib/facter/{resolvers/macosx/utils → util/macosx}/system_profile_executor.rb +1 -1
  252. data/lib/facter/util/resolvers/aws_token.rb +37 -0
  253. data/lib/facter/{resolvers/utils → util/resolvers}/ffi/load_averages.rb +2 -2
  254. data/lib/facter/util/resolvers/filesystem_helper.rb +47 -0
  255. data/lib/facter/util/resolvers/fingerprint.rb +15 -0
  256. data/lib/facter/{resolvers/utils → util/resolvers}/http.rb +17 -10
  257. data/lib/facter/util/resolvers/networking/dhcp.rb +21 -0
  258. data/lib/facter/util/resolvers/networking/networking.rb +109 -0
  259. data/lib/facter/util/resolvers/networking/primary_interface.rb +82 -0
  260. data/lib/facter/util/resolvers/ssh.rb +17 -0
  261. data/lib/facter/util/resolvers/ssh_helper.rb +31 -0
  262. data/lib/facter/{resolvers/utils → util/resolvers}/uptime_helper.rb +2 -2
  263. data/lib/facter/{framework/utils → util}/utils.rb +0 -0
  264. data/lib/facter/util/windows/win32ole.rb +30 -0
  265. data/lib/facter/version.rb +1 -1
  266. metadata +106 -119
  267. data/lib/facter/fact_groups.conf +0 -308
  268. data/lib/facter/facts/aix/puppet_version.rb +0 -15
  269. data/lib/facter/facts/freebsd/puppet_version.rb +0 -15
  270. data/lib/facter/facts/linux/puppet_version.rb +0 -15
  271. data/lib/facter/facts/macosx/puppet_version.rb +0 -15
  272. data/lib/facter/facts/solaris/puppet_version.rb +0 -15
  273. data/lib/facter/facts/windows/puppet_version.rb +0 -15
  274. data/lib/facter/facts_utils/facts_utils.rb +0 -12
  275. data/lib/facter/facts_utils/unit_converter.rb +0 -59
  276. data/lib/facter/facts_utils/uptime_parser.rb +0 -124
  277. data/lib/facter/facts_utils/virtual_detector.rb +0 -78
  278. data/lib/facter/facts_utils/windows_release_finder.rb +0 -51
  279. data/lib/facter/os_hierarchy.json +0 -36
  280. data/lib/facter/resolvers/aix/utils/info_extractor.rb +0 -20
  281. data/lib/facter/resolvers/aix/utils/odm_query.rb +0 -42
  282. data/lib/facter/resolvers/hostname_resolver.rb +0 -44
  283. data/lib/facter/resolvers/mountpoints_resolver.rb +0 -62
  284. data/lib/facter/resolvers/networking_linux_resolver.rb +0 -159
  285. data/lib/facter/resolvers/puppet_version_resolver.rb +0 -26
  286. data/lib/facter/resolvers/utils/filesystem_helper.rb +0 -43
  287. data/lib/facter/resolvers/utils/fingerprint.rb +0 -11
  288. data/lib/facter/resolvers/utils/networking.rb +0 -86
  289. data/lib/facter/resolvers/utils/ssh.rb +0 -13
  290. data/lib/facter/resolvers/utils/ssh_helper.rb +0 -27
  291. data/lib/facter/resolvers/windows/utils/win32ole.rb +0 -24
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  module Solaris
6
6
  class Processors < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
+
8
9
  class << self
9
10
  private
10
11
 
@@ -4,7 +4,7 @@ module Facter
4
4
  module Resolvers
5
5
  module Solaris
6
6
  class Zone < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
8
 
9
9
  class << self
10
10
  private
@@ -4,7 +4,7 @@ module Facter
4
4
  module Resolvers
5
5
  module Solaris
6
6
  class ZoneName < BaseResolver
7
- @fact_list ||= {}
7
+ init_resolver
8
8
 
9
9
  class << self
10
10
  private
@@ -2,11 +2,14 @@
2
2
 
3
3
  module Facter
4
4
  module Resolvers
5
- class SshResolver < BaseResolver
5
+ class Ssh < BaseResolver
6
6
  @log = Facter::Log.new(self)
7
- @fact_list ||= {}
8
- @file_names = %w[ssh_host_rsa_key.pub ssh_host_dsa_key.pub ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub]
9
- @file_paths = %w[/etc/ssh /usr/local/etc/ssh /etc /usr/local/etc /etc/opt/ssh]
7
+
8
+ init_resolver
9
+
10
+ FILE_NAMES = %w[ssh_host_rsa_key.pub ssh_host_dsa_key.pub ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub].freeze
11
+ FILE_PATHS = %w[/etc/ssh /usr/local/etc/ssh /etc /usr/local/etc /etc/opt/ssh].freeze
12
+
10
13
  class << self
11
14
  private
12
15
 
@@ -16,15 +19,16 @@ module Facter
16
19
 
17
20
  def retrieve_info(fact_name)
18
21
  ssh_list = []
19
- @file_paths.each do |file_path|
22
+ FILE_PATHS.each do |file_path|
20
23
  next unless File.directory?(file_path)
21
24
 
22
- @file_names.each do |file_name|
23
- file_content = Util::FileHelper.safe_read(File.join(file_path, file_name), nil)
25
+ FILE_NAMES.each do |file_name|
26
+ file_content = Facter::Util::FileHelper.safe_read(File.join(file_path, file_name), nil)
24
27
  next unless file_content
25
28
 
26
29
  key_type, key = file_content.split(' ')
27
- ssh_list << ::Resolvers::Utils::SshHelper.create_ssh(key_type, key)
30
+ ssh = Facter::Util::Resolvers::SshHelper.create_ssh(key_type, key)
31
+ ssh_list << ssh if ssh
28
32
  end
29
33
  end
30
34
  @fact_list[:ssh] = ssh_list
@@ -7,7 +7,7 @@ module Facter
7
7
  # :version
8
8
  # :codename
9
9
 
10
- @fact_list ||= {}
10
+ init_resolver
11
11
 
12
12
  class << self
13
13
  private
@@ -17,7 +17,7 @@ module Facter
17
17
  end
18
18
 
19
19
  def read_suse_release(fact_name)
20
- output = Util::FileHelper.safe_read('/etc/SuSE-release', nil)
20
+ output = Facter::Util::FileHelper.safe_read('/etc/SuSE-release', nil)
21
21
  return @fact_list[fact_name] = nil if output.nil?
22
22
 
23
23
  output_strings = output.split(' ')
@@ -6,8 +6,8 @@ module Facter
6
6
  # :productname
7
7
  # :productversion
8
8
  # :buildversion
9
- #
10
- @fact_list ||= {}
9
+
10
+ init_resolver
11
11
 
12
12
  class << self
13
13
  private
@@ -3,7 +3,7 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Timezone < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
7
 
8
8
  class << self
9
9
  private
@@ -3,7 +3,7 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Uname < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
7
 
8
8
  class << self
9
9
  private
@@ -3,7 +3,7 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Uptime < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
7
 
8
8
  class << self
9
9
  private
@@ -13,7 +13,7 @@ module Facter
13
13
  end
14
14
 
15
15
  def uptime_system_call(fact_name)
16
- seconds = Facter::UptimeParser.uptime_seconds_unix
16
+ seconds = Facter::Util::Facts::UptimeParser.uptime_seconds_unix
17
17
  build_fact_list(seconds)
18
18
 
19
19
  @fact_list[fact_name]
@@ -22,7 +22,7 @@ module Facter
22
22
  def build_fact_list(seconds)
23
23
  return @fact_list[:uptime] = 'unknown' unless seconds
24
24
 
25
- @fact_list = Utils::UptimeHelper.create_uptime_hash(seconds)
25
+ @fact_list = Facter::Util::Resolvers::UptimeHelper.create_uptime_hash(seconds)
26
26
  end
27
27
  end
28
28
  end
@@ -3,7 +3,7 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class VirtWhat < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
7
 
8
8
  class << self
9
9
  private
@@ -3,7 +3,7 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Vmware < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
7
 
8
8
  class << self
9
9
  private
@@ -5,7 +5,7 @@ module Facter
5
5
  module Windows
6
6
  class AioAgentVersion < BaseResolver
7
7
  REGISTRY_PATH = 'SOFTWARE\\Puppet Labs\\Puppet'
8
- @fact_list ||= {}
8
+ init_resolver
9
9
 
10
10
  class << self
11
11
  private
@@ -30,7 +30,7 @@ module Facter
30
30
  return if puppet_aio_path.nil? || puppet_aio_path.empty?
31
31
 
32
32
  puppet_aio_version_path = File.join(puppet_aio_path, 'VERSION')
33
- aio_agent_version = Util::FileHelper.safe_read(puppet_aio_version_path, nil)&.chomp
33
+ aio_agent_version = Facter::Util::FileHelper.safe_read(puppet_aio_version_path, nil)&.chomp
34
34
 
35
35
  @fact_list[:aio_agent_version] = aio_agent_version&.match(/^\d+\.\d+\.\d+(\.\d+){0,2}/)&.to_s
36
36
  end
@@ -4,7 +4,7 @@ module Facter
4
4
  module Resolvers
5
5
  class DMIBios < BaseResolver
6
6
  @log = Facter::Log.new(self)
7
- @fact_list ||= {}
7
+ init_resolver
8
8
 
9
9
  class << self
10
10
  # Manufacturer
@@ -17,7 +17,7 @@ module Facter
17
17
  end
18
18
 
19
19
  def read_fact_from_bios(fact_name)
20
- win = Win32Ole.new
20
+ win = Facter::Util::Windows::Win32Ole.new
21
21
 
22
22
  bios = win.return_first('SELECT Manufacturer,SerialNumber from Win32_BIOS')
23
23
  unless bios
@@ -4,7 +4,7 @@ module Facter
4
4
  module Resolvers
5
5
  class DMIComputerSystem < BaseResolver
6
6
  @log = Facter::Log.new(self)
7
- @fact_list ||= {}
7
+ init_resolver
8
8
 
9
9
  class << self
10
10
  # Name
@@ -17,7 +17,7 @@ module Facter
17
17
  end
18
18
 
19
19
  def read_fact_from_computer_system(fact_name)
20
- win = Win32Ole.new
20
+ win = Facter::Util::Windows::Win32Ole.new
21
21
  computersystem = win.return_first('SELECT Name,UUID FROM Win32_ComputerSystemProduct')
22
22
  unless computersystem
23
23
  @log.debug 'WMI query returned no results for Win32_ComputerSystemProduct with values Name and UUID.'
@@ -7,7 +7,8 @@ module Facter
7
7
  module Windows
8
8
  class Fips < BaseResolver
9
9
  # :fips_enabled
10
- @fact_list ||= {}
10
+ init_resolver
11
+
11
12
  class << self
12
13
  private
13
14
 
@@ -3,7 +3,8 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class HardwareArchitecture < BaseResolver
6
- @fact_list ||= {}
6
+ init_resolver
7
+
7
8
  class << self
8
9
  private
9
10
 
@@ -5,7 +5,8 @@ module Facter
5
5
  class Identity < BaseResolver
6
6
  NAME_SAM_COMPATIBLE = 2
7
7
  @log = Facter::Log.new(self)
8
- @fact_list ||= {}
8
+
9
+ init_resolver
9
10
 
10
11
  class << self
11
12
  private
@@ -4,7 +4,9 @@ module Facter
4
4
  module Resolvers
5
5
  class Kernel < BaseResolver
6
6
  @log = Facter::Log.new(self)
7
- @fact_list ||= {}
7
+
8
+ init_resolver
9
+
8
10
  class << self
9
11
  private
10
12
 
@@ -4,7 +4,9 @@ module Facter
4
4
  module Resolvers
5
5
  class Memory < BaseResolver
6
6
  @log = Facter::Log.new(self)
7
- @fact_list ||= {}
7
+
8
+ init_resolver
9
+
8
10
  class << self
9
11
  private
10
12
 
@@ -21,6 +23,10 @@ module Facter
21
23
  return
22
24
  end
23
25
 
26
+ # we need to enlarge the scope of this pointer so that Ruby GC will not free the memory.
27
+ # If the pointer if freed, Lifreq structures will contain garbage from memory.
28
+ @long_living_pointer = state_ptr
29
+
24
30
  PerformanceInformation.new(state_ptr)
25
31
  end
26
32
 
@@ -5,7 +5,8 @@ require 'win32/registry'
5
5
  module Facter
6
6
  module Resolvers
7
7
  class NetKVM < BaseResolver
8
- @fact_list ||= {}
8
+ init_resolver
9
+
9
10
  class << self
10
11
  private
11
12
 
@@ -5,7 +5,8 @@ module Facter
5
5
  module Windows
6
6
  class Networking < BaseResolver
7
7
  @log = Facter::Log.new(self)
8
- @fact_list ||= {}
8
+ init_resolver
9
+
9
10
  class << self
10
11
  private
11
12
 
@@ -25,7 +26,9 @@ module Facter
25
26
 
26
27
  iterate_list(adapter_addresses)
27
28
 
28
- ::Resolvers::Utils::Networking.expand_main_bindings(@fact_list)
29
+ Facter::Util::Resolvers::Networking.expand_main_bindings(@fact_list)
30
+
31
+ retrieve_domain_from_registry if !@fact_list[:domain] || @fact_list[:domain].empty?
29
32
 
30
33
  @fact_list[fact_name]
31
34
  end
@@ -119,16 +122,27 @@ module Facter
119
122
  def find_bindings(sock_addr, unicast, addr)
120
123
  return unless [NetworkingFFI::AF_INET, NetworkingFFI::AF_INET6].include?(sock_addr[:sa_family])
121
124
 
122
- ::Resolvers::Utils::Networking.build_binding(addr, unicast[:OnLinkPrefixLength])
125
+ Facter::Util::Resolvers::Networking.build_binding(addr, unicast[:OnLinkPrefixLength])
123
126
  end
124
127
 
125
128
  def find_primary_interface(sock_addr, name, addr)
126
129
  if !@fact_list[:primary_interface] &&
127
130
  ([NetworkingFFI::AF_INET, NetworkingFFI::AF_INET6].include?(sock_addr[:sa_family]) &&
128
- !::Resolvers::Utils::Networking.ignored_ip_address(addr))
131
+ !::Facter::Util::Resolvers::Networking.ignored_ip_address(addr))
129
132
  @fact_list[:primary_interface] = name.to_s
130
133
  end
131
134
  end
135
+
136
+ def retrieve_domain_from_registry
137
+ ::Win32::Registry::HKEY_LOCAL_MACHINE.open('SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters') do |rg|
138
+ rg.each do |name, _value|
139
+ @fact_list[:domain] = rg[name] if name == 'Domain'
140
+ end
141
+ end
142
+ rescue Win32::Registry::Error
143
+ @log.debug('Could not read TCPIP Parameters from registry')
144
+ nil
145
+ end
132
146
  end
133
147
  end
134
148
  end
@@ -3,7 +3,8 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Processors < BaseResolver
6
- @fact_list = {}
6
+ init_resolver
7
+
7
8
  class << self
8
9
  # Count
9
10
  # Isa
@@ -17,7 +18,7 @@ module Facter
17
18
  end
18
19
 
19
20
  def read_fact_from_win32_processor(fact_name)
20
- win = Win32Ole.new
21
+ win = Facter::Util::Windows::Win32Ole.new
21
22
  proc = win.exec_query('SELECT Name,Architecture,NumberOfLogicalProcessors FROM Win32_Processor')
22
23
  unless proc
23
24
  log.debug 'WMI query returned no results'\
@@ -5,7 +5,8 @@ require 'win32/registry'
5
5
  module Facter
6
6
  module Resolvers
7
7
  class ProductRelease < BaseResolver
8
- @fact_list ||= {}
8
+ init_resolver
9
+
9
10
  class << self
10
11
  private
11
12
 
@@ -5,7 +5,9 @@ module Facter
5
5
  module Windows
6
6
  class Ssh < BaseResolver
7
7
  @log = Facter::Log.new(self)
8
- @fact_list ||= {}
8
+
9
+ init_resolver
10
+
9
11
  FILE_NAMES = %w[ssh_host_rsa_key.pub ssh_host_dsa_key.pub
10
12
  ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub].freeze
11
13
  class << self
@@ -22,11 +24,11 @@ module Facter
22
24
  ssh_list = []
23
25
 
24
26
  FILE_NAMES.each do |file_name|
25
- output = Util::FileHelper.safe_read(File.join(ssh_dir, file_name))
27
+ output = Facter::Util::FileHelper.safe_read(File.join(ssh_dir, file_name))
26
28
  next if output.empty?
27
29
 
28
30
  key_type, key = output.split(' ')
29
- ssh_list << ::Resolvers::Utils::SshHelper.create_ssh(key_type, key)
31
+ ssh_list << Facter::Util::Resolvers::SshHelper.create_ssh(key_type, key)
30
32
  end
31
33
  @fact_list[:ssh] = ssh_list.empty? ? nil : ssh_list
32
34
  @fact_list[fact_name]
@@ -4,7 +4,9 @@ module Facter
4
4
  module Resolvers
5
5
  class System32 < BaseResolver
6
6
  @log = Facter::Log.new(self)
7
- @fact_list ||= {}
7
+
8
+ init_resolver
9
+
8
10
  class << self
9
11
  private
10
12
 
@@ -7,7 +7,8 @@ module Facter
7
7
  module Windows
8
8
  class Uptime < BaseResolver
9
9
  @log = Facter::Log.new(self)
10
- @fact_list ||= {}
10
+
11
+ init_resolver
11
12
 
12
13
  class << self
13
14
  private
@@ -17,7 +18,7 @@ module Facter
17
18
  end
18
19
 
19
20
  def substract_system_uptime_from_ole
20
- win = Win32Ole.new
21
+ win = Facter::Util::Windows::Win32Ole.new
21
22
  opsystem = win.return_first('SELECT LocalDateTime,LastBootUpTime FROM Win32_OperatingSystem')
22
23
  unless opsystem
23
24
  @log.debug 'WMI query returned no results'\
@@ -4,7 +4,8 @@ module Facter
4
4
  module Resolvers
5
5
  class Virtualization < BaseResolver
6
6
  @log = Facter::Log.new(self)
7
- @fact_list ||= {}
7
+
8
+ init_resolver
8
9
 
9
10
  class << self
10
11
  # Virtual
@@ -20,7 +21,7 @@ module Facter
20
21
  end
21
22
 
22
23
  def read_fact_from_computer_system(fact_name)
23
- win = Win32Ole.new
24
+ win = Facter::Util::Windows::Win32Ole.new
24
25
  comp = win.exec_query('SELECT Manufacturer,Model,OEMStringArray FROM Win32_ComputerSystem')
25
26
  unless comp
26
27
  @log.debug 'WMI query returned no results for Win32_ComputerSystem with values'\