facter 4.0.33 → 4.0.38

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 (332) hide show
  1. checksums.yaml +4 -4
  2. data/lib/facter.rb +68 -11
  3. data/lib/facter/custom_facts/util/directory_loader.rb +12 -2
  4. data/lib/facter/custom_facts/util/fact.rb +4 -1
  5. data/lib/facter/fact_groups.conf +140 -1
  6. data/lib/facter/facts/aix/disks.rb +17 -2
  7. data/lib/facter/facts/aix/networking/scope6.rb +3 -1
  8. data/lib/facter/facts/aix/scope6_interfaces.rb +0 -2
  9. data/lib/facter/facts/aix/serialnumber.rb +20 -0
  10. data/lib/facter/facts/aix/ssh.rb +3 -1
  11. data/lib/facter/facts/aix/sshalgorithmkey.rb +17 -0
  12. data/lib/facter/facts/aix/sshfp_algorithm.rb +20 -0
  13. data/lib/facter/facts/bsd/load_averages.rb +1 -1
  14. data/lib/facter/facts/debian/os/distro/release.rb +6 -1
  15. data/lib/facter/facts/freebsd/augeas/version.rb +19 -0
  16. data/lib/facter/facts/freebsd/dmi/bios/release_date.rb +19 -0
  17. data/lib/facter/facts/freebsd/dmi/bios/vendor.rb +19 -0
  18. data/lib/facter/facts/freebsd/dmi/bios/version.rb +19 -0
  19. data/lib/facter/facts/freebsd/dmi/manufacturer.rb +17 -0
  20. data/lib/facter/facts/freebsd/dmi/product/name.rb +19 -0
  21. data/lib/facter/facts/freebsd/dmi/product/serial_number.rb +19 -0
  22. data/lib/facter/facts/freebsd/dmi/product/uuid.rb +19 -0
  23. data/lib/facter/facts/freebsd/facterversion.rb +14 -0
  24. data/lib/facter/facts/freebsd/identity/gid.rb +16 -0
  25. data/lib/facter/facts/{solaris/solaris_zones/current.rb → freebsd/identity/group.rb} +6 -6
  26. data/lib/facter/facts/freebsd/identity/privileged.rb +16 -0
  27. data/lib/facter/facts/freebsd/identity/uid.rb +16 -0
  28. data/lib/facter/facts/freebsd/identity/user.rb +17 -0
  29. data/lib/facter/facts/freebsd/kernel.rb +14 -0
  30. data/lib/facter/facts/freebsd/kernelrelease.rb +14 -0
  31. data/lib/facter/facts/freebsd/memory/swap/available.rb +21 -0
  32. data/lib/facter/facts/freebsd/memory/swap/available_bytes.rb +20 -0
  33. data/lib/facter/facts/freebsd/memory/swap/capacity.rb +18 -0
  34. data/lib/facter/facts/freebsd/memory/swap/encrypted.rb +19 -0
  35. data/lib/facter/facts/freebsd/memory/swap/total.rb +21 -0
  36. data/lib/facter/facts/freebsd/memory/swap/total_bytes.rb +20 -0
  37. data/lib/facter/facts/freebsd/memory/swap/used.rb +20 -0
  38. data/lib/facter/facts/freebsd/memory/swap/used_bytes.rb +18 -0
  39. data/lib/facter/facts/freebsd/memory/system/available.rb +21 -0
  40. data/lib/facter/facts/freebsd/memory/system/available_bytes.rb +20 -0
  41. data/lib/facter/facts/freebsd/memory/system/capacity.rb +18 -0
  42. data/lib/facter/facts/freebsd/memory/system/total.rb +21 -0
  43. data/lib/facter/facts/freebsd/memory/system/total_bytes.rb +20 -0
  44. data/lib/facter/facts/freebsd/memory/system/used.rb +20 -0
  45. data/lib/facter/facts/freebsd/memory/system/used_bytes.rb +18 -0
  46. data/lib/facter/facts/freebsd/mountpoints.rb +21 -0
  47. data/lib/facter/facts/freebsd/netmask6_interfaces.rb +20 -0
  48. data/lib/facter/facts/freebsd/netmask_interfaces.rb +20 -0
  49. data/lib/facter/facts/freebsd/network6_interfaces.rb +20 -0
  50. data/lib/facter/facts/freebsd/network_interfaces.rb +20 -0
  51. data/lib/facter/facts/freebsd/networking/dhcp.rb +17 -0
  52. data/lib/facter/facts/freebsd/networking/domain.rb +18 -0
  53. data/lib/facter/facts/freebsd/networking/fqdn.rb +18 -0
  54. data/lib/facter/facts/freebsd/networking/hostname.rb +18 -0
  55. data/lib/facter/facts/freebsd/networking/interfaces.rb +17 -0
  56. data/lib/facter/facts/freebsd/networking/ip.rb +18 -0
  57. data/lib/facter/facts/freebsd/networking/ip6.rb +18 -0
  58. data/lib/facter/facts/freebsd/networking/mac.rb +18 -0
  59. data/lib/facter/facts/freebsd/networking/mtu.rb +17 -0
  60. data/lib/facter/facts/freebsd/networking/netmask.rb +18 -0
  61. data/lib/facter/facts/freebsd/networking/netmask6.rb +18 -0
  62. data/lib/facter/facts/freebsd/networking/network.rb +18 -0
  63. data/lib/facter/facts/freebsd/networking/network6.rb +18 -0
  64. data/lib/facter/facts/freebsd/networking/primary.rb +17 -0
  65. data/lib/facter/facts/freebsd/networking/scope6.rb +17 -0
  66. data/lib/facter/facts/freebsd/os/architecture.rb +18 -0
  67. data/lib/facter/facts/freebsd/os/hardware.rb +18 -0
  68. data/lib/facter/facts/freebsd/os/name.rb +18 -0
  69. data/lib/facter/facts/{bsd/bsd_example_fact.rb → freebsd/path.rb} +5 -4
  70. data/lib/facter/facts/freebsd/processors/isa.rb +17 -0
  71. data/lib/facter/facts/freebsd/puppet_version.rb +15 -0
  72. data/lib/facter/facts/freebsd/ruby/platform.rb +18 -0
  73. data/lib/facter/facts/freebsd/ruby/sitedir.rb +18 -0
  74. data/lib/facter/facts/freebsd/ruby/version.rb +18 -0
  75. data/lib/facter/facts/freebsd/ssh.rb +26 -0
  76. data/lib/facter/facts/freebsd/sshalgorithmkey.rb +17 -0
  77. data/lib/facter/facts/freebsd/sshfp_algorithm.rb +20 -0
  78. data/lib/facter/facts/freebsd/system_uptime/days.rb +18 -0
  79. data/lib/facter/facts/freebsd/system_uptime/hours.rb +18 -0
  80. data/lib/facter/facts/freebsd/system_uptime/seconds.rb +18 -0
  81. data/lib/facter/facts/freebsd/system_uptime/uptime.rb +18 -0
  82. data/lib/facter/facts/freebsd/timezone.rb +15 -0
  83. data/lib/facter/facts/freebsd/zfs_featurenumbers.rb +14 -0
  84. data/lib/facter/facts/freebsd/zfs_version.rb +14 -0
  85. data/lib/facter/facts/freebsd/zpool_featureflags.rb +14 -0
  86. data/lib/facter/facts/freebsd/zpool_featurenumbers.rb +14 -0
  87. data/lib/facter/facts/freebsd/zpool_version.rb +14 -0
  88. data/lib/facter/facts/linux/disks.rb +20 -1
  89. data/lib/facter/facts/linux/dmi/board/asset_tag.rb +19 -0
  90. data/lib/facter/facts/linux/ec2_metadata.rb +5 -3
  91. data/lib/facter/facts/linux/ec2_userdata.rb +5 -3
  92. data/lib/facter/facts/linux/gce.rb +16 -0
  93. data/lib/facter/facts/linux/is_virtual.rb +1 -3
  94. data/lib/facter/facts/linux/mountpoints.rb +1 -1
  95. data/lib/facter/facts/linux/networking/scope6.rb +3 -1
  96. data/lib/facter/facts/linux/partitions.rb +2 -2
  97. data/lib/facter/facts/linux/processors/speed.rb +17 -0
  98. data/lib/facter/facts/linux/scope6_interfaces.rb +1 -2
  99. data/lib/facter/facts/linux/ssh.rb +19 -9
  100. data/lib/facter/facts/linux/sshfp_algorithm.rb +1 -1
  101. data/lib/facter/facts/linux/system_uptime/days.rb +7 -1
  102. data/lib/facter/facts/linux/system_uptime/hours.rb +7 -1
  103. data/lib/facter/facts/linux/system_uptime/seconds.rb +7 -1
  104. data/lib/facter/facts/linux/system_uptime/uptime.rb +7 -1
  105. data/lib/facter/facts/linux/xen.rb +28 -0
  106. data/lib/facter/facts/macosx/dhcp_servers.rb +2 -2
  107. data/lib/facter/facts/macosx/interfaces.rb +1 -1
  108. data/lib/facter/facts/macosx/ipaddress6_interfaces.rb +1 -1
  109. data/lib/facter/facts/macosx/ipaddress_interfaces.rb +1 -1
  110. data/lib/facter/facts/macosx/macaddress_interfaces.rb +1 -1
  111. data/lib/facter/facts/macosx/mtu_interfaces.rb +1 -1
  112. data/lib/facter/facts/macosx/netmask6_interfaces.rb +1 -1
  113. data/lib/facter/facts/macosx/netmask_interfaces.rb +1 -1
  114. data/lib/facter/facts/macosx/network6_interfaces.rb +1 -1
  115. data/lib/facter/facts/macosx/network_interfaces.rb +1 -1
  116. data/lib/facter/facts/macosx/networking/dhcp.rb +1 -1
  117. data/lib/facter/facts/macosx/networking/interfaces.rb +1 -1
  118. data/lib/facter/facts/macosx/networking/ip.rb +1 -1
  119. data/lib/facter/facts/macosx/networking/ip6.rb +1 -1
  120. data/lib/facter/facts/macosx/networking/mac.rb +1 -1
  121. data/lib/facter/facts/macosx/networking/mtu.rb +1 -1
  122. data/lib/facter/facts/macosx/networking/netmask.rb +1 -1
  123. data/lib/facter/facts/macosx/networking/netmask6.rb +1 -1
  124. data/lib/facter/facts/macosx/networking/network.rb +1 -1
  125. data/lib/facter/facts/macosx/networking/network6.rb +1 -1
  126. data/lib/facter/facts/macosx/networking/primary.rb +1 -1
  127. data/lib/facter/facts/macosx/networking/scope6.rb +4 -2
  128. data/lib/facter/facts/macosx/scope6_interfaces.rb +1 -3
  129. data/lib/facter/facts/macosx/ssh.rb +19 -11
  130. data/lib/facter/facts/macosx/sshfp_algorithm.rb +1 -1
  131. data/lib/facter/facts/rhel/os/release.rb +2 -2
  132. data/lib/facter/facts/solaris/current_zone.rb +16 -0
  133. data/lib/facter/facts/solaris/disks.rb +33 -0
  134. data/lib/facter/facts/solaris/dmi/bios/release_date.rb +24 -0
  135. data/lib/facter/facts/solaris/dmi/bios/vendor.rb +24 -0
  136. data/lib/facter/facts/solaris/dmi/bios/version.rb +24 -0
  137. data/lib/facter/facts/solaris/dmi/chassis/asset_tag.rb +24 -0
  138. data/lib/facter/facts/solaris/dmi/chassis/type.rb +24 -0
  139. data/lib/facter/facts/solaris/dmi/manufacturer.rb +25 -0
  140. data/lib/facter/facts/solaris/dmi/product/name.rb +27 -0
  141. data/lib/facter/facts/solaris/dmi/product/serial_number.rb +27 -0
  142. data/lib/facter/facts/solaris/dmi/product/uuid.rb +24 -0
  143. data/lib/facter/facts/solaris/hypervisors/ldom.rb +24 -0
  144. data/lib/facter/facts/solaris/hypervisors/zone.rb +39 -0
  145. data/lib/facter/facts/solaris/is_virtual.rb +64 -0
  146. data/lib/facter/facts/solaris/kernelmajversion.rb +1 -1
  147. data/lib/facter/facts/solaris/ldom.rb +35 -0
  148. data/lib/facter/facts/solaris/load_averages.rb +14 -0
  149. data/lib/facter/facts/solaris/mountpoints.rb +1 -1
  150. data/lib/facter/facts/solaris/os/release.rb +3 -3
  151. data/lib/facter/facts/solaris/ssh.rb +19 -9
  152. data/lib/facter/facts/solaris/sshalgorithmkey.rb +17 -0
  153. data/lib/facter/facts/solaris/sshfp_algorithm.rb +20 -0
  154. data/lib/facter/facts/solaris/virtual.rb +60 -0
  155. data/lib/facter/facts/solaris/zfs_featurenumbers.rb +1 -1
  156. data/lib/facter/facts/solaris/zfs_version.rb +1 -1
  157. data/lib/facter/facts/solaris/zones.rb +60 -0
  158. data/lib/facter/facts/solaris/zpool_featureflags.rb +1 -1
  159. data/lib/facter/facts/solaris/zpool_featurenumbers.rb +1 -1
  160. data/lib/facter/facts/solaris/zpool_version.rb +1 -1
  161. data/lib/facter/facts/ubuntu/lsbdistrelease.rb +23 -0
  162. data/lib/facter/facts/windows/dhcp_servers.rb +2 -2
  163. data/lib/facter/facts/windows/ec2_metadata.rb +5 -3
  164. data/lib/facter/facts/windows/ec2_userdata.rb +5 -3
  165. data/lib/facter/facts/windows/gce.rb +16 -0
  166. data/lib/facter/facts/windows/interfaces.rb +1 -1
  167. data/lib/facter/facts/windows/ipaddress6_interfaces.rb +1 -1
  168. data/lib/facter/facts/windows/ipaddress_interfaces.rb +1 -1
  169. data/lib/facter/facts/windows/macaddress_interfaces.rb +1 -1
  170. data/lib/facter/facts/windows/mtu_interfaces.rb +1 -1
  171. data/lib/facter/facts/windows/netmask6_interfaces.rb +1 -1
  172. data/lib/facter/facts/windows/netmask_interfaces.rb +1 -1
  173. data/lib/facter/facts/windows/network6_interfaces.rb +1 -1
  174. data/lib/facter/facts/windows/network_interfaces.rb +1 -1
  175. data/lib/facter/facts/windows/networking/dhcp.rb +1 -1
  176. data/lib/facter/facts/windows/networking/domain.rb +1 -1
  177. data/lib/facter/facts/windows/networking/fqdn.rb +1 -1
  178. data/lib/facter/facts/windows/networking/interfaces.rb +1 -1
  179. data/lib/facter/facts/windows/networking/ip.rb +1 -1
  180. data/lib/facter/facts/windows/networking/ip6.rb +1 -1
  181. data/lib/facter/facts/windows/networking/mac.rb +1 -1
  182. data/lib/facter/facts/windows/networking/mtu.rb +1 -1
  183. data/lib/facter/facts/windows/networking/netmask.rb +1 -1
  184. data/lib/facter/facts/windows/networking/netmask6.rb +1 -1
  185. data/lib/facter/facts/windows/networking/network.rb +1 -1
  186. data/lib/facter/facts/windows/networking/network6.rb +1 -1
  187. data/lib/facter/facts/windows/networking/primary.rb +1 -1
  188. data/lib/facter/facts/windows/networking/scope6.rb +4 -2
  189. data/lib/facter/facts/windows/scope6_interfaces.rb +1 -1
  190. data/lib/facter/facts/windows/sshalgorithmkey.rb +22 -0
  191. data/lib/facter/facts/windows/sshfp_algorithm.rb +25 -0
  192. data/lib/facter/facts_utils/facts_utils.rb +2 -0
  193. data/lib/facter/framework/benchmarking/timer.rb +23 -0
  194. data/lib/facter/framework/cli/cli.rb +21 -4
  195. data/lib/facter/framework/config/fact_groups.rb +13 -0
  196. data/lib/facter/framework/core/fact/internal/core_fact.rb +2 -0
  197. data/lib/facter/framework/core/fact/internal/internal_fact_manager.rb +11 -25
  198. data/lib/facter/framework/core/fact_filter.rb +13 -0
  199. data/lib/facter/framework/core/fact_loaders/fact_loader.rb +24 -1
  200. data/lib/facter/framework/core/fact_loaders/internal_fact_loader.rb +7 -7
  201. data/lib/facter/framework/core/file_loader.rb +2 -0
  202. data/lib/facter/framework/core/options/option_store.rb +3 -1
  203. data/lib/facter/framework/core/session_cache.rb +1 -4
  204. data/lib/facter/framework/detector/os_detector.rb +5 -1
  205. data/lib/facter/framework/formatters/legacy_fact_formatter.rb +8 -1
  206. data/lib/facter/framework/formatters/yaml_fact_formatter.rb +1 -1
  207. data/lib/facter/framework/logging/logger.rb +2 -6
  208. data/lib/facter/os_hierarchy.json +6 -7
  209. data/lib/facter/resolvers/aio_agent_version.rb +0 -1
  210. data/lib/facter/resolvers/aix/architecture_resolver.rb +0 -1
  211. data/lib/facter/resolvers/aix/disks.rb +2 -3
  212. data/lib/facter/resolvers/aix/filesystem_resolver.rb +0 -1
  213. data/lib/facter/resolvers/aix/hardware_resolver.rb +0 -1
  214. data/lib/facter/resolvers/aix/load_averages_resolver.rb +0 -1
  215. data/lib/facter/resolvers/aix/memory.rb +2 -3
  216. data/lib/facter/resolvers/aix/mountpoints.rb +0 -1
  217. data/lib/facter/resolvers/aix/networking_resolver.rb +0 -1
  218. data/lib/facter/resolvers/aix/nim.rb +0 -1
  219. data/lib/facter/resolvers/aix/os_level_resolver.rb +0 -1
  220. data/lib/facter/resolvers/aix/partitions.rb +2 -3
  221. data/lib/facter/resolvers/aix/processors.rb +0 -1
  222. data/lib/facter/resolvers/aix/serialnumber.rb +36 -0
  223. data/lib/facter/resolvers/augeas_resolver.rb +0 -1
  224. data/lib/facter/resolvers/base_resolver.rb +10 -5
  225. data/lib/facter/resolvers/bsd/ffi/ffi_helper.rb +0 -10
  226. data/lib/facter/resolvers/bsd/processors.rb +0 -1
  227. data/lib/facter/resolvers/containers.rb +0 -1
  228. data/lib/facter/resolvers/debian_version.rb +0 -1
  229. data/lib/facter/resolvers/disk_resolver.rb +0 -1
  230. data/lib/facter/resolvers/dmi_decode.rb +0 -1
  231. data/lib/facter/resolvers/dmi_resolver.rb +4 -4
  232. data/lib/facter/resolvers/ec2.rb +4 -19
  233. data/lib/facter/resolvers/eos_release_resolver.rb +0 -1
  234. data/lib/facter/resolvers/facterversion_resolver.rb +0 -1
  235. data/lib/facter/resolvers/filesystems_resolver.rb +1 -2
  236. data/lib/facter/resolvers/fips_enabled_resolver.rb +0 -1
  237. data/lib/facter/resolvers/freebsd/dmi_resolver.rb +37 -0
  238. data/lib/facter/resolvers/freebsd/ffi/ffi_helper.rb +19 -0
  239. data/lib/facter/resolvers/freebsd/freebsd_version_resolver.rb +0 -1
  240. data/lib/facter/resolvers/freebsd/geom_resolver.rb +0 -1
  241. data/lib/facter/resolvers/freebsd/processors.rb +0 -1
  242. data/lib/facter/resolvers/freebsd/swap_memory_resolver.rb +38 -0
  243. data/lib/facter/resolvers/freebsd/system_memory_resolver.rb +40 -0
  244. data/lib/facter/resolvers/gce.rb +53 -0
  245. data/lib/facter/resolvers/hostname_resolver.rb +0 -1
  246. data/lib/facter/resolvers/identity_resolver.rb +0 -1
  247. data/lib/facter/resolvers/linux/docker_uptime.rb +44 -0
  248. data/lib/facter/resolvers/{load_averages_resolver.rb → linux/load_averages.rb} +0 -2
  249. data/lib/facter/resolvers/load_averages.rb +25 -0
  250. data/lib/facter/resolvers/lpar_resolver.rb +0 -1
  251. data/lib/facter/resolvers/lsb_release_resolver.rb +0 -1
  252. data/lib/facter/resolvers/lspci.rb +0 -1
  253. data/lib/facter/resolvers/macosx/dmi_resolver.rb +0 -1
  254. data/lib/facter/resolvers/macosx/filesystems_resolver.rb +1 -6
  255. data/lib/facter/resolvers/macosx/load_averages_resolver.rb +0 -1
  256. data/lib/facter/resolvers/macosx/mountpoints_resolver.rb +3 -3
  257. data/lib/facter/resolvers/macosx/processor_resolver.rb +0 -1
  258. data/lib/facter/resolvers/macosx/swap_memory_resolver.rb +0 -1
  259. data/lib/facter/resolvers/macosx/system_memory_resolver.rb +0 -1
  260. data/lib/facter/resolvers/macosx/system_profiler_resolver.rb +0 -1
  261. data/lib/facter/resolvers/memory_resolver.rb +13 -2
  262. data/lib/facter/resolvers/mountpoints_resolver.rb +41 -44
  263. data/lib/facter/resolvers/networking_linux_resolver.rb +0 -1
  264. data/lib/facter/resolvers/networking_resolver.rb +105 -0
  265. data/lib/facter/resolvers/open_vz.rb +0 -1
  266. data/lib/facter/resolvers/os_level_resolver.rb +0 -1
  267. data/lib/facter/resolvers/os_release_resolver.rb +1 -2
  268. data/lib/facter/resolvers/partitions.rb +37 -2
  269. data/lib/facter/resolvers/path_resolver.rb +0 -1
  270. data/lib/facter/resolvers/processors_resolver.rb +24 -3
  271. data/lib/facter/resolvers/puppet_version_resolver.rb +0 -1
  272. data/lib/facter/resolvers/redhat_release_resolver.rb +0 -1
  273. data/lib/facter/resolvers/ruby_resolver.rb +0 -1
  274. data/lib/facter/resolvers/selinux_resolver.rb +0 -1
  275. data/lib/facter/resolvers/solaris/disks.rb +50 -0
  276. data/lib/facter/resolvers/solaris/dmi.rb +56 -0
  277. data/lib/facter/resolvers/solaris/dmi_sparc.rb +46 -0
  278. data/lib/facter/resolvers/solaris/ffi/ffi.rb +5 -0
  279. data/lib/facter/resolvers/solaris/{filesystems_resolver.rb → filesystems.rb} +0 -1
  280. data/lib/facter/resolvers/solaris/{ipaddress_resolver.rb → ipaddress.rb} +0 -1
  281. data/lib/facter/resolvers/solaris/ldom.rb +69 -0
  282. data/lib/facter/resolvers/solaris/memory.rb +0 -1
  283. data/lib/facter/resolvers/solaris/{networking_resolver.rb → networking.rb} +2 -7
  284. data/lib/facter/resolvers/solaris/os_release.rb +43 -0
  285. data/lib/facter/resolvers/solaris/processors.rb +0 -1
  286. data/lib/facter/resolvers/solaris/zone.rb +50 -0
  287. data/lib/facter/resolvers/solaris/zone_name.rb +30 -0
  288. data/lib/facter/resolvers/ssh_resolver.rb +0 -1
  289. data/lib/facter/resolvers/suse_release_resolver.rb +0 -1
  290. data/lib/facter/resolvers/sw_vers_resolver.rb +0 -1
  291. data/lib/facter/resolvers/timezone_resolver.rb +0 -1
  292. data/lib/facter/resolvers/uname_resolver.rb +0 -1
  293. data/lib/facter/resolvers/uptime_resolver.rb +1 -28
  294. data/lib/facter/resolvers/utils/ffi/load_averages.rb +27 -0
  295. data/lib/facter/resolvers/utils/http.rb +68 -0
  296. data/lib/facter/resolvers/utils/uptime_helper.rb +32 -0
  297. data/lib/facter/resolvers/virt_what.rb +0 -1
  298. data/lib/facter/resolvers/vmware.rb +0 -1
  299. data/lib/facter/resolvers/windows/aio_agent_version.rb +0 -1
  300. data/lib/facter/resolvers/windows/dmi_bios_resolver.rb +0 -1
  301. data/lib/facter/resolvers/windows/dmi_computersystem_resolver.rb +0 -1
  302. data/lib/facter/resolvers/windows/ffi/ffi.rb +1 -1
  303. data/lib/facter/resolvers/windows/fips_resolver.rb +0 -1
  304. data/lib/facter/resolvers/windows/hardware_architecture_resolver.rb +0 -1
  305. data/lib/facter/resolvers/windows/identity_resolver.rb +0 -1
  306. data/lib/facter/resolvers/windows/kernel_resolver.rb +0 -1
  307. data/lib/facter/resolvers/windows/memory_resolver.rb +0 -1
  308. data/lib/facter/resolvers/windows/netkvm_resolver.rb +0 -1
  309. data/lib/facter/resolvers/windows/networking_resolver.rb +99 -98
  310. data/lib/facter/resolvers/windows/processors_resolver.rb +0 -1
  311. data/lib/facter/resolvers/windows/product_release_resolver.rb +0 -1
  312. data/lib/facter/resolvers/windows/ssh.rb +0 -1
  313. data/lib/facter/resolvers/windows/system32_resolver.rb +0 -1
  314. data/lib/facter/resolvers/windows/uptime_resolver.rb +0 -1
  315. data/lib/facter/resolvers/windows/virtualization_resolver.rb +0 -1
  316. data/lib/facter/resolvers/windows/win_os_description_resolver.rb +0 -1
  317. data/lib/facter/resolvers/wpar_resolver.rb +0 -1
  318. data/lib/facter/resolvers/xen.rb +28 -1
  319. data/lib/facter/resolvers/zfs.rb +31 -0
  320. data/lib/facter/resolvers/zpool.rb +33 -0
  321. data/lib/facter/version.rb +1 -1
  322. metadata +131 -18
  323. data/lib/facter/facts/freebsd/solaris_zones/current.rb +0 -15
  324. data/lib/facter/facts/freebsd/solaris_zones/zone.rb +0 -15
  325. data/lib/facter/facts/solaris/solaris_zones/zone.rb +0 -62
  326. data/lib/facter/resolvers/bsd/load_averages_resolver.rb +0 -26
  327. data/lib/facter/resolvers/macosx/networking_resolver.rb +0 -108
  328. data/lib/facter/resolvers/solaris/solaris_os_release_resolver.rb +0 -42
  329. data/lib/facter/resolvers/solaris/solaris_zone_name.rb +0 -28
  330. data/lib/facter/resolvers/solaris/zfs_resolver.rb +0 -34
  331. data/lib/facter/resolvers/solaris/zone_resolver.rb +0 -48
  332. data/lib/facter/resolvers/solaris/zpool_resolver.rb +0 -36
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 32bb403fb4187d3a595b0b8aa4ed12ba472b1efc6d785cf2d371fc1488afd2d7
4
- data.tar.gz: b8b159eedc00a4c17e2121e73f38bb76d383b298746731104511a36955ba382d
3
+ metadata.gz: 4cded925592073cd18baac69fc11f1154cbeda4370359e9d3e6655f97194d467
4
+ data.tar.gz: 16ea8f7a28b6ae86b0098a8c9412329dfa2665e1ca1a66ca3cc2d7e734452fa7
5
5
  SHA512:
