facter 4.0.32 → 4.0.37

Sign up to get free protection for your applications and to get access to all the features.
Files changed (346) hide show
  1. checksums.yaml +4 -4
  2. data/lib/facter/custom_facts/util/directory_loader.rb +12 -2
  3. data/lib/facter/custom_facts/util/fact.rb +4 -1
  4. data/lib/facter/fact_groups.conf +140 -1
  5. data/lib/facter/facts/aix/disks.rb +17 -2
  6. data/lib/facter/facts/aix/networking/scope6.rb +3 -1
  7. data/lib/facter/facts/aix/scope6_interfaces.rb +0 -2
  8. data/lib/facter/facts/aix/serialnumber.rb +20 -0
  9. data/lib/facter/facts/aix/ssh.rb +3 -1
  10. data/lib/facter/facts/aix/sshalgorithmkey.rb +17 -0
  11. data/lib/facter/facts/aix/sshfp_algorithm.rb +20 -0
  12. data/lib/facter/facts/bsd/load_averages.rb +1 -1
  13. data/lib/facter/facts/debian/os/distro/release.rb +6 -1
  14. data/lib/facter/facts/freebsd/augeas/version.rb +19 -0
  15. data/lib/facter/facts/freebsd/dmi/bios/release_date.rb +19 -0
  16. data/lib/facter/facts/freebsd/dmi/bios/vendor.rb +19 -0
  17. data/lib/facter/facts/freebsd/dmi/bios/version.rb +19 -0
  18. data/lib/facter/facts/freebsd/dmi/manufacturer.rb +17 -0
  19. data/lib/facter/facts/freebsd/dmi/product/name.rb +19 -0
  20. data/lib/facter/facts/freebsd/dmi/product/serial_number.rb +19 -0
  21. data/lib/facter/facts/freebsd/dmi/product/uuid.rb +19 -0
  22. data/lib/facter/facts/freebsd/facterversion.rb +14 -0
  23. data/lib/facter/facts/freebsd/identity/gid.rb +16 -0
  24. data/lib/facter/facts/{solaris/solaris_zones/current.rb → freebsd/identity/group.rb} +6 -6
  25. data/lib/facter/facts/freebsd/identity/privileged.rb +16 -0
  26. data/lib/facter/facts/freebsd/identity/uid.rb +16 -0
  27. data/lib/facter/facts/freebsd/identity/user.rb +17 -0
  28. data/lib/facter/facts/freebsd/kernel.rb +14 -0
  29. data/lib/facter/facts/freebsd/kernelrelease.rb +14 -0
  30. data/lib/facter/facts/freebsd/memory/swap/available.rb +21 -0
  31. data/lib/facter/facts/freebsd/memory/swap/available_bytes.rb +20 -0
  32. data/lib/facter/facts/freebsd/memory/swap/capacity.rb +18 -0
  33. data/lib/facter/facts/freebsd/memory/swap/encrypted.rb +19 -0
  34. data/lib/facter/facts/freebsd/memory/swap/total.rb +21 -0
  35. data/lib/facter/facts/freebsd/memory/swap/total_bytes.rb +20 -0
  36. data/lib/facter/facts/freebsd/memory/swap/used.rb +20 -0
  37. data/lib/facter/facts/freebsd/memory/swap/used_bytes.rb +18 -0
  38. data/lib/facter/facts/freebsd/memory/system/available.rb +21 -0
  39. data/lib/facter/facts/freebsd/memory/system/available_bytes.rb +20 -0
  40. data/lib/facter/facts/freebsd/memory/system/capacity.rb +18 -0
  41. data/lib/facter/facts/freebsd/memory/system/total.rb +21 -0
  42. data/lib/facter/facts/freebsd/memory/system/total_bytes.rb +20 -0
  43. data/lib/facter/facts/freebsd/memory/system/used.rb +20 -0
  44. data/lib/facter/facts/freebsd/memory/system/used_bytes.rb +18 -0
  45. data/lib/facter/facts/freebsd/mountpoints.rb +21 -0
  46. data/lib/facter/facts/freebsd/netmask6_interfaces.rb +20 -0
  47. data/lib/facter/facts/freebsd/netmask_interfaces.rb +20 -0
  48. data/lib/facter/facts/freebsd/network6_interfaces.rb +20 -0
  49. data/lib/facter/facts/freebsd/network_interfaces.rb +20 -0
  50. data/lib/facter/facts/freebsd/networking/dhcp.rb +17 -0
  51. data/lib/facter/facts/freebsd/networking/domain.rb +18 -0
  52. data/lib/facter/facts/freebsd/networking/fqdn.rb +18 -0
  53. data/lib/facter/facts/freebsd/networking/hostname.rb +18 -0
  54. data/lib/facter/facts/freebsd/networking/interfaces.rb +17 -0
  55. data/lib/facter/facts/freebsd/networking/ip.rb +18 -0
  56. data/lib/facter/facts/freebsd/networking/ip6.rb +18 -0
  57. data/lib/facter/facts/freebsd/networking/mac.rb +18 -0
  58. data/lib/facter/facts/freebsd/networking/mtu.rb +17 -0
  59. data/lib/facter/facts/freebsd/networking/netmask.rb +18 -0
  60. data/lib/facter/facts/freebsd/networking/netmask6.rb +18 -0
  61. data/lib/facter/facts/freebsd/networking/network.rb +18 -0
  62. data/lib/facter/facts/freebsd/networking/network6.rb +18 -0
  63. data/lib/facter/facts/freebsd/networking/primary.rb +17 -0
  64. data/lib/facter/facts/freebsd/networking/scope6.rb +17 -0
  65. data/lib/facter/facts/freebsd/os/architecture.rb +18 -0
  66. data/lib/facter/facts/freebsd/os/hardware.rb +18 -0
  67. data/lib/facter/facts/freebsd/os/name.rb +18 -0
  68. data/lib/facter/facts/{bsd/bsd_example_fact.rb → freebsd/path.rb} +5 -4
  69. data/lib/facter/facts/freebsd/processors/isa.rb +17 -0
  70. data/lib/facter/facts/freebsd/puppet_version.rb +15 -0
  71. data/lib/facter/facts/freebsd/ruby/platform.rb +18 -0
  72. data/lib/facter/facts/freebsd/ruby/sitedir.rb +18 -0
  73. data/lib/facter/facts/freebsd/ruby/version.rb +18 -0
  74. data/lib/facter/facts/freebsd/ssh.rb +26 -0
  75. data/lib/facter/facts/freebsd/sshalgorithmkey.rb +17 -0
  76. data/lib/facter/facts/freebsd/sshfp_algorithm.rb +20 -0
  77. data/lib/facter/facts/freebsd/system_uptime/days.rb +18 -0
  78. data/lib/facter/facts/freebsd/system_uptime/hours.rb +18 -0
  79. data/lib/facter/facts/freebsd/system_uptime/seconds.rb +18 -0
  80. data/lib/facter/facts/freebsd/system_uptime/uptime.rb +18 -0
  81. data/lib/facter/facts/freebsd/timezone.rb +15 -0
  82. data/lib/facter/facts/freebsd/zfs_featurenumbers.rb +14 -0
  83. data/lib/facter/facts/freebsd/zfs_version.rb +14 -0
  84. data/lib/facter/facts/freebsd/zpool_featureflags.rb +14 -0
  85. data/lib/facter/facts/freebsd/zpool_featurenumbers.rb +14 -0
  86. data/lib/facter/facts/freebsd/zpool_version.rb +14 -0
  87. data/lib/facter/facts/linux/disks.rb +20 -1
  88. data/lib/facter/facts/linux/dmi/board/asset_tag.rb +19 -0
  89. data/lib/facter/facts/linux/ec2_metadata.rb +5 -3
  90. data/lib/facter/facts/linux/ec2_userdata.rb +5 -3
  91. data/lib/facter/facts/linux/gce.rb +16 -0
  92. data/lib/facter/facts/linux/is_virtual.rb +1 -3
  93. data/lib/facter/facts/linux/mountpoints.rb +1 -1
  94. data/lib/facter/facts/linux/networking/scope6.rb +3 -1
  95. data/lib/facter/facts/linux/partitions.rb +2 -2
  96. data/lib/facter/facts/linux/processors/speed.rb +17 -0
  97. data/lib/facter/facts/linux/scope6_interfaces.rb +1 -2
  98. data/lib/facter/facts/linux/ssh.rb +19 -9
  99. data/lib/facter/facts/linux/sshfp_algorithm.rb +1 -1
  100. data/lib/facter/facts/linux/system_uptime/days.rb +7 -1
  101. data/lib/facter/facts/linux/system_uptime/hours.rb +7 -1
  102. data/lib/facter/facts/linux/system_uptime/seconds.rb +7 -1
  103. data/lib/facter/facts/linux/system_uptime/uptime.rb +7 -1
  104. data/lib/facter/facts/linux/virtual.rb +17 -0
  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/macosx/virtual.rb +1 -1
  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/memory/swap/available.rb +22 -0
  150. data/lib/facter/facts/solaris/memory/swap/available_bytes.rb +22 -0
  151. data/lib/facter/facts/solaris/memory/swap/capacity.rb +20 -0
  152. data/lib/facter/facts/solaris/memory/swap/total.rb +22 -0
  153. data/lib/facter/facts/solaris/memory/swap/total_bytes.rb +22 -0
  154. data/lib/facter/facts/solaris/memory/swap/used.rb +21 -0
  155. data/lib/facter/facts/solaris/memory/swap/used_bytes.rb +19 -0
  156. data/lib/facter/facts/solaris/memory/system/available.rb +22 -0
  157. data/lib/facter/facts/solaris/memory/system/available_bytes.rb +22 -0
  158. data/lib/facter/facts/solaris/memory/system/capacity.rb +20 -0
  159. data/lib/facter/facts/solaris/memory/system/total.rb +22 -0
  160. data/lib/facter/facts/solaris/memory/system/total_bytes.rb +22 -0
  161. data/lib/facter/facts/solaris/memory/system/used.rb +21 -0
  162. data/lib/facter/facts/solaris/memory/system/used_bytes.rb +19 -0
  163. data/lib/facter/facts/solaris/mountpoints.rb +1 -1
  164. data/lib/facter/facts/solaris/os/release.rb +3 -3
  165. data/lib/facter/facts/solaris/ssh.rb +19 -9
  166. data/lib/facter/facts/solaris/sshalgorithmkey.rb +17 -0
  167. data/lib/facter/facts/solaris/sshfp_algorithm.rb +20 -0
  168. data/lib/facter/facts/solaris/virtual.rb +60 -0
  169. data/lib/facter/facts/solaris/zfs_featurenumbers.rb +1 -1
  170. data/lib/facter/facts/solaris/zfs_version.rb +1 -1
  171. data/lib/facter/facts/solaris/zones.rb +60 -0
  172. data/lib/facter/facts/solaris/zpool_featureflags.rb +1 -1
  173. data/lib/facter/facts/solaris/zpool_featurenumbers.rb +1 -1
  174. data/lib/facter/facts/solaris/zpool_version.rb +1 -1
  175. data/lib/facter/facts/ubuntu/lsbdistrelease.rb +23 -0
  176. data/lib/facter/facts/windows/dhcp_servers.rb +2 -2
  177. data/lib/facter/facts/windows/ec2_metadata.rb +5 -3
  178. data/lib/facter/facts/windows/ec2_userdata.rb +5 -3
  179. data/lib/facter/facts/windows/gce.rb +16 -0
  180. data/lib/facter/facts/windows/interfaces.rb +1 -1
  181. data/lib/facter/facts/windows/ipaddress6_interfaces.rb +1 -1
  182. data/lib/facter/facts/windows/ipaddress_interfaces.rb +1 -1
  183. data/lib/facter/facts/windows/macaddress_interfaces.rb +1 -1
  184. data/lib/facter/facts/windows/mtu_interfaces.rb +1 -1
  185. data/lib/facter/facts/windows/netmask6_interfaces.rb +1 -1
  186. data/lib/facter/facts/windows/netmask_interfaces.rb +1 -1
  187. data/lib/facter/facts/windows/network6_interfaces.rb +1 -1
  188. data/lib/facter/facts/windows/network_interfaces.rb +1 -1
  189. data/lib/facter/facts/windows/networking/dhcp.rb +1 -1
  190. data/lib/facter/facts/windows/networking/domain.rb +1 -1
  191. data/lib/facter/facts/windows/networking/fqdn.rb +1 -1
  192. data/lib/facter/facts/windows/networking/interfaces.rb +1 -1
  193. data/lib/facter/facts/windows/networking/ip.rb +1 -1
  194. data/lib/facter/facts/windows/networking/ip6.rb +1 -1
  195. data/lib/facter/facts/windows/networking/mac.rb +1 -1
  196. data/lib/facter/facts/windows/networking/mtu.rb +1 -1
  197. data/lib/facter/facts/windows/networking/netmask.rb +1 -1
  198. data/lib/facter/facts/windows/networking/netmask6.rb +1 -1
  199. data/lib/facter/facts/windows/networking/network.rb +1 -1
  200. data/lib/facter/facts/windows/networking/network6.rb +1 -1
  201. data/lib/facter/facts/windows/networking/primary.rb +1 -1
  202. data/lib/facter/facts/windows/networking/scope6.rb +4 -2
  203. data/lib/facter/facts/windows/scope6_interfaces.rb +1 -1
  204. data/lib/facter/facts/windows/sshalgorithmkey.rb +22 -0
  205. data/lib/facter/facts/windows/sshfp_algorithm.rb +25 -0
  206. data/lib/facter/facts_utils/facts_utils.rb +2 -0
  207. data/lib/facter/framework/benchmarking/timer.rb +23 -0
  208. data/lib/facter/framework/cli/cli.rb +21 -4
  209. data/lib/facter/framework/config/fact_groups.rb +13 -0
  210. data/lib/facter/framework/core/fact/internal/core_fact.rb +2 -0
  211. data/lib/facter/framework/core/fact/internal/internal_fact_manager.rb +11 -25
  212. data/lib/facter/framework/core/fact_filter.rb +13 -0
  213. data/lib/facter/framework/core/fact_loaders/fact_loader.rb +24 -1
  214. data/lib/facter/framework/core/fact_loaders/internal_fact_loader.rb +7 -7
  215. data/lib/facter/framework/core/file_loader.rb +2 -0
  216. data/lib/facter/framework/core/options/option_store.rb +3 -1
  217. data/lib/facter/framework/core/session_cache.rb +1 -4
  218. data/lib/facter/framework/detector/os_detector.rb +5 -1
  219. data/lib/facter/framework/formatters/legacy_fact_formatter.rb +8 -1
  220. data/lib/facter/framework/formatters/yaml_fact_formatter.rb +1 -1
  221. data/lib/facter/os_hierarchy.json +6 -7
  222. data/lib/facter/resolvers/aio_agent_version.rb +0 -1
  223. data/lib/facter/resolvers/aix/architecture_resolver.rb +0 -1
  224. data/lib/facter/resolvers/aix/disks.rb +2 -3
  225. data/lib/facter/resolvers/aix/filesystem_resolver.rb +0 -1
  226. data/lib/facter/resolvers/aix/hardware_resolver.rb +0 -1
  227. data/lib/facter/resolvers/aix/load_averages_resolver.rb +0 -1
  228. data/lib/facter/resolvers/aix/memory.rb +2 -3
  229. data/lib/facter/resolvers/aix/mountpoints.rb +0 -1
  230. data/lib/facter/resolvers/aix/networking_resolver.rb +0 -1
  231. data/lib/facter/resolvers/aix/nim.rb +0 -1
  232. data/lib/facter/resolvers/aix/os_level_resolver.rb +0 -1
  233. data/lib/facter/resolvers/aix/partitions.rb +2 -3
  234. data/lib/facter/resolvers/aix/processors.rb +0 -1
  235. data/lib/facter/resolvers/aix/serialnumber.rb +36 -0
  236. data/lib/facter/resolvers/augeas_resolver.rb +0 -1
  237. data/lib/facter/resolvers/base_resolver.rb +10 -5
  238. data/lib/facter/resolvers/bsd/ffi/ffi_helper.rb +0 -10
  239. data/lib/facter/resolvers/bsd/processors.rb +0 -1
  240. data/lib/facter/resolvers/containers.rb +0 -1
  241. data/lib/facter/resolvers/debian_version.rb +0 -1
  242. data/lib/facter/resolvers/disk_resolver.rb +0 -1
  243. data/lib/facter/resolvers/dmi_decode.rb +0 -1
  244. data/lib/facter/resolvers/dmi_resolver.rb +4 -4
  245. data/lib/facter/resolvers/ec2.rb +4 -19
  246. data/lib/facter/resolvers/eos_release_resolver.rb +0 -1
  247. data/lib/facter/resolvers/facterversion_resolver.rb +0 -1
  248. data/lib/facter/resolvers/filesystems_resolver.rb +1 -2
  249. data/lib/facter/resolvers/fips_enabled_resolver.rb +0 -1
  250. data/lib/facter/resolvers/freebsd/dmi_resolver.rb +37 -0
  251. data/lib/facter/resolvers/freebsd/ffi/ffi_helper.rb +19 -0
  252. data/lib/facter/resolvers/freebsd/freebsd_version_resolver.rb +0 -1
  253. data/lib/facter/resolvers/freebsd/geom_resolver.rb +0 -1
  254. data/lib/facter/resolvers/freebsd/processors.rb +0 -1
  255. data/lib/facter/resolvers/freebsd/swap_memory_resolver.rb +38 -0
  256. data/lib/facter/resolvers/freebsd/system_memory_resolver.rb +40 -0
  257. data/lib/facter/resolvers/gce.rb +53 -0
  258. data/lib/facter/resolvers/hostname_resolver.rb +0 -1
  259. data/lib/facter/resolvers/identity_resolver.rb +0 -1
  260. data/lib/facter/resolvers/linux/docker_uptime.rb +44 -0
  261. data/lib/facter/resolvers/{load_averages_resolver.rb → linux/load_averages.rb} +0 -2
  262. data/lib/facter/resolvers/load_averages.rb +25 -0
  263. data/lib/facter/resolvers/lpar_resolver.rb +0 -1
  264. data/lib/facter/resolvers/lsb_release_resolver.rb +0 -1
  265. data/lib/facter/resolvers/lspci.rb +2 -1
  266. data/lib/facter/resolvers/macosx/dmi_resolver.rb +0 -1
  267. data/lib/facter/resolvers/macosx/filesystems_resolver.rb +1 -6
  268. data/lib/facter/resolvers/macosx/load_averages_resolver.rb +0 -1
  269. data/lib/facter/resolvers/macosx/mountpoints_resolver.rb +3 -3
  270. data/lib/facter/resolvers/macosx/processor_resolver.rb +0 -1
  271. data/lib/facter/resolvers/macosx/swap_memory_resolver.rb +0 -1
  272. data/lib/facter/resolvers/macosx/system_memory_resolver.rb +0 -1
  273. data/lib/facter/resolvers/macosx/system_profiler_resolver.rb +0 -1
  274. data/lib/facter/resolvers/memory_resolver.rb +13 -2
  275. data/lib/facter/resolvers/mountpoints_resolver.rb +41 -44
  276. data/lib/facter/resolvers/networking_linux_resolver.rb +11 -1
  277. data/lib/facter/resolvers/networking_resolver.rb +105 -0
  278. data/lib/facter/resolvers/open_vz.rb +0 -1
  279. data/lib/facter/resolvers/os_level_resolver.rb +0 -1
  280. data/lib/facter/resolvers/os_release_resolver.rb +1 -2
  281. data/lib/facter/resolvers/partitions.rb +37 -2
  282. data/lib/facter/resolvers/path_resolver.rb +0 -1
  283. data/lib/facter/resolvers/processors_resolver.rb +24 -3
  284. data/lib/facter/resolvers/puppet_version_resolver.rb +0 -1
  285. data/lib/facter/resolvers/redhat_release_resolver.rb +0 -1
  286. data/lib/facter/resolvers/ruby_resolver.rb +0 -1
  287. data/lib/facter/resolvers/selinux_resolver.rb +0 -1
  288. data/lib/facter/resolvers/solaris/disks.rb +50 -0
  289. data/lib/facter/resolvers/solaris/dmi.rb +56 -0
  290. data/lib/facter/resolvers/solaris/dmi_sparc.rb +46 -0
  291. data/lib/facter/resolvers/solaris/ffi/ffi.rb +5 -0
  292. data/lib/facter/resolvers/solaris/{filesystems_resolver.rb → filesystems.rb} +0 -1
  293. data/lib/facter/resolvers/solaris/{ipaddress_resolver.rb → ipaddress.rb} +0 -1
  294. data/lib/facter/resolvers/solaris/ldom.rb +69 -0
  295. data/lib/facter/resolvers/solaris/memory.rb +92 -0
  296. data/lib/facter/resolvers/solaris/{networking_resolver.rb → networking.rb} +2 -7
  297. data/lib/facter/resolvers/solaris/os_release.rb +43 -0
  298. data/lib/facter/resolvers/solaris/processors.rb +0 -1
  299. data/lib/facter/resolvers/solaris/zone.rb +50 -0
  300. data/lib/facter/resolvers/solaris/zone_name.rb +30 -0
  301. data/lib/facter/resolvers/ssh_resolver.rb +0 -1
  302. data/lib/facter/resolvers/suse_release_resolver.rb +0 -1
  303. data/lib/facter/resolvers/sw_vers_resolver.rb +0 -1
  304. data/lib/facter/resolvers/timezone_resolver.rb +0 -1
  305. data/lib/facter/resolvers/uname_resolver.rb +0 -1
  306. data/lib/facter/resolvers/uptime_resolver.rb +1 -28
  307. data/lib/facter/resolvers/utils/ffi/load_averages.rb +27 -0
  308. data/lib/facter/resolvers/utils/http.rb +68 -0
  309. data/lib/facter/resolvers/utils/networking.rb +2 -0
  310. data/lib/facter/resolvers/utils/uptime_helper.rb +32 -0
  311. data/lib/facter/resolvers/virt_what.rb +0 -1
  312. data/lib/facter/resolvers/vmware.rb +0 -1
  313. data/lib/facter/resolvers/windows/aio_agent_version.rb +0 -1
  314. data/lib/facter/resolvers/windows/dmi_bios_resolver.rb +0 -1
  315. data/lib/facter/resolvers/windows/dmi_computersystem_resolver.rb +0 -1
  316. data/lib/facter/resolvers/windows/ffi/ffi.rb +1 -1
  317. data/lib/facter/resolvers/windows/fips_resolver.rb +0 -1
  318. data/lib/facter/resolvers/windows/hardware_architecture_resolver.rb +0 -1
  319. data/lib/facter/resolvers/windows/identity_resolver.rb +0 -1
  320. data/lib/facter/resolvers/windows/kernel_resolver.rb +0 -1
  321. data/lib/facter/resolvers/windows/memory_resolver.rb +0 -1
  322. data/lib/facter/resolvers/windows/netkvm_resolver.rb +0 -1
  323. data/lib/facter/resolvers/windows/networking_resolver.rb +99 -100
  324. data/lib/facter/resolvers/windows/processors_resolver.rb +0 -1
  325. data/lib/facter/resolvers/windows/product_release_resolver.rb +0 -1
  326. data/lib/facter/resolvers/windows/ssh.rb +0 -1
  327. data/lib/facter/resolvers/windows/system32_resolver.rb +0 -1
  328. data/lib/facter/resolvers/windows/uptime_resolver.rb +0 -1
  329. data/lib/facter/resolvers/windows/virtualization_resolver.rb +0 -1
  330. data/lib/facter/resolvers/windows/win_os_description_resolver.rb +0 -1
  331. data/lib/facter/resolvers/wpar_resolver.rb +0 -1
  332. data/lib/facter/resolvers/xen.rb +28 -1
  333. data/lib/facter/resolvers/zfs.rb +31 -0
  334. data/lib/facter/resolvers/zpool.rb +33 -0
  335. data/lib/facter/version.rb +1 -1
  336. metadata +146 -18
  337. data/lib/facter/facts/freebsd/solaris_zones/current.rb +0 -15
  338. data/lib/facter/facts/freebsd/solaris_zones/zone.rb +0 -15
  339. data/lib/facter/facts/solaris/solaris_zones/zone.rb +0 -62
  340. data/lib/facter/resolvers/bsd/load_averages_resolver.rb +0 -26
  341. data/lib/facter/resolvers/macosx/networking_resolver.rb +0 -108
  342. data/lib/facter/resolvers/solaris/solaris_os_release_resolver.rb +0 -42
  343. data/lib/facter/resolvers/solaris/solaris_zone_name.rb +0 -28
  344. data/lib/facter/resolvers/solaris/zfs_resolver.rb +0 -34
  345. data/lib/facter/resolvers/solaris/zone_resolver.rb +0 -48
  346. data/lib/facter/resolvers/solaris/zpool_resolver.rb +0 -36
