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,82 @@
1
+ # Fact: ipaddress6
2
+ #
3
+ # Purpose: Returns the "main" IPv6 IP address of a system.
4
+ #
5
+ # Resolution:
6
+ # OS dependant code that parses the output of various networking
7
+ # tools and currently not very intelligent. Returns the first
8
+ # non-loopback and non-linklocal address found in the ouput unless
9
+ # a default route can be mapped to a routeable interface. Guessing
10
+ # an interface is currently only possible with BSD type systems
11
+ # to many assumptions have to be made on other platforms to make
12
+ # this work with the current code. Most code ported or modeled
13
+ # after the ipaddress fact for the sake of similar functionality
14
+ # and familiar mechanics.
15
+ #
16
+ # Caveats:
17
+ #
18
+
19
+ # Cody Herriges <c.a.herriges@gmail.com>
20
+ #
21
+ # Used the ipaddress fact that is already part of
22
+ # Facter as a template.
23
+
24
+ require 'facter/util/ip'
25
+
26
+ def get_address_after_token(output, token, return_first=false)
27
+ ip = nil
28
+
29
+ String(output).scan(/#{token}\s?((?>[0-9,a-f,A-F]*\:{1,2})+[0-9,a-f,A-F]{0,4})/).each do |match|
30
+ match = match.first
31
+ unless match =~ /fe80.*/ or match == "::1"
32
+ ip = match
33
+ break if return_first
34
+ end
35
+ end
36
+
37
+ ip
38
+ end
39
+
40
+ Facter.add(:ipaddress6) do
41
+ confine :kernel => :linux
42
+ setcode do
43
+ output = Facter::Util::IP.exec_ifconfig(["2>/dev/null"])
44
+ get_address_after_token(output, 'inet6(?: addr:)?')
45
+ end
46
+ end
47
+
48
+ Facter.add(:ipaddress6) do
49
+ confine :kernel => %w{SunOS}
50
+ setcode do
51
+ output = Facter::Util::IP.exec_ifconfig(["-a"])
52
+
53
+ get_address_after_token(output, 'inet6')
54
+ end
55
+ end
56
+
57
+ Facter.add(:ipaddress6) do
58
+ confine :kernel => %w{Darwin FreeBSD OpenBSD}
59
+ setcode do
60
+ output = Facter::Util::IP.exec_ifconfig(["-a"])
61
+
62
+ get_address_after_token(output, 'inet6', true)
63
+ end
64
+ end
65
+
66
+ Facter.add(:ipaddress6) do
67
+ confine :kernel => :windows
68
+ setcode do
69
+ require 'facter/util/ip/windows'
70
+ ipaddr = nil
71
+
72
+ adapters = Facter::Util::IP::Windows.get_preferred_ipv6_adapters
73
+ adapters.find do |nic|
74
+ nic.IPAddress.any? do |addr|
75
+ ipaddr = addr if Facter::Util::IP::Windows.valid_ipv6_address?(addr)
76
+ ipaddr
77
+ end
78
+ end
79
+
80
+ ipaddr
81
+ end
82
+ end
@@ -0,0 +1,29 @@
1
+ # Fact: iphostnumber
2
+ #
3
+ # Purpose: On selected versions of Darwin, returns the host's IP address.
4
+ #
5
+ # Resolution:
6
+ # Uses either the scutil program to get the localhost name, or parses output
7
+ # of ifconfig for a MAC address.
8
+ #
9
+ # Caveats:
10
+ #
11
+
12
+ Facter.add(:iphostnumber) do
13
+ confine :kernel => :darwin, :kernelrelease => "R6"
14
+ setcode do
15
+ %x{/usr/sbin/scutil --get LocalHostName}
16
+ end
17
+ end
18
+ Facter.add(:iphostnumber) do
19
+ confine :kernel => :darwin, :kernelrelease => "R6"
20
+ setcode do
21
+ ether = nil
22
+ output = Facter::Util::IP.exec_ifconfig
23
+
24
+ output =~ /HWaddr (\w\w:\w\w:\w\w:\w\w:\w\w:\w\w)/
25
+ ether = $1
26
+
27
+ ether
28
+ end
29
+ end
@@ -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,23 @@
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
+ # Takes the first element of the kernel version on FreeBSD
8
+ #
9
+ # Caveats:
10
+ #
11
+
12
+ Facter.add("kernelmajversion") do
13
+ setcode do
14
+ Facter.value(:kernelversion).split('.')[0..1].join('.')
15
+ end
16
+ end
17
+
18
+ Facter.add("kernelmajversion") do
19
+ confine :kernel => :FreeBSD
20
+ setcode do
21
+ Facter.value(:kernelversion).split('.')[0]
22
+ end
23
+ end
@@ -0,0 +1,50 @@
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
+ require 'facter/util/posix'
14
+
15
+ Facter.add(:kernelrelease) do
16
+ setcode 'uname -r'
17
+ end
18
+
19
+ Facter.add(:kernelrelease) do
20
+ confine :kernel => "aix"
21
+ setcode 'oslevel -s'
22
+ end
23
+
24
+ Facter.add("kernelrelease") do
25
+ confine :kernel => :openbsd
26
+ setcode do
27
+ Facter::Util::POSIX.sysctl("kern.version").split(' ')[1]
28
+ end
29
+ end
30
+
31
+ Facter.add(:kernelrelease) do
32
+ confine :kernel => "hp-ux"
33
+ setcode do
34
+ version = Facter::Core::Execution.execute('uname -r')
35
+ version[2..-1]
36
+ end
37
+ end
38
+
39
+ Facter.add(:kernelrelease) do
40
+ confine :kernel => "windows"
41
+ setcode do
42
+ require 'facter/util/wmi'
43
+ version = ""
44
+ Facter::Util::WMI.execquery("SELECT Version from Win32_OperatingSystem").each do |ole|
45
+ version = "#{ole.Version}"
46
+ break
47
+ end
48
+ version
49
+ end
50
+ 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' and Facter::Core::Execution.which('virtinfo')
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,16 @@
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 'lsb_release -c -s 2>/dev/null'
16
+ end
@@ -0,0 +1,25 @@
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
+ confine do
16
+ Facter::Core::Execution.which("lsb_release")
17
+ end
18
+
19
+ setcode do
20
+ if output = Facter::Core::Execution.exec('lsb_release -d -s 2>/dev/null')
21
+ # the output may be quoted (at least it is on gentoo)
22
+ output.sub(/^"(.*)"$/,'\1')
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,16 @@
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 'lsb_release -i -s 2>/dev/null'
16
+ end
@@ -0,0 +1,16 @@
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 'lsb_release -r -s 2>/dev/null'
16
+ 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,16 @@
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 'lsb_release -v -s 2>/dev/null'
16
+ 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