6
- metadata.gz: 3a0f55015be59493c79b53f054e609a336d6e64385547534ffe62084b060d1b70da511f0a4d74179717bf8fe11287ed972586fb159c20a33d4832ba01f287ffc
7
- data.tar.gz: 1814bfa9210ec33c2ddeafad6d123a4f2c7377c792cd4a494de5d467f606b46943f2a294c6abc4f1e1700a87edaeeffe3e1de0712782a46ada76ae289367e17f
6
+ metadata.gz: be78011c78dab1cdc01e44af6a2e2e053f3600c43a4c758e1edbf2b6a067052de36a8166749148fc2740694394af682c38cd7f72d516f75a323af9c69a278667
7
+ data.tar.gz: 3b614e324b33c54c571e5857ea184dcf89d0e7e1fdc9030ee57478bdc3eaa6c0511d73f8f18441e33d31258ea5be7f227b3412770a90f82ed8fe789f9f3690f8
@@ -13,6 +13,8 @@ module Facter
13
13
  Options.init
14
14
  Log.output(STDOUT)
15
15
  @already_searched = {}
16
+ @debug_once = []
17
+ @warn_once = []
16
18
 
17
19
  class << self
18
20
  def clear_messages
@@ -54,6 +56,8 @@ module Facter
54
56
  # @api public
