facter 4.0.8.pre → 4.0.9.pre

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 (424) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.rubocop_todo.yml +564 -31
  4. data/.travis.yml +2 -2
  5. data/VERSION +1 -1
  6. data/agent/facter-ng.gemspec +1 -1
  7. data/facter.gemspec +1 -1
  8. data/lib/custom_facts/util/collection.rb +3 -7
  9. data/lib/custom_facts/util/fact.rb +6 -3
  10. data/lib/custom_facts/util/parser.rb +13 -2
  11. data/lib/facter.rb +131 -115
  12. data/lib/facts/aix/augeas/version.rb +8 -6
  13. data/lib/facts/aix/facterversion.rb +3 -3
  14. data/lib/facts/aix/hypervisors/lpar.rb +11 -9
  15. data/lib/facts/aix/hypervisors/wpar.rb +10 -7
  16. data/lib/facts/aix/kernel.rb +3 -3
  17. data/lib/facts/aix/kernelmajversion.rb +3 -3
  18. data/lib/facts/aix/kernelrelease.rb +2 -2
  19. data/lib/facts/aix/kernelversion.rb +3 -3
  20. data/lib/facts/aix/load_averages.rb +3 -3
  21. data/lib/facts/aix/networking/domain.rb +9 -7
  22. data/lib/facts/aix/networking/fqdn.rb +9 -7
  23. data/lib/facts/aix/networking/hostname.rb +9 -7
  24. data/lib/facts/aix/networking/ip.rb +9 -7
  25. data/lib/facts/aix/networking/primary.rb +8 -6
  26. data/lib/facts/aix/os/architecture.rb +9 -7
  27. data/lib/facts/aix/os/family.rb +9 -7
  28. data/lib/facts/aix/os/hardware.rb +8 -6
  29. data/lib/facts/aix/os/name.rb +9 -7
  30. data/lib/facts/aix/os/release.rb +12 -10
  31. data/lib/facts/aix/path.rb +3 -3
  32. data/lib/facts/aix/ruby/platform.rb +8 -6
  33. data/lib/facts/aix/ruby/sitedir.rb +8 -6
  34. data/lib/facts/aix/ruby/version.rb +9 -7
  35. data/lib/facts/aix/ssh.rb +3 -3
  36. data/lib/facts/debian/disks.rb +15 -0
  37. data/lib/facts/debian/dmi/bios/release_date.rb +18 -0
  38. data/lib/facts/debian/dmi/bios/vendor.rb +18 -0
  39. data/lib/facts/debian/dmi/bios/version.rb +18 -0
  40. data/lib/facts/debian/dmi/board/manufacturer.rb +18 -0
  41. data/lib/facts/debian/dmi/board/product.rb +18 -0
  42. data/lib/facts/debian/dmi/board/serial_number.rb +18 -0
  43. data/lib/facts/debian/dmi/chassis/asset_tag.rb +18 -0
  44. data/lib/facts/debian/dmi/chassis/type.rb +18 -0
  45. data/lib/facts/debian/dmi/manufacturer.rb +16 -0
  46. data/lib/facts/debian/dmi/product/name.rb +18 -0
  47. data/lib/facts/debian/dmi/product/serial_number.rb +18 -0
  48. data/lib/facts/debian/dmi/product/uuid.rb +18 -0
  49. data/lib/facts/debian/facterversion.rb +3 -3
  50. data/lib/facts/debian/filesystems.rb +14 -0
  51. data/lib/facts/debian/fips_enabled.rb +14 -0
  52. data/lib/facts/debian/kernel.rb +3 -3
  53. data/lib/facts/debian/kernelmajversion.rb +3 -3
  54. data/lib/facts/debian/kernelrelease.rb +3 -3
  55. data/lib/facts/debian/kernelversion.rb +3 -3
  56. data/lib/facts/debian/load_averages.rb +14 -0
  57. data/lib/facts/debian/memory/swap/available.rb +11 -7
  58. data/lib/facts/debian/memory/swap/available_bytes.rb +10 -6
  59. data/lib/facts/debian/memory/swap/capacity.rb +10 -6
  60. data/lib/facts/debian/memory/swap/total.rb +19 -0
  61. data/lib/facts/debian/memory/swap/total_bytes.rb +18 -0
  62. data/lib/facts/debian/memory/swap/used.rb +11 -7
  63. data/lib/facts/debian/memory/swap/used_bytes.rb +10 -6
  64. data/lib/facts/debian/memory/system/available.rb +19 -0
  65. data/lib/facts/debian/memory/system/available_bytes.rb +18 -0
  66. data/lib/facts/debian/memory/system/capacity.rb +18 -0
  67. data/lib/facts/debian/memory/system/total.rb +19 -0
  68. data/lib/facts/debian/memory/system/total_bytes.rb +18 -0
  69. data/lib/facts/debian/memory/system/used.rb +19 -0
  70. data/lib/facts/debian/memory/system/used_bytes.rb +18 -0
  71. data/lib/facts/debian/mountpoints.rb +21 -0
  72. data/lib/facts/debian/networking/domain.rb +9 -7
  73. data/lib/facts/debian/networking/fqdn.rb +9 -7
  74. data/lib/facts/debian/networking/hostname.rb +9 -7
  75. data/lib/facts/debian/networking/interfaces.rb +8 -6
  76. data/lib/facts/debian/networking/ip.rb +9 -7
  77. data/lib/facts/debian/networking/primary.rb +8 -6
  78. data/lib/facts/debian/os/architecture.rb +10 -8
  79. data/lib/facts/debian/os/distro.rb +20 -18
  80. data/lib/facts/debian/os/family.rb +11 -8
  81. data/lib/facts/debian/os/hardware.rb +8 -6
  82. data/lib/facts/debian/os/name.rb +9 -7
  83. data/lib/facts/debian/os/release.rb +17 -15
  84. data/lib/facts/debian/os/selinux.rb +13 -11
  85. data/lib/facts/debian/path.rb +2 -2
  86. data/lib/facts/debian/processors/count.rb +16 -0
  87. data/lib/facts/debian/processors/isa.rb +25 -0
  88. data/lib/facts/debian/processors/models.rb +16 -0
  89. data/lib/facts/debian/processors/physicalcount.rb +16 -0
  90. data/lib/facts/debian/ruby/platform.rb +8 -6
  91. data/lib/facts/debian/ruby/sitedir.rb +8 -6
  92. data/lib/facts/debian/ruby/version.rb +9 -7
  93. data/lib/facts/debian/ssh.rb +26 -0
  94. data/lib/facts/debian/system_uptime/days.rb +17 -0
  95. data/lib/facts/debian/system_uptime/hours.rb +17 -0
  96. data/lib/facts/debian/system_uptime/minutes.rb +17 -0
  97. data/lib/facts/debian/system_uptime/uptime.rb +17 -0
  98. data/lib/facts/debian/timezone.rb +2 -2
  99. data/lib/facts/el/disks.rb +3 -3
  100. data/lib/facts/el/dmi/bios/release_date.rb +10 -6
  101. data/lib/facts/el/dmi/bios/vendor.rb +10 -6
  102. data/lib/facts/el/dmi/bios/version.rb +10 -6
  103. data/lib/facts/el/dmi/board/manufacturer.rb +10 -6
  104. data/lib/facts/el/dmi/board/product.rb +10 -6
  105. data/lib/facts/el/dmi/board/serial_number.rb +10 -6
  106. data/lib/facts/el/dmi/chassis/asset_tag.rb +10 -6
  107. data/lib/facts/el/dmi/chassis/type.rb +10 -6
  108. data/lib/facts/el/dmi/manufacturer.rb +8 -6
  109. data/lib/facts/el/dmi/product/name.rb +10 -6
  110. data/lib/facts/el/dmi/product/serial_number.rb +10 -6
  111. data/lib/facts/el/dmi/product/uuid.rb +10 -6
  112. data/lib/facts/el/facterversion.rb +3 -3
  113. data/lib/facts/el/filesystems.rb +3 -3
  114. data/lib/facts/el/fips_enabled.rb +3 -3
  115. data/lib/facts/el/kernel.rb +3 -3
  116. data/lib/facts/el/kernelmajversion.rb +3 -3
  117. data/lib/facts/el/kernelrelease.rb +3 -3
  118. data/lib/facts/el/kernelversion.rb +3 -3
  119. data/lib/facts/el/load_averages.rb +3 -3
  120. data/lib/facts/el/memory/swap/available.rb +11 -7
  121. data/lib/facts/el/memory/swap/available_bytes.rb +10 -6
  122. data/lib/facts/el/memory/swap/capacity.rb +10 -6
  123. data/lib/facts/el/memory/swap/total.rb +11 -7
  124. data/lib/facts/el/memory/swap/total_bytes.rb +10 -6
  125. data/lib/facts/el/memory/swap/used.rb +11 -7
  126. data/lib/facts/el/memory/swap/used_bytes.rb +10 -6
  127. data/lib/facts/el/memory/system/available.rb +11 -7
  128. data/lib/facts/el/memory/system/available_bytes.rb +10 -6
  129. data/lib/facts/el/memory/system/capacity.rb +10 -6
  130. data/lib/facts/el/memory/system/total.rb +11 -7
  131. data/lib/facts/el/memory/system/total_bytes.rb +10 -6
  132. data/lib/facts/el/memory/system/used.rb +11 -7
  133. data/lib/facts/el/memory/system/used_bytes.rb +10 -6
  134. data/lib/facts/el/mountpoints.rb +4 -4
  135. data/lib/facts/el/networking/domain.rb +9 -7
  136. data/lib/facts/el/networking/fqdn.rb +9 -7
  137. data/lib/facts/el/networking/hostname.rb +9 -7
  138. data/lib/facts/el/networking/interfaces.rb +8 -6
  139. data/lib/facts/el/networking/ip.rb +9 -7
  140. data/lib/facts/el/networking/primary.rb +8 -6
  141. data/lib/facts/el/os/architecture.rb +9 -7
  142. data/lib/facts/el/os/family.rb +8 -6
  143. data/lib/facts/el/os/hardware.rb +8 -6
  144. data/lib/facts/el/os/name.rb +10 -8
  145. data/lib/facts/el/os/release.rb +11 -9
  146. data/lib/facts/el/os/selinux.rb +13 -11
  147. data/lib/facts/el/path.rb +3 -3
  148. data/lib/facts/el/processors/count.rb +8 -6
  149. data/lib/facts/el/processors/isa.rb +13 -11
  150. data/lib/facts/el/processors/models.rb +8 -6
  151. data/lib/facts/el/processors/physicalcount.rb +8 -6
  152. data/lib/facts/el/ruby/platform.rb +8 -6
  153. data/lib/facts/el/ruby/sitedir.rb +8 -6
  154. data/lib/facts/el/ruby/version.rb +9 -7
  155. data/lib/facts/el/ssh.rb +3 -3
  156. data/lib/facts/el/system_uptime/days.rb +8 -6
  157. data/lib/facts/el/system_uptime/hours.rb +8 -6
  158. data/lib/facts/el/system_uptime/seconds.rb +8 -6
  159. data/lib/facts/el/system_uptime/uptime.rb +8 -6
  160. data/lib/facts/el/timezone.rb +3 -3
  161. data/lib/facts/macosx/augeas.rb +3 -3
  162. data/lib/facts/macosx/dmi/product/name.rb +10 -6
  163. data/lib/facts/macosx/facterversion.rb +3 -3
  164. data/lib/facts/macosx/filesystems.rb +3 -3
  165. data/lib/facts/macosx/identity/gid.rb +8 -6
  166. data/lib/facts/macosx/identity/group.rb +8 -6
  167. data/lib/facts/macosx/identity/privileged.rb +8 -6
  168. data/lib/facts/macosx/identity/uid.rb +8 -6
  169. data/lib/facts/macosx/identity/user.rb +8 -6
  170. data/lib/facts/macosx/is_virtual.rb +2 -2
  171. data/lib/facts/macosx/kernel.rb +3 -3
  172. data/lib/facts/macosx/kernelmajversion.rb +3 -3
  173. data/lib/facts/macosx/kernelrelease.rb +3 -3
  174. data/lib/facts/macosx/kernelversion.rb +3 -3
  175. data/lib/facts/macosx/load_averages.rb +3 -3
  176. data/lib/facts/macosx/memory/swap/available.rb +11 -7
  177. data/lib/facts/macosx/memory/swap/available_bytes.rb +10 -6
  178. data/lib/facts/macosx/memory/swap/capacity.rb +10 -6
  179. data/lib/facts/macosx/memory/swap/encrypted.rb +10 -6
  180. data/lib/facts/macosx/memory/swap/total.rb +11 -7
  181. data/lib/facts/macosx/memory/swap/total_bytes.rb +10 -6
  182. data/lib/facts/macosx/memory/swap/used.rb +11 -7
  183. data/lib/facts/macosx/memory/swap/used_bytes.rb +10 -6
  184. data/lib/facts/macosx/memory/system/available.rb +11 -7
  185. data/lib/facts/macosx/memory/system/available_bytes.rb +10 -6
  186. data/lib/facts/macosx/memory/system/capacity.rb +10 -6
  187. data/lib/facts/macosx/memory/system/total.rb +11 -7
  188. data/lib/facts/macosx/memory/system/total_bytes.rb +10 -6
  189. data/lib/facts/macosx/memory/system/used.rb +11 -7
  190. data/lib/facts/macosx/memory/system/used_bytes.rb +10 -6
  191. data/lib/facts/macosx/mountpoints.rb +4 -4
  192. data/lib/facts/macosx/networking/domain.rb +9 -7
  193. data/lib/facts/macosx/networking/fqdn.rb +9 -7
  194. data/lib/facts/macosx/networking/hostname.rb +9 -7
  195. data/lib/facts/macosx/networking/ip.rb +18 -0
  196. data/lib/facts/macosx/os/architecture.rb +9 -7
  197. data/lib/facts/macosx/os/family.rb +9 -7
  198. data/lib/facts/macosx/os/hardware.rb +8 -6
  199. data/lib/facts/macosx/os/macosx/build.rb +19 -0
  200. data/lib/facts/macosx/os/macosx/product.rb +19 -0
  201. data/lib/facts/macosx/os/macosx/version.rb +21 -0
  202. data/lib/facts/macosx/os/name.rb +9 -7
  203. data/lib/facts/macosx/os/release.rb +12 -10
  204. data/lib/facts/macosx/path.rb +3 -3
  205. data/lib/facts/macosx/processors/count.rb +16 -0
  206. data/lib/facts/macosx/processors/isa.rb +16 -0
  207. data/lib/facts/macosx/processors/models.rb +16 -0
  208. data/lib/facts/macosx/processors/physicalcount.rb +16 -0
  209. data/lib/facts/macosx/processors/speed.rb +16 -0
  210. data/lib/facts/macosx/ruby/platform.rb +8 -6
  211. data/lib/facts/macosx/ruby/sitedir.rb +8 -6
  212. data/lib/facts/macosx/ruby/version.rb +9 -7
  213. data/lib/facts/macosx/system_profiler/boot_mode.rb +8 -6
  214. data/lib/facts/macosx/system_profiler/boot_rom_version.rb +8 -6
  215. data/lib/facts/macosx/system_profiler/boot_volume.rb +8 -6
  216. data/lib/facts/macosx/system_profiler/computer_name.rb +8 -6
  217. data/lib/facts/macosx/system_profiler/cores.rb +8 -6
  218. data/lib/facts/macosx/system_profiler/hardware_uuid.rb +8 -6
  219. data/lib/facts/macosx/system_profiler/kernel_version.rb +8 -6
  220. data/lib/facts/macosx/system_profiler/l2_cache_per_core.rb +8 -6
  221. data/lib/facts/macosx/system_profiler/l3_cache.rb +8 -6
  222. data/lib/facts/macosx/system_profiler/memory.rb +8 -6
  223. data/lib/facts/macosx/system_profiler/model_identifier.rb +8 -6
  224. data/lib/facts/macosx/system_profiler/model_name.rb +8 -6
  225. data/lib/facts/macosx/system_profiler/processor_name.rb +8 -6
  226. data/lib/facts/macosx/system_profiler/processor_speed.rb +8 -6
  227. data/lib/facts/macosx/system_profiler/processors.rb +8 -6
  228. data/lib/facts/macosx/system_profiler/secure_virtual_memory.rb +8 -6
  229. data/lib/facts/macosx/system_profiler/serial_number.rb +8 -6
  230. data/lib/facts/macosx/system_profiler/smc_version.rb +8 -6
  231. data/lib/facts/macosx/system_profiler/system_version.rb +8 -6
  232. data/lib/facts/macosx/system_profiler/uptime.rb +8 -6
  233. data/lib/facts/macosx/system_profiler/username.rb +8 -6
  234. data/lib/facts/macosx/system_uptime/days.rb +16 -0
  235. data/lib/facts/macosx/system_uptime/hours.rb +16 -0
  236. data/lib/facts/macosx/system_uptime/seconds.rb +8 -6
  237. data/lib/facts/macosx/system_uptime/uptime.rb +8 -6
  238. data/lib/facts/macosx/timezone.rb +2 -2
  239. data/lib/facts/sles/facterversion.rb +3 -3
  240. data/lib/facts/sles/kernel.rb +3 -3
  241. data/lib/facts/sles/kernelmajversion.rb +3 -3
  242. data/lib/facts/sles/kernelrelease.rb +3 -3
  243. data/lib/facts/sles/kernelversion.rb +3 -3
  244. data/lib/facts/sles/memory/swap/available.rb +11 -7
  245. data/lib/facts/sles/memory/swap/available_bytes.rb +10 -6
  246. data/lib/facts/sles/memory/swap/capacity.rb +10 -6
  247. data/lib/facts/sles/memory/swap/total.rb +11 -7
  248. data/lib/facts/sles/memory/swap/total_bytes.rb +10 -6
  249. data/lib/facts/sles/memory/swap/used.rb +11 -7
  250. data/lib/facts/sles/memory/swap/used_bytes.rb +10 -6
  251. data/lib/facts/sles/memory/system/available.rb +11 -7
  252. data/lib/facts/sles/memory/system/available_bytes.rb +10 -6
  253. data/lib/facts/sles/memory/system/capacity.rb +10 -6
  254. data/lib/facts/sles/memory/system/total.rb +11 -7
  255. data/lib/facts/sles/memory/system/total_bytes.rb +10 -6
  256. data/lib/facts/sles/memory/system/used.rb +11 -7
  257. data/lib/facts/sles/memory/system/used_bytes.rb +10 -6
  258. data/lib/facts/sles/networking/domain.rb +9 -7
  259. data/lib/facts/sles/networking/fqdn.rb +9 -7
  260. data/lib/facts/sles/networking/hostname.rb +9 -7
  261. data/lib/facts/sles/networking/interfaces.rb +8 -6
  262. data/lib/facts/sles/networking/ip.rb +9 -7
  263. data/lib/facts/sles/networking/primary.rb +8 -6
  264. data/lib/facts/sles/os/architecture.rb +9 -7
  265. data/lib/facts/sles/os/family.rb +8 -6
  266. data/lib/facts/sles/os/hardware.rb +8 -6
  267. data/lib/facts/sles/os/name.rb +9 -7
  268. data/lib/facts/sles/os/release.rb +19 -17
  269. data/lib/facts/sles/os/selinux.rb +13 -11
  270. data/lib/facts/sles/path.rb +3 -3
  271. data/lib/facts/sles/ruby/platform.rb +8 -6
  272. data/lib/facts/sles/ruby/sitedir.rb +8 -6
  273. data/lib/facts/sles/ruby/version.rb +9 -7
  274. data/lib/facts/sles/ssh.rb +3 -3
  275. data/lib/facts/sles/timezone.rb +3 -3
  276. data/lib/facts/solaris/facterversion.rb +3 -3
  277. data/lib/facts/solaris/kernel.rb +3 -3
  278. data/lib/facts/solaris/kernelmajversion.rb +3 -3
  279. data/lib/facts/solaris/kernelrelease.rb +3 -3
  280. data/lib/facts/solaris/kernelversion.rb +3 -3
  281. data/lib/facts/solaris/networking/domain.rb +9 -7
  282. data/lib/facts/solaris/networking/fqdn.rb +9 -7
  283. data/lib/facts/solaris/networking/hostname.rb +9 -7
  284. data/lib/facts/solaris/networking/ip.rb +18 -0
  285. data/lib/facts/solaris/os/architecture.rb +9 -7
  286. data/lib/facts/solaris/os/family.rb +8 -6
  287. data/lib/facts/solaris/os/hardware.rb +8 -6
  288. data/lib/facts/solaris/os/name.rb +10 -8
  289. data/lib/facts/solaris/os/release.rb +13 -11
  290. data/lib/facts/solaris/path.rb +3 -3
  291. data/lib/facts/solaris/ruby/platform.rb +8 -6
  292. data/lib/facts/solaris/ruby/sitedir.rb +8 -6
  293. data/lib/facts/solaris/ruby/version.rb +9 -7
  294. data/lib/facts/solaris/solaris_zones/current.rb +8 -6
  295. data/lib/facts/solaris/solaris_zones/zone.rb +18 -16
  296. data/lib/facts/solaris/zfs_featurenumbers.rb +4 -4
  297. data/lib/facts/solaris/zfs_version.rb +4 -4
  298. data/lib/facts/solaris/zpool_featurenumbers.rb +4 -4
  299. data/lib/facts/solaris/zpool_version.rb +4 -4
  300. data/lib/facts/windows/dhcp_servers.rb +4 -4
  301. data/lib/facts/windows/dmi/manufacturer.rb +9 -7
  302. data/lib/facts/windows/dmi/product/name.rb +11 -7
  303. data/lib/facts/windows/dmi/product/serial_number.rb +11 -7
  304. data/lib/facts/windows/dmi/product/uuid.rb +11 -7
  305. data/lib/facts/windows/facterversion.rb +3 -3
  306. data/lib/facts/windows/fips_enabled.rb +3 -3
  307. data/lib/facts/windows/hypervisors/hyperv.rb +13 -11
  308. data/lib/facts/windows/hypervisors/kvm.rb +20 -18
  309. data/lib/facts/windows/hypervisors/virtualbox.rb +22 -20
  310. data/lib/facts/windows/hypervisors/vmware.rb +13 -11
  311. data/lib/facts/windows/hypervisors/xen.rb +12 -10
  312. data/lib/facts/windows/identity/privileged.rb +8 -6
  313. data/lib/facts/windows/identity/user.rb +9 -7
  314. data/lib/facts/windows/interfaces.rb +3 -3
  315. data/lib/facts/windows/ipaddress6_interfaces.rb +3 -3
  316. data/lib/facts/windows/ipaddress_interfaces.rb +3 -3
  317. data/lib/facts/windows/{kernel/kernel.rb → kernel.rb} +3 -3
  318. data/lib/facts/windows/kernelmajversion.rb +15 -0
  319. data/lib/facts/windows/kernelrelease.rb +15 -0
  320. data/lib/facts/windows/kernelversion.rb +15 -0
  321. data/lib/facts/windows/macaddress_interfaces.rb +3 -3
  322. data/lib/facts/windows/memory/system/available.rb +12 -8
  323. data/lib/facts/windows/memory/system/available_bytes.rb +12 -8
  324. data/lib/facts/windows/memory/system/capacity.rb +10 -6
  325. data/lib/facts/windows/memory/system/total.rb +12 -8
  326. data/lib/facts/windows/memory/system/total_bytes.rb +12 -8
  327. data/lib/facts/windows/memory/system/used.rb +11 -7
  328. data/lib/facts/windows/memory/system/used_bytes.rb +10 -6
  329. data/lib/facts/windows/mtu_interfaces.rb +3 -3
  330. data/lib/facts/windows/netmask6_interfaces.rb +3 -3
  331. data/lib/facts/windows/netmask_interfaces.rb +3 -3
  332. data/lib/facts/windows/network6_interfaces.rb +3 -3
  333. data/lib/facts/windows/network_interfaces.rb +3 -3
  334. data/lib/facts/windows/networking/dhcp.rb +8 -6
  335. data/lib/facts/windows/networking/domain.rb +9 -7
  336. data/lib/facts/windows/networking/fqdn.rb +12 -10
  337. data/lib/facts/windows/networking/hostname.rb +9 -7
  338. data/lib/facts/windows/networking/interfaces.rb +8 -6
  339. data/lib/facts/windows/networking/ip.rb +9 -7
  340. data/lib/facts/windows/networking/ip6.rb +9 -7
  341. data/lib/facts/windows/networking/mac.rb +9 -7
  342. data/lib/facts/windows/networking/mtu.rb +8 -6
  343. data/lib/facts/windows/networking/netmask.rb +9 -7
  344. data/lib/facts/windows/networking/netmask6.rb +9 -7
  345. data/lib/facts/windows/networking/network.rb +9 -7
  346. data/lib/facts/windows/networking/network6.rb +9 -7
  347. data/lib/facts/windows/networking/primary.rb +8 -6
  348. data/lib/facts/windows/networking/scope6.rb +8 -6
  349. data/lib/facts/windows/os/architecture.rb +9 -7
  350. data/lib/facts/windows/os/family.rb +9 -7
  351. data/lib/facts/windows/os/hardware.rb +9 -7
  352. data/lib/facts/windows/os/name.rb +9 -7
  353. data/lib/facts/windows/os/release.rb +24 -22
  354. data/lib/facts/windows/os/windows/edition_id.rb +11 -7
  355. data/lib/facts/windows/os/windows/installation_type.rb +11 -7
  356. data/lib/facts/windows/os/windows/product_name.rb +11 -7
  357. data/lib/facts/windows/os/windows/release_id.rb +11 -7
  358. data/lib/facts/windows/os/windows/system32.rb +11 -7
  359. data/lib/facts/windows/path.rb +3 -3
  360. data/lib/facts/windows/processor.rb +3 -3
  361. data/lib/facts/windows/processors/count.rb +9 -7
  362. data/lib/facts/windows/processors/isa.rb +9 -7
  363. data/lib/facts/windows/processors/models.rb +8 -6
  364. data/lib/facts/windows/processors/physicalcount.rb +9 -7
  365. data/lib/facts/windows/ruby/platform.rb +9 -7
  366. data/lib/facts/windows/ruby/sitedir.rb +9 -7
  367. data/lib/facts/windows/ruby/version.rb +9 -7
  368. data/lib/facts/windows/scope6_interfaces.rb +3 -3
  369. data/lib/facts/windows/system_uptime/days.rb +18 -0
  370. data/lib/facts/windows/system_uptime/hours.rb +18 -0
  371. data/lib/facts/windows/system_uptime/seconds.rb +18 -0
  372. data/lib/facts/windows/system_uptime/uptime.rb +18 -0
  373. data/lib/facts/windows/timezone.rb +3 -3
  374. data/lib/facts/windows/virtualization/is_virtual.rb +8 -6
  375. data/lib/facts/windows/virtualization/virtual.rb +8 -6
  376. data/lib/framework/cli/cli_launcher.rb +3 -0
  377. data/lib/framework/config/block_list.rb +1 -1
  378. data/lib/framework/core/fact_filter.rb +0 -9
  379. data/lib/framework/core/fact_loaders/class_discoverer.rb +13 -2
  380. data/lib/framework/core/fact_loaders/internal_fact_loader.rb +5 -8
  381. data/lib/framework/core/fact_manager.rb +1 -3
  382. data/lib/framework/core/file_loader.rb +0 -2
  383. data/lib/framework/core/options.rb +2 -2
  384. data/lib/framework/core/options/default_options.rb +1 -0
  385. data/lib/framework/core/options/helper_options.rb +18 -6
  386. data/lib/framework/core/options/options_validator.rb +1 -0
  387. data/lib/framework/core/options/validate_options.rb +5 -3
  388. data/lib/framework/formatters/formatter_helper.rb +1 -1
  389. data/lib/framework/logging/logger.rb +38 -13
  390. data/lib/framework/logging/multilogger.rb +4 -0
  391. data/lib/framework/parsers/query_parser.rb +1 -1
  392. data/lib/framework/utils/utils.rb +13 -0
  393. data/lib/models/resolved_fact.rb +1 -1
  394. data/lib/models/searched_fact.rb +1 -1
  395. data/lib/resolvers/base_resolver.rb +1 -1
  396. data/lib/resolvers/fips_enabled_resolver.rb +2 -0
  397. data/lib/{facts → resolvers}/macosx/processor_resolver.rb +0 -0
  398. metadata +62 -34
  399. data/lib/facts/base/network_interface.rb +0 -9
  400. data/lib/facts/debian/system_uptime/system_uptime_days.rb +0 -15
  401. data/lib/facts/debian/system_uptime/system_uptime_hours.rb +0 -15
  402. data/lib/facts/debian/system_uptime/system_uptime_minutes.rb +0 -15
  403. data/lib/facts/debian/system_uptime/system_uptime_uptime.rb +0 -15
  404. data/lib/facts/macosx/count.rb +0 -14
  405. data/lib/facts/macosx/isa.rb +0 -14
  406. data/lib/facts/macosx/models.rb +0 -14
  407. data/lib/facts/macosx/network_ip.rb +0 -13
  408. data/lib/facts/macosx/networking/ipaddress.rb +0 -14
  409. data/lib/facts/macosx/os/sw_vers/build.rb +0 -15
  410. data/lib/facts/macosx/os/sw_vers/product.rb +0 -15
  411. data/lib/facts/macosx/os/sw_vers/version.rb +0 -17
  412. data/lib/facts/macosx/physicalcount.rb +0 -14
  413. data/lib/facts/macosx/speed.rb +0 -14
  414. data/lib/facts/macosx/system_uptime/system_uptime_days.rb +0 -14
  415. data/lib/facts/macosx/system_uptime/system_uptime_hours.rb +0 -14
  416. data/lib/facts/solaris/networking/ipaddress.rb +0 -14
  417. data/lib/facts/windows/kernel/kernel_maj_version.rb +0 -15
  418. data/lib/facts/windows/kernel/kernel_release.rb +0 -15
  419. data/lib/facts/windows/kernel/kernel_version.rb +0 -15
  420. data/lib/facts/windows/system_uptime/system_uptime_days.rb +0 -16
  421. data/lib/facts/windows/system_uptime/system_uptime_hours.rb +0 -16
  422. data/lib/facts/windows/system_uptime/system_uptime_seconds.rb +0 -16
  423. data/lib/facts/windows/system_uptime/system_uptime_uptime.rb +0 -16
  424. data/lib/framework/logging/legacy_logger.rb +0 -31