@@ -5,7 +5,6 @@ module Facter
5
5
  class OpenVz < BaseResolver
6
6
  # build
7
7
 
8
- @semaphore = Mutex.new
9
8
  @fact_list ||= {}
10
9
 
11
10
  class << self
@@ -5,7 +5,6 @@ module Facter
5
5
  class OsLevel < BaseResolver
6
6
  # build
7
7
 
8
- @semaphore = Mutex.new
9
8
  @fact_list ||= {}
10
9
 
11
10
  class << self
@@ -14,7 +14,6 @@ module Facter
14
14
  # :support_url
15
15
  # :bug_report_url
16
16
 
17
- @semaphore = Mutex.new
18
17
  @fact_list ||= {}
19
18
 
20
19
  class << self
@@ -56,7 +55,7 @@ module Facter
56
55
  def process_name
57
56
  return unless @fact_list[:name]
58
57
 
59
- @fact_list[:name] = if @fact_list[:name].downcase.start_with?('red')
58
+ @fact_list[:name] = if @fact_list[:name].downcase.start_with?('red', 'oracle')
60
59
  @fact_list[:name].split(' ')[0..1].join
61
60
  else
62
61
  @fact_list[:name].split(' ')[0].strip
@@ -3,7 +3,6 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Partitions < BaseResolver
6
- @semaphore = Mutex.new
7
6
  @fact_list ||= {}