55
57
  def clear
56
58
  @already_searched = {}
59
+ @debug_once = []
60
+ @warn_once = []
57
61
  LegacyFacter.clear
58
62
  Options[:custom_dir] = []
59
63
  LegacyFacter.collection.invalidate_custom_facts
@@ -68,16 +72,33 @@ module Facter
68
72
  fact_collection.dig(*splitted_user_query)
69
73
  end
70
74
 
71
- # Prints out a debug message when debug option is set to true
72
- # @param msg [String] Message to be printed out
75
+ # Logs debug message when debug option is set to true
76
+ # @param message [Object] Message object to be logged
73
77
  #
74
78
  # @return [nil]
75
79
  #
76
80
  # @api public
77
- def debug(msg)
81
+ def debug(message)
78
82
  return unless debugging?
79
83
 
80
- logger.debug(msg)
84
+ logger.debug(message.to_s)
85
+ nil
86
+ end
87
+
88
+ # Logs the same debug message only once when debug option is set to true
89
+ # @param message [Object] Message object to be logged
90
+ #
91
+ # @return [nil]
92
+ #
93
+ # @api public
94
+ def debugonce(message)
95
+ return unless debugging?
96
+
97
+ message_string = message.to_s
98
+ return if @debug_once.include? message_string
99
+
100
+ @debug_once << message_string
101
+ logger.debug(message_string)
81
102
  nil
