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,29 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+
5
+ describe "id fact" do
6
+ include FacterSpec::ConfigHelper
7
+
8
+ kernel = [ 'Linux', 'Darwin', 'windows', 'FreeBSD', 'OpenBSD', 'NetBSD', 'AIX', 'HP-UX' ]
9
+
10
+ kernel.each do |k|
11
+ describe "with kernel reported as #{k}" do
12
+ it "should return the current user" do
13
+ given_a_configuration_of(:is_windows => k == 'windows')
14
+ Facter.fact(:kernel).stubs(:value).returns(k)
15
+ Facter::Core::Execution.expects(:exec).once.with('whoami').returns 'bar'
16
+
17
+ Facter.fact(:id).value.should == 'bar'
18
+ end
19
+ end
20
+ end
21
+
22
+ it "should return the current user on Solaris" do
23
+ given_a_configuration_of(:is_windows => false)
24
+ Facter::Core::Execution.stubs(:exec).with('uname -s').returns('SunOS')
25
+ Facter::Core::Execution.expects(:exec).once.with('/usr/xpg4/bin/id -un').returns 'bar'
26
+
27
+ Facter.fact(:id).value.should == 'bar'
28
+ end
29
+ end
@@ -0,0 +1,57 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+ require 'shared_formats/parses'
5
+ require 'facter/util/ip'
6
+
7
+ shared_examples_for "netmask_* from ifconfig output" do |platform, interface, address, fixture|
8
+ it "correctly on #{platform} interface #{interface}" do
9
+ Facter::Util::IP.stubs(:exec_ifconfig).returns(my_fixture_read(fixture))
10
+ Facter::Util::IP.stubs(:get_output_for_interface_and_label).
11
+ returns(my_fixture_read("#{fixture}.#{interface}"))
12
+ Facter.collection.internal_loader.load(:interfaces)
13
+
14
+ fact = Facter.fact("netmask_#{interface}".intern)
15
+ fact.value.should eq(address)
16
+ end
17
+ end
18
+
19
+ describe "Per Interface IP facts" do
20
+ it "should replace the ':' in an interface list with '_'" do
21
+ # So we look supported
22
+ Facter.fact(:kernel).stubs(:value).returns("SunOS")
23
+
24
+ Facter::Util::IP.stubs(:get_interfaces).returns %w{eth0:1 eth1:2}
25
+ Facter.fact(:interfaces).value.should == %{eth0_1,eth1_2}
26
+ end
27
+
28
+ it "should replace non-alphanumerics in an interface list with '_'" do
29
+ Facter.fact(:kernel).stubs(:value).returns("windows")
30
+
31
+ Facter::Util::IP.stubs(:get_interfaces).returns ["Local Area Connection", "Loopback \"Pseudo-Interface\" (#1)"]
32
+ Facter.fact(:interfaces).value.should == %{Local_Area_Connection,Loopback__Pseudo_Interface____1_}
33
+ end
34
+
35
+ it "should properly format a mac address" do
36
+ Facter::Util::IP.stubs(:get_interfaces).returns ["net0"]
37
+ Facter::Util::IP.stubs(:get_interface_value).returns "0:12:34:56:78:90"
38
+
39
+ Facter.collection.internal_loader.load(:interfaces)
40
+
41
+ fact = Facter.fact("macaddress_net0".intern)
42
+ fact.value.should eq("00:12:34:56:78:90")
43
+ end
44
+ end
45
+
46
+ describe "Netmask handling on Linux" do
47
+ before :each do
48
+ Facter.fact(:kernel).stubs(:value).returns("Linux")
49
+ end
50
+
51
+ example_behavior_for "netmask_* from ifconfig output",
52
+ "Archlinux (net-tools 1.60)", "em1",
53
+ "255.255.255.0", "ifconfig_net_tools_1.60.txt"
54
+ example_behavior_for "netmask_* from ifconfig output",
55
+ "Archlinux (net-tools 1.60)", "lo",
56
+ "255.0.0.0", "ifconfig_net_tools_1.60.txt"
57
+ end
@@ -0,0 +1,161 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+ require 'facter/util/ip'
5
+
6
+ def ifconfig_fixture(filename)
7
+ File.read(fixtures('ifconfig', filename))
8
+ end
9
+
10
+ describe "The IPv6 address fact" do
11
+ include FacterSpec::ConfigHelper
12
+
13
+ before do
14
+ given_a_configuration_of(:is_windows => false)
15
+ end
16
+
17
+ it "should return ipaddress6 information for Darwin" do
18
+ Facter::Core::Execution.stubs(:exec).with('uname -s').returns('Darwin')
19
+ Facter::Util::IP.stubs(:get_ifconfig).returns("/sbin/ifconfig")
20
+ Facter::Util::IP.stubs(:exec_ifconfig).with(["-a"]).
21
+ returns(ifconfig_fixture('darwin_ifconfig_all_with_multiple_interfaces'))
22
+
23
+ Facter.value(:ipaddress6).should == "2610:10:20:209:223:32ff:fed5:ee34"
24
+ end
25
+
26
+ it "should return ipaddress6 information for Linux" do
27
+ Facter::Core::Execution.stubs(:exec).with('uname -s').returns('Linux')
28
+ Facter::Util::IP.stubs(:get_ifconfig).returns("/sbin/ifconfig")
29
+ Facter::Util::IP.stubs(:exec_ifconfig).with(["2>/dev/null"]).
30
+ returns(ifconfig_fixture('linux_ifconfig_all_with_multiple_interfaces'))
31
+
32
+ Facter.value(:ipaddress6).should == "2610:10:20:209:212:3fff:febe:2201"
33
+ end
34
+
35
+ it "should return ipaddress6 information for Linux with recent net-tools" do
36
+ Facter::Core::Execution.stubs(:exec).with('uname -s').returns('Linux')
37
+ Facter::Util::IP.stubs(:get_ifconfig).returns("/sbin/ifconfig")
38
+ Facter::Util::IP.stubs(:exec_ifconfig).with(["2>/dev/null"]).
39
+ returns(ifconfig_fixture('ifconfig_net_tools_1.60.txt'))
40
+
41
+ Facter.value(:ipaddress6).should == "2610:10:20:209:212:3fff:febe:2201"
42
+ end
43
+
44
+ it "should return ipaddress6 information for Solaris" do
45
+ Facter::Core::Execution.stubs(:exec).with('uname -s').returns('SunOS')
46
+ Facter::Util::IP.stubs(:get_ifconfig).returns("/usr/sbin/ifconfig")
47
+ Facter::Util::IP.stubs(:exec_ifconfig).with(["-a"]).
48
+ returns(ifconfig_fixture('sunos_ifconfig_all_with_multiple_interfaces'))
49
+
50
+ Facter.value(:ipaddress6).should == "2610:10:20:209:203:baff:fe27:a7c"
51
+ end
52
+
53
+ context "on Windows" do
54
+ require 'facter/util/wmi'
55
+ require 'facter/util/registry'
56
+ require 'facter/util/ip/windows'
57
+ require 'facter_spec/windows_network'
58
+
59
+ include FacterSpec::WindowsNetwork
60
+
61
+ before :each do
62
+ Facter.fact(:kernel).stubs(:value).returns(:windows)
63
+ Facter::Util::Registry.stubs(:hklm_read).returns(nic_bindings)
64
+ given_a_configuration_of(:is_windows => true)
65
+ end
66
+
67
+ it "should do what when VPN is turned on?"
68
+
69
+ context "when you have no active network adapter" do
70
+ it "should return nil if there are no active (or any) network adapters" do
71
+ Facter::Util::WMI.expects(:execquery).with(Facter::Util::IP::Windows::WMI_IP_INFO_QUERY).returns([])
72
+
73
+ Facter.value(:ipaddress6).should == nil
74
+ end
75
+ end
76
+
77
+ it "should return nil if the system doesn't have ipv6 installed", :if => Facter::Util::Config.is_windows? do
78
+ Facter::Util::Resolution.any_instance.expects(:warn).never
79
+ Facter::Util::Registry.stubs(:hklm_read).raises(Win32::Registry::Error, 2)
80
+
81
+ Facter.value(:ipaddress6).should == nil
82
+ end
83
+
84
+ context "when you have one network adapter" do
85
+ it "should return empty if ipv6 is not on" do
86
+ nic = given_a_valid_windows_nic_with_ipv4_and_ipv6
87
+ nic.expects(:IPAddress).returns([ipAddress1])
88
+ Facter::Util::WMI.expects(:execquery).returns([nic])
89
+
90
+ Facter.value(:ipaddress6).should == nil
91
+ end
92
+
93
+ it "should return the ipv6 address properly" do
94
+ Facter::Util::WMI.expects(:execquery).returns([given_a_valid_windows_nic_with_ipv4_and_ipv6])
95
+
96
+ Facter.value(:ipaddress6).should == ipv6Address0
97
+ end
98
+
99
+ it "should return the first ipv6 address if there is more than one (multi-homing)" do
100
+ nic = given_a_valid_windows_nic_with_ipv4_and_ipv6
101
+ nic.expects(:IPAddress).returns([ipAddress0, ipv6Address0,ipv6Address1])
102
+ Facter::Util::WMI.expects(:execquery).returns([nic])
103
+
104
+ Facter.value(:ipaddress6).should == ipv6Address0
105
+ end
106
+
107
+ it "should return return nil if the ipv6 address is link local" do
108
+ nic = given_a_valid_windows_nic_with_ipv4_and_ipv6
109
+ nic.expects(:IPAddress).returns([ipAddress0, ipv6LinkLocal])
110
+ Facter::Util::WMI.expects(:execquery).returns([nic])
111
+
112
+ Facter.value(:ipaddress6).should == nil
113
+ end
114
+ end
115
+
116
+ context "when you have more than one network adapter" do
117
+ it "should return empty if ipv6 is not on" do
118
+ nics = given_two_valid_windows_nics_with_ipv4_and_ipv6
119
+ nics[:nic0].expects(:IPAddress).returns([ipAddress0])
120
+ nics[:nic1].expects(:IPAddress).returns([ipAddress1])
121
+ Facter::Util::WMI.expects(:execquery).returns(nics.values)
122
+
123
+ Facter.value(:ipaddress6).should == nil
124
+ end
125
+
126
+ it "should return the ipv6 of the adapter with the lowest IP connection metric (best connection)" do
127
+ nics = given_two_valid_windows_nics_with_ipv4_and_ipv6
128
+ nics[:nic1].expects(:IPConnectionMetric).returns(5)
129
+ Facter::Util::WMI.expects(:execquery).returns(nics.values)
130
+
131
+ Facter.value(:ipaddress6).should == ipv6Address1
132
+ end
133
+
134
+ it "should return the ipv6 of the adapter with the lowest IP connection metric (best connection) that has ipv6 enabled" do
135
+ nics = given_two_valid_windows_nics_with_ipv4_and_ipv6
136
+ nics[:nic1].expects(:IPConnectionMetric).returns(5)
137
+ nics[:nic1].expects(:IPAddress).returns([ipAddress1])
138
+ Facter::Util::WMI.expects(:execquery).returns(nics.values)
139
+
140
+ Facter.value(:ipaddress6).should == ipv6Address0
141
+ end
142
+
143
+ context "when the IP connection metric is the same" do
144
+ it "should return the ipv6 of the adapter with the lowest binding order" do
145
+ nics = given_two_valid_windows_nics_with_ipv4_and_ipv6
146
+ Facter::Util::WMI.expects(:execquery).returns(nics.values)
147
+
148
+ Facter.value(:ipaddress6).should == ipv6Address0
149
+ end
150
+
151
+ it "should return the ipv6 of the adapter with the lowest binding order even if the adapter is not first" do
152
+ nics = given_two_valid_windows_nics_with_ipv4_and_ipv6
153
+ Facter::Util::Registry.stubs(:hklm_read).returns(["\\Device\\#{settingId1}", "\\Device\\#{settingId0}" ])
154
+ Facter::Util::WMI.expects(:execquery).returns(nics.values)
155
+
156
+ Facter.value(:ipaddress6).should == ipv6Address1
157
+ end
158
+ end
159
+ end
160
+ end
161
+ end
@@ -0,0 +1,114 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+ require 'facter/util/ip'
5
+
6
+ describe "ipaddress fact" do
7
+ before do
8
+ Facter.collection.internal_loader.load(:ipaddress)
9
+ end
10
+
11
+ context 'using `ifconfig`' do
12
+ before :each do
13
+ Facter.fact(:hostname).stubs(:value)
14
+ end
15
+
16
+ context "on Linux" do
17
+ before :each do
18
+ Facter.fact(:kernel).stubs(:value).returns("Linux")
19
+ end
20
+
21
+ def expect_ifconfig_parse(address, fixture)
22
+ Facter::Util::IP.stubs(:exec_ifconfig).returns(my_fixture_read(fixture))
23
+ Facter.fact(:ipaddress).value.should == address
24
+ end
25
+
26
+ it "parses correctly on Ubuntu 12.04" do
27
+ expect_ifconfig_parse "10.87.80.110", "ifconfig_ubuntu_1204.txt"
28
+ end
29
+
30
+ it "parses correctly on Fedora 17" do
31
+ expect_ifconfig_parse "131.252.209.153", "ifconfig_net_tools_1.60.txt"
32
+ end
33
+
34
+ it "parses a real address over multiple loopback addresses" do
35
+ expect_ifconfig_parse "10.0.222.20", "ifconfig_multiple_127_addresses.txt"
36
+ end
37
+
38
+ it "parses nothing with a non-english locale" do
39
+ expect_ifconfig_parse nil, "ifconfig_non_english_locale.txt"
40
+ end
41
+ end
42
+ end
43
+
44
+ context "on Windows" do
45
+ require 'facter/util/wmi'
46
+ require 'facter/util/registry'
47
+ require 'facter/util/ip/windows'
48
+ require 'facter_spec/windows_network'
49
+
50
+ include FacterSpec::WindowsNetwork
51
+
52
+ before :each do
53
+ Facter.fact(:kernel).stubs(:value).returns(:windows)
54
+ Facter.fact(:kernelrelease).stubs(:value).returns('6.1.7601')
55
+ Facter::Util::Registry.stubs(:hklm_read).returns(nic_bindings)
56
+ end
57
+
58
+ it "should do what when VPN is turned on?"
59
+
60
+ context "when you have no active network adapter" do
61
+ it "should return nil if there are no active (or any) network adapters" do
62
+ Facter::Util::WMI.expects(:execquery).with(Facter::Util::IP::Windows::WMI_IP_INFO_QUERY).returns([])
63
+ Facter::Core::Execution.stubs(:exec)
64
+
65
+ Facter.value(:ipaddress).should == nil
66
+ end
67
+ end
68
+
69
+ context "when you have one network adapter" do
70
+ it "should return the ip address properly" do
71
+ nic = given_a_valid_windows_nic_with_ipv4_and_ipv6
72
+ Facter::Util::WMI.expects(:execquery).returns([nic])
73
+
74
+ Facter.value(:ipaddress).should == ipAddress0
75
+ end
76
+ end
77
+
78
+ context "when you have more than one network adapter" do
79
+ it "should return the ip of the adapter with the lowest IP connection metric (best connection)" do
80
+ nics = given_two_valid_windows_nics_with_ipv4_and_ipv6
81
+ nics[:nic1].expects(:IPConnectionMetric).returns(5)
82
+ Facter::Util::WMI.expects(:execquery).returns(nics.values)
83
+
84
+ Facter.value(:ipaddress).should == ipAddress1
85
+ end
86
+
87
+ it "should return the ip of the adapter with the lowest IP connection metric (best connection) that has ipv4 enabled" do
88
+ nics = given_two_valid_windows_nics_with_ipv4_and_ipv6
89
+ nics[:nic1].expects(:IPConnectionMetric).returns(5)
90
+ nics[:nic1].expects(:IPAddress).returns([ipv6Address1])
91
+ Facter::Util::WMI.expects(:execquery).returns(nics.values)
92
+
93
+ Facter.value(:ipaddress).should == ipAddress0
94
+ end
95
+
96
+ context "when the IP connection metric is the same" do
97
+ it "should return the ip of the adapter with the lowest binding order" do
98
+ nics = given_two_valid_windows_nics_with_ipv4_and_ipv6
99
+ Facter::Util::WMI.expects(:execquery).returns(nics.values)
100
+
101
+ Facter.value(:ipaddress).should == ipAddress0
102
+ end
103
+
104
+ it "should return the ip of the adapter with the lowest binding order even if the adapter is not first" do
105
+ nics = given_two_valid_windows_nics_with_ipv4_and_ipv6
106
+ Facter::Util::WMI.expects(:execquery).returns(nics.values)
107
+ Facter::Util::Registry.stubs(:hklm_read).returns(["\\Device\\#{settingId1}", "\\Device\\#{settingId0}" ])
108
+
109
+ Facter.value(:ipaddress).should == ipAddress1
110
+ end
111
+ end
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,24 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+
5
+ describe "Kernel fact" do
6
+ include FacterSpec::ConfigHelper
7
+
8
+ describe "on Windows" do
9
+ it "should return the kernel as 'windows'" do
10
+ given_a_configuration_of(:is_windows => true, :data_dir => "data_dir")
11
+
12
+ Facter.fact(:kernel).value.should == "windows"
13
+ end
14
+ end
15
+
16
+ describe "on everything else" do
17
+ it "should return the kernel using 'uname -s'" do
18
+ given_a_configuration_of(:is_windows => false)
19
+ Facter::Core::Execution.stubs(:exec).with('uname -s').returns("test_kernel")
20
+
21
+ Facter.fact(:kernel).value.should == 'test_kernel'
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,17 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+
5
+ describe "Kernel major version fact" do
6
+
7
+ before do
8
+ Facter.fact(:kernelversion).stubs(:value).returns("12.34.56")
9
+ end
10
+
11
+ it "should return the kernel major release using the kernel release" do
12
+ Facter.fact(:kernelmajversion).value.should == "12.34"
13
+ end
14
+ end
15
+
16
+
17
+
@@ -0,0 +1,53 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'spec_helper'
4
+
5
+ describe "Kernel release fact" do
6
+
7
+ describe "on Windows" do
8
+ before do
9
+ Facter.fact(:kernel).stubs(:value).returns("windows")
10
+ require 'facter/util/wmi'
11
+ version = stubs 'version'
12
+ version.stubs(:Version).returns("test_kernel")
13
+ Facter::Util::WMI.stubs(:execquery).with("SELECT Version from Win32_OperatingSystem").returns([version])
14
+ end
15
+
16
+ it "should return the kernel release" do
17
+ Facter.fact(:kernelrelease).value.should == "test_kernel"
18
+ end
19
+ end
20
+
21
+ describe "on AIX" do
22
+ before do
23
+ Facter.fact(:kernel).stubs(:value).returns("aix")
24
+ Facter::Core::Execution.stubs(:exec).with('oslevel -s').returns("test_kernel")
25
+ end
26
+
27
+ it "should return the kernel release" do
28
+ Facter.fact(:kernelrelease).value.should == "test_kernel"
29
+ end
30
+ end
31
+
32
+ describe "on HP-UX" do
33
+ before do
34
+ Facter.fact(:kernel).stubs(:value).returns("hp-ux")
35
+ Facter::Core::Execution.stubs(:exec).with('uname -r').returns("B.11.31")
36
+ end
37
+
38
+ it "should remove preceding letters" do
39
+ Facter.fact(:kernelrelease).value.should == "11.31"
40
+ end
41
+ end
42
+
43
+ describe "on everything else" do
44
+ before do
45
+ Facter.fact(:kernel).stubs(:value).returns("linux")
46
+ Facter::Core::Execution.stubs(:exec).with('uname -r').returns("test_kernel")
47
+ end
48
+
49
+ it "should return the kernel release" do
50
+ Facter.fact(:kernelrelease).value.should == "test_kernel"
51
+ end
52
+ end
53
+ end