@@ -1,4 +1,4 @@
1
- sudo: false
1
+ os: linux
2
2
  language: ruby
3
3
  cache:
4
4
  bundler: true
@@ -12,7 +12,7 @@ before_install:
12
12
  - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
13
13
  - chmod +x ./cc-test-reporter
14
14
  - ./cc-test-reporter before-build
15
- matrix:
15
+ jobs:
16
16
  include:
17
17
  - rvm: 2.6
18
18
  script:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.0.8.pre
1
+ 4.0.9.pre
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
36
36
 
37
37
  spec.add_development_dependency 'bundler', '~> 2.0'
38
38
  spec.add_development_dependency 'coveralls', '~> 0.8.23'
39
- spec.add_development_dependency 'rake', '~> 10.0'
39
+ spec.add_development_dependency 'rake', '>= 12.3.3'
40
40
  spec.add_development_dependency 'rspec', '~> 3.0'
41
41
  spec.add_development_dependency 'rubocop', '~> 0.74.0'
42
42
  spec.add_development_dependency 'rubycritic', '~> 4.1.0'
@@ -37,7 +37,7 @@ Gem::Specification.new do |spec|
37
37
 
38
38
  spec.add_development_dependency 'bundler', '~> 2.0'
39
39
  spec.add_development_dependency 'coveralls', '~> 0.8.23'