82
103
  end
83
104
 
@@ -85,7 +106,7 @@ module Facter
85
106
  Facter::Log.on_message(&block)
86
107
  end
87
108
 
88
- # Check whether debuging is enabled
109
+ # Check whether debugging is enabled
89
110
  #
90
111
  # @return [bool]
91
112
  #
@@ -108,7 +129,7 @@ module Facter
108
129
  # call {Facter::Util::Fact#value `value`} on it to retrieve the actual
109
130
  # value.
110
131
  #
111
- # @param name [String] the name of the fact
132
+ # @param user_query [String] the name of the fact
112
133
  #
113
134
  # @return [Facter::Util::Fact, nil] The fact object, or nil if no fact
114
135
  # is found.
@@ -199,7 +220,7 @@ module Facter
199
220
  end
200
221
 
201
222
  # Enable or disable trace
202
- # @param debug_bool [bool] Set trace on debug state
223
+ # @param bool [bool] Set trace on debug state
203
224
  #
204
225
  # @return [type] [description]
205
226
  #
@@ -210,7 +231,7 @@ module Facter
210
231
 
211
232
  # Gets the value for a fact. Returns `nil` if no such fact exists.
212
233
  #
213
- # @param name [String] the fact name
234
+ # @param user_query [String] the fact name
214
235
  # @return [String] the value of the fact, or nil if no fact is found
