facter 4.0.8.pre → 4.0.9.pre

Sign up to get free protection for your applications and to get access to all the features.
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,15 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Facter
3
+ module Facts
4
4
  module Windows
5
- class RubyPlatform
6
- FACT_NAME = 'ruby.platform'
7
- ALIASES = 'rubyplatform'
5
+ module Ruby
6
+ class Platform
7
+ FACT_NAME = 'ruby.platform'
8
+ ALIASES = 'rubyplatform'
8
9
 
9
- def call_the_resolver
10
- fact_value = Resolvers::Ruby.resolve(:platform)
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::Ruby.resolve(:platform)
11
12
 
12
- [ResolvedFact.new(FACT_NAME, fact_value), ResolvedFact.new(ALIASES, fact_value, :legacy)]
13
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14
+ end
13
15
  end
14
16
  end
15
17
  end
@@ -1,15 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Facter
3
+ module Facts
4
4
  module Windows
5
- class RubySitedir
6
- FACT_NAME = 'ruby.sitedir'
7
- ALIASES = 'rubysitedir'
5
+ module Ruby
6
+ class Sitedir
7
+ FACT_NAME = 'ruby.sitedir'
8
+ ALIASES = 'rubysitedir'
8
9
 
9
- def call_the_resolver
10
- fact_value = Resolvers::Ruby.resolve(:sitedir)
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::Ruby.resolve(:sitedir)
11
12
 
12
- [ResolvedFact.new(FACT_NAME, fact_value), ResolvedFact.new(ALIASES, fact_value, :legacy)]
13
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14
+ end
13
15
  end
14
16
  end
15
17
  end
@@ -1,15 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Facter
3
+ module Facts
4
4
  module Windows
5
- class RubyVersion
6
- FACT_NAME = 'ruby.version'
7
- ALIASES = 'rubyversion'
5
+ module Ruby
6
+ class Version
7
+ FACT_NAME = 'ruby.version'
8
+ ALIASES = 'rubyversion'
8
9
 
9
- def call_the_resolver
10
- fact_value = Resolvers::Ruby.resolve(:version)
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::Ruby.resolve(:version)
11
12
 
12
- [ResolvedFact.new(FACT_NAME, fact_value), ResolvedFact.new(ALIASES, fact_value, :legacy)]
13
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14
+ end
13
15
  end
14
16
  end
15
17
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Facter
3
+ module Facts
4
4
  module Windows
5
5
  class Scope6Interfaces
6
6
  FACT_NAME = 'scope6_.*'
@@ -8,10 +8,10 @@ module Facter
8
8
  def call_the_resolver
9
9
  arr = []
10
10
  result = {}
11
- interfaces = Resolvers::Networking.resolve(:interfaces)
11
+ interfaces = Facter::Resolvers::Networking.resolve(:interfaces)
12
12
  interfaces&.each { |interface_name, info| result["scope6_#{interface_name}"] = info[:scope6] if info[:scope6] }
13
13
 
14
- result.each { |fact, value| arr << ResolvedFact.new(fact, value, :legacy) }
14
+ result.each { |fact, value| arr << Facter::ResolvedFact.new(fact, value, :legacy) }
15
15
  arr
16
16
  end
17
17
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Windows
5
+ module SystemUptime
6
+ class Days
7
+ FACT_NAME = 'system_uptime.days'
8
+ ALIASES = 'uptime_days'
9
+
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::Windows::Uptime.resolve(:days)
12
+
13
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Windows
5
+ module SystemUptime
6
+ class Hours
7
+ FACT_NAME = 'system_uptime.hours'
8
+ ALIASES = 'uptime_hours'
9
+
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::Windows::Uptime.resolve(:hours)
12
+
13
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Windows
5
+ module SystemUptime
6
+ class Seconds
7
+ FACT_NAME = 'system_uptime.seconds'
8
+ ALIASES = 'uptime_seconds'
9
+
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::Windows::Uptime.resolve(:seconds)
12
+
13
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Facts
4
+ module Windows
5
+ module SystemUptime
6
+ class Uptime
7
+ FACT_NAME = 'system_uptime.uptime'
8
+ ALIASES = 'uptime'
9
+
10
+ def call_the_resolver
11
+ fact_value = Facter::Resolvers::Windows::Uptime.resolve(:uptime)
12
+
13
+ [Facter::ResolvedFact.new(FACT_NAME, fact_value), Facter::ResolvedFact.new(ALIASES, fact_value, :legacy)]
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Facter
3
+ module Facts
4
4
  module Windows
5
5
  class Timezone
6
6
  FACT_NAME = 'timezone'
7
7
 
8
8
  def call_the_resolver
9
- fact_value = Resolvers::Timezone.resolve(:timezone)
9
+ fact_value = Facter::Resolvers::Timezone.resolve(:timezone)
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
@@ -1,14 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Facter
3
+ module Facts
4
4
  module Windows
5
- class IsVirtual
6
- FACT_NAME = 'is_virtual'
5
+ module Virtualization
6
+ class IsVirtual
7
+ FACT_NAME = 'is_virtual'
7
8
 
