facter 4.0.42 → 4.0.48

Sign up to get free protection for your applications and to get access to all the features.
Files changed (292) 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 +109 -25
  5. data/lib/facter/config.rb +385 -0
  6. data/lib/facter/custom_facts/core/aggregate.rb +51 -17
  7. data/lib/facter/custom_facts/core/execution.rb +54 -38
  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 +38 -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 +42 -13
  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/solaris/zones.rb +1 -1
  111. data/lib/facter/facts/windows/dhcp_servers.rb +1 -0
  112. data/lib/facter/facts/windows/interfaces.rb +1 -0
  113. data/lib/facter/facts/windows/memory/system/available.rb +1 -1
  114. data/lib/facter/facts/windows/memory/system/available_bytes.rb +1 -1
  115. data/lib/facter/facts/windows/memory/system/total.rb +1 -1
  116. data/lib/facter/facts/windows/memory/system/total_bytes.rb +1 -1
  117. data/lib/facter/facts/windows/memory/system/used.rb +1 -1
  118. data/lib/facter/facts/windows/networking/fqdn.rb +1 -1
  119. data/lib/facter/facts/windows/os/release.rb +1 -1
  120. data/lib/facter/framework/benchmarking/timer.rb +4 -2
  121. data/lib/facter/framework/cli/cli.rb +16 -3
  122. data/lib/facter/framework/config/fact_groups.rb +10 -8
  123. data/lib/facter/framework/core/cache_manager.rb +62 -17
  124. data/lib/facter/framework/core/fact/internal/core_fact.rb +6 -1
  125. data/lib/facter/framework/core/fact/internal/internal_fact_manager.rb +38 -4
  126. data/lib/facter/framework/core/fact_augmenter.rb +1 -1
  127. data/lib/facter/framework/core/fact_loaders/external_fact_loader.rb +4 -2
  128. data/lib/facter/framework/core/fact_loaders/fact_loader.rb +17 -1
  129. data/lib/facter/framework/core/fact_manager.rb +15 -3
  130. data/lib/facter/framework/core/file_loader.rb +6 -2
  131. data/lib/facter/framework/core/options/config_file_options.rb +16 -5
  132. data/lib/facter/framework/core/options/option_store.rb +42 -20
  133. data/lib/facter/framework/detector/os_detector.rb +1 -0
  134. data/lib/facter/framework/detector/os_hierarchy.rb +5 -9
  135. data/lib/facter/framework/logging/logger.rb +3 -3
  136. data/lib/facter/models/fact_collection.rb +11 -1
  137. data/lib/facter/models/loaded_fact.rb +2 -1
  138. data/lib/facter/resolvers/aio_agent_version.rb +2 -2
  139. data/lib/facter/resolvers/aix/{architecture_resolver.rb → architecture.rb} +19 -4
  140. data/lib/facter/resolvers/aix/disks.rb +6 -5
  141. data/lib/facter/resolvers/aix/{filesystem_resolver.rb → filesystem.rb} +2 -2
  142. data/lib/facter/resolvers/aix/{hardware_resolver.rb → hardware.rb} +4 -3
  143. data/lib/facter/resolvers/aix/{load_averages_resolver.rb → load_averages.rb} +2 -1
  144. data/lib/facter/resolvers/aix/memory.rb +4 -3
  145. data/lib/facter/resolvers/aix/mountpoints.rb +6 -5
  146. data/lib/facter/resolvers/aix/{networking_resolver.rb → networking.rb} +4 -3
  147. data/lib/facter/resolvers/aix/nim.rb +1 -1
  148. data/lib/facter/resolvers/aix/os_level.rb +1 -1
  149. data/lib/facter/resolvers/aix/partitions.rb +7 -6
  150. data/lib/facter/resolvers/aix/processors.rb +5 -4
  151. data/lib/facter/resolvers/aix/serialnumber.rb +2 -2
  152. data/lib/facter/resolvers/{augeas_resolver.rb → augeas.rb} +8 -2
  153. data/lib/facter/resolvers/base_resolver.rb +14 -4
  154. data/lib/facter/resolvers/bsd/processors.rb +13 -8
  155. data/lib/facter/resolvers/cloud.rb +2 -2
  156. data/lib/facter/resolvers/containers.rb +5 -4
  157. data/lib/facter/resolvers/debian_version.rb +2 -2
  158. data/lib/facter/resolvers/{disk_resolver.rb → disk.rb} +17 -6
  159. data/lib/facter/resolvers/{dmi_resolver.rb → dmi.rb} +5 -4
  160. data/lib/facter/resolvers/dmi_decode.rb +1 -1
  161. data/lib/facter/resolvers/ec2.rb +5 -2
  162. data/lib/facter/resolvers/{eos_release_resolver.rb → eos_release.rb} +2 -2
  163. data/lib/facter/resolvers/{facterversion_resolver.rb → facterversion.rb} +1 -1
  164. data/lib/facter/resolvers/{filesystems_resolver.rb → filesystems.rb} +5 -2
  165. data/lib/facter/resolvers/{fips_enabled_resolver.rb → fips_enabled.rb} +5 -2
  166. data/lib/facter/resolvers/freebsd/{dmi_resolver.rb → dmi.rb} +1 -1
  167. data/lib/facter/resolvers/freebsd/{freebsd_version_resolver.rb → freebsd_version.rb} +9 -7
  168. data/lib/facter/resolvers/freebsd/{geom_resolver.rb → geom.rb} +15 -22
  169. data/lib/facter/resolvers/freebsd/processors.rb +13 -8
  170. data/lib/facter/resolvers/freebsd/{swap_memory_resolver.rb → swap_memory.rb} +5 -3
  171. data/lib/facter/resolvers/freebsd/{system_memory_resolver.rb → system_memory.rb} +4 -2
  172. data/lib/facter/resolvers/freebsd/virtual.rb +45 -0
  173. data/lib/facter/resolvers/gce.rb +3 -2
  174. data/lib/facter/resolvers/hostname.rb +92 -0
  175. data/lib/facter/resolvers/{identity_resolver.rb → identity.rb} +2 -1
  176. data/lib/facter/resolvers/linux/docker_uptime.rb +3 -2
  177. data/lib/facter/resolvers/linux/load_averages.rb +3 -2
  178. data/lib/facter/resolvers/load_averages.rb +5 -3
  179. data/lib/facter/resolvers/{lpar_resolver.rb → lpar.rb} +1 -1
  180. data/lib/facter/resolvers/{lsb_release_resolver.rb → lsb_release.rb} +1 -1
  181. data/lib/facter/resolvers/lspci.rb +1 -1
  182. data/lib/facter/resolvers/macosx/{dmi_resolver.rb → dmi.rb} +1 -1
  183. data/lib/facter/resolvers/macosx/{filesystems_resolver.rb → filesystems.rb} +1 -1
  184. data/lib/facter/resolvers/macosx/{load_averages_resolver.rb → load_averages.rb} +2 -1
  185. data/lib/facter/resolvers/macosx/{mountpoints_resolver.rb → mountpoints.rb} +9 -8
  186. data/lib/facter/resolvers/macosx/{processor_resolver.rb → processor.rb} +2 -1
  187. data/lib/facter/resolvers/macosx/{swap_memory_resolver.rb → swap_memory.rb} +2 -1
  188. data/lib/facter/resolvers/macosx/{system_memory_resolver.rb → system_memory.rb} +2 -1
  189. data/lib/facter/resolvers/macosx/{system_profiler_resolver.rb → system_profiler.rb} +4 -6
  190. data/lib/facter/resolvers/{memory_resolver.rb → memory.rb} +4 -2
  191. data/lib/facter/resolvers/mountpoints.rb +90 -0
  192. data/lib/facter/resolvers/{networking_resolver.rb → networking.rb} +9 -6
  193. data/lib/facter/resolvers/networking_linux.rb +296 -0
  194. data/lib/facter/resolvers/open_vz.rb +2 -4
  195. data/lib/facter/resolvers/{os_release_resolver.rb → os_release.rb} +2 -2
  196. data/lib/facter/resolvers/partitions.rb +67 -63
  197. data/lib/facter/resolvers/{path_resolver.rb → path.rb} +1 -1
  198. data/lib/facter/resolvers/{processors_resolver.rb → processors.rb} +10 -3
  199. data/lib/facter/resolvers/{redhat_release_resolver.rb → redhat_release.rb} +2 -2
  200. data/lib/facter/resolvers/{ruby_resolver.rb → ruby.rb} +1 -1
  201. data/lib/facter/resolvers/{selinux_resolver.rb → selinux.rb} +4 -4
  202. data/lib/facter/resolvers/solaris/disks.rb +2 -2
  203. data/lib/facter/resolvers/solaris/dmi.rb +3 -1
  204. data/lib/facter/resolvers/solaris/dmi_sparc.rb +1 -1
  205. data/lib/facter/resolvers/solaris/filesystems.rb +1 -1
  206. data/lib/facter/resolvers/solaris/ipaddress.rb +2 -1
  207. data/lib/facter/resolvers/solaris/ldom.rb +1 -3
  208. data/lib/facter/resolvers/solaris/memory.rb +4 -3
  209. data/lib/facter/resolvers/solaris/mountpoints.rb +61 -0
  210. data/lib/facter/resolvers/solaris/networking.rb +51 -44
  211. data/lib/facter/resolvers/solaris/os_release.rb +7 -5
  212. data/lib/facter/resolvers/solaris/processors.rb +2 -1
  213. data/lib/facter/resolvers/solaris/zone.rb +1 -1
  214. data/lib/facter/resolvers/solaris/zone_name.rb +1 -1
  215. data/lib/facter/resolvers/{ssh_resolver.rb → ssh.rb} +12 -8
  216. data/lib/facter/resolvers/{suse_release_resolver.rb → suse_release.rb} +2 -2
  217. data/lib/facter/resolvers/{sw_vers_resolver.rb → sw_vers.rb} +2 -2
  218. data/lib/facter/resolvers/{timezone_resolver.rb → timezone.rb} +1 -1
  219. data/lib/facter/resolvers/{uname_resolver.rb → uname.rb} +1 -1
  220. data/lib/facter/resolvers/{uptime_resolver.rb → uptime.rb} +3 -3
  221. data/lib/facter/resolvers/virt_what.rb +1 -1
  222. data/lib/facter/resolvers/vmware.rb +1 -1
  223. data/lib/facter/resolvers/windows/aio_agent_version.rb +2 -2
  224. data/lib/facter/resolvers/windows/{dmi_bios_resolver.rb → dmi_bios.rb} +2 -2
  225. data/lib/facter/resolvers/windows/{dmi_computersystem_resolver.rb → dmi_computersystem.rb} +2 -2
  226. data/lib/facter/resolvers/windows/{fips_resolver.rb → fips.rb} +2 -1
  227. data/lib/facter/resolvers/windows/{hardware_architecture_resolver.rb → hardware_architecture.rb} +2 -1
  228. data/lib/facter/resolvers/windows/{identity_resolver.rb → identity.rb} +2 -1
  229. data/lib/facter/resolvers/windows/{kernel_resolver.rb → kernel.rb} +3 -1
  230. data/lib/facter/resolvers/windows/{memory_resolver.rb → memory.rb} +7 -1
  231. data/lib/facter/resolvers/windows/{netkvm_resolver.rb → netkvm.rb} +2 -1
  232. data/lib/facter/resolvers/windows/{networking_resolver.rb → networking.rb} +18 -4
  233. data/lib/facter/resolvers/windows/{processors_resolver.rb → processors.rb} +3 -2
  234. data/lib/facter/resolvers/windows/{product_release_resolver.rb → product_release.rb} +2 -1
  235. data/lib/facter/resolvers/windows/ssh.rb +5 -3
  236. data/lib/facter/resolvers/windows/{system32_resolver.rb → system32.rb} +3 -1
  237. data/lib/facter/resolvers/windows/{uptime_resolver.rb → uptime.rb} +3 -2
  238. data/lib/facter/resolvers/windows/{virtualization_resolver.rb → virtualization.rb} +3 -2
  239. data/lib/facter/resolvers/windows/{win_os_description_resolver.rb → win_os_description.rb} +4 -2
  240. data/lib/facter/resolvers/{wpar_resolver.rb → wpar.rb} +1 -1
  241. data/lib/facter/resolvers/xen.rb +2 -2
  242. data/lib/facter/resolvers/zfs.rb +2 -1
  243. data/lib/facter/resolvers/zpool.rb +2 -1
  244. data/lib/facter/util/aix/info_extractor.rb +24 -0
  245. data/lib/facter/util/aix/odm_query.rb +46 -0
  246. data/lib/facter/util/api_debugger.rb +33 -29
  247. data/lib/facter/util/facts/facts_utils.rb +30 -0
  248. data/lib/facter/util/facts/unit_converter.rb +61 -0
  249. data/lib/facter/util/facts/uptime_parser.rb +128 -0
  250. data/lib/facter/util/facts/virtual_detector.rb +90 -0
  251. data/lib/facter/util/facts/windows_release_finder.rb +55 -0
  252. data/lib/facter/{resolvers/macosx/utils → util/macosx}/system_profile_executor.rb +1 -1
  253. data/lib/facter/util/resolvers/aws_token.rb +37 -0
  254. data/lib/facter/{resolvers/utils → util/resolvers}/ffi/load_averages.rb +2 -2
  255. data/lib/facter/util/resolvers/filesystem_helper.rb +47 -0
  256. data/lib/facter/util/resolvers/fingerprint.rb +15 -0
  257. data/lib/facter/{resolvers/utils → util/resolvers}/http.rb +17 -10
  258. data/lib/facter/util/resolvers/networking/dhcp.rb +21 -0
  259. data/lib/facter/util/resolvers/networking/networking.rb +109 -0
  260. data/lib/facter/util/resolvers/networking/primary_interface.rb +82 -0
  261. data/lib/facter/util/resolvers/ssh.rb +17 -0
  262. data/lib/facter/util/resolvers/ssh_helper.rb +31 -0
  263. data/lib/facter/{resolvers/utils → util/resolvers}/uptime_helper.rb +2 -2
  264. data/lib/facter/{framework/utils → util}/utils.rb +0 -0
  265. data/lib/facter/util/windows/win32ole.rb +30 -0
  266. data/lib/facter/version.rb +1 -1
  267. metadata +107 -119
  268. data/lib/facter/fact_groups.conf +0 -308
  269. data/lib/facter/facts/aix/puppet_version.rb +0 -15
  270. data/lib/facter/facts/freebsd/puppet_version.rb +0 -15
  271. data/lib/facter/facts/linux/puppet_version.rb +0 -15
  272. data/lib/facter/facts/macosx/puppet_version.rb +0 -15
  273. data/lib/facter/facts/solaris/puppet_version.rb +0 -15
  274. data/lib/facter/facts/windows/puppet_version.rb +0 -15
  275. data/lib/facter/facts_utils/facts_utils.rb +0 -12
  276. data/lib/facter/facts_utils/unit_converter.rb +0 -59
  277. data/lib/facter/facts_utils/uptime_parser.rb +0 -124
  278. data/lib/facter/facts_utils/virtual_detector.rb +0 -78
  279. data/lib/facter/facts_utils/windows_release_finder.rb +0 -51
  280. data/lib/facter/os_hierarchy.json +0 -36
  281. data/lib/facter/resolvers/aix/utils/info_extractor.rb +0 -20
  282. data/lib/facter/resolvers/aix/utils/odm_query.rb +0 -42
  283. data/lib/facter/resolvers/hostname_resolver.rb +0 -44
  284. data/lib/facter/resolvers/mountpoints_resolver.rb +0 -59
  285. data/lib/facter/resolvers/networking_linux_resolver.rb +0 -153
  286. data/lib/facter/resolvers/puppet_version_resolver.rb +0 -26
  287. data/lib/facter/resolvers/utils/filesystem_helper.rb +0 -43
  288. data/lib/facter/resolvers/utils/fingerprint.rb +0 -11
  289. data/lib/facter/resolvers/utils/networking.rb +0 -86
  290. data/lib/facter/resolvers/utils/ssh.rb +0 -13
  291. data/lib/facter/resolvers/utils/ssh_helper.rb +0 -27
  292. data/lib/facter/resolvers/windows/utils/win32ole.rb +0 -24