215
236
  #
216
237
  # @api public
@@ -262,6 +283,43 @@ module Facter
262
283
  logger.error(arr.flatten.join("\n"))
263
284
  end
264
285
 
286
+ # Returns a list with the names of all solved facts
287
+ #
288
+ # @return [Array] the list with all the fact names
289
+ #
290
+ # @api public
291
+ def list
292
+ to_hash.keys.sort
293
+ end
294
+
295
+ # Logs the message parameter as a warning.
296
+ #
297
+ # @param message [Object] the warning object to be displayed
298
+ #
299
+ # @return [nil]
300
+ #
301
+ # @api public
302
+ def warn(message)
303
+ logger.warn(message.to_s)
304
+ nil
305
+ end
306
+
307
+ # Logs only once the same warning message.
308
+ #
309
+ # @param message [Object] the warning message object
310
+ #
311
+ # @return [nil]
312
+ #
313
+ # @api public
314
+ def warnonce(message)
315
+ message_string = message.to_s
316
+ return if @warn_once.include? message_string
317
+
318
+ @warn_once << message_string
319
+ logger.warn(message_string)
320
+ nil
321
+ end
322
+
265
323
  private
266
324
 
267
325
  def logger
@@ -303,10 +361,9 @@ module Facter
303
361
  # Returns exit status when user query contains facts that do
