facter 2.0.1.rc1-universal-darwin

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 (379) hide show
  1. checksums.yaml +7 -0
  2. data/COMMITTERS.md +194 -0
  3. data/CONTRIBUTING.md +65 -0
  4. data/Gemfile +43 -0
  5. data/LICENSE +15 -0
  6. data/README.md +33 -0
  7. data/Rakefile +79 -0
  8. data/bin/facter +16 -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 +33 -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 +262 -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 +100 -0
  39. data/lib/facter/core/execution/base.rb +73 -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 +117 -0
  45. data/lib/facter/domain.rb +99 -0
  46. data/lib/facter/ec2.rb +37 -0
  47. data/lib/facter/facterversion.rb +15 -0
  48. data/lib/facter/filesystems.rb +38 -0
  49. data/lib/facter/fqdn.rb +22 -0
  50. data/lib/facter/hardwareisa.rb +20 -0
  51. data/lib/facter/hardwaremodel.rb +67 -0
  52. data/lib/facter/hostname.rb +33 -0
  53. data/lib/facter/id.rb +21 -0
  54. data/lib/facter/interfaces.rb +46 -0
  55. data/lib/facter/ipaddress.rb +171 -0
  56. data/lib/facter/ipaddress6.rb +82 -0
  57. data/lib/facter/iphostnumber.rb +29 -0
  58. data/lib/facter/kernel.rb +22 -0
  59. data/lib/facter/kernelmajversion.rb +15 -0
  60. data/lib/facter/kernelrelease.rb +42 -0
  61. data/lib/facter/kernelversion.rb +22 -0
  62. data/lib/facter/ldom.rb +47 -0
  63. data/lib/facter/lsbdistcodename.rb +18 -0
  64. data/lib/facter/lsbdistdescription.rb +21 -0
  65. data/lib/facter/lsbdistid.rb +18 -0
  66. data/lib/facter/lsbdistrelease.rb +18 -0
  67. data/lib/facter/lsbmajdistrelease.rb +27 -0
  68. data/lib/facter/lsbrelease.rb +18 -0
  69. data/lib/facter/macaddress.rb +97 -0
  70. data/lib/facter/macosx.rb +56 -0
  71. data/lib/facter/manufacturer.rb +68 -0
  72. data/lib/facter/memory.rb +162 -0
  73. data/lib/facter/netmask.rb +42 -0
  74. data/lib/facter/network.rb +20 -0
  75. data/lib/facter/operatingsystem.rb +121 -0
  76. data/lib/facter/operatingsystemmajrelease.rb +33 -0
  77. data/lib/facter/operatingsystemrelease.rb +226 -0
  78. data/lib/facter/osfamily.rb +35 -0
  79. data/lib/facter/path.rb +14 -0
  80. data/lib/facter/physicalprocessorcount.rb +84 -0
  81. data/lib/facter/processor.rb +183 -0
  82. data/lib/facter/ps.rb +30 -0
  83. data/lib/facter/puppetversion.rb +20 -0
  84. data/lib/facter/rubysitedir.rb +12 -0
  85. data/lib/facter/rubyversion.rb +12 -0
  86. data/lib/facter/selinux.rb +99 -0
  87. data/lib/facter/ssh.rb +72 -0
  88. data/lib/facter/timezone.rb +14 -0
  89. data/lib/facter/uniqueid.rb +4 -0
  90. data/lib/facter/uptime.rb +34 -0
  91. data/lib/facter/uptime_days.rb +15 -0
  92. data/lib/facter/uptime_hours.rb +15 -0
  93. data/lib/facter/uptime_seconds.rb +24 -0
  94. data/lib/facter/util/architecture.rb +19 -0
  95. data/lib/facter/util/collection.rb +161 -0
  96. data/lib/facter/util/composite_loader.rb +12 -0
  97. data/lib/facter/util/config.rb +61 -0
  98. data/lib/facter/util/confine.rb +66 -0
  99. data/lib/facter/util/directory_loader.rb +83 -0
  100. data/lib/facter/util/ec2.rb +101 -0
  101. data/lib/facter/util/fact.rb +204 -0
  102. data/lib/facter/util/file_read.rb +37 -0
  103. data/lib/facter/util/formatter.rb +38 -0
  104. data/lib/facter/util/ip.rb +285 -0
  105. data/lib/facter/util/ip/windows.rb +215 -0
  106. data/lib/facter/util/loader.rb +146 -0
  107. data/lib/facter/util/macaddress.rb +43 -0
  108. data/lib/facter/util/macosx.rb +73 -0
  109. data/lib/facter/util/manufacturer.rb +104 -0
  110. data/lib/facter/util/memory.rb +228 -0
  111. data/lib/facter/util/monkey_patches.rb +8 -0
  112. data/lib/facter/util/netmask.rb +40 -0
  113. data/lib/facter/util/normalization.rb +94 -0
  114. data/lib/facter/util/nothing_loader.rb +12 -0
  115. data/lib/facter/util/parser.rb +158 -0
  116. data/lib/facter/util/plist.rb +24 -0
  117. data/lib/facter/util/plist/generator.rb +228 -0
  118. data/lib/facter/util/plist/parser.rb +226 -0
  119. data/lib/facter/util/processor.rb +291 -0
  120. data/lib/facter/util/registry.rb +11 -0
  121. data/lib/facter/util/resolution.rb +152 -0
  122. data/lib/facter/util/solaris_zones.rb +158 -0
  123. data/lib/facter/util/unix_root.rb +5 -0
  124. data/lib/facter/util/uptime.rb +81 -0
  125. data/lib/facter/util/values.rb +80 -0
  126. data/lib/facter/util/virtual.rb +151 -0
  127. data/lib/facter/util/vlans.rb +24 -0
  128. data/lib/facter/util/windows_root.rb +37 -0
  129. data/lib/facter/util/wmi.rb +16 -0
  130. data/lib/facter/util/xendomains.rb +10 -0
  131. data/lib/facter/version.rb +86 -0
  132. data/lib/facter/virtual.rb +262 -0
  133. data/lib/facter/vlans.rb +17 -0
  134. data/lib/facter/xendomains.rb +20 -0
  135. data/lib/facter/zfs_version.rb +10 -0
  136. data/lib/facter/zonename.rb +6 -0
  137. data/lib/facter/zones.rb +17 -0
  138. data/lib/facter/zpool_version.rb +10 -0
  139. data/spec/fixtures/cpuinfo/amd64dual +57 -0
  140. data/spec/fixtures/cpuinfo/amd64quad +79 -0
  141. data/spec/fixtures/cpuinfo/amd64solo +23 -0
  142. data/spec/fixtures/cpuinfo/amd64tri +86 -0
  143. data/spec/fixtures/cpuinfo/amd64twentyfour +600 -0
  144. data/spec/fixtures/cpuinfo/bbg3-armel +12 -0
  145. data/spec/fixtures/cpuinfo/beaglexm-armel +12 -0
  146. data/spec/fixtures/cpuinfo/panda-armel +17 -0
  147. data/spec/fixtures/cpuinfo/ppc64 +19 -0
  148. data/spec/fixtures/cpuinfo/sparc +10 -0
  149. data/spec/fixtures/hpux/machinfo/hppa-rp4440 +26 -0
  150. data/spec/fixtures/hpux/machinfo/ia64-rx2620 +49 -0
  151. data/spec/fixtures/hpux/machinfo/ia64-rx6600 +26 -0
  152. data/spec/fixtures/hpux/machinfo/ia64-rx8640 +53 -0
  153. data/spec/fixtures/hpux/machinfo/superdome-server-SD32B +53 -0
  154. data/spec/fixtures/hpux/machinfo/superdome2-16s +31 -0
  155. data/spec/fixtures/hpux/sched.models +174 -0
  156. data/spec/fixtures/hpux/unistd.h +1534 -0
  157. data/spec/fixtures/ifconfig/bsd_ifconfig_all_with_multiple_interfaces +18 -0
  158. data/spec/fixtures/ifconfig/centos_5_5 +17 -0
  159. data/spec/fixtures/ifconfig/centos_5_5_eth0 +8 -0
  160. data/spec/fixtures/ifconfig/darwin_10_3_0 +26 -0
  161. data/spec/fixtures/ifconfig/darwin_10_3_0_en0 +6 -0
  162. data/spec/fixtures/ifconfig/darwin_10_6_4 +28 -0
  163. data/spec/fixtures/ifconfig/darwin_10_6_4_en1 +6 -0
  164. data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack +8 -0
  165. data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack_en1 +7 -0
  166. data/spec/fixtures/ifconfig/darwin_9_8_0 +26 -0
  167. data/spec/fixtures/ifconfig/darwin_9_8_0_en0 +6 -0
  168. data/spec/fixtures/ifconfig/darwin_ifconfig_all_with_multiple_interfaces +23 -0
  169. data/spec/fixtures/ifconfig/fedora_10 +36 -0
  170. data/spec/fixtures/ifconfig/fedora_10_eth0 +9 -0
  171. data/spec/fixtures/ifconfig/fedora_13 +18 -0
  172. data/spec/fixtures/ifconfig/fedora_13_eth0 +9 -0
  173. data/spec/fixtures/ifconfig/fedora_8 +38 -0
  174. data/spec/fixtures/ifconfig/fedora_8_eth0 +9 -0
  175. data/spec/fixtures/ifconfig/freebsd_6_0 +12 -0
  176. data/spec/fixtures/ifconfig/ifconfig_net_tools_1.60.txt +19 -0
  177. data/spec/fixtures/ifconfig/ifconfig_ubuntu_1204.txt +16 -0
  178. data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces +19 -0
  179. data/spec/fixtures/ifconfig/linux_ifconfig_no_addr +19 -0
  180. data/spec/fixtures/ifconfig/linux_ifconfig_no_mac +8 -0
  181. data/spec/fixtures/ifconfig/linux_ifconfig_venet +24 -0
  182. data/spec/fixtures/ifconfig/open_solaris_10 +12 -0
  183. data/spec/fixtures/ifconfig/open_solaris_b132 +20 -0
  184. data/spec/fixtures/ifconfig/sunos_ifconfig_all_with_multiple_interfaces +10 -0
  185. data/spec/fixtures/ifconfig/ubuntu_7_04 +38 -0
  186. data/spec/fixtures/ifconfig/ubuntu_7_04_eth0 +9 -0
  187. data/spec/fixtures/ldom/ldom_v1 +6 -0
  188. data/spec/fixtures/netstat/centos_5_5 +5 -0
  189. data/spec/fixtures/netstat/darwin_10_3_0 +35 -0
  190. data/spec/fixtures/netstat/darwin_10_6_4 +29 -0
  191. data/spec/fixtures/netstat/darwin_10_6_6_dualstack +34 -0
  192. data/spec/fixtures/netstat/darwin_9_8_0 +28 -0
  193. data/spec/fixtures/netstat/fedora_10 +7 -0
  194. data/spec/fixtures/netstat/open_solaris_10 +16 -0
  195. data/spec/fixtures/netstat/open_solaris_b132 +17 -0
  196. data/spec/fixtures/netstat/ubuntu_7_04 +7 -0
  197. data/spec/fixtures/processorcount/solaris-psrinfo +24 -0
  198. data/spec/fixtures/processorcount/solaris-sparc-kstat-cpu-info +1216 -0
  199. data/spec/fixtures/processorcount/solaris-x86_64-kstat-cpu-info +225 -0
  200. data/spec/fixtures/unit/filesystems/linux +28 -0
  201. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt +19 -0
  202. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.em1 +10 -0
  203. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.lo +8 -0
  204. data/spec/fixtures/unit/ipaddress/ifconfig_multiple_127_addresses.txt +20 -0
  205. data/spec/fixtures/unit/ipaddress/ifconfig_net_tools_1.60.txt +19 -0
  206. data/spec/fixtures/unit/ipaddress/ifconfig_non_english_locale.txt +18 -0
  207. data/spec/fixtures/unit/ipaddress/ifconfig_ubuntu_1204.txt +16 -0
  208. data/spec/fixtures/unit/netmask/darwin_10_8_5.txt +30 -0
  209. data/spec/fixtures/unit/netmask/ifconfig_net_tools_1.60.txt +19 -0
  210. data/spec/fixtures/unit/netmask/ifconfig_ubuntu_1204.txt +16 -0
  211. data/spec/fixtures/unit/selinux/selinux_sestatus +6 -0
  212. data/spec/fixtures/unit/util/ec2/centos-arp-ec2.out +1 -0
  213. data/spec/fixtures/unit/util/ec2/linux-arp-ec2.out +1 -0
  214. data/spec/fixtures/unit/util/ec2/linux-arp-not-ec2.out +5 -0
  215. data/spec/fixtures/unit/util/ec2/solaris8_arp_a_not_ec2.out +7 -0
  216. data/spec/fixtures/unit/util/ec2/windows-2008-arp-a-not-ec2.out +6 -0
  217. data/spec/fixtures/unit/util/ec2/windows-2008-arp-a.out +10 -0
  218. data/spec/fixtures/unit/util/ip/6.0-STABLE_FreeBSD_ifconfig +12 -0
  219. data/spec/fixtures/unit/util/ip/Mac_OS_X_10.5.5_ifconfig +26 -0
  220. data/spec/fixtures/unit/util/ip/darwin_ifconfig_all_with_multiple_interfaces +10 -0
  221. data/spec/fixtures/unit/util/ip/darwin_ifconfig_single_interface +6 -0
  222. data/spec/fixtures/unit/util/ip/debian_kfreebsd_ifconfig +40 -0
  223. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan0 +2 -0
  224. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan1 +2 -0
  225. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lo0 +2 -0
  226. data/spec/fixtures/unit/util/ip/hpux_1111_lanscan +5 -0
  227. data/spec/fixtures/unit/util/ip/hpux_1111_netstat_in +4 -0
  228. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan0 +2 -0
  229. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan1 +2 -0
  230. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lo0 +2 -0
  231. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_lanscan +5 -0
  232. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_netstat_in +4 -0
  233. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan0 +2 -0
  234. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan1 +2 -0
  235. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lo0 +2 -0
  236. data/spec/fixtures/unit/util/ip/hpux_1131_lanscan +4 -0
  237. data/spec/fixtures/unit/util/ip/hpux_1131_netstat_in +4 -0
  238. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan1 +2 -0
  239. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4 +2 -0
  240. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4_1 +2 -0
  241. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lo0 +2 -0
  242. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_lanscan +9 -0
  243. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_netstat_in +6 -0
  244. data/spec/fixtures/unit/util/ip/linux_2_6_35_proc_net_bonding_bond0 +19 -0
  245. data/spec/fixtures/unit/util/ip/linux_get_single_interface_eth0 +10 -0
  246. data/spec/fixtures/unit/util/ip/linux_get_single_interface_ib0 +8 -0
  247. data/spec/fixtures/unit/util/ip/linux_get_single_interface_lo +9 -0
  248. data/spec/fixtures/unit/util/ip/linux_ifconfig_all_with_single_interface +18 -0
  249. data/spec/fixtures/unit/util/ip/linux_ifconfig_ib0 +8 -0
  250. data/spec/fixtures/unit/util/ip/solaris_ifconfig_all_with_multiple_interfaces +8 -0
  251. data/spec/fixtures/unit/util/ip/solaris_ifconfig_single_interface +3 -0
  252. data/spec/fixtures/unit/util/ip/windows_netsh_all_interfaces +12 -0
  253. data/spec/fixtures/unit/util/ip/windows_netsh_single_interface +7 -0
  254. data/spec/fixtures/unit/util/ip/windows_netsh_single_interface6 +18 -0
  255. data/spec/fixtures/unit/util/loader/nosuchfact.rb +1 -0
  256. data/spec/fixtures/unit/util/manufacturer/freebsd_dmidecode +42 -0
  257. data/spec/fixtures/unit/util/manufacturer/intel_linux_dmidecode +549 -0
  258. data/spec/fixtures/unit/util/manufacturer/linux_dmidecode_with_spaces +60 -0
  259. data/spec/fixtures/unit/util/manufacturer/opensolaris_smbios +33 -0
  260. data/spec/fixtures/unit/util/manufacturer/solaris_sunfire_v120_prtdiag +33 -0
  261. data/spec/fixtures/unit/util/manufacturer/solaris_t5220_prtdiag +136 -0
  262. data/spec/fixtures/unit/util/processor/solaris-i86pc +28 -0
  263. data/spec/fixtures/unit/util/processor/solaris-sun4u +151 -0
  264. data/spec/fixtures/unit/util/processor/x86-pentium2 +41 -0
  265. data/spec/fixtures/unit/util/uptime/kstat_boot_time +1 -0
  266. data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_darwin +1 -0
  267. data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_openbsd +1 -0
  268. data/spec/fixtures/unit/util/uptime/ubuntu_proc_uptime +1 -0
  269. data/spec/fixtures/unit/util/virtual/invalid_unicode_dmi_entries +0 -0
  270. data/spec/fixtures/unit/util/virtual/solaris10_proc_self_status1 +0 -0
  271. data/spec/fixtures/unit/util/vlans/linux_vlan_config +6 -0
  272. data/spec/fixtures/unit/util/xendomains/xendomains +4 -0
  273. data/spec/fixtures/unit/virtual/sysfs_dmi_entries_raw.txt +0 -0
  274. data/spec/fixtures/unit/zfs_version/freebsd_8.2 +14 -0
  275. data/spec/fixtures/unit/zfs_version/freebsd_9.0 +13 -0
  276. data/spec/fixtures/unit/zfs_version/linux-fuse_0.6.9 +14 -0
  277. data/spec/fixtures/unit/zfs_version/solaris_10 +10 -0
  278. data/spec/fixtures/unit/zfs_version/solaris_11 +12 -0
  279. data/spec/fixtures/unit/zpool_version/freebsd_8.2 +26 -0
  280. data/spec/fixtures/unit/zpool_version/freebsd_9.0 +38 -0
  281. data/spec/fixtures/unit/zpool_version/linux-fuse_0.6.9 +35 -0
  282. data/spec/fixtures/unit/zpool_version/solaris_10 +31 -0
  283. data/spec/fixtures/unit/zpool_version/solaris_11 +43 -0
  284. data/spec/fixtures/virtual/proc_self_status/vserver_2_1/guest +37 -0
  285. data/spec/fixtures/virtual/proc_self_status/vserver_2_1/host +36 -0
  286. data/spec/fixtures/virtual/proc_self_status/vserver_2_3/guest +39 -0
  287. data/spec/fixtures/virtual/proc_self_status/vserver_2_3/host +39 -0
  288. data/spec/integration/facter_spec.rb +39 -0
  289. data/spec/lib/facter_spec/cpuinfo.rb +15 -0
  290. data/spec/lib/facter_spec/windows_network.rb +64 -0
  291. data/spec/puppetlabs_spec/files.rb +57 -0
  292. data/spec/puppetlabs_spec/fixtures.rb +49 -0
  293. data/spec/puppetlabs_spec/matchers.rb +87 -0
  294. data/spec/puppetlabs_spec/verbose.rb +9 -0
  295. data/spec/puppetlabs_spec_helper.rb +26 -0
  296. data/spec/shared_contexts/platform.rb +55 -0
  297. data/spec/shared_formats/parses.rb +3 -0
  298. data/spec/spec_helper.rb +75 -0
  299. data/spec/unit/application_spec.rb +101 -0
  300. data/spec/unit/architecture_spec.rb +63 -0
  301. data/spec/unit/blockdevices_spec.rb +109 -0
  302. data/spec/unit/core/aggregate_spec.rb +125 -0
  303. data/spec/unit/core/directed_graph_spec.rb +79 -0
  304. data/spec/unit/core/execution/base_spec.rb +119 -0
  305. data/spec/unit/core/execution/posix_spec.rb +86 -0
  306. data/spec/unit/core/execution/windows_spec.rb +106 -0
  307. data/spec/unit/core/execution_spec.rb +37 -0
  308. data/spec/unit/core/logging_spec.rb +104 -0
  309. data/spec/unit/core/resolvable_spec.rb +81 -0
  310. data/spec/unit/core/suitable_spec.rb +96 -0
  311. data/spec/unit/domain_spec.rb +310 -0
  312. data/spec/unit/ec2_spec.rb +187 -0
  313. data/spec/unit/facter_spec.rb +108 -0
  314. data/spec/unit/filesystems_spec.rb +50 -0
  315. data/spec/unit/hardwareisa_spec.rb +41 -0
  316. data/spec/unit/hardwaremodel_spec.rb +56 -0
  317. data/spec/unit/hostname_spec.rb +40 -0
  318. data/spec/unit/id_spec.rb +29 -0
  319. data/spec/unit/interfaces_spec.rb +57 -0
  320. data/spec/unit/ipaddress6_spec.rb +161 -0
  321. data/spec/unit/ipaddress_spec.rb +114 -0
  322. data/spec/unit/kernel_spec.rb +24 -0
  323. data/spec/unit/kernelmajversion_spec.rb +17 -0
  324. data/spec/unit/kernelrelease_spec.rb +53 -0
  325. data/spec/unit/kernelversion_spec.rb +32 -0
  326. data/spec/unit/ldom_spec.rb +74 -0
  327. data/spec/unit/lsbdistcodename_spec.rb +25 -0
  328. data/spec/unit/lsbdistdescription_spec.rb +25 -0
  329. data/spec/unit/lsbdistid_spec.rb +25 -0
  330. data/spec/unit/lsbdistrelease_spec.rb +25 -0
  331. data/spec/unit/lsbmajdistrelease_spec.rb +13 -0
  332. data/spec/unit/lsbrelease_spec.rb +25 -0
  333. data/spec/unit/macaddress_spec.rb +61 -0
  334. data/spec/unit/manufacturer_spec.rb +115 -0
  335. data/spec/unit/memory_spec.rb +539 -0
  336. data/spec/unit/netmask_spec.rb +95 -0
  337. data/spec/unit/operatingsystem_spec.rb +141 -0
  338. data/spec/unit/operatingsystemmajrelease_spec.rb +16 -0
  339. data/spec/unit/operatingsystemrelease_spec.rb +226 -0
  340. data/spec/unit/physicalprocessorcount_spec.rb +76 -0
  341. data/spec/unit/processor_spec.rb +393 -0
  342. data/spec/unit/ps_spec.rb +42 -0
  343. data/spec/unit/selinux_spec.rb +114 -0
  344. data/spec/unit/ssh_spec.rb +77 -0
  345. data/spec/unit/uniqueid_spec.rb +27 -0
  346. data/spec/unit/uptime_spec.rb +110 -0
  347. data/spec/unit/util/collection_spec.rb +258 -0
  348. data/spec/unit/util/config_spec.rb +84 -0
  349. data/spec/unit/util/confine_spec.rb +148 -0
  350. data/spec/unit/util/directory_loader_spec.rb +88 -0
  351. data/spec/unit/util/ec2_spec.rb +180 -0
  352. data/spec/unit/util/fact_spec.rb +142 -0
  353. data/spec/unit/util/file_read_spec.rb +29 -0
  354. data/spec/unit/util/ip/windows_spec.rb +80 -0
  355. data/spec/unit/util/ip_spec.rb +463 -0
  356. data/spec/unit/util/loader_spec.rb +286 -0
  357. data/spec/unit/util/macaddress_spec.rb +141 -0
  358. data/spec/unit/util/macosx_spec.rb +113 -0
  359. data/spec/unit/util/manufacturer_spec.rb +179 -0
  360. data/spec/unit/util/normalization_spec.rb +113 -0
  361. data/spec/unit/util/parser_spec.rb +200 -0
  362. data/spec/unit/util/processor_spec.rb +92 -0
  363. data/spec/unit/util/registry_spec.rb +76 -0
  364. data/spec/unit/util/resolution_spec.rb +129 -0
  365. data/spec/unit/util/solaris_zones_spec.rb +127 -0
  366. data/spec/unit/util/uptime_spec.rb +126 -0
  367. data/spec/unit/util/values_spec.rb +131 -0
  368. data/spec/unit/util/virtual_spec.rb +294 -0
  369. data/spec/unit/util/vlans_spec.rb +12 -0
  370. data/spec/unit/util/wmi_spec.rb +19 -0
  371. data/spec/unit/util/xendomains_spec.rb +21 -0
  372. data/spec/unit/version_spec.rb +42 -0
  373. data/spec/unit/virtual_spec.rb +470 -0
  374. data/spec/unit/zfs_version_spec.rb +75 -0
  375. data/spec/unit/zonename_spec.rb +14 -0
  376. data/spec/unit/zones_spec.rb +55 -0
  377. data/spec/unit/zpool_version_spec.rb +75 -0
  378. data/spec/watchr.rb +125 -0
  379. metadata +674 -0