@@ -9,7 +9,7 @@ module Facts
9
9
 
10
10
  def call_the_resolver
11
11
  fact_value = Facter::Resolvers::Macosx::SystemMemory.resolve(:used_bytes)
12
- fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value)
12
+ fact_value = Facter::Util::Facts::UnitConverter.bytes_to_human_readable(fact_value)
13
13
 
14
14
  Facter::ResolvedFact.new(FACT_NAME, fact_value)
15
15
  end
@@ -8,7 +8,7 @@ module Facts
8
8
 
9
9
  def call_the_resolver
10
10
  fact_value = Facter::Resolvers::Macosx::Processors.resolve(:speed)
11
- speed = Facter::FactsUtils::UnitConverter.hertz_to_human_readable(fact_value)
11
+ speed = Facter::Util::Facts::UnitConverter.hertz_to_human_readable(fact_value)
12
12
  Facter::ResolvedFact.new(FACT_NAME, speed)
13
13
  end
14
14
  end
@@ -16,7 +16,7 @@ module Facts
16
16
  end
17
17
 
18
18
  def resolver_data
19
- Facter::Resolvers::SshResolver.resolve(:ssh)
19
+ Facter::Resolvers::Ssh.resolve(:ssh)
20
20
  end
21
21
 
22
22
  def create_ssh_fact(ssh)