304
362
  # not exist
305
363
  #
306
- # @param dirs [Array] Arguments sent to CLI
307
- # @param dirs [Array] List of resolved facts
364
+ # @param resolved_facts [Array] List of resolved facts
308
365
  #
309
- # @return [Integer, nil] Will return status 1 if user query contains
366
+ # @return [1/nil] Will return status 1 if user query contains
310
367
  # facts that are not found or resolved, otherwise it will return nil
311
368
  #
312
369
  # @api private
@@ -35,6 +35,7 @@ module LegacyFacter
35
35
  def initialize(dir = LegacyFacter::Util::Config.external_facts_dirs, weight = EXTERNAL_FACT_WEIGHT)
36
36
  @directories = [dir].flatten
37
37
  @weight = weight
38
+ @log ||= Facter::Log.new(self)
38
39
  end
39
40
 
40
41
  # Load facts from files in fact directory using the relevant parser classes to
@@ -83,11 +84,12 @@ module LegacyFacter
83
84
  parser = LegacyFacter::Util::Parser.parser_for(fact.file)
84
85
  next if parser.nil?
85
86
 
86
- data = parser.results
87
+ data = resolve_fact(fact, parser)
88
+
87
89
  if data == false
88
90
  LegacyFacter.warn "Could not interpret fact file #{fact.file}"