40
- spec.add_development_dependency 'rake', '~> 10.0'
40
+ spec.add_development_dependency 'rake', '>= 12.3.3'
41
41
  spec.add_development_dependency 'rspec', '~> 3.0'
42
42
  spec.add_development_dependency 'rubocop', '~> 0.74.0'
43
43
  spec.add_development_dependency 'rubocop-performance', '~> 1.5'
@@ -136,15 +136,11 @@ module LegacyFacter
136
136
  def value(name)
137
137
  fact = fact(name)
138
138
 
139
- return Facter.core_value(name) if fact.nil?
139
+ return Facter.core_value(name) if fact.nil? || fact.value.nil?
140
140
 
141
- value = fact&.value
142
- weight = fact&.used_resolution_weight || 0
141
+ core_value = Facter.core_value(name) if fact.used_resolution_weight <= 0
143
142
 
144
- core_value = Facter.core_value(name)
145
- return core_value if weight <= 0 && core_value
146
-
147
- value
143
+ core_value.nil? ? fact.value : core_value
148
144
  end
149
145
 
150
146
  private
@@ -20,6 +20,7 @@ module LegacyFacter
20
20
  # Fact options e.g. fact_type
21
21
  attr_accessor :options
22
22
 
23
+ # Weight of the resolution that was used to obtain the fact value
23
24
  attr_accessor :used_resolution_weight