8
- def call_the_resolver
9
- fact_value = Resolvers::Virtualization.resolve(:is_virtual)
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Virtualization.resolve(:is_virtual)
10
11
 
11
- ResolvedFact.new(FACT_NAME, fact_value)
12
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
13
+ end
12
14
  end
13
15
  end
14
16
  end
@@ -1,14 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Facter
3
+ module Facts
4
4
  module Windows
5
- class Virtual
6
- FACT_NAME = 'virtual'
5
+ module Virtualization
6
+ class Virtual
7
+ FACT_NAME = 'virtual'
7
8
 
8
- def call_the_resolver
9
- fact_value = Resolvers::Virtualization.resolve(:virtual)
9
+ def call_the_resolver
10
+ fact_value = Facter::Resolvers::Virtualization.resolve(:virtual)
10
11
 
11
- ResolvedFact.new(FACT_NAME, fact_value)
12
+ Facter::ResolvedFact.new(FACT_NAME, fact_value)
13
+ end
12
14
  end
13
15
  end
14
16
  end
@@ -2,6 +2,9 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require 'thor'
5
+ require "#{ROOT_DIR}/lib/framework/logging/multilogger.rb"
6
+ require "#{ROOT_DIR}/lib/framework/logging/logger.rb"
7
+ Facter::Log.add_legacy_logger(STDERR)
5
8
  require "#{ROOT_DIR}/lib/facter"
6
9
  require "#{ROOT_DIR}/lib/framework/cli/cli"
7
10
 
@@ -4,7 +4,7 @@ module Facter
4
4
  class BlockList
5
5
  include Singleton
6
6
 
7
- attr_reader :block_groups
7
+ attr_reader :block_groups, :block_list
8
8
 
9
9
  def initialize(block_list_path = nil)
10
10
  @block_groups_file_path = block_list_path || File.join(ROOT_DIR, 'block_groups.conf')
@@ -8,7 +8,6 @@ module Facter
8
8
  def filter_facts!(searched_facts)
9
9
  filter_legacy_facts!(searched_facts)
10
10
  searched_facts.each do |fact|
11
- fact.value = symbolize_all_keys(fact.value) if fact.value.is_a?(Hash)
12
11
  fact.value = if fact.filter_tokens.any? && fact.value.respond_to?(:dig)
13
12
  fact.value.dig(*fact.filter_tokens)
14
13
  else
@@ -19,14 +18,6 @@ module Facter
19
18
 
20
19
  private
21
20
 
22
- def symbolize_all_keys(hash)
23
- symbolized_hash = {}
24
- hash.each do |k, v|
25
- symbolized_hash[k.to_sym] = v.is_a?(Hash) ? symbolize_all_keys(v) : v
26
- end
27
- symbolized_hash
28
- end
29
-
30
21
  def filter_legacy_facts!(resolved_facts)
31
22
  return if Options[:show_legacy]
32
23
 
@@ -9,13 +9,24 @@ module Facter
9
9
  end
10
10
 
11
11
  def discover_classes(operating_system)
12
- os_module_name = Module.const_get("Facter::#{operating_system}")
12
+ os_module_name = Module.const_get("Facts::#{operating_system}")
13
13
 
14
14
  # select only classes
15
- os_module_name.constants.select { |c| os_module_name.const_get(c).is_a? Class }
15
+ find_nested_classes(os_module_name, discovered_classes = [])
16
+ discovered_classes
16
17
  rescue NameError
17
18
  @log.error("There is no module named #{operating_system}")
18
19
  []
19
20
  end
21
+
22
+ def find_nested_classes(mod, discovered_classes)
23
+ mod.constants.each do |constant_name|
24
+ if mod.const_get(constant_name).instance_of? Class
25
+ discovered_classes << mod.const_get(constant_name)
26
+ elsif mod.const_get(constant_name).instance_of? Module
27
+ find_nested_classes(Module.const_get("#{mod.name}::#{constant_name}"), discovered_classes)
28
+ end
29
+ end
30
+ end
20
31
  end
21
32
  end
@@ -32,16 +32,13 @@ module Facter
32
32
  classes = ClassDiscoverer.instance.discover_classes(operating_system)
33
33
 
34
34
  classes.each do |class_name|
35
- klass = klass(operating_system, class_name)
36
- fact_name = klass::FACT_NAME
35
+ fact_name = class_name::FACT_NAME
37
36
 
38
- load_fact(fact_name, klass)
39
- [*klass::ALIASES].each { |fact_alias| load_fact(fact_alias, klass) } if klass.const_defined?('ALIASES')
40
- end
41
- end
37
+ load_fact(fact_name, class_name)
38
+ next unless class_name.const_defined?('ALIASES')
42
39
 
43
- def klass(operating_system, class_name)
44
- Class.const_get("Facter::#{operating_system}::" + class_name.to_s)
40
+ [*class_name::ALIASES].each { |fact_alias| load_fact(fact_alias, class_name) }
41
+ end
45
42
  end
46
43
 
47
44
  def load_fact(fact_name, klass)
@@ -11,9 +11,7 @@ module Facter
11
11
  @log = Log.new(self)
12
12
  end