89
91
  elsif (data == {}) || data.nil?
90
- LegacyFacter.warn "Fact file #{fact.file} was parsed but returned an empty data set"
92
+ @log.debug("Fact file #{fact.file} was parsed but no key=>value data was returned")
91
93
  else
92
94
  data.each do |p, v|
93
95
  collection.add(p, value: v, fact_type: :external,
@@ -97,6 +99,14 @@ module LegacyFacter
97
99
  end
98
100
  end
99
101
 
102
+ def resolve_fact(fact, parser)
103
+ data = nil
104
+ fact_name = File.basename(fact.file)
105
+ Facter::Framework::Benchmarking::Timer.measure(fact_name) { data = parser.results }
106
+
107
+ data
108
+ end
109
+
100
110
  def entries
101
111
  dirs = @directories.select { |directory| File.directory?(directory) }.map do |directory|
102
112
  Dir.entries(directory).map { |directory_entry| File.join(directory, directory_entry) }
@@ -118,7 +118,10 @@ module Facter
118
118
 
119
119
  searching do
120
120
  suitable_resolutions = sort_by_weight(find_suitable_resolutions(@resolves))
121
- @value = find_first_real_value(suitable_resolutions)
121
+
122
+ Facter::Framework::Benchmarking::Timer.measure(@name) do
123
+ @value = find_first_real_value(suitable_resolutions)
124
+ end
122
125
 
123
126
  announce_when_no_suitable_resolution(suitable_resolutions)
124
127
  announce_when_no_value_found(@value)
@@ -165,5 +165,144 @@
165
165
  "virtual",
166
166
  "is_virtual",
167
167
  "cloud"
168
+ ],
169
+ "legacy": [
170
+ "architecture",
171
+ "augeasversion",
172
+ "bios_release_date",
173
+ "bios_vendor",
174
+ "bios_version",
175
+ "blockdevice_*_model",
176
+ "blockdevice_*_size",
177
+ "blockdevice_*_vendor",
178
+ "blockdevices",
179
+ "boardassettag",
180
+ "boardmanufacturer",
181
+ "boardproductname",
182
+ "boardserialnumber",
183
+ "chassisassettag",
184
+ "chassistype",
185
+ "dhcp_servers",
186
+ "domain",
187
+ "fqdn",
188
+ "gid",
189
+ "hardwareisa",
190
+ "hardwaremodel",
191
+ "hostname",
192
+ "id",
193
+ "interfaces",
194
+ "ipaddress",
195
+ "ipaddress_.*",
196
+ "ipaddress_*",
197
+ "ipaddress6",
198
+ "ipaddress6_.*",
199
+ "ipaddress6_*",
200
+ "ldom_*",
201
+ "lsbdistcodename",
202
+ "lsbdistdescription",
203
+ "lsbdistid",
204
+ "lsbdistrelease",
205
+ "lsbmajdistrelease",
206
+ "lsbminordistrelease",
207
+ "lsbrelease",
208
+ "macaddress",
209
+ "macaddress_.*",
210
+ "macaddress_*",
211
+ "macosx_buildversion",
212
+ "macosx_productname",
213
+ "macosx_productversion",
214
+ "macosx_productversion_major",
215
+ "macosx_productversion_minor",
216
+ "manufacturer",
217
+ "memoryfree",
218
+ "memoryfree_mb",
219
+ "memorysize",
220
+ "memorysize_mb",
221
+ "mtu_.*",
222
+ "mtu_*",
223
+ "netmask",
224
+ "netmask_.*",
225
+ "netmask_*",
226
+ "netmask6",
227
+ "netmask6_.*",
228
+ "netmask6_*",
229
+ "network",
230
+ "network_.*",
231
+ "network_*",
232
+ "network6",
233
+ "network6_.*",
234
+ "network6_*",
235
+ "operatingsystem",
236
+ "operatingsystemmajrelease",
237
+ "operatingsystemrelease",
238
+ "osfamily",
239
+ "physicalprocessorcount",
240
+ "processor.*",
241
+ "processor*",
242
+ "processorcount",
243
+ "productname",
244
+ "rubyplatform",
245
+ "rubysitedir",
246
+ "rubyversion",
247
+ "scope6",
248
+ "scope6_.*",
249
+ "selinux",
250
+ "selinux_config_mode",
251
+ "selinux_config_policy",
252
+ "selinux_current_mode",
253
+ "selinux_enforced",
254
+ "selinux_policyversion",
255
+ "serialnumber",
256
+ "sp_*",
257
+ "sp_boot_mode",
258
+ "sp_boot_rom_version",
259
+ "sp_boot_volume",
260
+ "sp_cpu_type",
261
+ "sp_current_processor_speed",
262
+ "sp_kernel_version",
263
+ "sp_l2_cache_core",
264
+ "sp_l3_cache",
265
+ "sp_local_host_name",
266
+ "sp_machine_model",
267
+ "sp_machine_name",
268
+ "sp_number_processors",
269
+ "sp_os_version",
270
+ "sp_packages",
271
+ "sp_physical_memory",
272
+ "sp_platform_uuid",
273
+ "sp_secure_vm",
274
+ "sp_serial_number",
275
+ "sp_smc_version_system",
276
+ "sp_uptime",
277
+ "sp_user_name",
278
+ "ssh.*key",
279
+ "ssh*key",
280
+ "sshfp_.*",
281
+ "sshfp_*",
282
+ "swapencrypted",
283
+ "swapfree",
284
+ "swapfree_mb",
285
+ "swapsize",
286
+ "swapsize_mb",
287
+ "system32",
288
+ "uptime",
289
+ "uptime_days",
290
+ "uptime_hours",
291
+ "uptime_seconds",
292
+ "uuid",
293
+ "windows_edition_id",
294
+ "windows_installation_type",
295
+ "windows_product_name",
296
+ "windows_release_id",
297
+ "xendomains",
298
+ "zone_*_brand",
299
+ "zone_*_id",
300
+ "zone_*_iptype",
301
+ "zone_*_name",
302
+ "zone_*_path",
303
+ "zone_*_status",
304
+ "zone_*_uuid",
305
+ "zonename",
306
+ "zones"
168
307
  ]