@@ -8,7 +8,7 @@ module Facts
8
8
 
9
9
  def call_the_resolver
10
10
  facts = []
11
- result = Facter::Resolvers::SshResolver.resolve(:ssh)
11
+ result = Facter::Resolvers::Ssh.resolve(:ssh)
12
12
  result.each { |ssh| facts << Facter::ResolvedFact.new("ssh#{ssh.name.to_sym}key", ssh.key, :legacy) }
13
13
  facts
14
14
  end
@@ -8,7 +8,7 @@ module Facts
8
8
 
9
9
  def call_the_resolver
10
10
  facts = []
11
- result = Facter::Resolvers::SshResolver.resolve(:ssh)
11
+ result = Facter::Resolvers::Ssh.resolve(:ssh)
12
12
  result.each do |ssh|
13
13
  facts << Facter::ResolvedFact.new("sshfp_#{ssh.name.to_sym}",
14
14
  "#{ssh.fingerprint.sha1}\n#{ssh.fingerprint.sha256}", :legacy)
@@ -27,7 +27,7 @@ module Facts
27
27
  fact_value = {}
28
28
  fact_value['full'] = version
29
29
  fact_value['major'] = versions[0]
30
- fact_value['minor'] = versions[1].gsub(/^0([1-9])/, '\1') if versions[1]
30
+ fact_value['minor'] = versions[1] if versions[1]
31
31
  fact_value