24
25
 
25
26
  # Creates a new fact, with no resolution mechanisms. See {Facter.add}
@@ -32,12 +33,14 @@ module LegacyFacter
32
33
  def initialize(name, options = {})
33
34
  @name = name.to_s.downcase.intern
34
35
 
36
+ @options = Facter::Utils.deep_copy(options)
35
37
  extract_ldapname_option!(options)
36
38
 
37
39
  @ldapname ||= @name.to_s
38
40
 
39
41
  @resolves = []
40
42
  @searching = false
43
+ @used_resolution_weight = 0
41
44
 
42
45
  @value = nil
43
46
  end
@@ -52,7 +55,7 @@ module LegacyFacter
52
55
  #
53
56
  # @api private
54
57
  def add(options = {}, &block)
55
- @options = options
58
+ @options = Facter::Utils.deep_copy(@options.merge(options))
56
59
  define_resolution(nil, options, &block)
57
60
  end
58
61
 
@@ -158,7 +161,7 @@ module LegacyFacter
158
161
  end
159
162
 
160
163
  def sort_by_weight(resolutions)
161
- resolutions.sort { |a, b| b.weight <=> a.weight }
164
+ resolutions.sort { |a, b| b.weight.to_i <=> a.weight.to_i }
162
165
  end
163
166
 