8
7
  BLOCK_PATH = '/sys/block'
9
8
  BLOCK_SIZE = 512
@@ -66,10 +65,18 @@ module Facter
66
65
  info_hash = { size_bytes: size_bytes,
67
66
  size: Facter::FactsUtils::UnitConverter.bytes_to_human_readable(size_bytes),
68
67
  backing_file: backing_file }
69
- info_hash.merge!(populate_from_blkid(partition_name))
68
+ info_hash.merge!(populate_from_syscalls(partition_name))
70
69
  @fact_list[:partitions][partition_name] = info_hash.reject { |_key, value| value.nil? }
71
70
  end
72
71
 
72
+ def populate_from_syscalls(partition_name)
73
+ part_info = populate_from_blkid(partition_name)
74
+
75
+ return pupulate_from_lsblk(partition_name) if part_info.empty?
76
+
77
+ part_info
78
+ end
79
+
73
80
  def populate_from_blkid(partition_name)
74
81
  return {} unless blkid_command?
75
82
 
@@ -92,6 +99,34 @@ module Facter
92
99
  @blkid_exists = !output.empty?
93
100
  end
94
101
 
102
+ def pupulate_from_lsblk(partition_name)
103
+ return {} unless lsblk_command?
104
+
105
+ @lsblk_content ||= Facter::Core::Execution.execute('lsblk -fp', logger: log)
106
+
107
+ part_info = @lsblk_content.match(/#{partition_name}.*/).to_s.split(' ')
108
+ return {} if part_info.empty?
109
+
110
+ result = { filesystem: part_info[1] }
111
+
112
+ if part_info.count.eql?(5)
113
+ result[:label] = part_info[2]
114
+ result[:uuid] = part_info[3]
115
+ else
116
+ result[:uuid] = part_info[2]
117
+ end
118
+
119
+ result
120
+ end
121
+
122
+ def lsblk_command?
123
+ return @lsblk_exists unless @lsblk_exists.nil?
124
+
125
+ output = Facter::Core::Execution.execute('which lsblk', logger: log)
126
+
127
+ @lsblk_exists = !output.empty?
128
+ end
129
+
95
130
  def execute_and_extract_blkid_info
96
131
  stdout = Facter::Core::Execution.execute('blkid', logger: log)
97
132
  output_hash = Hash[*stdout.split(/^([^:]+):/)[1..-1]]
@@ -3,7 +3,6 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Path < BaseResolver
6
- @semaphore = Mutex.new
7
6
  @fact_list ||= {}
8
7
 
9
8
  class << self
@@ -5,12 +5,13 @@ module Facter
5
5
  module Linux
6
6
  class Processors < BaseResolver
7
7
  @log = Facter::Log.new(self)
8
- @semaphore = Mutex.new
9
8
  @fact_list ||= {}
9
+ MHZ_TO_HZ = 1_000_000
10
10
  class << self
11
11
  # :count
12
12
  # :models
13
13
  # :physical_count
14
+ # :speed
14
15
 
15
16
  private
16
17
 
@@ -38,6 +39,7 @@ module Facter
38
39
  count_processors(tokens)
39
40
  construct_models_list(tokens)
40
41
  count_physical_processors(tokens)
42
+ build_speed(tokens)
41
43
  end
42
44
  end
43
45
 
@@ -46,7 +48,9 @@ module Facter
46
48
  end
47
49
 
48
50
  def construct_models_list(tokens)
49
- @fact_list[:models] << tokens.last.strip if tokens.first.strip == 'model name'
51
+ return unless tokens.first.strip == 'model name' || tokens.first.strip == 'cpu'
52
+
53
+ @fact_list[:models] << tokens.last.strip
50
54
  end
51
55
 
52
56
  def count_physical_processors(tokens)
@@ -54,7 +58,24 @@ module Facter
54
58
  end
55
59
 
56
60
  def physical_devices_count
57
- Dir.entries('/sys/devices/system/cpu').count { |dir| dir =~ /cpu[0-9]+$/ }
61
+ Dir.entries('/sys/devices/system/cpu')
62
+ .select { |dir| dir =~ /cpu[0-9]+$/ }
63
+ .count { |dir| File.exist?("/sys/devices/system/cpu/#{dir}/topology/physical_package_id") }
64
+ end
65
+
66
+ def build_speed(tokens)
67
+ build_speed_for_power_pc(tokens) if tokens.first.strip == 'clock'
68
+ build_speed_for_x86(tokens) if tokens.first.strip == 'cpu MHz'
69
+ end
70
+
71
+ def build_speed_for_power_pc(tokens)
72
+ speed = tokens.last.strip.match(/^(\d+).*MHz/)[1]
73
+ @fact_list[:speed] = speed.to_i * MHZ_TO_HZ
74
+ end
75
+
76
+ def build_speed_for_x86(tokens)
77
+ speed = tokens.last.strip.match(/^(\d+).*/)[1]
78
+ @fact_list[:speed] = speed.to_i * MHZ_TO_HZ
58
79
  end
59
80
  end
60
81
  end
@@ -5,7 +5,6 @@ module Facter
5
5
  class PuppetVersionResolver < BaseResolver
6
6
  # :puppetversion
7
7
 
8
- @semaphore = Mutex.new
9
8
  @fact_list ||= {}
10
9
 
11
10
  class << self
@@ -7,7 +7,6 @@ module Facter
7
7
  # :version
8
8
  # :codename
9
9
 
10
- @semaphore = Mutex.new
11
10
  @fact_list ||= {}
12
11
 
13
12
  class << self
@@ -3,7 +3,6 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class Ruby < BaseResolver
6
- @semaphore = Mutex.new
7
6
  @fact_list ||= {}
8
7
 
9
8
  class << self
@@ -3,7 +3,6 @@
3
3
  module Facter
4
4
  module Resolvers
5
5
  class SELinux < BaseResolver
6
- @semaphore = Mutex.new
7
6
  @fact_list ||= {}
8
7
 
9
8
  class << self
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facter
4
+ module Resolvers
5
+ module Solaris
6
+ class Disks < BaseResolver
7
+ @fact_list ||= {}
8
+
9
+ class << self
10
+ private
11
+
12
+ def post_resolve(fact_name)
13
+ @fact_list.fetch(fact_name) { read_disks_info(fact_name) }
14
+ end
15
+
16
+ def read_disks_info(fact_name)
17
+ return unless File.executable?('/usr/bin/kstat')
18
+
19
+ log.debug('loading disks info')
20
+
21
+ kstat_output = Facter::Core::Execution.execute('/usr/bin/kstat sderr', logger: log)
22
+ return if kstat_output.empty?
23
+
24
+ @fact_list[fact_name] = parse(kstat_output)
25
+ end
26
+
27
+ def parse(kstat_output)
28
+ disks = {}
29
+
30
+ names = kstat_output.scan(/name:\s+(\w+)/).flatten
31
+ products = kstat_output.scan(/Product\s+(.+)/).flatten
32
+ vendors = kstat_output.scan(/Vendor\s+(\w+)/).flatten
33
+ sizes = kstat_output.scan(/Size\s+(\w+)/).flatten
34
+
35
+ names.each_with_index do |name, index|
36
+ disk_size = sizes[index].to_i
37
+ disks[name] = {
38
+ product: products[index],
39
+ size: Facter::FactsUtils::UnitConverter.bytes_to_human_readable(disk_size),
40
+ size_bytes: disk_size,
41
+ vendor: vendors[index]
42
+ }
43
+ end
44
+ disks
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facter
4
+ module Resolvers
5
+ module Solaris
6
+ class Dmi < BaseResolver
7
+ @fact_list ||= {}
8
+
9
+ class << self
10
+ private
11
+
12
+ def post_resolve(fact_name)
13
+ @fact_list.fetch(fact_name) { read_facts(fact_name) }
14
+ end
15
+
16
+ SMBIOS_PARAMS = {
17
+ 'SMB_TYPE_BIOS' => {
18
+ bios_version: 'Version String: (.+)',
19
+ bios_vendor: 'Vendor: (.+)',
20
+ bios_release_date: 'Release Date: (.+)'
21
+ },
22
+ 'SMB_TYPE_SYSTEM' => {
23
+ manufacturer: 'Manufacturer: (.+)',
24
+ product_name: 'Product: (.+)',
25
+ serial_number: 'Serial Number: (.+)',
26
+ product_uuid: 'UUID: (.+)'
27
+ },
28
+ 'SMB_TYPE_CHASSIS' => {
29
+ chassis_asset_tag: 'Asset Tag: (.+)',
30
+ chassis_type: '(?:Chassis )?Type: (.+)'
31
+ }
32
+ }.freeze
33
+
34
+ def read_facts(fact_name)
35
+ param = SMBIOS_PARAMS.find { |_key, hash| hash[fact_name] }
36
+ return nil unless param
37
+
38
+ output = exec_smbios(param[0])
39
+ facts = param[1]
40
+ facts.each do |name, regx|
41
+ @fact_list[name] = output.match(/#{regx}/)&.captures&.first
42
+ end
43
+
44
+ @fact_list[fact_name]
45
+ end
46
+
47
+ def exec_smbios(args)
48
+ return unless File.executable?('/usr/sbin/smbios')
49
+
50
+ Facter::Core::Execution.execute("/usr/sbin/smbios -t #{args}", logger: log)
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facter
4
+ module Resolvers
5
+ module Solaris
6
+ class DmiSparc < BaseResolver
7
+ @fact_list ||= {}
8
+
9
+ class << self
10
+ private
11
+
12
+ def post_resolve(fact_name)
13
+ @fact_list.fetch(fact_name) { read_facts(fact_name) }
14
+ end
15
+
16
+ def read_facts(fact_name)
17
+ output = exec_prtdiag
18
+ return unless output
19
+
20
+ matches = output.match(/System Configuration:\s+(.+?)\s+sun\d+\S+\s+(.+)/)&.captures
21
+
22
+ @fact_list[:manufacturer] = matches[0]&.strip
23
+ @fact_list[:product_name] = matches[1]&.strip
24
+
25
+ sneep = exec_sneep&.strip
26
+ @fact_list[:serial_number] = sneep
27
+
28
+ @fact_list[fact_name]
29
+ end
30
+
31
+ def exec_prtdiag
32
+ return unless File.executable?('/usr/sbin/prtdiag')
33
+
34
+ Facter::Core::Execution.execute('/usr/sbin/prtdiag', logger: log)
35
+ end
36
+
37
+ def exec_sneep
38
+ return unless File.executable?('/usr/sbin/sneep')
39
+
40
+ Facter::Core::Execution.execute('/usr/sbin/sneep', logger: log)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -20,6 +20,11 @@ module Facter
20
20
  INET_ADDRSTRLEN = 16
21
21
  INET6_ADDRSTRLEN = 46
22
22
  end
23
+
24
+ BINDINGS_KEY = {
25
+ FFI::AF_INET => :bindings,
26
+ FFI::AF_INET6 => :bindings6
27
+ }.freeze
23
28
  end
24
29
  end
25
30
  end
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Solaris
6
6
  class Filesystem < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
 
10
9
  class << self
@@ -4,7 +4,6 @@ module Facter
4
4
  module Resolvers
5
5
  module Solaris
6
6
  class Ipaddress < BaseResolver
7
- @semaphore = Mutex.new
8
7
  @fact_list ||= {}
9
8
  class << self
10
9
  private
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facter
4
+ module Resolvers
5
+ module Solaris
6
+ class Ldom < BaseResolver
7
+ # :chassis_serial
8
+ # :control_domain
9
+ # :domain_name
10
+ # :domain_uuid
11
+ # :role_control
12
+ # :role_io
13
+ # :role_root
14
+ # :role_service
15
+ # :role_impl
16
+
17
+ @fact_list ||= {}
18
+
19
+ VIRTINFO_MAPPING = {
20
+ chassis_serial: %w[DOMAINCHASSIS serialno],
21
+ control_domain: %w[DOMAINCONTROL name],
22
+ domain_name: %w[DOMAINNAME name],
23
+ domain_uuid: %w[DOMAINUUID uuid],
24
+ role_control: %w[DOMAINROLE control],
25
+ role_io: %w[DOMAINROLE io],
26
+ role_root: %w[DOMAINROLE root],
27
+ role_service: %w[DOMAINROLE service],
28
+ role_impl: %w[DOMAINROLE impl]
29
+ }.freeze
30
+
31
+ class << self
32
+ private
33
+
34
+ def post_resolve(fact_name)
35
+ @fact_list.fetch(fact_name) { call_virtinfo(fact_name) }
36
+ end
37
+
38
+ def call_virtinfo(fact_name)
39
+ # return unless File.executable?('/usr/sbin/virtinfo')
40
+
41
+ virtinfo_output = Facter::Core::Execution.execute('/usr/sbin/virtinfo -a -p', logger: log)
42
+ return if virtinfo_output.empty?
43
+
44
+ output_hash = parse_output(virtinfo_output)
45
+ return if output_hash.empty?
46
+
47
+ VIRTINFO_MAPPING.each do |key, value|
48
+ @fact_list[key] = output_hash.dig(*value)&.strip
49
+ end
50
+
51
+ @fact_list[fact_name]
52
+ end
53
+
54
+ def parse_output(output)
55
+ result = {}
56
+ output.each_line do |line|
57
+ next unless line.include? 'DOMAIN'
58
+
59
+ x = line.split('|')
60
+ result[x.shift] = x.map { |f| f.split('=') }.to_h
61
+ end
62
+
63
+ result
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end