32
32
  end
33
33
  end
@@ -4,6 +4,7 @@ module Facts
4
4
  module Solaris
5
5
  class DhcpServers
6
6
  FACT_NAME = 'dhcp_servers'
7
+ TYPE = :legacy
7
8
 
8
9
  def call_the_resolver
9
10
  fact_value = construct_addresses_hash
@@ -4,7 +4,7 @@ module Facts
4
4
  module Solaris
5
5
  class Disks
6
6
  FACT_NAME = 'disks'
7
- ALIASES = %w[blockdevices blockdevice_.*_size blockdevice_.*_vendor'].freeze
7
+ ALIASES = %w[blockdevices blockdevice_.*_size blockdevice_.*_vendor].freeze
8
8
 
9
9
  def call_the_resolver
10
10
  facts = []
@@ -11,6 +11,9 @@ module Facts
11
11
  end
12
12
 
13
13
  def call_the_resolver
14
+ chassis_serial = Facter::Resolvers::Solaris::Ldom.resolve(:chassis_serial)
15
+ return Facter::ResolvedFact.new(FACT_NAME, nil) if !chassis_serial || chassis_serial.empty?
16
+
14
17
  fact_value = %i[
15
18
  chassis_serial control_domain domain_name
16
19
  domain_uuid role_control role_io role_root role_service
@@ -4,6 +4,7 @@ module Facts
4
4
  module Solaris
5
5
  class Interfaces
6
6
  FACT_NAME = 'interfaces'
7
+ TYPE = :legacy
7
8
 
8
9
  def call_the_resolver
9
10
  fact_value = Facter::Resolvers::Solaris::Networking.resolve(:interfaces)
@@ -51,13 +51,13 @@ module Facts
51
51
 
52
52
  return unless product_name
53
53
 
54
- Facter::FactsUtils::HYPERVISORS_HASH.each { |key, value| return value if product_name.include?(key) }
54
+ Facter::Util::Facts::HYPERVISORS_HASH.each { |key, value| return value if product_name.include?(key) }
55
55
 
56
56
  nil
57
57
  end
58
58
 
59
59
  def check_if_virtual(found_vm)
60
- Facter::FactsUtils::PHYSICAL_HYPERVISORS.count(found_vm).zero?
60
+ Facter::Util::Facts::PHYSICAL_HYPERVISORS.count(found_vm).zero?
61
61
  end
62
62
  end
63
63
  end
@@ -4,14 +4,36 @@ module Facts
4
4
  module Solaris
5
5
  class Ldom
6
6
  FACT_NAME = 'ldom'
7
+ ALIASES = %w[
8
+ ldom_domainchassis
9
+ ldom_domaincontrol
10
+ ldom_domainname
11
+ ldom_domainrole_control
12
+ ldom_domainrole_impl
13
+ ldom_domainrole_io
14
+ ldom_domainrole_root
15
+ ldom_domainrole_service
16
+ ldom_domainuuid
17
+ ].freeze
7
18
 
8
19
  def initialize
9
20
  @log = Facter::Log.new(self)
10
21
  end
11
22
 
12
23
  def call_the_resolver
13
- fact_value = {
14
- domainchassis: resolve(:chassis_serial),
24
+ @log.debug('Solving the ldom fact.')
25
+ fact_value = resolve_fact
26
+ return Facter::ResolvedFact.new(FACT_NAME, nil) if fact_value.nil?
27
+
28
+ create_resolved_facts_list(fact_value)
29
+ end
30
+
31
+ def resolve_fact
32
+ chassis_serial = resolve(:chassis_serial)
33
+ return nil if !chassis_serial || chassis_serial.empty?
34
+
35
+ {
36
+ domainchassis: chassis_serial,
15
37
  domaincontrol: resolve(:control_domain),
16
38
  domainname: resolve(:domain_name),
17
39
  domainrole: {
@@ -23,13 +45,21 @@ module Facts
23
45
  },
24
46
  domainuuid: resolve(:domain_uuid)
25
47
  }
26
-
27
- Facter::ResolvedFact.new(FACT_NAME, fact_value)
28
48
  end
29
49
 
30
50
  def resolve(key)
31
51
  Facter::Resolvers::Solaris::Ldom.resolve(key)
32
52
  end
53
+
54
+ def create_resolved_facts_list(fact_value)
55
+ resolved_facts = [Facter::ResolvedFact.new(FACT_NAME, fact_value)]
56
+ ALIASES.each do |fact_alias|
57
+ key = fact_alias.split('_')[1..-1].map!(&:to_sym)
58
+ resolved_facts << Facter::ResolvedFact.new(fact_alias, fact_value.dig(*key), :legacy)
59
+ end
60
+
61
+ resolved_facts
62
+ end
33
63
  end
34
64
  end
35
65
  end
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Solaris::Memory.resolve(:swap)
13
13
  if fact_value
14
- fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value[:available_bytes])
14
+ fact_value = Facter::Util::Facts::UnitConverter.bytes_to_human_readable(fact_value[:available_bytes])
15
15
  end
16
16
  [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
17
17
  end
@@ -13,7 +13,7 @@ module Facts
13
13
  fact_value = fact_value[:available_bytes] if fact_value
14
14
 
15
15
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
16
- Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::UnitConverter.bytes_to_mb(fact_value), :legacy)]
16
+ Facter::ResolvedFact.new(ALIASES, Facter::Util::Facts::UnitConverter.bytes_to_mb(fact_value), :legacy)]
17
17
  end