164
167
  def find_first_real_value(resolutions)
@@ -168,7 +171,7 @@ module LegacyFacter
168
171
  rescue Facter::ResolveCustomFactError
169
172
  break
170
173
  end
171
- @used_resolution_weight = resolve.weight
174
+ @used_resolution_weight = resolve.weight || 0
172
175
  return value unless value.nil?
173
176
  end
174
177
  nil
@@ -65,6 +65,17 @@ module LegacyFacter
65
65
  def parse_results
66
66
  raise ArgumentError, 'Subclasses must respond to parse_results'
67
67
  end
68
+
69
+ def parse_executable_output(output)
70
+ res = nil
71
+ begin
72
+ res = YAML.safe_load output
73
+ rescue Exception => e
74
+ Facter.debug("Could not parse executable fact output as YAML or JSON (#{e.message})")
75
+ end
76
+ res = KeyValuePairOutputFormat.parse output unless res.is_a?(Hash)
77
+ res
78
+ end
68
79
  end
69
80
 
70
81
  module KeyValuePairOutputFormat
@@ -120,7 +131,7 @@ module LegacyFacter
120
131
 
121
132
  class ScriptParser < Base
122
133
  def parse_results
123
- KeyValuePairOutputFormat.parse LegacyFacter::Core::Execution.exec(quote(filename))
134
+ parse_executable_output(LegacyFacter::Core::Execution.exec(quote(filename)))
124
135
  end
