facter 2.1.0-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of facter might be problematic. Click here for more details.

Files changed (440) hide show
  1. checksums.yaml +7 -0
  2. data/COMMITTERS.md +194 -0
  3. data/CONTRIBUTING.md +65 -0
  4. data/Gemfile +53 -0
  5. data/LICENSE +15 -0
  6. data/README.md +33 -0
  7. data/Rakefile +79 -0
  8. data/bin/facter +20 -0
  9. data/etc/facter.conf +5 -0
  10. data/ext/build_defaults.yaml +24 -0
  11. data/ext/debian/changelog.erb +59 -0
  12. data/ext/debian/compat +1 -0
  13. data/ext/debian/control +14 -0
  14. data/ext/debian/copyright +19 -0
  15. data/ext/debian/docs +1 -0
  16. data/ext/debian/lintian-overrides +0 -0
  17. data/ext/debian/rules +10 -0
  18. data/ext/debian/source/format +1 -0
  19. data/ext/facter-diff +74 -0
  20. data/ext/ips/facter.p5m.erb +10 -0
  21. data/ext/ips/rules +7 -0
  22. data/ext/ips/transforms +18 -0
  23. data/ext/osx/file_mapping.yaml +27 -0
  24. data/ext/osx/preflight.erb +33 -0
  25. data/ext/osx/prototype.plist.erb +38 -0
  26. data/ext/project_data.yaml +36 -0
  27. data/ext/redhat/facter.spec.erb +220 -0
  28. data/ext/solaris/pkginfo +7 -0
  29. data/install.rb +380 -0
  30. data/lib/facter.rb +261 -0
  31. data/lib/facter/Cfkey.rb +42 -0
  32. data/lib/facter/application.rb +204 -0
  33. data/lib/facter/architecture.rb +50 -0
  34. data/lib/facter/augeasversion.rb +28 -0
  35. data/lib/facter/blockdevices.rb +105 -0
  36. data/lib/facter/core/aggregate.rb +220 -0
  37. data/lib/facter/core/directed_graph.rb +46 -0
  38. data/lib/facter/core/execution.rb +123 -0
  39. data/lib/facter/core/execution/base.rb +81 -0
  40. data/lib/facter/core/execution/posix.rb +50 -0
  41. data/lib/facter/core/execution/windows.rb +57 -0
  42. data/lib/facter/core/logging.rb +169 -0
  43. data/lib/facter/core/resolvable.rb +94 -0
  44. data/lib/facter/core/suitable.rb +113 -0
  45. data/lib/facter/dhcp_servers.rb +39 -0
  46. data/lib/facter/domain.rb +99 -0
  47. data/lib/facter/ec2.rb +44 -0
  48. data/lib/facter/ec2/rest.rb +130 -0
  49. data/lib/facter/facterversion.rb +15 -0
  50. data/lib/facter/filesystems.rb +38 -0
  51. data/lib/facter/fqdn.rb +24 -0
  52. data/lib/facter/gce.rb +16 -0
  53. data/lib/facter/gce/metadata.rb +87 -0
  54. data/lib/facter/hardwareisa.rb +20 -0
  55. data/lib/facter/hardwaremodel.rb +67 -0
  56. data/lib/facter/hostname.rb +31 -0
  57. data/lib/facter/id.rb +21 -0
  58. data/lib/facter/interfaces.rb +46 -0
  59. data/lib/facter/ipaddress.rb +171 -0
  60. data/lib/facter/ipaddress6.rb +82 -0
  61. data/lib/facter/iphostnumber.rb +29 -0
  62. data/lib/facter/kernel.rb +22 -0
  63. data/lib/facter/kernelmajversion.rb +23 -0
  64. data/lib/facter/kernelrelease.rb +50 -0
  65. data/lib/facter/kernelversion.rb +22 -0
  66. data/lib/facter/ldom.rb +47 -0
  67. data/lib/facter/lsbdistcodename.rb +16 -0
  68. data/lib/facter/lsbdistdescription.rb +25 -0
  69. data/lib/facter/lsbdistid.rb +16 -0
  70. data/lib/facter/lsbdistrelease.rb +16 -0
  71. data/lib/facter/lsbmajdistrelease.rb +27 -0
  72. data/lib/facter/lsbrelease.rb +16 -0
  73. data/lib/facter/macaddress.rb +97 -0
  74. data/lib/facter/macosx.rb +56 -0
  75. data/lib/facter/manufacturer.rb +68 -0
  76. data/lib/facter/memory.rb +168 -0
  77. data/lib/facter/netmask.rb +42 -0
  78. data/lib/facter/network.rb +20 -0
  79. data/lib/facter/operatingsystem.rb +141 -0
  80. data/lib/facter/operatingsystemmajrelease.rb +47 -0
  81. data/lib/facter/operatingsystemrelease.rb +250 -0
  82. data/lib/facter/osfamily.rb +37 -0
  83. data/lib/facter/partitions.rb +35 -0
  84. data/lib/facter/path.rb +14 -0
  85. data/lib/facter/physicalprocessorcount.rb +91 -0
  86. data/lib/facter/processor.rb +168 -0
  87. data/lib/facter/ps.rb +30 -0
  88. data/lib/facter/puppetversion.rb +20 -0
  89. data/lib/facter/rubysitedir.rb +12 -0
  90. data/lib/facter/rubyversion.rb +12 -0
  91. data/lib/facter/selinux.rb +99 -0
  92. data/lib/facter/ssh.rb +72 -0
  93. data/lib/facter/timezone.rb +14 -0
  94. data/lib/facter/uniqueid.rb +4 -0
  95. data/lib/facter/uptime.rb +34 -0
  96. data/lib/facter/uptime_days.rb +15 -0
  97. data/lib/facter/uptime_hours.rb +15 -0
  98. data/lib/facter/uptime_seconds.rb +24 -0
  99. data/lib/facter/util/architecture.rb +19 -0
  100. data/lib/facter/util/collection.rb +161 -0
  101. data/lib/facter/util/composite_loader.rb +12 -0
  102. data/lib/facter/util/config.rb +63 -0
  103. data/lib/facter/util/confine.rb +66 -0
  104. data/lib/facter/util/dhcp_servers.rb +43 -0
  105. data/lib/facter/util/directory_loader.rb +83 -0
  106. data/lib/facter/util/ec2.rb +106 -0
  107. data/lib/facter/util/fact.rb +204 -0
  108. data/lib/facter/util/file_read.rb +37 -0
  109. data/lib/facter/util/formatter.rb +39 -0
  110. data/lib/facter/util/ip.rb +285 -0
  111. data/lib/facter/util/ip/windows.rb +215 -0
  112. data/lib/facter/util/loader.rb +155 -0
  113. data/lib/facter/util/macaddress.rb +43 -0
  114. data/lib/facter/util/macosx.rb +73 -0
  115. data/lib/facter/util/manufacturer.rb +99 -0
  116. data/lib/facter/util/memory.rb +228 -0
  117. data/lib/facter/util/netmask.rb +40 -0
  118. data/lib/facter/util/normalization.rb +94 -0
  119. data/lib/facter/util/nothing_loader.rb +12 -0
  120. data/lib/facter/util/operatingsystem.rb +21 -0
  121. data/lib/facter/util/parser.rb +158 -0
  122. data/lib/facter/util/partitions.rb +41 -0
  123. data/lib/facter/util/partitions/linux.rb +65 -0
  124. data/lib/facter/util/plist.rb +24 -0
  125. data/lib/facter/util/plist/generator.rb +228 -0
  126. data/lib/facter/util/plist/parser.rb +226 -0
  127. data/lib/facter/util/posix.rb +16 -0
  128. data/lib/facter/util/processor.rb +289 -0
  129. data/lib/facter/util/registry.rb +11 -0
  130. data/lib/facter/util/resolution.rb +160 -0
  131. data/lib/facter/util/solaris_zones.rb +158 -0
  132. data/lib/facter/util/unix_root.rb +5 -0
  133. data/lib/facter/util/uptime.rb +81 -0
  134. data/lib/facter/util/values.rb +109 -0
  135. data/lib/facter/util/virtual.rb +180 -0
  136. data/lib/facter/util/vlans.rb +21 -0
  137. data/lib/facter/util/windows_root.rb +7 -0
  138. data/lib/facter/util/wmi.rb +16 -0
  139. data/lib/facter/util/xendomains.rb +10 -0
  140. data/lib/facter/version.rb +86 -0
  141. data/lib/facter/virtual.rb +311 -0
  142. data/lib/facter/vlans.rb +17 -0
  143. data/lib/facter/xendomains.rb +20 -0
  144. data/lib/facter/zfs_version.rb +10 -0
  145. data/lib/facter/zonename.rb +6 -0
  146. data/lib/facter/zones.rb +17 -0
  147. data/lib/facter/zpool_version.rb +10 -0
  148. data/spec/fixtures/cpuinfo/amd64dual +57 -0
  149. data/spec/fixtures/cpuinfo/amd64quad +79 -0
  150. data/spec/fixtures/cpuinfo/amd64solo +23 -0
  151. data/spec/fixtures/cpuinfo/amd64tri +86 -0
  152. data/spec/fixtures/cpuinfo/amd64twentyfour +600 -0
  153. data/spec/fixtures/cpuinfo/bbg3-armel +12 -0
  154. data/spec/fixtures/cpuinfo/beaglexm-armel +12 -0
  155. data/spec/fixtures/cpuinfo/panda-armel +17 -0
  156. data/spec/fixtures/cpuinfo/ppc64 +19 -0
  157. data/spec/fixtures/cpuinfo/sparc +10 -0
  158. data/spec/fixtures/hpux/machinfo/hppa-rp4440 +26 -0
  159. data/spec/fixtures/hpux/machinfo/ia64-rx2620 +49 -0
  160. data/spec/fixtures/hpux/machinfo/ia64-rx6600 +26 -0
  161. data/spec/fixtures/hpux/machinfo/ia64-rx8640 +53 -0
  162. data/spec/fixtures/hpux/machinfo/superdome-server-SD32B +53 -0
  163. data/spec/fixtures/hpux/machinfo/superdome2-16s +31 -0
  164. data/spec/fixtures/hpux/sched.models +174 -0
  165. data/spec/fixtures/hpux/unistd.h +1534 -0
  166. data/spec/fixtures/ifconfig/bsd_ifconfig_all_with_multiple_interfaces +18 -0
  167. data/spec/fixtures/ifconfig/centos_5_5 +17 -0
  168. data/spec/fixtures/ifconfig/centos_5_5_eth0 +8 -0
  169. data/spec/fixtures/ifconfig/darwin_10_3_0 +26 -0
  170. data/spec/fixtures/ifconfig/darwin_10_3_0_en0 +6 -0
  171. data/spec/fixtures/ifconfig/darwin_10_6_4 +28 -0
  172. data/spec/fixtures/ifconfig/darwin_10_6_4_en1 +6 -0
  173. data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack +8 -0
  174. data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack_en1 +7 -0
  175. data/spec/fixtures/ifconfig/darwin_9_8_0 +26 -0
  176. data/spec/fixtures/ifconfig/darwin_9_8_0_en0 +6 -0
  177. data/spec/fixtures/ifconfig/darwin_ifconfig_all_with_multiple_interfaces +23 -0
  178. data/spec/fixtures/ifconfig/fedora_10 +36 -0
  179. data/spec/fixtures/ifconfig/fedora_10_eth0 +9 -0
  180. data/spec/fixtures/ifconfig/fedora_13 +18 -0
  181. data/spec/fixtures/ifconfig/fedora_13_eth0 +9 -0
  182. data/spec/fixtures/ifconfig/fedora_8 +38 -0
  183. data/spec/fixtures/ifconfig/fedora_8_eth0 +9 -0
  184. data/spec/fixtures/ifconfig/freebsd_6_0 +12 -0
  185. data/spec/fixtures/ifconfig/ifconfig_net_tools_1.60.txt +19 -0
  186. data/spec/fixtures/ifconfig/ifconfig_ubuntu_1204.txt +16 -0
  187. data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces +19 -0
  188. data/spec/fixtures/ifconfig/linux_ifconfig_no_addr +19 -0
  189. data/spec/fixtures/ifconfig/linux_ifconfig_no_mac +8 -0
  190. data/spec/fixtures/ifconfig/linux_ifconfig_venet +24 -0
  191. data/spec/fixtures/ifconfig/open_solaris_10 +12 -0
  192. data/spec/fixtures/ifconfig/open_solaris_b132 +20 -0
  193. data/spec/fixtures/ifconfig/openbsd_bridge_rules +11 -0
  194. data/spec/fixtures/ifconfig/sunos_ifconfig_all_with_multiple_interfaces +10 -0
  195. data/spec/fixtures/ifconfig/ubuntu_7_04 +38 -0
  196. data/spec/fixtures/ifconfig/ubuntu_7_04_eth0 +9 -0
  197. data/spec/fixtures/ldom/ldom_v1 +6 -0
  198. data/spec/fixtures/netstat/centos_5_5 +5 -0
  199. data/spec/fixtures/netstat/darwin_10_3_0 +35 -0
  200. data/spec/fixtures/netstat/darwin_10_6_4 +29 -0
  201. data/spec/fixtures/netstat/darwin_10_6_6_dualstack +34 -0
  202. data/spec/fixtures/netstat/darwin_9_8_0 +28 -0
  203. data/spec/fixtures/netstat/fedora_10 +7 -0
  204. data/spec/fixtures/netstat/open_solaris_10 +16 -0
  205. data/spec/fixtures/netstat/open_solaris_b132 +17 -0
  206. data/spec/fixtures/netstat/ubuntu_7_04 +7 -0
  207. data/spec/fixtures/processorcount/solaris-psrinfo +24 -0
  208. data/spec/fixtures/processorcount/solaris-sparc-kstat-cpu-info +1216 -0
  209. data/spec/fixtures/processorcount/solaris-x86_64-kstat-cpu-info +225 -0
  210. data/spec/fixtures/unit/dhcp_servers/nmcli_devices +4 -0
  211. data/spec/fixtures/unit/dhcp_servers/nmcli_devices_disconnected +4 -0
  212. data/spec/fixtures/unit/dhcp_servers/nmcli_eth0_dhcp +36 -0
  213. data/spec/fixtures/unit/dhcp_servers/nmcli_eth0_static +24 -0
  214. data/spec/fixtures/unit/dhcp_servers/nmcli_wlan0_dhcp +49 -0
  215. data/spec/fixtures/unit/dhcp_servers/nmcli_wlan0_static +37 -0
  216. data/spec/fixtures/unit/dhcp_servers/route +3 -0
  217. data/spec/fixtures/unit/dhcp_servers/route_nogw +1 -0
  218. data/spec/fixtures/unit/ec2/rest/meta-data/root +20 -0
  219. data/spec/fixtures/unit/filesystems/linux +28 -0
  220. data/spec/fixtures/unit/gce/metadata/metadata.json +69 -0
  221. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt +19 -0
  222. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.em1 +10 -0
  223. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.lo +8 -0
  224. data/spec/fixtures/unit/ipaddress/ifconfig_multiple_127_addresses.txt +20 -0
  225. data/spec/fixtures/unit/ipaddress/ifconfig_net_tools_1.60.txt +19 -0
  226. data/spec/fixtures/unit/ipaddress/ifconfig_non_english_locale.txt +18 -0
  227. data/spec/fixtures/unit/ipaddress/ifconfig_ubuntu_1204.txt +16 -0
  228. data/spec/fixtures/unit/kernelrelease/openbsd-5.3 +2 -0
  229. data/spec/fixtures/unit/kernelrelease/openbsd-5.3-current +3 -0
  230. data/spec/fixtures/unit/memory/aix-svmon +9 -0
  231. data/spec/fixtures/unit/memory/aix-swap_l +2 -0
  232. data/spec/fixtures/unit/memory/darwin-swapinfo-multiple +3 -0
  233. data/spec/fixtures/unit/memory/darwin-swapinfo-single +2 -0
  234. data/spec/fixtures/unit/memory/darwin-vm_stat +13 -0
  235. data/spec/fixtures/unit/memory/dragonfly-vmstat +3 -0
  236. data/spec/fixtures/unit/memory/freebsd-vmstat +3 -0
  237. data/spec/fixtures/unit/memory/linux-proc_meminfo +10 -0
  238. data/spec/fixtures/unit/memory/openbsd-vmstat +3 -0
  239. data/spec/fixtures/unit/memory/smartos_zone_swap_l-single +2 -0
  240. data/spec/fixtures/unit/memory/solaris-prtconf +4 -0
  241. data/spec/fixtures/unit/memory/solaris-swap_l-multiple +3 -0
  242. data/spec/fixtures/unit/memory/solaris-swap_l-single +2 -0
  243. data/spec/fixtures/unit/memory/solaris-vmstat +3 -0
  244. data/spec/fixtures/unit/netmask/darwin_10_8_5.txt +30 -0
  245. data/spec/fixtures/unit/netmask/ifconfig_aix_7.txt +3 -0
  246. data/spec/fixtures/unit/netmask/ifconfig_net_tools_1.60.txt +19 -0
  247. data/spec/fixtures/unit/netmask/ifconfig_ubuntu_1204.txt +16 -0
  248. data/spec/fixtures/unit/selinux/selinux_sestatus +6 -0
  249. data/spec/fixtures/unit/util/dhcp_servers/route +3 -0
  250. data/spec/fixtures/unit/util/dhcp_servers/route_nogw +1 -0
  251. data/spec/fixtures/unit/util/ec2/centos-arp-ec2.out +1 -0
  252. data/spec/fixtures/unit/util/ec2/linux-arp-ec2.out +1 -0
  253. data/spec/fixtures/unit/util/ec2/linux-arp-not-ec2.out +5 -0
  254. data/spec/fixtures/unit/util/ec2/solaris8_arp_a_not_ec2.out +7 -0
  255. data/spec/fixtures/unit/util/ec2/windows-2008-arp-a-not-ec2.out +6 -0
  256. data/spec/fixtures/unit/util/ec2/windows-2008-arp-a.out +10 -0
  257. data/spec/fixtures/unit/util/ip/6.0-STABLE_FreeBSD_ifconfig +12 -0
  258. data/spec/fixtures/unit/util/ip/Mac_OS_X_10.5.5_ifconfig +26 -0
  259. data/spec/fixtures/unit/util/ip/darwin_ifconfig_all_with_multiple_interfaces +10 -0
  260. data/spec/fixtures/unit/util/ip/darwin_ifconfig_single_interface +6 -0
  261. data/spec/fixtures/unit/util/ip/debian_kfreebsd_ifconfig +40 -0
  262. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan0 +2 -0
  263. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan1 +2 -0
  264. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lo0 +2 -0
  265. data/spec/fixtures/unit/util/ip/hpux_1111_lanscan +5 -0
  266. data/spec/fixtures/unit/util/ip/hpux_1111_netstat_in +4 -0
  267. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan0 +2 -0
  268. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan1 +2 -0
  269. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lo0 +2 -0
  270. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_lanscan +5 -0
  271. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_netstat_in +4 -0
  272. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan0 +2 -0
  273. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan1 +2 -0
  274. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lo0 +2 -0
  275. data/spec/fixtures/unit/util/ip/hpux_1131_lanscan +4 -0
  276. data/spec/fixtures/unit/util/ip/hpux_1131_netstat_in +4 -0
  277. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan1 +2 -0
  278. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4 +2 -0
  279. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4_1 +2 -0
  280. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lo0 +2 -0
  281. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_lanscan +9 -0
  282. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_netstat_in +6 -0
  283. data/spec/fixtures/unit/util/ip/linux_2_6_35_proc_net_bonding_bond0 +19 -0
  284. data/spec/fixtures/unit/util/ip/linux_get_single_interface_eth0 +10 -0
  285. data/spec/fixtures/unit/util/ip/linux_get_single_interface_ib0 +8 -0
  286. data/spec/fixtures/unit/util/ip/linux_get_single_interface_lo +9 -0
  287. data/spec/fixtures/unit/util/ip/linux_ifconfig_all_with_single_interface +18 -0
  288. data/spec/fixtures/unit/util/ip/linux_ifconfig_ib0 +8 -0
  289. data/spec/fixtures/unit/util/ip/solaris_ifconfig_all_with_multiple_interfaces +8 -0
  290. data/spec/fixtures/unit/util/ip/solaris_ifconfig_single_interface +3 -0
  291. data/spec/fixtures/unit/util/ip/windows_netsh_all_interfaces +12 -0
  292. data/spec/fixtures/unit/util/ip/windows_netsh_single_interface +7 -0
  293. data/spec/fixtures/unit/util/ip/windows_netsh_single_interface6 +18 -0
  294. data/spec/fixtures/unit/util/manufacturer/freebsd_dmidecode +42 -0
  295. data/spec/fixtures/unit/util/manufacturer/intel_linux_dmidecode +549 -0
  296. data/spec/fixtures/unit/util/manufacturer/linux_dmidecode_with_spaces +60 -0
  297. data/spec/fixtures/unit/util/manufacturer/opensolaris_smbios +33 -0
  298. data/spec/fixtures/unit/util/manufacturer/smartos_smbios +533 -0
  299. data/spec/fixtures/unit/util/manufacturer/solaris_sunfire_v120_prtdiag +33 -0
  300. data/spec/fixtures/unit/util/manufacturer/solaris_t5220_prtdiag +136 -0
  301. data/spec/fixtures/unit/util/operatingsystem/cumuluslinux.txt +8 -0
  302. data/spec/fixtures/unit/util/operatingsystem/redhat-7.txt +12 -0
  303. data/spec/fixtures/unit/util/operatingsystem/sabayon.txt +7 -0
  304. data/spec/fixtures/unit/util/operatingsystem/wheezy.txt +9 -0
  305. data/spec/fixtures/unit/util/partitions/partitions/mount +9 -0
  306. data/spec/fixtures/unit/util/processor/solaris-i86pc +28 -0
  307. data/spec/fixtures/unit/util/processor/solaris-sun4u +151 -0
  308. data/spec/fixtures/unit/util/processor/x86-pentium2 +41 -0
  309. data/spec/fixtures/unit/util/uptime/kstat_boot_time +1 -0
  310. data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_darwin +1 -0
  311. data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_openbsd +1 -0
  312. data/spec/fixtures/unit/util/uptime/ubuntu_proc_uptime +1 -0
  313. data/spec/fixtures/unit/util/virtual/invalid_unicode_dmi_entries +0 -0
  314. data/spec/fixtures/unit/util/virtual/solaris10_proc_self_status1 +0 -0
  315. data/spec/fixtures/unit/util/vlans/centos-5-no-vlans +2 -0
  316. data/spec/fixtures/unit/util/vlans/linux_vlan_config +6 -0
  317. data/spec/fixtures/unit/util/xendomains/xendomains +4 -0
  318. data/spec/fixtures/unit/virtual/sysfs_dmi_entries_raw.txt +0 -0
  319. data/spec/fixtures/unit/zfs_version/freebsd_8.2 +14 -0
  320. data/spec/fixtures/unit/zfs_version/freebsd_9.0 +13 -0
  321. data/spec/fixtures/unit/zfs_version/linux-fuse_0.6.9 +14 -0
  322. data/spec/fixtures/unit/zfs_version/solaris_10 +10 -0
  323. data/spec/fixtures/unit/zfs_version/solaris_11 +12 -0
  324. data/spec/fixtures/unit/zpool_version/freebsd_8.2 +26 -0
  325. data/spec/fixtures/unit/zpool_version/freebsd_9.0 +38 -0
  326. data/spec/fixtures/unit/zpool_version/linux-fuse_0.6.9 +35 -0
  327. data/spec/fixtures/unit/zpool_version/solaris_10 +31 -0
  328. data/spec/fixtures/unit/zpool_version/solaris_11 +43 -0
  329. data/spec/fixtures/virtual/proc_1_cgroup/in_a_container +9 -0
  330. data/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container +8 -0
  331. data/spec/fixtures/virtual/proc_1_cgroup/not_in_a_container +9 -0
  332. data/spec/fixtures/virtual/proc_self_status/vserver_2_1/guest +37 -0
  333. data/spec/fixtures/virtual/proc_self_status/vserver_2_1/host +36 -0
  334. data/spec/fixtures/virtual/proc_self_status/vserver_2_3/guest +39 -0
  335. data/spec/fixtures/virtual/proc_self_status/vserver_2_3/host +39 -0
  336. data/spec/integration/facter_spec.rb +39 -0
  337. data/spec/lib/facter_spec/cpuinfo.rb +15 -0
  338. data/spec/lib/facter_spec/windows_network.rb +64 -0
  339. data/spec/puppetlabs_spec/files.rb +57 -0
  340. data/spec/puppetlabs_spec/fixtures.rb +49 -0
  341. data/spec/puppetlabs_spec/matchers.rb +87 -0
  342. data/spec/puppetlabs_spec/verbose.rb +9 -0
  343. data/spec/puppetlabs_spec_helper.rb +26 -0
  344. data/spec/shared_contexts/platform.rb +55 -0
  345. data/spec/shared_formats/parses.rb +3 -0
  346. data/spec/spec_helper.rb +75 -0
  347. data/spec/unit/application_spec.rb +101 -0
  348. data/spec/unit/architecture_spec.rb +63 -0
  349. data/spec/unit/blockdevices_spec.rb +109 -0
  350. data/spec/unit/core/aggregate_spec.rb +125 -0
  351. data/spec/unit/core/directed_graph_spec.rb +79 -0
  352. data/spec/unit/core/execution/base_spec.rb +130 -0
  353. data/spec/unit/core/execution/posix_spec.rb +86 -0
  354. data/spec/unit/core/execution/windows_spec.rb +106 -0
  355. data/spec/unit/core/execution_spec.rb +42 -0
  356. data/spec/unit/core/logging_spec.rb +104 -0
  357. data/spec/unit/core/resolvable_spec.rb +81 -0
  358. data/spec/unit/core/suitable_spec.rb +106 -0
  359. data/spec/unit/dhcp_servers_spec.rb +152 -0
  360. data/spec/unit/domain_spec.rb +310 -0
  361. data/spec/unit/ec2/rest_spec.rb +145 -0
  362. data/spec/unit/ec2_spec.rb +127 -0
  363. data/spec/unit/facter_spec.rb +108 -0
  364. data/spec/unit/filesystems_spec.rb +50 -0
  365. data/spec/unit/fqdn_spec.rb +16 -0
  366. data/spec/unit/gce/metadata_spec.rb +49 -0
  367. data/spec/unit/gce_spec.rb +34 -0
  368. data/spec/unit/hardwareisa_spec.rb +41 -0
  369. data/spec/unit/hardwaremodel_spec.rb +56 -0
  370. data/spec/unit/hostname_spec.rb +40 -0
  371. data/spec/unit/id_spec.rb +29 -0
  372. data/spec/unit/interfaces_spec.rb +57 -0
  373. data/spec/unit/ipaddress6_spec.rb +161 -0
  374. data/spec/unit/ipaddress_spec.rb +114 -0
  375. data/spec/unit/kernel_spec.rb +24 -0
  376. data/spec/unit/kernelmajversion_spec.rb +22 -0
  377. data/spec/unit/kernelrelease_spec.rb +69 -0
  378. data/spec/unit/kernelversion_spec.rb +32 -0
  379. data/spec/unit/ldom_spec.rb +75 -0
  380. data/spec/unit/lsbdistcodename_spec.rb +25 -0
  381. data/spec/unit/lsbdistdescription_spec.rb +25 -0
  382. data/spec/unit/lsbdistid_spec.rb +25 -0
  383. data/spec/unit/lsbdistrelease_spec.rb +25 -0
  384. data/spec/unit/lsbmajdistrelease_spec.rb +13 -0
  385. data/spec/unit/lsbrelease_spec.rb +25 -0
  386. data/spec/unit/macaddress_spec.rb +73 -0
  387. data/spec/unit/manufacturer_spec.rb +115 -0
  388. data/spec/unit/memory_spec.rb +470 -0
  389. data/spec/unit/netmask_spec.rb +106 -0
  390. data/spec/unit/operatingsystem_spec.rb +160 -0
  391. data/spec/unit/operatingsystemmajrelease_spec.rb +38 -0
  392. data/spec/unit/operatingsystemrelease_spec.rb +236 -0
  393. data/spec/unit/osfamily_spec.rb +62 -0
  394. data/spec/unit/partitions_spec.rb +48 -0
  395. data/spec/unit/physicalprocessorcount_spec.rb +85 -0
  396. data/spec/unit/processor_spec.rb +401 -0
  397. data/spec/unit/ps_spec.rb +42 -0
  398. data/spec/unit/selinux_spec.rb +114 -0
  399. data/spec/unit/ssh_spec.rb +77 -0
  400. data/spec/unit/uniqueid_spec.rb +27 -0
  401. data/spec/unit/uptime_spec.rb +110 -0
  402. data/spec/unit/util/collection_spec.rb +258 -0
  403. data/spec/unit/util/config_spec.rb +97 -0
  404. data/spec/unit/util/confine_spec.rb +148 -0
  405. data/spec/unit/util/dhcp_servers_spec.rb +63 -0
  406. data/spec/unit/util/directory_loader_spec.rb +88 -0
  407. data/spec/unit/util/ec2_spec.rb +184 -0
  408. data/spec/unit/util/fact_spec.rb +142 -0
  409. data/spec/unit/util/file_read_spec.rb +29 -0
  410. data/spec/unit/util/formatter_spec.rb +50 -0
  411. data/spec/unit/util/ip/windows_spec.rb +80 -0
  412. data/spec/unit/util/ip_spec.rb +467 -0
  413. data/spec/unit/util/loader_spec.rb +286 -0
  414. data/spec/unit/util/macaddress_spec.rb +141 -0
  415. data/spec/unit/util/macosx_spec.rb +114 -0
  416. data/spec/unit/util/manufacturer_spec.rb +223 -0
  417. data/spec/unit/util/normalization_spec.rb +113 -0
  418. data/spec/unit/util/operatingsystem_spec.rb +92 -0
  419. data/spec/unit/util/parser_spec.rb +200 -0
  420. data/spec/unit/util/partitions/partitions_spec.rb +67 -0
  421. data/spec/unit/util/partitions_spec.rb +19 -0
  422. data/spec/unit/util/posix_spec.rb +11 -0
  423. data/spec/unit/util/processor_spec.rb +92 -0
  424. data/spec/unit/util/registry_spec.rb +76 -0
  425. data/spec/unit/util/resolution_spec.rb +129 -0
  426. data/spec/unit/util/solaris_zones_spec.rb +127 -0
  427. data/spec/unit/util/uptime_spec.rb +126 -0
  428. data/spec/unit/util/values_spec.rb +171 -0
  429. data/spec/unit/util/virtual_spec.rb +364 -0
  430. data/spec/unit/util/vlans_spec.rb +42 -0
  431. data/spec/unit/util/wmi_spec.rb +19 -0
  432. data/spec/unit/util/xendomains_spec.rb +21 -0
  433. data/spec/unit/version_spec.rb +42 -0
  434. data/spec/unit/virtual_spec.rb +519 -0
  435. data/spec/unit/zfs_version_spec.rb +75 -0
  436. data/spec/unit/zonename_spec.rb +14 -0
  437. data/spec/unit/zones_spec.rb +55 -0
  438. data/spec/unit/zpool_version_spec.rb +75 -0
  439. data/spec/watchr.rb +125 -0
  440. metadata +815 -0