18
18
  end
19
19
  end
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Solaris::Memory.resolve(:swap)
13
13
  if fact_value
14
- fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value[:total_bytes])
14
+ fact_value = Facter::Util::Facts::UnitConverter.bytes_to_human_readable(fact_value[:total_bytes])
15
15
  end
16
16
  [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
17
17
  end
@@ -13,7 +13,7 @@ module Facts
13
13
  fact_value = fact_value[:total_bytes] if fact_value
14
14
 
15
15
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
16
- Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::UnitConverter.bytes_to_mb(fact_value), :legacy)]
16
+ Facter::ResolvedFact.new(ALIASES, Facter::Util::Facts::UnitConverter.bytes_to_mb(fact_value), :legacy)]
17
17
  end
18
18
  end
19
19
  end
@@ -10,7 +10,7 @@ module Facts
10
10
  def call_the_resolver
11
11
  fact_value = Facter::Resolvers::Solaris::Memory.resolve(:swap)
12
12
  if fact_value
13
- fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value[:used_bytes])
13
+ fact_value = Facter::Util::Facts::UnitConverter.bytes_to_human_readable(fact_value[:used_bytes])
14
14
  end
15
15
  Facter::ResolvedFact.new(FACT_NAME, fact_value)
16
16
  end
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Solaris::Memory.resolve(:system)
13
13
  if fact_value
