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,56 @@
1
+ # Fact: macosx
2
+ #
3
+ # Purpose:
4
+ # Returns a number of Mac specific facts, from system profiler and
5
+ # sw_vers.
6
+ #
7
+ # Resolution:
8
+ # Uses util/macosx.rb to do the fact reconnaissance, then outputs them
9
+ # preceded by 'sp_'
10
+ #
11
+ # Caveats:
12
+ #
13
+
14
+ #
15
+ # macosx.rb
16
+ # Additional Facts coming from Mac OS X system_profiler command
17
+ #
18
+ # Copyright (C) 2007 Jeff McCune
19
+ # Author: Jeff McCune <jeff.mccune@northstarlabs.net>
20
+ #
21
+ # Jeff McCune
22
+ # There's a lot more information coming out of system_profiler -xml
23
+ # We could add quite a bit more, but I didn't want to overload facter
24
+ # at this point in time.
25
+ # In particular, Installed Software might be an interesting addition.
26
+
27
+ if Facter.value(:kernel) == "Darwin"
28
+ require 'facter/util/macosx'
29
+
30
+ Facter::Util::Macosx.hardware_overview.each do |fact, value|
31
+ Facter.add("sp_#{fact}") do
32
+ confine :kernel => :darwin
33
+ setcode do
34
+ value.to_s
35
+ end
36
+ end
37
+ end
38
+
39
+ Facter::Util::Macosx.os_overview.each do |fact, value|
40
+ Facter.add("sp_#{fact}") do
41
+ confine :kernel => :darwin
42
+ setcode do
43
+ value.to_s
44
+ end
45
+ end
46
+ end
47
+
48
+ Facter::Util::Macosx.sw_vers.each do |fact, value|
49
+ Facter.add(fact) do
50
+ confine :kernel => :darwin
51
+ setcode do
52
+ value
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,68 @@
1
+ # Fact: manufacturer
2
+ #
3
+ # Purpose: Return the hardware manufacturer information about the hardware.
4
+ #
5
+ # Resolution:
6
+ # On OpenBSD, queries sysctl values, via a util class.
7
+ # On SunOS Sparc, uses prtdiag via a util class.
8
+ # On Windows, queries the system via a util class.
9
+ # Uses the 'util/manufacturer.rb' for fallback parsing.
10
+ #
11
+ # Caveats:
12
+ #
13
+
14
+ # manufacturer.rb
15
+ # Facts related to hardware manufacturer
16
+ #
17
+ #
18
+
19
+ require 'facter/util/manufacturer'
20
+
21
+ if Facter.value(:kernel) == "OpenBSD"
22
+ mfg_keys = {
23
+ 'hw.vendor' => 'manufacturer',
24
+ 'hw.product' => 'productname',
25
+ 'hw.serialno' => 'serialnumber'
26
+ }
27
+
28
+ Facter::Manufacturer.sysctl_find_system_info(mfg_keys)
29
+ elsif Facter.value(:kernel) == "Darwin"
30
+ mfg_keys = {
31
+ 'hw.model' => 'productname'
32
+ }
33
+ Facter::Manufacturer.sysctl_find_system_info(mfg_keys)
34
+ elsif Facter.value(:kernel) == "SunOS" and Facter.value(:hardwareisa) == "sparc"
35
+ Facter::Manufacturer.prtdiag_sparc_find_system_info()
36
+ elsif Facter.value(:kernel) == "windows"
37
+ win32_keys = {
38
+ 'manufacturer' => ['Manufacturer', 'Bios'],
39
+ 'serialNumber' => ['Serialnumber', 'Bios'],
40
+ 'productname' => ['Name', 'ComputerSystemProduct']
41
+ }
42
+ Facter::Manufacturer.win32_find_system_info(win32_keys)
43
+ else
44
+ query = {
45
+ '[Bb]ase [Bb]oard [Ii]nformation' => [
46
+ { 'Manufacturer:' => 'boardmanufacturer' },
47
+ { 'Product(?: Name)?:' => 'boardproductname' },
48
+ { 'Serial Number:' => 'boardserialnumber' }
49
+ ],
50
+ '[Bb][Ii][Oo][Ss] [Ii]nformation' => [
51
+ { '[Vv]endor:' => 'bios_vendor' },
52
+ { '[Vv]ersion:' => 'bios_version' },
53
+ { '[Rr]elease [Dd]ate:' => 'bios_release_date' }
54
+ ],
55
+ '[Ss]ystem [Ii]nformation' => [
56
+ { 'Manufacturer:' => 'manufacturer' },
57
+ { 'Product(?: Name)?:' => 'productname' },
58
+ { 'Serial Number:' => 'serialnumber' },
59
+ { 'UUID:' => 'uuid' }
60
+ ],
61
+ '(Chassis Information|system enclosure or chassis)' => [
62
+ { '(?:Chassis )?Type:' => 'type' }
63
+ ]
64
+ }
65
+
66
+ Facter::Manufacturer.dmi_find_system_info(query)
67
+ end
68
+
@@ -0,0 +1,168 @@
1
+ # Fact: memory
2
+ #
3
+ # Purpose: Return information about memory and swap usage.
4
+ #
5
+ # Resolution:
6
+ # On Linuxes, uses Facter::Memory.meminfo_number from
7
+ # 'facter/util/memory.rb'
8
+ # On AIX, parses "swap -l" for swap values only.
9
+ # On OpenBSD, it parses "swapctl -l" for swap values, vmstat via a module for
10
+ # free memory, and "sysctl hw.physmem" for maximum memory.
11
+ # On FreeBSD, it parses "swapinfo -k" for swap values, and parses sysctl for
12
+ # maximum memory.
13
+ # On Solaris, use "swap -l" for swap values, and parsing prtconf for maximum
14
+ # memory, and again, the vmstat module for free memory.
15
+ #
16
+ # Caveats:
17
+ # Some BSD platforms aren't covered at all. AIX is missing memory values.
18
+ #
19
+
20
+ # memory.rb
21
+ # Additional Facts for memory/swap usage
22
+ #
23
+ # Copyright (C) 2006 Mooter Media Ltd
24
+ # Author: Matthew Palmer <matt@solutionsfirst.com.au>
25
+ #
26
+ #
27
+
28
+ require 'facter/util/memory'
29
+
30
+ [ "memorysize",
31
+ "memoryfree",
32
+ "swapsize",
33
+ "swapfree"
34
+ ].each do |fact|
35
+ Facter.add(fact) do
36
+ setcode do
37
+ name = Facter.fact(fact + "_mb").value
38
+ Facter::Memory.scale_number(name.to_f, "MB") if name
39
+ end
40
+ end
41
+ end
42
+
43
+ Facter.add("swapsize_mb") do
44
+ setcode do
45
+ swaptotal = Facter::Memory.swap_size
46
+ "%.2f" % [swaptotal] if swaptotal
47
+ end
48
+ end
49
+
50
+ Facter.add("swapfree_mb") do
51
+ setcode do
52
+ swapfree = Facter::Memory.swap_free
53
+ "%.2f" % [swapfree] if swapfree
54
+ end
55
+ end
56
+
57
+ Facter.add("memorysize_mb") do
58
+ setcode do
59
+ memtotal = Facter::Memory.mem_size
60
+ "%.2f" % [memtotal] if memtotal
61
+ end
62
+ end
63
+
64
+ Facter.add("memoryfree_mb") do
65
+ setcode do
66
+ memfree = Facter::Memory.mem_free
67
+ "%.2f" % [memfree] if memfree
68
+ end
69
+ end
70
+
71
+ { :memorysize_mb => "MemTotal",
72
+ :memoryfree_mb => "MemFree",
73
+ :swapsize_mb => "SwapTotal",
74
+ :swapfree_mb => "SwapFree"
75
+ }.each do |fact, name|
76
+ Facter.add(fact) do
77
+ confine :kernel => [ :linux, :"gnu/kfreebsd" ]
78
+ setcode do
79
+ meminfo = Facter::Memory.meminfo_number(name)
80
+ "%.2f" % [meminfo]
81
+ end
82
+ end
83
+ end
84
+
85
+ Facter.add("SwapEncrypted") do
86
+ confine :kernel => :openbsd
87
+ setcode do
88
+ sysctl_encrypted = Facter::Util::POSIX.sysctl("vm.swapencrypt.enable").to_i
89
+ !(sysctl_encrypted.zero?)
90
+ end
91
+ end
92
+
93
+ Facter.add("SwapEncrypted") do
94
+ confine :kernel => :Darwin
95
+ setcode do
96
+ swap = Facter::Util::POSIX.sysctl('vm.swapusage')
97
+ encrypted = false
98
+ if swap =~ /\(encrypted\)/ then encrypted = true; end
99
+ encrypted
100
+ end
101
+ end
102
+
103
+ if Facter.value(:kernel) == "SunOS"
104
+
105
+ Facter.add("memorysize_mb") do
106
+ confine :kernel => :sunos
107
+ # Total memory size available from prtconf
108
+ pconf = Facter::Core::Execution.exec('/usr/sbin/prtconf 2>/dev/null')
109
+ phymem = ""
110
+ pconf.each_line do |line|
111
+ if line =~ /^Memory size:\s+(\d+) Megabytes/
112
+ phymem = $1
113
+ end
114
+ end
115
+ setcode do
116
+ "%.2f" % [phymem.to_f]
117
+ end
118
+ end
119
+ end
120
+
121
+ if Facter.value(:kernel) == "windows"
122
+ require 'facter/util/wmi'
123
+
124
+ Facter.add("memorysize_mb") do
125
+ confine :kernel => :windows
126
+ setcode do
127
+ mem = 0
128
+ Facter::Util::WMI.execquery("select TotalPhysicalMemory from Win32_ComputerSystem").each do |comp|
129
+ mem = comp.TotalPhysicalMemory
130
+ break
131
+ end
132
+ "%.2f" % [(mem.to_f / 1024.0) / 1024.0]
133
+ end
134
+ end
135
+
136
+ Facter.add("memoryfree_mb") do
137
+ confine :kernel => :windows
138
+ setcode do
139
+ mem = 0
140
+ Facter::Util::WMI.execquery("select FreePhysicalMemory from Win32_OperatingSystem").each do |os|
141
+ mem = os.FreePhysicalMemory
142
+ break
143
+ end
144
+ "%.2f" % [mem.to_f / 1024.0]
145
+ end
146
+ end
147
+ end
148
+
149
+ Facter.add("swapsize_mb") do
150
+ confine :kernel => :dragonfly
151
+ setcode do
152
+ page_size = Facter::Util::POSIX.sysctl("hw.pagesize").to_f
153
+ swaptotal = Facter::Util::POSIX.sysctl("vm.swap_size").to_f * page_size
154
+ "%.2f" % [(swaptotal.to_f / 1024.0) / 1024.0]
155
+ end
156
+ end
157
+
158
+ Facter.add("swapfree_mb") do
159
+ confine :kernel => :dragonfly
160
+ setcode do
161
+ page_size = Facter::Util::POSIX.sysctl("hw.pagesize").to_f
162
+ swaptotal = Facter::Util::POSIX.sysctl("vm.swap_size").to_f * page_size
163
+ swap_anon_use = Facter::Util::POSIX.sysctl("vm.swap_anon_use").to_f * page_size
164
+ swap_cache_use = Facter::Util::POSIX.sysctl("vm.swap_cache_use").to_f * page_size
165
+ swapfree = swaptotal - swap_anon_use - swap_cache_use
166
+ "%.2f" % [(swapfree.to_f / 1024.0) / 1024.0]
167
+ end
168
+ end
@@ -0,0 +1,42 @@
1
+ # Fact: netmask
2
+ #
3
+ # Purpose: Returns the netmask for the main interfaces.
4
+ #
5
+ # Resolution: Uses the facter/util/netmask library routines.
6
+ #
7
+ # Caveats:
8
+ #
9
+ # netmask.rb
10
+ # Find the netmask of the primary ipaddress
11
+ # Copyright (C) 2007 David Schmitt <david@schmitt.edv-bus.at>
12
+ # Copyright (C) 2007 Mark 'phips' Phillips
13
+ #
14
+ # idea and originial source by Mark 'phips' Phillips
15
+ #
16
+ require 'facter/util/netmask'
17
+
18
+ Facter.add("netmask") do
19
+ confine :kernel => [ :sunos, :linux, :freebsd, :openbsd, :netbsd, :darwin, :"gnu/kfreebsd", :dragonfly, :AIX ]
20
+ setcode do
21
+ Facter::NetMask.get_netmask
22
+ end
23
+ end
24
+
25
+ Facter.add(:netmask) do
26
+ confine :kernel => :windows
27
+ setcode do
28
+ require 'facter/util/ip/windows'
29
+
30
+ mask = nil
31
+
32
+ adapters = Facter::Util::IP::Windows.get_preferred_ipv4_adapters
33
+ adapters.find do |nic|
34
+ nic.IPSubnet.any? do |subnet|
35
+ mask = subnet if Facter::Util::IP::Windows.valid_ipv4_address?(subnet)
36
+ mask
37
+ end
38
+ end
39
+
40
+ mask
41
+ end
42
+ end
@@ -0,0 +1,20 @@
1
+ # Fact: network
2
+ #
3
+ # Purpose:
4
+ # Get IP, network and netmask information for available network
5
+ # interfacs.
6
+ #
7
+ # Resolution:
8
+ # Uses 'facter/util/ip' to enumerate interfaces and return their information.
9
+ #
10
+ # Caveats:
11
+ #
12
+ require 'facter/util/ip'
13
+
14
+ Facter::Util::IP.get_interfaces.each do |interface|
15
+ Facter.add("network_" + Facter::Util::IP.alphafy(interface)) do
16
+ setcode do
17
+ Facter::Util::IP.get_network_value(interface)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,141 @@
1
+ # Fact: operatingsystem
2
+ #
3
+ # Purpose: Return the name of the operating system.
4
+ #
5
+ # Resolution:
6
+ # If the kernel is a Linux kernel, check for the existence of a selection of
7
+ # files in /etc/ to find the specific flavour.
8
+ # On SunOS based kernels, attempt to determine the flavour, otherwise return Solaris.
9
+ # On systems other than Linux, use the kernel value.
10
+ #
11
+ # Caveats:
12
+ #
13
+
14
+ require 'facter/util/operatingsystem'
15
+
16
+ Facter.add(:operatingsystem) do
17
+ confine :kernel => :sunos
18
+ setcode do
19
+ # Use uname -v because /etc/release can change in zones under SmartOS.
20
+ # It's apparently not trustworthy enough to rely on for this fact.
21
+ output = Facter::Core::Execution.exec('uname -v')
22
+ if output =~ /^joyent_/
23
+ "SmartOS"
24
+ elsif output =~ /^oi_/
25
+ "OpenIndiana"
26
+ elsif output =~ /^omnios-/
27
+ "OmniOS"
28
+ elsif FileTest.exists?("/etc/debian_version")
29
+ "Nexenta"
30
+ else
31
+ "Solaris"
32
+ end
33
+ end
34
+ end
35
+
36
+ Facter.add(:operatingsystem) do
37
+ # Cumulus Linux is a variant of Debian so this resolution needs to come
38
+ # before the Debian resolution.
39
+ has_weight(10)
40
+ confine :kernel => :linux
41
+
42
+ setcode do
43
+ release_info = Facter::Util::Operatingsystem.os_release
44
+ if release_info['NAME'] == "Cumulus Linux"
45
+ 'CumulusLinux'
46
+ end
47
+ end
48
+ end
49
+
50
+ Facter.add(:operatingsystem) do
51
+ confine :kernel => :linux
52
+ setcode do
53
+ if Facter.value(:lsbdistid) == "Ubuntu"
54
+ "Ubuntu"
55
+ elsif Facter.value(:lsbdistid) == "LinuxMint"
56
+ "LinuxMint"
57
+ elsif FileTest.exists?("/etc/debian_version")
58
+ "Debian"
59
+ elsif FileTest.exists?("/etc/openwrt_release")
60
+ "OpenWrt"
61
+ elsif FileTest.exists?("/etc/gentoo-release")
62
+ "Gentoo"
63
+ elsif FileTest.exists?("/etc/fedora-release")
64
+ "Fedora"
65
+ elsif FileTest.exists?("/etc/mageia-release")
66
+ "Mageia"
67
+ elsif FileTest.exists?("/etc/mandriva-release")
68
+ "Mandriva"
69
+ elsif FileTest.exists?("/etc/mandrake-release")
70
+ "Mandrake"
71
+ elsif FileTest.exists?("/etc/meego-release")
72
+ "MeeGo"
73
+ elsif FileTest.exists?("/etc/arch-release")
74
+ "Archlinux"
75
+ elsif FileTest.exists?("/etc/oracle-release")
76
+ "OracleLinux"
77
+ elsif FileTest.exists?("/etc/enterprise-release")
78
+ if FileTest.exists?("/etc/ovs-release")
79
+ "OVS"
80
+ else
81
+ "OEL"
82
+ end
83
+ elsif FileTest.exists?("/etc/vmware-release")
84
+ "VMWareESX"
85
+ elsif FileTest.exists?("/etc/redhat-release")
86
+ txt = File.read("/etc/redhat-release")
87
+ if txt =~ /centos/i
88
+ "CentOS"
89
+ elsif txt =~ /CERN/
90
+ "SLC"
91
+ elsif txt =~ /scientific/i
92
+ "Scientific"
93
+ elsif txt =~ /^cloudlinux/i
94
+ "CloudLinux"
95
+ elsif txt =~ /^Parallels Server Bare Metal/i
96
+ "PSBM"
97
+ elsif txt =~ /Ascendos/i
98
+ "Ascendos"
99
+ elsif txt =~ /^XenServer/i
100
+ "XenServer"
101
+ else
102
+ "RedHat"
103
+ end
104
+ elsif FileTest.exists?("/etc/SuSE-release")
105
+ txt = File.read("/etc/SuSE-release")
106
+ if txt =~ /^SUSE LINUX Enterprise Server/i
107
+ "SLES"
108
+ elsif txt =~ /^SUSE LINUX Enterprise Desktop/i
109
+ "SLED"
110
+ elsif txt =~ /^openSUSE/i
111
+ "OpenSuSE"
112
+ else
113
+ "SuSE"
114
+ end
115
+ elsif FileTest.exists?("/etc/bluewhite64-version")
116
+ "Bluewhite64"
117
+ elsif FileTest.exists?("/etc/slamd64-version")
118
+ "Slamd64"
119
+ elsif FileTest.exists?("/etc/slackware-version")
120
+ "Slackware"
121
+ elsif FileTest.exists?("/etc/alpine-release")
122
+ "Alpine"
123
+ elsif FileTest.exists?("/etc/mageia-release")
124
+ "Mageia"
125
+ elsif FileTest.exists?("/etc/system-release")
126
+ "Amazon"
127
+ end
128
+ end
129
+ end
130
+
131
+ Facter.add(:operatingsystem) do
132
+ confine :kernel => "VMkernel"
133
+ setcode do
134
+ "ESXi"
135
+ end
136
+ end
137
+
138
+ Facter.add(:operatingsystem) do
139
+ # Default to just returning the kernel as the operating system
140
+ setcode do Facter[:kernel].value end
141
+ end