@@ -0,0 +1,22 @@
1
+ # Fact: kernel
2
+ #
3
+ # Purpose: Returns the operating system's name.
4
+ #
5
+ # Resolution:
6
+ # Uses Ruby's rbconfig to find host_os, if that is a Windows derivative, the
7
+ # returns 'windows', otherwise returns "uname -s" verbatim.
8
+ #
9
+ # Caveats:
10
+ #
11
+
12
+ Facter.add(:kernel) do
13
+ setcode do
14
+ require 'facter/util/config'
15
+
16
+ if Facter::Util::Config.is_windows?
17
+ 'windows'
18
+ else
19
+ Facter::Core::Execution.exec("uname -s")
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,15 @@
1
+ # Fact: kernelmajversion
2
+ #
3
+ # Purpose: Return the operating system's release number's major value.
4
+ #
5
+ # Resolution:
6
+ # Takes the first 2 elements of the kernel version as delimited by periods.
7
+ #
8
+ # Caveats:
9
+ #
10
+
11
+ Facter.add("kernelmajversion") do
12
+ setcode do
13
+ Facter.value(:kernelversion).split('.')[0..1].join('.')
14
+ end
15
+ end
@@ -0,0 +1,42 @@
1
+ # Fact: kernelrelease
2
+ #
3
+ # Purpose: Return the operating system's release number.
4
+ #
5
+ # Resolution:
6
+ # On AIX returns the output from the "oslevel -s" system command.
7
+ # On Windows based systems, uses the win32ole gem to query Windows Management
8
+ # for the 'Win32_OperatingSystem' value.
9
+ # Otherwise uses the output of "uname -r" system command.
10
+ #
11
+ # Caveats:
12
+ #
13
+
14
+ Facter.add(:kernelrelease) do
15
+ setcode 'uname -r'
16
+ end
17
+
18
+ Facter.add(:kernelrelease) do
19
+ confine :kernel => "aix"
20
+ setcode 'oslevel -s'
21
+ end
22
+
23
+ Facter.add(:kernelrelease) do
24
+ confine :kernel => "hp-ux"
25
+ setcode do
26
+ version = Facter::Core::Execution.exec('uname -r')
27
+ version[2..-1]
28
+ end
29
+ end
30
+
31
+ Facter.add(:kernelrelease) do
32
+ confine :kernel => "windows"
33
+ setcode do
34
+ require 'facter/util/wmi'
35
+ version = ""
36
+ Facter::Util::WMI.execquery("SELECT Version from Win32_OperatingSystem").each do |ole|
37
+ version = "#{ole.Version}"
38
+ break
39
+ end
40
+ version
41
+ end
42
+ end
@@ -0,0 +1,22 @@
1
+ # Fact: kernelversion
2
+ #
3
+ # Purpose: Return the operating system's kernel version.
4
+ #
5
+ # Resolution:
6
+ # On Solaris and SunOS based machines, returns the output of "uname -v".
7
+ # Otherwise returns the 'kernerlversion' fact up to the first '-'. This may be
8
+ # the entire 'kernelversion' fact in many cases.
9
+ #
10
+ # Caveats:
11
+ #
12
+
13
+ Facter.add("kernelversion") do
14
+ setcode do
15
+ Facter['kernelrelease'].value.split('-')[0]
16
+ end
17
+ end
18
+
19
+ Facter.add("kernelversion") do
20
+ confine :kernel => :sunos
21
+ setcode 'uname -v'
22
+ end
@@ -0,0 +1,47 @@
1
+ if Facter.value(:kernel) == 'SunOS'
2
+ virtinfo = Facter::Core::Execution.exec('virtinfo -ap')
3
+
4
+ # Convert virtinfo parseable output format to array of arrays.
5
+ # DOMAINROLE|impl=LDoms|control=true|io=true|service=true|root=true
6
+ # DOMAINNAME|name=primary
7
+ # DOMAINUUID|uuid=8e0d6ec5-cd55-e57f-ae9f-b4cc050999a4
8
+ # DOMAINCONTROL|name=san-t2k-6
9
+ # DOMAINCHASSIS|serialno=0704RB0280
10
+ #
11
+ # For keys containing multiple value such as domain role:
12
+ # ldom_{key}_{subkey} = value
13
+ # Otherwise the fact will simply be:
14
+ # ldom_{key} = value
15
+ unless virtinfo.nil?
16
+ virt_array = virtinfo.split("\n").select{|l| l =~ /^DOMAIN/ }.
17
+ collect{|l| l.split('|')}
18
+ virt_array.each do |x|
19
+ key = x[0]
20
+ value = x[1..x.size]
21
+
22
+ if value.size == 1
23
+ Facter.add("ldom_#{key.downcase}") do
24
+ setcode { value.first.split('=')[1] }
25
+ end
26
+ else
27
+ value.each do |y|
28
+ k = y.split('=')[0]
29
+ v = y.split('=')[1]
30
+ Facter.add("ldom_#{key.downcase}_#{k.downcase}") do
31
+ setcode { v }
32
+ end
33
+ end
34
+ end
35
+ end
36
+
37
+ # When ldom domainrole control = false, the system is a guest, so we mark it
38
+ # as a virtual system:
39
+ Facter.add("virtual") do
40
+ confine :ldom_domainrole_control => 'false'
41
+ has_weight 10
42
+ setcode do
43
+ Facter.value(:ldom_domainrole_impl)
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,18 @@
1
+ # Fact: lsbdistcodename
2
+ #
3
+ # Purpose: Return Linux Standard Base information for the host.
4
+ #
5
+ # Resolution:
6
+ # Uses the lsb_release system command
7
+ #
8
+ # Caveats:
9
+ # Only works on Linux (and the kfreebsd derivative) systems.
10
+ # Requires the lsb_release program, which may not be installed by default.
11
+ # Also is as only as accurate as that program outputs.
12
+
13
+ Facter.add(:lsbdistcodename) do
14
+ confine :kernel => [ :linux, :"gnu/kfreebsd" ]
15
+ setcode do
16
+ Facter::Core::Execution.exec('lsb_release -c -s 2>/dev/null')
17
+ end
18
+ end
@@ -0,0 +1,21 @@
1
+ # Fact: lsbdistdescription
2
+ #
3
+ # Purpose: Return Linux Standard Base information for the host.
4
+ #
5
+ # Resolution:
6
+ # Uses the lsb_release system command
7
+ #
8
+ # Caveats:
9
+ # Only works on Linux (and the kfreebsd derivative) systems.
10
+ # Requires the lsb_release program, which may not be installed by default.
11
+ # Also is as only as accurate as that program outputs.
12
+
13
+ Facter.add(:lsbdistdescription) do
14
+ confine :kernel => [ :linux, :"gnu/kfreebsd" ]
15
+ setcode do
16
+ if output = Facter::Core::Execution.exec('lsb_release -d -s 2>/dev/null')
17
+ # the output may be quoted (at least it is on gentoo)
18
+ output.sub(/^"(.*)"$/,'\1')
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,18 @@
1
+ # Fact: lsbdistid
2
+ #
3
+ # Purpose: Return Linux Standard Base information for the host.
4
+ #
5
+ # Resolution:
6
+ # Uses the lsb_release system command
7
+ #
8
+ # Caveats:
9
+ # Only works on Linux (and the kfreebsd derivative) systems.
10
+ # Requires the lsb_release program, which may not be installed by default.
11
+ # Also is as only as accurate as that program outputs.
12
+
13
+ Facter.add(:lsbdistid) do
14
+ confine :kernel => [ :linux, :"gnu/kfreebsd" ]
15
+ setcode do
16
+ Facter::Core::Execution.exec('lsb_release -i -s 2>/dev/null')
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # Fact: lsbdistrelease
2
+ #
3
+ # Purpose: Return Linux Standard Base information for the host.
4
+ #
5
+ # Resolution:
6
+ # Uses the lsb_release system command
7
+ #
8
+ # Caveats:
9
+ # Only works on Linux (and the kfreebsd derivative) systems.
10
+ # Requires the lsb_release program, which may not be installed by default.
11
+ # Also is as only as accurate as that program outputs.
12
+
13
+ Facter.add(:lsbdistrelease) do
14
+ confine :kernel => [ :linux, :"gnu/kfreebsd" ]
15
+ setcode do
16
+ Facter::Core::Execution.exec('lsb_release -r -s 2>/dev/null')
17
+ end
18
+ end
@@ -0,0 +1,27 @@
1
+ # Fact: lsbmajdistrelease
2
+ #
3
+ # Purpose: Returns the major version of the operation system version as gleaned
4
+ # from the lsbdistrelease fact.
5
+ #
6
+ # Resolution:
7
+ # Parses the lsbdistrelease fact for numbers followed by a period and
8
+ # returns those, or just the lsbdistrelease fact if none were found.
9
+ #
10
+ # Caveats:
11
+ #
12
+
13
+ # lsbmajdistrelease.rb
14
+ #
15
+ require 'facter'
16
+
17
+ Facter.add("lsbmajdistrelease") do
18
+ confine :kernel => %w{Linux GNU/kFreeBSD}
19
+ setcode do
20
+ if /(\d*)\./i =~ Facter.value(:lsbdistrelease)
21
+ result=$1
22
+ else
23
+ result=Facter.value(:lsbdistrelease)
24
+ end
25
+ result
26
+ end
27
+ end
@@ -0,0 +1,18 @@
1
+ # Fact: lsbrelease
2
+ #
3
+ # Purpose: Return Linux Standard Base information for the host.
4
+ #
5
+ # Resolution:
6
+ # Uses the lsb_release system command
7
+ #
8
+ # Caveats:
9
+ # Only works on Linux (and the kfreebsd derivative) systems.
10
+ # Requires the lsb_release program, which may not be installed by default.
11
+ # Also is as only as accurate as that program outputs.
12
+
13
+ Facter.add(:lsbrelease) do
14
+ confine :kernel => [ :linux, :"gnu/kfreebsd" ]
15
+ setcode do
16
+ Facter::Core::Execution.exec('lsb_release -v -s 2>/dev/null')
17
+ end
18
+ end
@@ -0,0 +1,97 @@
1
+ # Fact: macaddress
2
+ #
3
+ # Purpose:
4
+ #
5
+ # Resolution:
6
+ #
7
+ # Caveats:
8
+ #
9
+
10
+ require 'facter/util/macaddress'
11
+ require 'facter/util/ip'
12
+
13
+ Facter.add(:macaddress) do
14
+ confine :kernel => 'Linux'
15
+ setcode do
16
+ ether = []
17
+ output = Facter::Util::IP.exec_ifconfig(["-a","2>/dev/null"])
18
+
19
+ String(output).each_line do |s|
20
+ ether.push($1) if s =~ /(?:ether|HWaddr) ((\w{1,2}:){5,}\w{1,2})/
21
+ end
22
+ Facter::Util::Macaddress.standardize(ether[0])
23
+ end
24
+ end
25
+
26
+ Facter.add(:macaddress) do
27
+ confine :kernel => %w{SunOS GNU/kFreeBSD}
28
+ setcode do
29
+ ether = []
30
+ output = Facter::Util::IP.exec_ifconfig(["-a"])
31
+ output.each_line do |s|
32
+ ether.push($1) if s =~ /(?:ether|HWaddr) ((\w{1,2}:){5,}\w{1,2})/
33
+ end
34
+ Facter::Util::Macaddress.standardize(ether[0])
35
+ end
36
+ end
37
+
38
+ Facter.add(:macaddress) do
39
+ confine :osfamily => "Solaris"
40
+ setcode do
41
+ ether = []
42
+ output = Facter::Core::Execution.exec("/usr/bin/netstat -np")
43
+ output.each_line do |s|
44
+ ether.push($1) if s =~ /(?:SPLA)\s+(\w{2}:\w{2}:\w{2}:\w{2}:\w{2}:\w{2})/
45
+ end
46
+ Facter::Util::Macaddress.standardize(ether[0])
47
+ end
48
+ end
49
+
50
+ Facter.add(:macaddress) do
51
+ confine :operatingsystem => %w{FreeBSD OpenBSD DragonFly}
52
+ setcode do
53
+ ether = []
54
+ output = Facter::Util::IP.exec_ifconfig
55
+ output.each_line do |s|
56
+ if s =~ /(?:ether|lladdr)\s+(\w\w:\w\w:\w\w:\w\w:\w\w:\w\w)/
57
+ ether.push($1)
58
+ end
59
+ end
60
+ Facter::Util::Macaddress.standardize(ether[0])
61
+ end
62
+ end
63
+
64
+ Facter.add(:macaddress) do
65
+ confine :kernel => :darwin
66
+ setcode { Facter::Util::Macaddress::Darwin.macaddress }
67
+ end
68
+
69
+ Facter.add(:macaddress) do
70
+ confine :kernel => %w{AIX}
71
+ setcode do
72
+ ether = []
73
+ ip = nil
74
+ output = Facter::Util::IP.exec_ifconfig(["-a"])
75
+ output.each_line do |str|
76
+ if str =~ /([a-z]+\d+): flags=/
77
+ devname = $1
78
+ unless devname =~ /lo0/
79
+ output2 = %x{/usr/bin/entstat #{devname}}
80
+ output2.each_line do |str2|
81
+ if str2 =~ /^Hardware Address: (\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2})/
82
+ ether.push($1)
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ Facter::Util::Macaddress.standardize(ether[0])
89
+ end
90
+ end
91
+
92
+ Facter.add(:macaddress) do
93
+ confine :kernel => %w(windows)
94
+ setcode do
95
+ Facter::Util::Macaddress::Windows.macaddress
96
+ end
97
+ end
@@ -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
+