14
- fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value[:available_bytes])
14
+ fact_value = Facter::Util::Facts::UnitConverter.bytes_to_human_readable(fact_value[:available_bytes])
15
15
  end
16
16
  [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
17
17
  end
@@ -13,7 +13,7 @@ module Facts
13
13
  fact_value = fact_value[:available_bytes] if fact_value
14
14
 
15
15
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
16
- Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::UnitConverter.bytes_to_mb(fact_value), :legacy)]
16
+ Facter::ResolvedFact.new(ALIASES, Facter::Util::Facts::UnitConverter.bytes_to_mb(fact_value), :legacy)]
17
17
  end
18
18
  end
19
19
  end
@@ -11,7 +11,7 @@ module Facts
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Solaris::Memory.resolve(:system)
13
13
  if fact_value
14
- fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value[:total_bytes])
14
+ fact_value = Facter::Util::Facts::UnitConverter.bytes_to_human_readable(fact_value[:total_bytes])
15
15
  end
16
16
  [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
17
17
  end
@@ -13,7 +13,7 @@ module Facts
13
13
  fact_value = fact_value[:total_bytes] if fact_value
14
14
 
15
15
  [Facter::ResolvedFact.new(FACT_NAME, fact_value),
16
- Facter::ResolvedFact.new(ALIASES, Facter::FactsUtils::UnitConverter.bytes_to_mb(fact_value), :legacy)]
16
+ Facter::ResolvedFact.new(ALIASES, Facter::Util::Facts::UnitConverter.bytes_to_mb(fact_value), :legacy)]
17
17
  end
18
18
  end
19
19
  end
@@ -10,7 +10,7 @@ module Facts
10
10
  def call_the_resolver
11
11
  fact_value = Facter::Resolvers::Solaris::Memory.resolve(:system)
12
12
  if fact_value