13
13
 
14
- def resolve_facts(options = {}, user_query = [])
15
- Log.level = options.get[:log_level]
16
-
14
+ def resolve_facts(user_query = [])
17
15
  loaded_facts = @fact_loader.load(Options.get)
18
16
  searched_facts = QueryParser.parse(user_query, loaded_facts)
19
17
 
@@ -22,7 +22,6 @@ end
22
22
 
23
23
  load_lib_dirs('framework', 'core', 'options')
24
24
  require "#{ROOT_DIR}/lib/framework/core/options"
25
- require "#{ROOT_DIR}/lib/framework/logging/legacy_logger"
26
25
  require "#{ROOT_DIR}/lib/framework/logging/multilogger"
27
26
  require "#{ROOT_DIR}/lib/framework/logging/logger"
28
27
 
@@ -31,7 +30,6 @@ require "#{ROOT_DIR}/lib/framework/detector/os_detector"
31
30
 
32
31
  require "#{ROOT_DIR}/lib/framework/config/config_reader"
33
32
  require "#{ROOT_DIR}/lib/framework/config/block_list"
34
- require "#{ROOT_DIR}/lib/facter"
35
33
  require "#{ROOT_DIR}/lib/resolvers/utils/fingerprint.rb"
36
34
  require "#{ROOT_DIR}/lib/resolvers/utils/ssh.rb"
37
35
  require "#{ROOT_DIR}/lib/resolvers/utils/filesystem_helper.rb"
@@ -59,10 +59,10 @@ module Facter
59
59
  private
60
60
 
61
61
  def initialize_options
62
- @options = {}
62
+ @options = { config: @priority_options[:config] }
63
63
  augment_with_defaults!
64
64
  augment_with_to_hash_defaults! if @priority_options[:to_hash]
65
- augment_with_config_file_options!(@priority_options[:config])
65
+ augment_with_config_file_options!(@options[:config])
66
66
  augment_with_priority_options!(@priority_options)
67
67
  validate_configs
68
68
  augment_with_helper_options!(@user_query)
@@ -24,6 +24,7 @@ module Facter
24
24
  end
25
25
 
26
26
  def global_defaults
27
+ @options[:block] ||= true
27
28
  @options[:custom_facts] ||= true
28
29
  @options[:custom_dir] ||= []
29
30
  @options[:external_facts] ||= true
@@ -5,23 +5,35 @@ module Facter
5
5
  def augment_with_helper_options!(user_query)
6
6
  @options[:user_query] = true if user_query.any?
7
7
 
8
- if @options[:ruby] == false
9
- @options[:custom_facts] = false
10
- @options[:blocked_facts] = ['ruby'].concat(@options[:blocked_facts] || [])
11
- end
8
+ no_ruby
12
9
 
13
10
  # convert array or string to array
14
11
  @options[:external_dir] = [*@options[:external_dir]] unless @options[:external_dir].nil?
15
12
 
16
- @options[:log_level] = log_level || @options[:log_level]
13
+ @options[:log_level] = log_level || @options[:log_level].to_sym
14
+ @options[:debug] = true if @options[:log_level] == :debug
15
+
17
16
  validate_log_level
17
+
18
+ Log.level = @options[:log_level]
18
19
  LegacyFacter.trace(@options[:trace])
19
20
  end
20
21
 
21
22
  private
22
23
 
24
+ def no_ruby
25
+ return if @options[:ruby]
26
+
27
+ @options[:custom_facts] = false
28
+ @options[:blocked_facts] = ['ruby'].concat(@options[:blocked_facts] || [])
29
+ end
30
+
23
31
  def log_level
24
- :debug if @options[:debug] || @options[:log_level] == :trace
32
+ if @options[:debug] || @options[:log_level] == :trace
33
+ :debug
34
+ elsif @options[:verbose]
35
+ :info
36
+ end
25
37
  end
26
38
 
27
39
  def validate_log_level
@@ -33,6 +33,7 @@ module Facter
33
33
  end
34
34
 
35
35
  def self.write_error_and_exit(message)
36
+ Options.augment_with_priority_options!(is_cli: true)
36
37
  log = Facter::Log.new(self)
37
38
  log.error(message, true)
38
39
  Cli.start(['--help'])
@@ -4,9 +4,10 @@ module Facter
4
4
  module ValidateOptions
5
5
  def validate_configs
6
6
  conflicting_configs.each do |op|
7
- if op.values[0] && op.values[1]
8
- raise_error("#{op.keys[0]} and #{op.keys[1]} options conflict: please specify only one")
9
- end
7
+ next unless op.values[0] && op.values[1]
8
+
9
+ message = "#{op.keys[0]} and #{op.keys[1]} options conflict: please specify only one"
10
+ raise_error(message)
10
11
  end
11
12
  validate_log_options
12
13
  end
@@ -39,6 +40,7 @@ module Facter
39
40
  end
40
41
 
41
42
  def raise_error(message)
43
+ OptionsValidator.write_error_and_exit(message) if @options[:is_cli]
42
44
  log = Facter::Log.new(self)
43
45
  log.error(message, true)
44
46
  raise ArgumentError, message