125
136
 
126
137
  private
@@ -154,7 +165,7 @@ module LegacyFacter
154
165
  shell_command =
155
166
  "\"#{powershell}\" -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -File \"#{filename}\""
156
167
  output = LegacyFacter::Core::Execution.exec(shell_command)
157
- KeyValuePairOutputFormat.parse(output)
168
+ parse_executable_output(output)
158
169
  end
159
170
  end
160
171
 
@@ -11,151 +11,167 @@ module Facter
11
11
  class ResolveCustomFactError < StandardError; end
12
12
 
13
13
  @options = Options.instance
14
+ Log.add_legacy_logger(STDOUT)
15
+ @logger = Log.new(self)
14
16
 
15
- def self.[](name)
16
- fact(name)
17
- end
17
+ class << self
18
+ def [](name)
19
+ fact(name)
20
+ end
18
21
 
19
- def self.add(name, options = {}, &block)
20
- options[:fact_type] = :custom
21
- LegacyFacter.add(name, options, &block)
22
- end
22
+ def add(name, options = {}, &block)
23
+ options[:fact_type] = :custom
24
+ LegacyFacter.add(name, options, &block)
25
+ end
23
26
 
24
- def self.clear
25
- LegacyFacter.clear
26
- end
27
+ def clear
28
+ LegacyFacter.clear
29
+ end
27
30
 