13
- fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value[:used_bytes])
13
+ fact_value = Facter::Util::Facts::UnitConverter.bytes_to_human_readable(fact_value[:used_bytes])
14
14
  end
15
15
  Facter::ResolvedFact.new(FACT_NAME, fact_value)
16
16
  end
@@ -8,7 +8,7 @@ module Facts
8
8
 
9
9
  def call_the_resolver
10
10
  fact_value = Facter::Resolvers::Solaris::Processors.resolve(:speed)
11
- speed = Facter::FactsUtils::UnitConverter.hertz_to_human_readable(fact_value)
11
+ speed = Facter::Util::Facts::UnitConverter.hertz_to_human_readable(fact_value)
12
12
  Facter::ResolvedFact.new(FACT_NAME, speed)
13
13
  end
14
14
  end
@@ -16,7 +16,7 @@ module Facts
16
16
  end
17
17
 
18
18
  def resolver_data
19
- Facter::Resolvers::SshResolver.resolve(:ssh)
19
+ Facter::Resolvers::Ssh.resolve(:ssh)
20
20
  end
21
21
 
22
22
  def create_ssh_fact(ssh)
@@ -8,7 +8,7 @@ module Facts
8
8
 
9
9
  def call_the_resolver
10
10
  facts = []
11
- result = Facter::Resolvers::SshResolver.resolve(:ssh)
11
+ result = Facter::Resolvers::Ssh.resolve(:ssh)
12
12
  result.each { |ssh| facts << Facter::ResolvedFact.new("ssh#{ssh.name.to_sym}key", ssh.key, :legacy) }
13
13
  facts
14
14
  end
@@ -8,7 +8,7 @@ module Facts
8
8
 
9
9
  def call_the_resolver
10
10
  facts = []
11
- result = Facter::Resolvers::SshResolver.resolve(:ssh)
11
+ result = Facter::Resolvers::Ssh.resolve(:ssh)
12
12
  result.each do |ssh|
13
13
  facts << Facter::ResolvedFact.new("sshfp_#{ssh.name.to_sym}",
14
14
  "#{ssh.fingerprint.sha1}\n#{ssh.fingerprint.sha256}", :legacy)
@@ -51,7 +51,7 @@ module Facts
51
51
 
52
52
  return unless product_name
53
53
 
54
- Facter::FactsUtils::HYPERVISORS_HASH.each { |key, value| return value if product_name.include?(key) }
54
+ Facter::Util::Facts::HYPERVISORS_HASH.each { |key, value| return value if product_name.include?(key) }
55
55
 
56
56
  nil
57
57
  end
@@ -28,7 +28,7 @@ module Facts
28
28
  end
29
29
 
30
30
  resolved_facts << Facter::ResolvedFact.new('solaris_zones.zones', zones)
31
- resolved_facts << Facter::ResolvedFact.new('zones', results.count.to_s, :legacy)
31
+ resolved_facts << Facter::ResolvedFact.new('zones', results.count, :legacy)
32
32
 
33
33
  resolved_facts.flatten
34
34
  end
@@ -4,6 +4,7 @@ module Facts
4
4
  module Windows
5
5
  class DhcpServers
6
6
  FACT_NAME = 'dhcp_servers'
7
+ TYPE = :legacy
7
8
 
8
9
  def call_the_resolver
9
10
  fact_value = construct_addresses_hash
@@ -4,6 +4,7 @@ module Facts
4
4
  module Windows
5
5
  class Interfaces
6
6
  FACT_NAME = 'interfaces'
7
+ TYPE = :legacy
7
8
 
8
9
  def call_the_resolver
9
10
  fact_value = Facter::Resolvers::Windows::Networking.resolve(:interfaces)
@@ -10,7 +10,7 @@ module Facts
10
10
 
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Memory.resolve(:available_bytes)
13
- fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value)
13
+ fact_value = Facter::Util::Facts::UnitConverter.bytes_to_human_readable(fact_value)
14
14
 
15
15
  [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
16
16
  end
@@ -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, Facter::FactsUtils::UnitConverter.bytes_to_mb(fact_value), :legacy)]
15
+ Facter::ResolvedFact.new(ALIASES, Facter::Util::Facts::UnitConverter.bytes_to_mb(fact_value), :legacy)]
16
16
  end
17
17
  end
18
18
  end
@@ -10,7 +10,7 @@ module Facts
10
10
 
11
11
  def call_the_resolver
12
12
  fact_value = Facter::Resolvers::Memory.resolve(:total_bytes)
13
- fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value)
13
+ fact_value = Facter::Util::Facts::UnitConverter.bytes_to_human_readable(fact_value)
14
14
 
15
15
  [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
16
16
  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, Facter::FactsUtils::UnitConverter.bytes_to_mb(fact_value), :legacy)]