169
- }
308
+ }
@@ -4,13 +4,28 @@ module Facts
4
4
  module Aix
5
5
  class Disks
6
6
  FACT_NAME = 'disks'
7
+ ALIASES = %w[blockdevices blockdevice_.*_size'].freeze
7
8
 
8
9
  def call_the_resolver
10
+ facts = []
9
11
  disks = Facter::Resolvers::Aix::Disks.resolve(:disks)
10
12
 
11
- disks = disks&.empty? ? nil : disks
13
+ return Facter::ResolvedFact.new(FACT_NAME, nil) if disks.nil? || disks.empty?
12
14
 
13
- Facter::ResolvedFact.new(FACT_NAME, disks)
15
+ blockdevices = disks.keys.join(',')
16
+ facts.push(Facter::ResolvedFact.new(FACT_NAME, disks))
17
+ facts.push(Facter::ResolvedFact.new('blockdevices', blockdevices, :legacy))
18
+ add_legacy_facts(disks, facts)
19
+
20
+ facts
21
+ end
22
+
23
+ private
24
+
25
+ def add_legacy_facts(disks, facts)
26
+ disks.each do |disk_name, disk_info|
27
+ facts.push(Facter::ResolvedFact.new("blockdevice_#{disk_name}_size", disk_info[:size_bytes].to_s, :legacy))
28
+ end
14
29
  end
15
30
  end
16
31
  end
@@ -5,11 +5,13 @@ module Facts
5
5
  module Networking
6
6
  class Scope6
7
7
  FACT_NAME = 'networking.scope6'
8
+ ALIASES = 'scope6'
8
9
 
9
10
  def call_the_resolver
10
11
  fact_value = Facter::Resolvers::Aix::Networking.resolve(:scope6)
11
12
 
12
- Facter::ResolvedFact.new(FACT_NAME, fact_value)
13
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value),
14
+ Facter::ResolvedFact.new('scope6', fact_value, :legacy)]
13
15
  end
14
16
  end
15
17
  end
@@ -9,7 +9,6 @@ module Facts
9
9
  def call_the_resolver
10
10
  resolved_facts = []
11
11
  interfaces = Facter::Resolvers::Aix::Networking.resolve(:interfaces)
12
- scope6 = Facter::Resolvers::Aix::Networking.resolve(:scope6)
13
12
 
14
13
  interfaces&.each do |interface_name, info|
15
14
  if info[:scope6]
@@ -17,7 +16,6 @@ module Facts
17
16
  end
18
17
  end
19
18
 
20
- resolved_facts << Facter::ResolvedFact.new('scope6', scope6, :legacy) if scope6
21
19
  resolved_facts
22
20
  end
23
21
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Aix
5
+ class Serialnumber
6
+ FACT_NAME = 'serialnumber'
7
+ TYPE = :legacy
8
+
9
+ def call_the_resolver
10
+ Facter::ResolvedFact.new(FACT_NAME, fact_value, :legacy)
11
+ end
12
+
13
+ private
14
+
15
+ def fact_value
16
+ Facter::Resolvers::Aix::Serialnumber.resolve(:serialnumber)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -12,7 +12,7 @@ module Facts
12
12
  private
13
13
 
14
14
  def fact_value
15
- resolver_data.map! { |el| create_ssh_fact(el) }.inject(:merge!)
15
+ resolver_data.map { |el| create_ssh_fact(el) }.inject(:merge)
16
16
  end
17
17
 
18
18
  def resolver_data
@@ -20,6 +20,8 @@ module Facts
20
20
  end
21
21
 
22
22
  def create_ssh_fact(ssh)
23
+ return {} unless ssh
24
+
23
25
  { ssh.name.to_sym => {
24
26
  fingerprints: {
25
27
  sha1: ssh.fingerprint.sha1,