28
- def self.core_value(user_query)
29
- user_query = user_query.to_s
30
- resolved_facts = Facter::FactManager.instance.resolve_core([user_query])
31
- fact_collection = FactCollection.new.build_fact_collection!(resolved_facts)
32
- splitted_user_query = Facter::Utils.split_user_query(user_query)
33
- fact_collection.dig(*splitted_user_query)
34
- end
31
+ def core_value(user_query)
32
+ user_query = user_query.to_s
33
+ resolved_facts = Facter::FactManager.instance.resolve_core([user_query])
34
+ fact_collection = FactCollection.new.build_fact_collection!(resolved_facts)
35
+ splitted_user_query = Facter::Utils.split_user_query(user_query)
36
+ fact_collection.dig(*splitted_user_query)
37
+ end
35
38
 
36
- def self.debug(msg)
37
- return unless debugging?
39
+ def debug(msg)
40
+ return unless debugging?
38
41
 
39
- @logger ||= Log.new(self)
40
- @logger.debug(msg)
41
- nil
42
- end
42
+ @logger.debug(msg)
43
+ nil
44
+ end
43
45
 
44
- def self.debugging?
45
- Options[:debug]
46
- end
46
+ def on_message(&block)
47
+ Facter::Log.on_message(&block)
48
+ end
47
49
 
48
- def self.debugging(debug_bool)
49
- @options.priority_options = { debug: debug_bool }
50
- @options.refresh
50
+ def debugging?
51
+ Options[:debug]
52
+ end
51
53
 
52
- debug_bool
53
- end
54
+ def debugging(debug_bool)
55
+ @options.priority_options[:debug] = debug_bool
56
+ @options.refresh
54
57
 
55
- def self.fact(name)
56
- fact = Facter::Util::Fact.new(name)
57
- val = value(name)
58
- fact.add({}) { setcode { val } }
59
- fact
60
- end
58
+ debug_bool
59
+ end
61
60
 
62
- def self.log_errors(missing_names)
63
- @logger ||= Log.new(self)
61
+ def fact(name)
62
+ fact = Facter::Util::Fact.new(name)
63
+ val = value(name)
64
+ fact.add({}) { setcode { val } }
65
+ fact
66
+ end
64
67
 
65
- missing_names.each do |missing_name|
66
- @logger.error("fact \"#{missing_name}\" does not exist.", true)
68
+ def log_errors(missing_names)
69
+ missing_names.each do |missing_name|
70
+ @logger.error("fact \"#{missing_name}\" does not exist.", true)
71
+ end
67
72
  end
68
- end
69
73
 
70
- def self.method_missing(name, *args, &block)
71
- @logger ||= Log.new(self)
72
- @logger.error(
73
- "--#{name}-- not implemented but required \n" \
74
- 'with params: ' \
75
- "#{args.inspect} \n" \
76
- 'with block: ' \
77
- "#{block.inspect} \n" \
78
- "called by: \n" \
79
- "#{caller} \n"
80
- )
81
- nil
82
- end
74
+ def method_missing(name, *args, &block)
75
+ @logger.error(
76
+ "--#{name}-- not implemented but required \n" \
77
+ 'with params: ' \
78
+ "#{args.inspect} \n" \
79
+ 'with block: ' \
80
+ "#{block.inspect} \n" \
81
+ "called by: \n" \
82
+ "#{caller} \n"
83
+ )
84
+ nil
85
+ end
83
86
 
84
- def self.reset
85
- LegacyFacter.reset
86
- end
87
+ def reset
88
+ LegacyFacter.reset
89
+ end
87
90
 
88
- def self.search(*dirs)
89
- LegacyFacter.search(*dirs)
90
- end
91
+ def search(*dirs)
92
+ LegacyFacter.search(*dirs)
93
+ end
91
94
 
92
- def self.search_external(dirs)
93
- LegacyFacter.search_external(dirs)
94
- end
95
+ def search_external(dirs)
96
+ LegacyFacter.search_external(dirs)
97
+ end
95
98
 