15
+ Facter::ResolvedFact.new(ALIASES, Facter::Util::Facts::UnitConverter.bytes_to_mb(fact_value), :legacy)]
16
16
  end
17
17
  end
18
18
  end
@@ -9,7 +9,7 @@ module Facts
9
9
 
10
10
  def call_the_resolver
11
11
  fact_value = Facter::Resolvers::Memory.resolve(:used_bytes)
12
- fact_value = Facter::FactsUtils::UnitConverter.bytes_to_human_readable(fact_value)
12
+ fact_value = Facter::Util::Facts::UnitConverter.bytes_to_human_readable(fact_value)
13
13
 
14
14
  Facter::ResolvedFact.new(FACT_NAME, fact_value)
15
15
  end
@@ -12,7 +12,7 @@ module Facts
12
12
  hostname = Facter::Resolvers::Hostname.resolve(:hostname)
13
13
  return Facter::ResolvedFact.new(FACT_NAME, nil) if !hostname || hostname.empty?
14
14
 
15
- fact_value = [hostname, domain].compact.join('.')
15
+ fact_value = domain && !domain.empty? ? [hostname, domain].compact.join('.') : hostname
16
16
 
17
17
  [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
18
18
  end
@@ -16,7 +16,7 @@ module Facts
16
16
  kernel_version: kernel_resolver(:kernelversion)
17
17
  }
18
18
 
19
- fact_value = Facter::WindowsReleaseFinder.find_release(input)
19
+ fact_value = Facter::Util::Facts::WindowsReleaseFinder.find_release(input)
20
20
  arr << Facter::ResolvedFact.new(FACT_NAME, ({ full: fact_value, major: fact_value } if fact_value))
21
21
  ALIASES.each { |aliass| arr << Facter::ResolvedFact.new(aliass, fact_value, :legacy) }
22
22
  arr
@@ -7,11 +7,13 @@ module Facter
7
7
  module Benchmarking
8
8
  class Timer
9
9
  class << self
10
- def measure(fact_name)
10
+ def measure(fact_name, prefix_message = '')
11
11
  if Options[:timing]
12
12
  time = Benchmark.measure { yield }
13
13
 
14
- puts "fact `#{fact_name}`, took: #{time.format('%r')} seconds"
14
+ log = "fact '#{fact_name}', took: #{time.format('%r')} seconds"
15
+ prefix_message = "#{prefix_message} " unless prefix_message.empty?
16
+ puts "#{prefix_message}#{log}"
15
17
  else
16
18
  yield
17
19
  end
@@ -93,6 +93,10 @@ module Facter
93
93
  aliases: '-t',
94
94
  desc: 'Show how much time it took to resolve each fact'
95
95
 
96
+ class_option :sequential,
97
+ type: :boolean,
98
+ desc: 'Resolve facts sequentially'
99
+
96
100
  desc '--man', 'Display manual.', hide: true
97
101
  map ['--man'] => :man
98
102
  def man(*args)
@@ -154,8 +158,16 @@ module Facter
154
158
 
155
159
  desc '--puppet, -p', '(NOT SUPPORTED)Load the Puppet libraries, thus allowing Facter to load Puppet-specific facts.'
156
160
  map ['--puppet', '-p'] => :puppet
157
- def puppet(*_args)
158
- puts '`facter --puppet` and `facter -p` are no longer supported, use `puppet facts show` instead'
161
+ def puppet(*args)
162
+ log = Log.new(self)
163
+ log.warn('`facter --puppet` and `facter -p` are no longer supported, use `puppet facts show` instead')
164
+ log.warn('the output does not contain puppet facts!')
165
+
166
+ output, status = Facter.to_user_output(@options, *args)
167
+ puts output
168
+
169
+ status = 1 if Facter::Log.errors?
170
+ exit status
159
171
  end
160
172
 
161
173
  desc 'help', 'Help for all arguments'
@@ -172,7 +184,7 @@ module Facter
172
184
  def help_header(_args)
173
185
  path = File.join(File.dirname(__FILE__), '../../')
174
186
 
175
- Util::FileHelper.safe_read("#{path}fixtures/facter_help_header")
187
+ Facter::Util::FileHelper.safe_read("#{path}fixtures/facter_help_header")
176
188
  end
177
189
 
178
190
  IGNORE_OPTIONS = %w[log_level color no_color].freeze
@@ -202,6 +214,7 @@ module Facter
202
214
  end
203
215
 
204
216
  def build_option(name, aliases, description)
217
+ name = name.tr('_', '-')
205
218
  help_option = +''
206
219
  help_option << aliases.join(',').rjust(10)
207
220
  help_option << ' '