@@ -0,0 +1,47 @@
1
+ # Fact: operatingsystemmajrelease
2
+ #
3
+ # Purpose: Returns the major release of the operating system.
4
+ #
5
+ # Resolution:
6
+ # Splits down the operatingsystemrelease fact at decimal point for
7
+ # osfamily RedHat derivatives and Debian.
8
+ # Uses operatingsystemrelease to the first non decimal character for
9
+ # operatingsystem Solaris
10
+ #
11
+ # This should be the same as lsbmajdistrelease, but on minimal systems there
12
+ # are too many dependencies to use LSB
13
+ #
14
+ # List of operatingsystems at time of writing:
15
+ #"Alpine" "Amazon" "Archlinux" "Ascendos" "Bluewhite64" "CentOS" "CloudLinux"
16
+ #"Debian" "Fedora" "Gentoo" "Mandrake" "Mandriva" "MeeGo" "OEL" "OpenSuSE"
17
+ #"OracleLinux" "OVS" "PSBM" "RedHat" "Scientific" "Slackware" "Slamd64" "SLC"
18
+ #"SLED" "SLES" "SuSE" "Ubuntu" "VMWareESX"
19
+
20
+ Facter.add(:operatingsystemmajrelease) do
21
+ confine :operatingsystem => [
22
+ :Amazon,
23
+ :CentOS,
24
+ :CloudLinux,
25
+ :Debian,
26
+ :Fedora,
27
+ :OEL,
28
+ :OracleLinux,
29
+ :OVS,
30
+ :RedHat,
31
+ :Scientific,
32
+ :SLC,
33
+ :CumulusLinux
34
+ ]
35
+ setcode do
36
+ Facter.value('operatingsystemrelease').split('.').first
37
+ end
38
+ end
39
+
40
+ Facter.add(:operatingsystemmajrelease) do
41
+ confine :operatingsystem => :solaris
42
+ setcode do
43
+ if match = Facter.value(:operatingsystemrelease).match(/^(\d+)/)
44
+ match.captures[0]
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,250 @@
1
+ # Fact: operatingsystemrelease
2
+ #
3
+ # Purpose: Returns the release of the operating system.
4
+ #
5
+ # Resolution:
6
+ # On RedHat derivatives, returns their '/etc/<variant>-release' file.
7
+ # On Debian, returns '/etc/debian_version'.
8
+ # On Ubuntu, parses '/etc/lsb-release' for the release version.
9
+ # On Suse, derivatives, parses '/etc/SuSE-release' for a selection of version
10
+ # information.
11
+ # On Slackware, parses '/etc/slackware-version'.
12
+ # On Amazon Linux, returns the 'lsbdistrelease' value.
13
+ # On Mageia, parses '/etc/mageia-release' for the release version.
14
+ #
15
+ # On all remaining systems, returns the 'kernelrelease' value.
16
+ #
17
+ # Caveats:
18
+ #
19
+
20
+ require 'facter/util/operatingsystem'
21
+ require 'facter/util/file_read'
22
+
23
+ Facter.add(:operatingsystemrelease) do
24
+ confine :operatingsystem => %w{CentOS Fedora oel ovs OracleLinux RedHat MeeGo Scientific SLC Ascendos CloudLinux PSBM}
25
+ setcode do
26
+ case Facter.value(:operatingsystem)
27
+ when "CentOS", "RedHat", "Scientific", "SLC", "Ascendos", "CloudLinux", "PSBM", "XenServer"
28
+ releasefile = "/etc/redhat-release"
29
+ when "Fedora"
30
+ releasefile = "/etc/fedora-release"
31
+ when "MeeGo"
32
+ releasefile = "/etc/meego-release"
33
+ when "OracleLinux"
34
+ releasefile = "/etc/oracle-release"
35
+ when "OEL", "oel"
36
+ releasefile = "/etc/enterprise-release"
37
+ when "OVS", "ovs"
38
+ releasefile = "/etc/ovs-release"
39
+ end
40
+
41
+ if release = Facter::Util::FileRead.read(releasefile)
42
+ line = release.split("\n").first.chomp
43
+ if match = /\(Rawhide\)$/.match(line)
44
+ "Rawhide"
45
+ elsif match = /release (\d[\d.]*)/.match(line)
46
+ match[1]
47
+ end
48
+ end
49
+ end
50
+ end
51
+
52
+ Facter.add(:operatingsystemrelease) do
53
+ confine :operatingsystem => %w{Debian}
54
+ setcode do
55
+ if release = Facter::Util::FileRead.read('/etc/debian_version')
56
+ release.sub!(/\s*$/, '')
57
+ release
58
+ end
59
+ end
60
+ end
61
+
62
+ Facter.add(:operatingsystemrelease) do
63
+ confine :operatingsystem => %w{Ubuntu}
64
+ setcode do
65
+ if release = Facter::Util::FileRead.read('/etc/lsb-release')
66
+ if match = release.match(/DISTRIB_RELEASE=((\d+.\d+)(\.(\d+))?)/)
67
+ # Return only the major and minor version numbers. This behavior must
68
+ # be preserved for compatibility reasons.
69
+ match[2]
70
+ end
71
+ end
72
+ end
73
+ end
74
+
75
+ Facter.add(:operatingsystemrelease) do
76
+ confine :operatingsystem => 'LinuxMint'
77
+ setcode do
78
+ if release = Facter::Util::FileRead.read('/etc/linuxmint/info')
79
+ if match = release.match(/RELEASE\=(\d+)/)
80
+ match[1]
81
+ end
82
+ end
83
+ end
84
+ end
85
+
86
+ Facter.add(:operatingsystemrelease) do
87
+ confine :operatingsystem => 'CumulusLinux'
88
+ setcode do
89
+ Facter::Util::Operatingsystem.os_release['VERSION_ID']
90
+ end
91
+ end
92
+
93
+ Facter.add(:operatingsystemrelease) do
94
+ confine :operatingsystem => %w{SLES SLED OpenSuSE}
95
+ setcode do
96
+ if release = Facter::Util::FileRead.read('/etc/SuSE-release')
97
+ if match = /^VERSION\s*=\s*(\d+)/.match(release)
98
+ releasemajor = match[1]
99
+ if match = /^PATCHLEVEL\s*=\s*(\d+)/.match(release)
100
+ releaseminor = match[1]
101
+ elsif match = /^VERSION\s=.*.(\d+)/.match(release)
102
+ releaseminor = match[1]
103
+ else
104
+ releaseminor = "0"
105
+ end
106
+ releasemajor + "." + releaseminor
107
+ else
108
+ "unknown"
109
+ end
110
+ end
111
+ end
112
+ end
113
+
114
+ Facter.add(:operatingsystemrelease) do
115
+ confine :operatingsystem => %w{OpenWrt}
116
+ setcode do
117
+ if release = Facter::Util::FileRead.read('/etc/openwrt_version')
118
+ if match = /^(\d+\.\d+.*)/.match(release)
119
+ match[1]
120
+ end
121
+ end
122
+ end
123
+ end
124
+
125
+ Facter.add(:operatingsystemrelease) do
126
+ confine :operatingsystem => %w{Slackware}
127
+ setcode do
128
+ if release = Facter::Util::FileRead.read('/etc/slackware-version')
129
+ if match = /Slackware ([0-9.]+)/.match(release)
130
+ match[1]
131
+ end
132
+ end
133
+ end
134
+ end
135
+
136
+ Facter.add(:operatingsystemrelease) do
137
+ confine :operatingsystem => %w{Mageia}
138
+ setcode do
139
+ if release = Facter::Util::FileRead.read('/etc/mageia-release')
140
+ if match = /Mageia release ([0-9.]+)/.match(release)
141
+ match[1]
142
+ end
143
+ end
144
+ end
145
+ end
146
+
147
+ Facter.add(:operatingsystemrelease) do
148
+ confine :operatingsystem => %w{Bluewhite64}
149
+ setcode do
150
+ if release = Facter::Util::FileRead.read('/etc/bluewhite64-version')
151
+ if match = /^\s*\w+\s+(\d+)\.(\d+)/.match(release)
152
+ match[1] + "." + match[2]
153
+ else
154
+ "unknown"
155
+ end
156
+ end
157
+ end
158
+ end
159
+
160
+ Facter.add(:operatingsystemrelease) do
161
+ confine :operatingsystem => %w{VMwareESX}
162
+ setcode do
163
+ release = Facter::Core::Execution.exec('vmware -v')
164
+ if match = /VMware ESX .*?(\d.*)/.match(release)
165
+ match[1]
166
+ end
167
+ end
168
+ end
169
+
170
+ Facter.add(:operatingsystemrelease) do
171
+ confine :operatingsystem => %w{Slamd64}
172
+ setcode do
173
+ if release = Facter::Util::FileRead.read('/etc/slamd64-version')
174
+ if match = /^\s*\w+\s+(\d+)\.(\d+)/.match(release)
175
+ match[1] + "." + match[2]
176
+ else
177
+ "unknown"
178
+ end
179
+ end
180
+ end
181
+ end
182
+
183
+ Facter.add(:operatingsystemrelease) do
184
+ confine :operatingsystem => :Alpine
185
+ setcode do
186
+ if release = Facter::Util::FileRead.read('/etc/alpine-release')
187
+ release.sub!(/\s*$/, '')
188
+ release
189
+ end
190
+ end
191
+ end
192
+
193
+ Facter.add(:operatingsystemrelease) do
194
+ confine :operatingsystem => %W{Amazon}
195
+ setcode do Facter[:lsbdistrelease].value end
196
+ end
197
+
198
+ Facter.add(:operatingsystemrelease) do
199
+ confine :osfamily => :solaris
200
+ setcode do
201
+ if release = Facter::Util::FileRead.read('/etc/release')
202
+ line = release.split("\n").first.chomp
203
+ # Solaris 10: Solaris 10 10/09 s10x_u8wos_08a X86
204
+ # Solaris 11 (old naming scheme): Oracle Solaris 11 11/11 X86
205
+ # Solaris 11 (new naming scheme): Oracle Solaris 11.1 SPARC
206
+ if match = /\s+s(\d+)[sx]?(_u\d+)?.*(?:SPARC|X86)/.match(line)
207
+ match.captures.join('')
208
+ elsif match = /Solaris ([0-9\.]+(?:\s*[0-9\.\/]+))\s*(?:SPARC|X86)/.match(line)
209
+ match.captures[0]
210
+ end
211
+ end
212
+ end
213
+ end
214
+
215
+ Facter.add(:operatingsystemrelease) do
216
+ confine :operatingsystem => :windows
217
+ setcode do
218
+ require 'facter/util/wmi'
219
+ result = nil
220
+ Facter::Util::WMI.execquery("SELECT version, producttype FROM Win32_OperatingSystem").each do |os|
221
+ result =
222
+ case os.version
223
+ when /^6\.2/
224
+ os.producttype == 1 ? "8" : "2012"
225
+ when /^6\.1/
226
+ os.producttype == 1 ? "7" : "2008 R2"
227
+ when /^6\.0/
228
+ os.producttype == 1 ? "Vista" : "2008"
229
+ when /^5\.2/
230
+ if os.producttype == 1
231
+ "XP"
232
+ else
233
+ begin
234
+ os.othertypedescription == "R2" ? "2003 R2" : "2003"
235
+ rescue NoMethodError
236
+ "2003"
237
+ end
238
+ end
239
+ else
240
+ Facter[:kernelrelease].value
241
+ end
242
+ break
243
+ end
244
+ result
245
+ end
246
+ end
247
+
248
+ Facter.add(:operatingsystemrelease) do
249
+ setcode do Facter[:kernelrelease].value end
250
+ end
@@ -0,0 +1,37 @@
1
+ # Fact: osfamily
2
+ #
3
+ # Purpose: Returns the operating system
4
+ #
5
+ # Resolution:
6
+ # Maps operating systems to operating system families, such as linux
7
+ # distribution derivatives. Adds mappings from specific operating systems
8
+ # to kernels in the case that it is relevant.
9
+ #
10
+ # Caveats:
11
+ # This fact is completely reliant on the operatingsystem fact, and no
12
+ # heuristics are used
13
+ #
14
+
15
+ Facter.add(:osfamily) do
16
+
17
+ setcode do
18
+ case Facter.value(:operatingsystem)
19
+ when "RedHat", "Fedora", "CentOS", "Scientific", "SLC", "Ascendos", "CloudLinux", "PSBM", "OracleLinux", "OVS", "OEL", "Amazon", "XenServer"
20
+ "RedHat"
21
+ when "LinuxMint", "Ubuntu", "Debian", "CumulusLinux"
22
+ "Debian"
23
+ when "SLES", "SLED", "OpenSuSE", "SuSE"
24
+ "Suse"
25
+ when "Solaris", "Nexenta", "OmniOS", "OpenIndiana", "SmartOS"
26
+ "Solaris"
27
+ when "Gentoo"
28
+ "Gentoo"
29
+ when "Archlinux"
30
+ "Archlinux"
31
+ when "Mageia", "Mandriva", "Mandrake"
32
+ "Mandrake"
33
+ else
34
+ Facter.value("kernel")
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,35 @@
1
+ # Fact: partitions
2
+ #
3
+ # Purpose:
4
+ # Return the details of the disk partitions
5
+ #
6
+ # Resolution:
7
+ # Parse the contents of /sys/block/<device>/size to receive the size (multiplying by 512 to correct for blocks-to-bytes)
8
+ #
9
+ # Caveats:
10
+ # Only supports Linux 2.6+ at this time, due to the reliance on sysfs
11
+ #
12
+ # Author: Chris Portman <chris@portman.net.au>
13
+
14
+ require 'facter'
15
+ require 'facter/util/partitions'
16
+
17
+ Facter.add(:partitions) do
18
+ confine do
19
+ Facter::Util::Partitions.available? ? true : nil
20
+ end
21
+
22
+ setcode do
23
+ partitions = {}
24
+ Facter::Util::Partitions.list.each do |part|
25
+ details = {}
26
+ details['uuid'] = Facter::Util::Partitions.uuid(part)
27
+ details['size'] = Facter::Util::Partitions.size(part)
28
+ details['mount'] = Facter::Util::Partitions.mount(part)
29
+ details['filesystem'] = Facter::Util::Partitions.filesystem(part)
30
+ details.reject! {|k,v| v.nil? || v.to_s.empty? }
31
+ partitions[part] = details
32
+ end
33
+ partitions
34
+ end
35
+ end
@@ -0,0 +1,14 @@
1
+ # Fact: path
2
+ #
3
+ # Purpose: Returns the $PATH variable.
4
+ #
5
+ # Resolution: Gets $PATH from the environment.
6
+ #
7
+ # Caveats:
8
+ #
9
+
10
+ Facter.add(:path) do
11
+ setcode do
12
+ ENV['PATH']
13
+ end
14
+ end
@@ -0,0 +1,91 @@
1
+ # Fact: physicalprocessorcount
2
+ #
3
+ # Purpose: Return the number of physical processors.
4
+ #
5
+ # Resolution:
6
+ #
7
+ # Attempts to use sysfs to get the physical IDs of the processors. Falls
8
+ # back to /proc/cpuinfo and "physical id" if sysfs is not available.
9
+ #
10
+ # Caveats:
11
+ #
12
+ require 'facter/util/posix'
13
+
14
+ Facter.add('physicalprocessorcount') do
15
+ confine :kernel => :linux
16
+
17
+ setcode do
18
+ sysfs_cpu_directory = '/sys/devices/system/cpu' # This should always be there ...
19
+
20
+ if File.exists?(sysfs_cpu_directory)
21
+ #
22
+ # We assume that the sysfs file system has the correct number of entries
23
+ # under the "/sys/device/system/cpu" directory and if so then we process
24
+ # content of the file "physical_package_id" located inside the "topology"
25
+ # directory in each of the per-CPU sub-directories.
26
+ #
27
+ # As per Linux Kernel documentation and the file "cputopology.txt" located
28
+ # inside the "/usr/src/linux/Documentation" directory we can find following
29
+ # short explanation:
30
+ #
31
+ # (...)
32
+ #
33
+ # 1) /sys/devices/system/cpu/cpuX/topology/physical_package_id:
34
+ #
35
+ # physical package id of cpuX. Typically corresponds to a physical
36
+ # socket number, but the actual value is architecture and platform
37
+ # dependent.
38
+ #
39
+ # (...)
40
+ #
41
+ lookup_pattern = "#{sysfs_cpu_directory}" +
42
+ "/cpu*/topology/physical_package_id"
43
+
44
+ Dir.glob(lookup_pattern).collect { |f| Facter::Core::Execution.exec("cat #{f}")}.uniq.size.to_s
45
+
46
+ else
47
+ #
48
+ # Try to count number of CPUs using the proc file system next ...
49
+ #
50
+ # We assume that /proc/cpuinfo has what we need and is so then we need
51
+ # to make sure that we only count unique entries ...
52
+ #
53
+ str = Facter::Core::Execution.exec("grep 'physical.\\+:' /proc/cpuinfo")
54
+
55
+ if str then str.scan(/\d+/).uniq.size.to_s; end
56
+ end
57
+ end
58
+ end
59
+
60
+ Facter.add('physicalprocessorcount') do
61
+ confine :kernel => :windows
62
+ setcode do
63
+ require 'facter/util/wmi'
64
+ Facter::Util::WMI.execquery("select Name from Win32_Processor").Count.to_s
65
+ end
66
+ end
67
+
68
+ Facter.add('physicalprocessorcount') do
69
+ confine :kernel => :sunos
70
+
71
+ # (#16526) The -p flag was not added until Solaris 8. Our intent is to
72
+ # split the kernel release fact value on the dot, take the second element,
73
+ # and disable the -p flag for values < 8 when.
74
+ setcode do
75
+ kernelrelease = Facter.value(:kernelrelease)
76
+ (major_version, minor_version) = kernelrelease.split(".").map { |str| str.to_i }
77
+ if (major_version > 5) or (major_version == 5 and minor_version >= 8) then
78
+ Facter::Core::Execution.exec("/usr/sbin/psrinfo -p")
79
+ else
80
+ output = Facter::Core::Execution.exec("/usr/sbin/psrinfo")
81
+ output.split("\n").length.to_s
82
+ end
83
+ end
84
+ end
85
+
86
+ Facter.add('physicalprocessorcount') do
87
+ confine :kernel => :openbsd
88
+ setcode do
89
+ Facter::Util::POSIX.sysctl("hw.ncpufound")
90
+ end
91
+ end