96
- def self.search_external_path
97
- LegacyFacter.search_external_path
98
- end
99
+ def search_external_path
100
+ LegacyFacter.search_external_path
101
+ end
99
102
 
100
- def self.search_path
101
- LegacyFacter.search_path
102
- end
103
+ def search_path
104
+ LegacyFacter.search_path
105
+ end
103
106
 
104
- def self.to_hash
105
- @options.priority_options = { to_hash: true }
106
- @options.refresh
107
- resolved_facts = Facter::FactManager.instance.resolve_facts(@options)
108
- CacheManager.invalidate_all_caches
109
- FactCollection.new.build_fact_collection!(resolved_facts)
110
- end
107
+ def to_hash
108
+ @options.priority_options[:to_hash] = true
109
+ @options.refresh
111
110
 
112
- def self.to_user_output(cli_options, *args)
113
- @options.priority_options = { is_cli: true }.merge!(cli_options.map { |(k, v)| [k.to_sym, v] }.to_h)
114
- @options.refresh(args)
111
+ log_blocked_facts
115
112
 
116
- resolved_facts = Facter::FactManager.instance.resolve_facts(@options, args)
117
- CacheManager.invalidate_all_caches
118
- fact_formatter = Facter::FormatterFactory.build(@options)
113
+ resolved_facts = Facter::FactManager.instance.resolve_facts
114
+ CacheManager.invalidate_all_caches
115
+ FactCollection.new.build_fact_collection!(resolved_facts)
116
+ end
119
117
 
120
- status = error_check(args, resolved_facts)
118
+ def to_user_output(cli_options, *args)
119
+ @options.priority_options = { is_cli: true }.merge!(cli_options.map { |(k, v)| [k.to_sym, v] }.to_h)
120
+ @options.refresh(args)
121
+ @logger.info("executed with command line: #{ARGV.drop(1).join(' ')}")
122
+ log_blocked_facts
121
123
 
122
- [fact_formatter.format(resolved_facts), status || 0]
123
- end
124
+ resolved_facts = Facter::FactManager.instance.resolve_facts(args)
125
+ CacheManager.invalidate_all_caches
126
+ fact_formatter = Facter::FormatterFactory.build(@options)
124
127
 
125
- def self.trace?
126
- LegacyFacter.trace?
127
- end
128
+ status = error_check(args, resolved_facts)
128
129
 
129
- def self.trace(bool)
130
- LegacyFacter.trace(bool)
131
- end
130
+ [fact_formatter.format(resolved_facts), status || 0]
131
+ end
132
132
 
133
- def self.value(user_query)
134
- @options.refresh([user_query])
135
- user_query = user_query.to_s
136
- resolved_facts = Facter::FactManager.instance.resolve_facts(@options, [user_query])
137
- CacheManager.invalidate_all_caches
138
- fact_collection = FactCollection.new.build_fact_collection!(resolved_facts)
139
- splitted_user_query = Facter::Utils.split_user_query(user_query)
140
- fact_collection.dig(*splitted_user_query)
141
- end
133
+ def trace?
134
+ LegacyFacter.trace?
135
+ end
142
136
 
143
- def self.version
144
- version_file = ::File.join(ROOT_DIR, 'VERSION')
145
- ::File.read(version_file).strip
146
- end
137
+ def trace(bool)
138
+ LegacyFacter.trace(bool)
139
+ end
147
140
 
148
- private_class_method def self.error_check(args, resolved_facts)
149
- if Options.instance[:strict]
150
- missing_names = args - resolved_facts.map(&:user_query).uniq
151
- if missing_names.count.positive?
152
- status = 1
153
- log_errors(missing_names)
154
- else
155
- status = nil
156
- end
141
+ def value(user_query)
142
+ @options.refresh([user_query])
143
+ user_query = user_query.to_s
144
+ resolved_facts = Facter::FactManager.instance.resolve_facts([user_query])
145
+ CacheManager.invalidate_all_caches
146
+ fact_collection = FactCollection.new.build_fact_collection!(resolved_facts)
147
+ splitted_user_query = Facter::Utils.split_user_query(user_query)
148
+ fact_collection.dig(*splitted_user_query)
149
+ end
150
+
151
+ def version
152
+ version_file = ::File.join(ROOT_DIR, 'VERSION')
153
+ ::File.read(version_file).strip
157
154
  end
158
155
 
159
- status
156
+ private
157
+
158
+ def log_blocked_facts
159
+ block_list = BlockList.instance.block_list
160
+ @logger.debug("blocking collection of #{block_list.join("\s")} facts") if block_list.any? && Options[:block]
161
+ end
162
+
163
+ def error_check(args, resolved_facts)
164
+ if Options.instance[:strict]
165
+ missing_names = args - resolved_facts.map(&:user_query).uniq
166
+ if missing_names.count.positive?
167
+ status = 1
168
+ log_errors(missing_names)
169
+ else
170
+ status = nil
171
+ end
172
+ end
173
+
174
+ status
175
+ end
160
176
  end
161
177
  end
@@ -1,13 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Facter
3
+ module Facts
4
4
  module Aix
5
- class AugeasVersion
6
- FACT_NAME = 'augeas.version'
5
+ module Augeas
6
+ class Version
7
+ FACT_NAME = 'augeas.version'
7
8
 
8
- def call_the_resolver
9
- fact_value = Resolvers::Augeas.resolve(:augeas_version)
10
- ResolvedFact.new(FACT_NAME, fact_value)
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Augeas.resolve(:augeas_version)
11
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
12
+ end
11
13
  end
12
14
  end
13
15
  end
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Facter
3
+ module Facts
4
4
  module Aix
5
5
  class Facterversion
6
6
  FACT_NAME = 'facterversion'
7
7
 
8
8
  def call_the_resolver
9
- fact_value = Resolvers::Facterversion.resolve(:facterversion)
9
+ fact_value = Facter::Resolvers::Facterversion.resolve(:facterversion)
10
10
 
11
- ResolvedFact.new(FACT_NAME, fact_value)
11
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
12
12
  end
13
13
  end
14
14
  end