facter 2.5.7-x64-mingw32 → 3.9.6.cfacter.20180412-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (506) hide show
  1. checksums.yaml +5 -5
  2. data/bin/facter.bat +8 -0
  3. data/bin/facter.exe +0 -0
  4. data/bin/facter_interactive.bat +6 -0
  5. data/bin/libfacter.so +0 -0
  6. data/bin/run_facter_interactive.bat +9 -0
  7. data/lib/facter.rb +45 -261
  8. data/lib/libfacter.so.a +0 -0
  9. metadata +23 -854
  10. data/COMMITTERS.md +0 -185
  11. data/CONTRIBUTING.md +0 -91
  12. data/Gemfile +0 -69
  13. data/LICENSE +0 -15
  14. data/README.md +0 -65
  15. data/Rakefile +0 -46
  16. data/bin/facter +0 -20
  17. data/etc/facter.conf +0 -5
  18. data/ext/build_defaults.yaml +0 -9
  19. data/ext/debian/changelog.erb +0 -59
  20. data/ext/debian/compat +0 -1
  21. data/ext/debian/control +0 -15
  22. data/ext/debian/copyright +0 -19
  23. data/ext/debian/docs +0 -1
  24. data/ext/debian/lintian-overrides +0 -0
  25. data/ext/debian/rules +0 -10
  26. data/ext/debian/source/format +0 -1
  27. data/ext/facter-diff +0 -74
  28. data/ext/ips/facter.p5m.erb +0 -10
  29. data/ext/ips/rules +0 -7
  30. data/ext/ips/transforms +0 -18
  31. data/ext/osx/file_mapping.yaml +0 -32
  32. data/ext/osx/preflight.erb +0 -33
  33. data/ext/osx/prototype.plist.erb +0 -38
  34. data/ext/project_data.yaml +0 -31
  35. data/ext/redhat/facter.spec.erb +0 -223
  36. data/ext/solaris/pkginfo +0 -7
  37. data/install.rb +0 -380
  38. data/lib/facter/Cfkey.rb +0 -42
  39. data/lib/facter/application.rb +0 -206
  40. data/lib/facter/architecture.rb +0 -50
  41. data/lib/facter/augeasversion.rb +0 -28
  42. data/lib/facter/blockdevices.rb +0 -105
  43. data/lib/facter/core/aggregate.rb +0 -220
  44. data/lib/facter/core/directed_graph.rb +0 -46
  45. data/lib/facter/core/execution.rb +0 -123
  46. data/lib/facter/core/execution/base.rb +0 -81
  47. data/lib/facter/core/execution/posix.rb +0 -50
  48. data/lib/facter/core/execution/windows.rb +0 -57
  49. data/lib/facter/core/logging.rb +0 -197
  50. data/lib/facter/core/resolvable.rb +0 -94
  51. data/lib/facter/core/suitable.rb +0 -113
  52. data/lib/facter/dhcp_servers.rb +0 -45
  53. data/lib/facter/domain.rb +0 -99
  54. data/lib/facter/ec2.rb +0 -68
  55. data/lib/facter/ec2/rest.rb +0 -137
  56. data/lib/facter/facterversion.rb +0 -15
  57. data/lib/facter/filesystems.rb +0 -45
  58. data/lib/facter/fqdn.rb +0 -24
  59. data/lib/facter/gce.rb +0 -16
  60. data/lib/facter/gce/metadata.rb +0 -87
  61. data/lib/facter/gid.rb +0 -25
  62. data/lib/facter/hardwareisa.rb +0 -20
  63. data/lib/facter/hardwaremodel.rb +0 -67
  64. data/lib/facter/hostname.rb +0 -31
  65. data/lib/facter/id.rb +0 -21
  66. data/lib/facter/interfaces.rb +0 -58
  67. data/lib/facter/ipaddress.rb +0 -169
  68. data/lib/facter/ipaddress6.rb +0 -82
  69. data/lib/facter/iphostnumber.rb +0 -29
  70. data/lib/facter/kernel.rb +0 -22
  71. data/lib/facter/kernelmajversion.rb +0 -23
  72. data/lib/facter/kernelrelease.rb +0 -45
  73. data/lib/facter/kernelversion.rb +0 -22
  74. data/lib/facter/ldom.rb +0 -51
  75. data/lib/facter/lsbdistcodename.rb +0 -20
  76. data/lib/facter/lsbdistdescription.rb +0 -21
  77. data/lib/facter/lsbdistid.rb +0 -20
  78. data/lib/facter/lsbdistrelease.rb +0 -20
  79. data/lib/facter/lsbmajdistrelease.rb +0 -22
  80. data/lib/facter/lsbminordistrelease.rb +0 -22
  81. data/lib/facter/lsbrelease.rb +0 -20
  82. data/lib/facter/macaddress.rb +0 -99
  83. data/lib/facter/macosx.rb +0 -56
  84. data/lib/facter/manufacturer.rb +0 -68
  85. data/lib/facter/memory.rb +0 -168
  86. data/lib/facter/netmask.rb +0 -43
  87. data/lib/facter/network.rb +0 -20
  88. data/lib/facter/operatingsystem.rb +0 -24
  89. data/lib/facter/operatingsystem/base.rb +0 -61
  90. data/lib/facter/operatingsystem/cumuluslinux.rb +0 -27
  91. data/lib/facter/operatingsystem/implementation.rb +0 -33
  92. data/lib/facter/operatingsystem/linux.rb +0 -511
  93. data/lib/facter/operatingsystem/osreleaselinux.rb +0 -28
  94. data/lib/facter/operatingsystem/sunos.rb +0 -54
  95. data/lib/facter/operatingsystem/vmkernel.rb +0 -11
  96. data/lib/facter/operatingsystem/windows.rb +0 -43
  97. data/lib/facter/operatingsystemmajrelease.rb +0 -31
  98. data/lib/facter/operatingsystemrelease.rb +0 -29
  99. data/lib/facter/os.rb +0 -98
  100. data/lib/facter/osfamily.rb +0 -18
  101. data/lib/facter/partitions.rb +0 -39
  102. data/lib/facter/path.rb +0 -14
  103. data/lib/facter/physicalprocessorcount.rb +0 -27
  104. data/lib/facter/processor.rb +0 -52
  105. data/lib/facter/processors.rb +0 -66
  106. data/lib/facter/processors/os.rb +0 -244
  107. data/lib/facter/ps.rb +0 -31
  108. data/lib/facter/puppetversion.rb +0 -20
  109. data/lib/facter/rackspace.rb +0 -37
  110. data/lib/facter/rubyplatform.rb +0 -12
  111. data/lib/facter/rubysitedir.rb +0 -15
  112. data/lib/facter/rubyversion.rb +0 -12
  113. data/lib/facter/selinux.rb +0 -154
  114. data/lib/facter/ssh.rb +0 -73
  115. data/lib/facter/system32.rb +0 -21
  116. data/lib/facter/system_uptime.rb +0 -44
  117. data/lib/facter/timezone.rb +0 -14
  118. data/lib/facter/uniqueid.rb +0 -4
  119. data/lib/facter/uptime.rb +0 -16
  120. data/lib/facter/uptime_days.rb +0 -13
  121. data/lib/facter/uptime_hours.rb +0 -13
  122. data/lib/facter/uptime_seconds.rb +0 -20
  123. data/lib/facter/util/architecture.rb +0 -19
  124. data/lib/facter/util/collection.rb +0 -161
  125. data/lib/facter/util/composite_loader.rb +0 -12
  126. data/lib/facter/util/config.rb +0 -88
  127. data/lib/facter/util/confine.rb +0 -66
  128. data/lib/facter/util/dhcp_servers.rb +0 -58
  129. data/lib/facter/util/directory_loader.rb +0 -88
  130. data/lib/facter/util/ec2.rb +0 -106
  131. data/lib/facter/util/fact.rb +0 -204
  132. data/lib/facter/util/file_read.rb +0 -37
  133. data/lib/facter/util/formatter.rb +0 -39
  134. data/lib/facter/util/ip.rb +0 -340
  135. data/lib/facter/util/ip/windows.rb +0 -215
  136. data/lib/facter/util/loader.rb +0 -155
  137. data/lib/facter/util/macaddress.rb +0 -43
  138. data/lib/facter/util/macosx.rb +0 -73
  139. data/lib/facter/util/manufacturer.rb +0 -99
  140. data/lib/facter/util/memory.rb +0 -228
  141. data/lib/facter/util/netmask.rb +0 -40
  142. data/lib/facter/util/normalization.rb +0 -94
  143. data/lib/facter/util/nothing_loader.rb +0 -12
  144. data/lib/facter/util/operatingsystem.rb +0 -21
  145. data/lib/facter/util/parser.rb +0 -168
  146. data/lib/facter/util/partitions.rb +0 -47
  147. data/lib/facter/util/partitions/linux.rb +0 -71
  148. data/lib/facter/util/partitions/openbsd.rb +0 -40
  149. data/lib/facter/util/plist.rb +0 -24
  150. data/lib/facter/util/plist/generator.rb +0 -228
  151. data/lib/facter/util/plist/parser.rb +0 -226
  152. data/lib/facter/util/posix.rb +0 -16
  153. data/lib/facter/util/processor.rb +0 -289
  154. data/lib/facter/util/registry.rb +0 -11
  155. data/lib/facter/util/resolution.rb +0 -160
  156. data/lib/facter/util/solaris_zones.rb +0 -158
  157. data/lib/facter/util/unix_root.rb +0 -5
  158. data/lib/facter/util/uptime.rb +0 -83
  159. data/lib/facter/util/values.rb +0 -109
  160. data/lib/facter/util/virtual.rb +0 -220
  161. data/lib/facter/util/vlans.rb +0 -21
  162. data/lib/facter/util/windows.rb +0 -10
  163. data/lib/facter/util/windows/api_types.rb +0 -135
  164. data/lib/facter/util/windows/dir.rb +0 -43
  165. data/lib/facter/util/windows/error.rb +0 -87
  166. data/lib/facter/util/windows/process.rb +0 -294
  167. data/lib/facter/util/windows/user.rb +0 -186
  168. data/lib/facter/util/windows_root.rb +0 -7
  169. data/lib/facter/util/wmi.rb +0 -49
  170. data/lib/facter/util/xendomains.rb +0 -28
  171. data/lib/facter/version.rb +0 -86
  172. data/lib/facter/virtual.rb +0 -339
  173. data/lib/facter/vlans.rb +0 -17
  174. data/lib/facter/xendomains.rb +0 -20
  175. data/lib/facter/zfs_version.rb +0 -14
  176. data/lib/facter/zonename.rb +0 -6
  177. data/lib/facter/zones.rb +0 -18
  178. data/lib/facter/zpool_version.rb +0 -10
  179. data/spec/fixtures/cpuinfo/amd64dual +0 -57
  180. data/spec/fixtures/cpuinfo/amd64dual-grep +0 -2
  181. data/spec/fixtures/cpuinfo/amd64quad +0 -79
  182. data/spec/fixtures/cpuinfo/amd64solo +0 -23
  183. data/spec/fixtures/cpuinfo/amd64tri +0 -86
  184. data/spec/fixtures/cpuinfo/amd64twentyfour +0 -600
  185. data/spec/fixtures/cpuinfo/amd64twentyfour-grep +0 -24
  186. data/spec/fixtures/cpuinfo/bbg3-armel +0 -12
  187. data/spec/fixtures/cpuinfo/beaglexm-armel +0 -12
  188. data/spec/fixtures/cpuinfo/panda-armel +0 -17
  189. data/spec/fixtures/cpuinfo/ppc64 +0 -19
  190. data/spec/fixtures/cpuinfo/ppc64le +0 -15
  191. data/spec/fixtures/cpuinfo/sparc +0 -10
  192. data/spec/fixtures/cpuinfo/two_multicore-grep +0 -4
  193. data/spec/fixtures/cpuinfo/two_singlecore-grep +0 -2
  194. data/spec/fixtures/hpux/machinfo/hppa-rp4440 +0 -26
  195. data/spec/fixtures/hpux/machinfo/ia64-rx2620 +0 -49
  196. data/spec/fixtures/hpux/machinfo/ia64-rx6600 +0 -26
  197. data/spec/fixtures/hpux/machinfo/ia64-rx8640 +0 -53
  198. data/spec/fixtures/hpux/machinfo/superdome-server-SD32B +0 -53
  199. data/spec/fixtures/hpux/machinfo/superdome2-16s +0 -31
  200. data/spec/fixtures/hpux/sched.models +0 -174
  201. data/spec/fixtures/hpux/unistd.h +0 -1534
  202. data/spec/fixtures/ifconfig/bsd_ifconfig_all_with_multiple_interfaces +0 -18
  203. data/spec/fixtures/ifconfig/centos_5_5 +0 -17
  204. data/spec/fixtures/ifconfig/centos_5_5_eth0 +0 -8
  205. data/spec/fixtures/ifconfig/darwin_10_3_0 +0 -26
  206. data/spec/fixtures/ifconfig/darwin_10_3_0_en0 +0 -6
  207. data/spec/fixtures/ifconfig/darwin_10_6_4 +0 -28
  208. data/spec/fixtures/ifconfig/darwin_10_6_4_en1 +0 -6
  209. data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack +0 -8
  210. data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack_en1 +0 -7
  211. data/spec/fixtures/ifconfig/darwin_9_8_0 +0 -26
  212. data/spec/fixtures/ifconfig/darwin_9_8_0_en0 +0 -6
  213. data/spec/fixtures/ifconfig/darwin_ifconfig_all_with_multiple_interfaces +0 -23
  214. data/spec/fixtures/ifconfig/fedora_10 +0 -36
  215. data/spec/fixtures/ifconfig/fedora_10_eth0 +0 -9
  216. data/spec/fixtures/ifconfig/fedora_13 +0 -18
  217. data/spec/fixtures/ifconfig/fedora_13_eth0 +0 -9
  218. data/spec/fixtures/ifconfig/fedora_8 +0 -38
  219. data/spec/fixtures/ifconfig/fedora_8_eth0 +0 -9
  220. data/spec/fixtures/ifconfig/freebsd_6_0 +0 -12
  221. data/spec/fixtures/ifconfig/ifconfig_net_tools_1.60.txt +0 -19
  222. data/spec/fixtures/ifconfig/ifconfig_ubuntu_1204.txt +0 -16
  223. data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces +0 -19
  224. data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces_and_fe80 +0 -19
  225. data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces_and_no_public_ipv6 +0 -18
  226. data/spec/fixtures/ifconfig/linux_ifconfig_no_addr +0 -19
  227. data/spec/fixtures/ifconfig/linux_ifconfig_no_mac +0 -8
  228. data/spec/fixtures/ifconfig/linux_ifconfig_venet +0 -24
  229. data/spec/fixtures/ifconfig/open_solaris_10 +0 -12
  230. data/spec/fixtures/ifconfig/open_solaris_b132 +0 -20
  231. data/spec/fixtures/ifconfig/openbsd_bridge_rules +0 -11
  232. data/spec/fixtures/ifconfig/sunos_ifconfig_all_with_multiple_interfaces +0 -10
  233. data/spec/fixtures/ifconfig/ubuntu_7_04 +0 -38
  234. data/spec/fixtures/ifconfig/ubuntu_7_04_eth0 +0 -9
  235. data/spec/fixtures/ldom/ldom_v1 +0 -6
  236. data/spec/fixtures/netstat/centos_5_5 +0 -5
  237. data/spec/fixtures/netstat/darwin_10_3_0 +0 -35
  238. data/spec/fixtures/netstat/darwin_10_6_4 +0 -29
  239. data/spec/fixtures/netstat/darwin_10_6_6_dualstack +0 -34
  240. data/spec/fixtures/netstat/darwin_9_8_0 +0 -28
  241. data/spec/fixtures/netstat/fedora_10 +0 -7
  242. data/spec/fixtures/netstat/open_solaris_10 +0 -16
  243. data/spec/fixtures/netstat/open_solaris_b132 +0 -17
  244. data/spec/fixtures/netstat/ubuntu_7_04 +0 -7
  245. data/spec/fixtures/processorcount/solaris-psrinfo +0 -24
  246. data/spec/fixtures/processorcount/solaris-sparc-kstat-cpu-info +0 -1216
  247. data/spec/fixtures/processorcount/solaris-x86_64-kstat-cpu-info +0 -225
  248. data/spec/fixtures/unit/dhcp_servers/nmcli_devices +0 -4
  249. data/spec/fixtures/unit/dhcp_servers/nmcli_devices_disconnected +0 -4
  250. data/spec/fixtures/unit/dhcp_servers/nmcli_eth0_dhcp +0 -36
  251. data/spec/fixtures/unit/dhcp_servers/nmcli_eth0_static +0 -24
  252. data/spec/fixtures/unit/dhcp_servers/nmcli_wlan0_dhcp +0 -49
  253. data/spec/fixtures/unit/dhcp_servers/nmcli_wlan0_static +0 -37
  254. data/spec/fixtures/unit/dhcp_servers/route +0 -3
  255. data/spec/fixtures/unit/dhcp_servers/route_nogw +0 -1
  256. data/spec/fixtures/unit/ec2/rest/meta-data/root +0 -20
  257. data/spec/fixtures/unit/filesystems/linux +0 -28
  258. data/spec/fixtures/unit/gce/metadata/metadata.json +0 -69
  259. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt +0 -19
  260. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.em1 +0 -10
  261. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.lo +0 -8
  262. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60_v6.txt +0 -9
  263. data/spec/fixtures/unit/ipaddress/ifconfig_multiple_127_addresses.txt +0 -20
  264. data/spec/fixtures/unit/ipaddress/ifconfig_net_tools_1.60.txt +0 -19
  265. data/spec/fixtures/unit/ipaddress/ifconfig_non_english_locale.txt +0 -18
  266. data/spec/fixtures/unit/ipaddress/ifconfig_ubuntu_1204.txt +0 -16
  267. data/spec/fixtures/unit/kernelrelease/openbsd-5.3 +0 -2
  268. data/spec/fixtures/unit/kernelrelease/openbsd-5.3-current +0 -3
  269. data/spec/fixtures/unit/memory/aix-svmon +0 -9
  270. data/spec/fixtures/unit/memory/aix-swap_l +0 -2
  271. data/spec/fixtures/unit/memory/darwin-swapinfo-multiple +0 -3
  272. data/spec/fixtures/unit/memory/darwin-swapinfo-single +0 -2
  273. data/spec/fixtures/unit/memory/darwin-vm_stat +0 -13
  274. data/spec/fixtures/unit/memory/dragonfly-vmstat +0 -3
  275. data/spec/fixtures/unit/memory/freebsd-vmstat +0 -3
  276. data/spec/fixtures/unit/memory/linux-proc_meminfo +0 -10
  277. data/spec/fixtures/unit/memory/openbsd-vmstat +0 -3
  278. data/spec/fixtures/unit/memory/smartos_zone_swap_l-single +0 -2
  279. data/spec/fixtures/unit/memory/solaris-prtconf +0 -4
  280. data/spec/fixtures/unit/memory/solaris-swap_l-multiple +0 -3
  281. data/spec/fixtures/unit/memory/solaris-swap_l-single +0 -2
  282. data/spec/fixtures/unit/memory/solaris-vmstat +0 -3
  283. data/spec/fixtures/unit/netmask/darwin_10_8_5.txt +0 -30
  284. data/spec/fixtures/unit/netmask/ifconfig_aix_7.txt +0 -3
  285. data/spec/fixtures/unit/netmask/ifconfig_net_tools_1.60.txt +0 -19
  286. data/spec/fixtures/unit/netmask/ifconfig_ubuntu_1204.txt +0 -16
  287. data/spec/fixtures/unit/processors/os/darwin-system-profiler +0 -287
  288. data/spec/fixtures/unit/selinux/selinux_sestatus +0 -6
  289. data/spec/fixtures/unit/selinux/selinux_sestatus2 +0 -9
  290. data/spec/fixtures/unit/util/dhcp_servers/route +0 -3
  291. data/spec/fixtures/unit/util/dhcp_servers/route_nogw +0 -1
  292. data/spec/fixtures/unit/util/ec2/centos-arp-ec2.out +0 -1
  293. data/spec/fixtures/unit/util/ec2/linux-arp-ec2.out +0 -1
  294. data/spec/fixtures/unit/util/ec2/linux-arp-not-ec2.out +0 -5
  295. data/spec/fixtures/unit/util/ec2/solaris8_arp_a_not_ec2.out +0 -7
  296. data/spec/fixtures/unit/util/ec2/windows-2008-arp-a-not-ec2.out +0 -6
  297. data/spec/fixtures/unit/util/ec2/windows-2008-arp-a.out +0 -10
  298. data/spec/fixtures/unit/util/ip/6.0-STABLE_FreeBSD_ifconfig +0 -12
  299. data/spec/fixtures/unit/util/ip/Mac_OS_X_10.5.5_ifconfig +0 -26
  300. data/spec/fixtures/unit/util/ip/darwin_ifconfig_all_with_multiple_interfaces +0 -10
  301. data/spec/fixtures/unit/util/ip/darwin_ifconfig_single_interface +0 -6
  302. data/spec/fixtures/unit/util/ip/debian_kfreebsd_ifconfig +0 -40
  303. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan0 +0 -2
  304. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan1 +0 -2
  305. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lo0 +0 -2
  306. data/spec/fixtures/unit/util/ip/hpux_1111_lanscan +0 -5
  307. data/spec/fixtures/unit/util/ip/hpux_1111_netstat_in +0 -4
  308. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan0 +0 -2
  309. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan1 +0 -2
  310. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lo0 +0 -2
  311. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_lanscan +0 -5
  312. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_netstat_in +0 -4
  313. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan0 +0 -2
  314. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan1 +0 -2
  315. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lo0 +0 -2
  316. data/spec/fixtures/unit/util/ip/hpux_1131_lanscan +0 -4
  317. data/spec/fixtures/unit/util/ip/hpux_1131_netstat_in +0 -4
  318. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan1 +0 -2
  319. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4 +0 -2
  320. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4_1 +0 -2
  321. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lo0 +0 -2
  322. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_lanscan +0 -9
  323. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_netstat_in +0 -6
  324. data/spec/fixtures/unit/util/ip/linux_2_6_35_proc_net_bonding_bond0 +0 -19
  325. data/spec/fixtures/unit/util/ip/linux_get_single_interface_eth0 +0 -10
  326. data/spec/fixtures/unit/util/ip/linux_get_single_interface_ib0 +0 -8
  327. data/spec/fixtures/unit/util/ip/linux_get_single_interface_ib0_centos7 +0 -8
  328. data/spec/fixtures/unit/util/ip/linux_get_single_interface_lo +0 -9
  329. data/spec/fixtures/unit/util/ip/linux_ifconfig_all_with_single_interface +0 -18
  330. data/spec/fixtures/unit/util/ip/linux_ifconfig_ib0 +0 -8
  331. data/spec/fixtures/unit/util/ip/linux_ifconfig_ib0_centos7 +0 -8
  332. data/spec/fixtures/unit/util/ip/solaris_ifconfig_all_with_multiple_interfaces +0 -8
  333. data/spec/fixtures/unit/util/ip/solaris_ifconfig_single_interface +0 -3
  334. data/spec/fixtures/unit/util/ip/windows_netsh_all_interfaces +0 -12
  335. data/spec/fixtures/unit/util/ip/windows_netsh_single_interface +0 -7
  336. data/spec/fixtures/unit/util/ip/windows_netsh_single_interface6 +0 -18
  337. data/spec/fixtures/unit/util/manufacturer/freebsd_dmidecode +0 -42
  338. data/spec/fixtures/unit/util/manufacturer/intel_linux_dmidecode +0 -549
  339. data/spec/fixtures/unit/util/manufacturer/linux_dmidecode_with_spaces +0 -60
  340. data/spec/fixtures/unit/util/manufacturer/opensolaris_smbios +0 -33
  341. data/spec/fixtures/unit/util/manufacturer/smartos_smbios +0 -533
  342. data/spec/fixtures/unit/util/manufacturer/solaris_sunfire_v120_prtdiag +0 -33
  343. data/spec/fixtures/unit/util/manufacturer/solaris_t5220_prtdiag +0 -136
  344. data/spec/fixtures/unit/util/operatingsystem/coreos.txt +0 -9
  345. data/spec/fixtures/unit/util/operatingsystem/cumuluslinux.txt +0 -8
  346. data/spec/fixtures/unit/util/operatingsystem/redhat-7.txt +0 -12
  347. data/spec/fixtures/unit/util/operatingsystem/sabayon.txt +0 -7
  348. data/spec/fixtures/unit/util/operatingsystem/wheezy.txt +0 -9
  349. data/spec/fixtures/unit/util/partitions/partitions/mount +0 -9
  350. data/spec/fixtures/unit/util/processor/solaris-i86pc +0 -28
  351. data/spec/fixtures/unit/util/processor/solaris-sun4u +0 -151
  352. data/spec/fixtures/unit/util/processor/x86-pentium2 +0 -41
  353. data/spec/fixtures/unit/util/uptime/kstat_boot_time +0 -1
  354. data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_darwin +0 -1
  355. data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_openbsd +0 -1
  356. data/spec/fixtures/unit/util/uptime/ubuntu_proc_uptime +0 -1
  357. data/spec/fixtures/unit/util/virtual/invalid_unicode_dmi_entries +0 -0
  358. data/spec/fixtures/unit/util/virtual/solaris10_proc_self_status1 +0 -0
  359. data/spec/fixtures/unit/util/vlans/centos-5-no-vlans +0 -2
  360. data/spec/fixtures/unit/util/vlans/linux_vlan_config +0 -6
  361. data/spec/fixtures/unit/util/xendomains/xendomains +0 -4
  362. data/spec/fixtures/unit/virtual/sysfs_dmi_entries_raw.txt +0 -0
  363. data/spec/fixtures/unit/zfs_version/freebsd_8.2 +0 -14
  364. data/spec/fixtures/unit/zfs_version/freebsd_9.0 +0 -13
  365. data/spec/fixtures/unit/zfs_version/linux-fuse_0.6.9 +0 -14
  366. data/spec/fixtures/unit/zfs_version/solaris_10 +0 -10
  367. data/spec/fixtures/unit/zfs_version/solaris_11 +0 -12
  368. data/spec/fixtures/unit/zfs_version/zfs_new +0 -61
  369. data/spec/fixtures/unit/zfs_version/zfs_old +0 -43
  370. data/spec/fixtures/unit/zfs_version/zfsonlinux_0.6.1 +0 -13
  371. data/spec/fixtures/unit/zpool_version/freebsd_8.2 +0 -26
  372. data/spec/fixtures/unit/zpool_version/freebsd_9.0 +0 -38
  373. data/spec/fixtures/unit/zpool_version/linux-fuse_0.6.9 +0 -35
  374. data/spec/fixtures/unit/zpool_version/solaris_10 +0 -31
  375. data/spec/fixtures/unit/zpool_version/solaris_11 +0 -43
  376. data/spec/fixtures/unit/zpool_version/zfsonlinux_0.6.1 +0 -48
  377. data/spec/fixtures/virtual/proc_1_cgroup/in_a_container +0 -9
  378. data/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container +0 -8
  379. data/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container_with_systemd_slices +0 -10
  380. data/spec/fixtures/virtual/proc_1_cgroup/not_in_a_container +0 -9
  381. data/spec/fixtures/virtual/proc_self_status/vserver_2_1/guest +0 -37
  382. data/spec/fixtures/virtual/proc_self_status/vserver_2_1/host +0 -36
  383. data/spec/fixtures/virtual/proc_self_status/vserver_2_3/guest +0 -39
  384. data/spec/fixtures/virtual/proc_self_status/vserver_2_3/host +0 -39
  385. data/spec/integration/facter_spec.rb +0 -39
  386. data/spec/integration/util/windows/user_spec.rb +0 -59
  387. data/spec/lib/facter_spec/cpuinfo.rb +0 -15
  388. data/spec/lib/facter_spec/windows_network.rb +0 -64
  389. data/spec/puppetlabs_spec/files.rb +0 -57
  390. data/spec/puppetlabs_spec/fixtures.rb +0 -49
  391. data/spec/puppetlabs_spec/matchers.rb +0 -87
  392. data/spec/puppetlabs_spec/verbose.rb +0 -9
  393. data/spec/puppetlabs_spec_helper.rb +0 -26
  394. data/spec/schema/validate_facter_schema.rb +0 -18
  395. data/spec/shared_contexts/platform.rb +0 -55
  396. data/spec/shared_formats/parses.rb +0 -3
  397. data/spec/spec_helper.rb +0 -68
  398. data/spec/unit/application_spec.rb +0 -110
  399. data/spec/unit/architecture_spec.rb +0 -63
  400. data/spec/unit/blockdevices_spec.rb +0 -109
  401. data/spec/unit/core/aggregate_spec.rb +0 -125
  402. data/spec/unit/core/directed_graph_spec.rb +0 -79
  403. data/spec/unit/core/execution/base_spec.rb +0 -130
  404. data/spec/unit/core/execution/posix_spec.rb +0 -96
  405. data/spec/unit/core/execution/windows_spec.rb +0 -106
  406. data/spec/unit/core/execution_spec.rb +0 -42
  407. data/spec/unit/core/logging_spec.rb +0 -223
  408. data/spec/unit/core/resolvable_spec.rb +0 -81
  409. data/spec/unit/core/suitable_spec.rb +0 -106
  410. data/spec/unit/dhcp_servers_spec.rb +0 -212
  411. data/spec/unit/domain_spec.rb +0 -310
  412. data/spec/unit/ec2/rest_spec.rb +0 -168
  413. data/spec/unit/ec2_spec.rb +0 -139
  414. data/spec/unit/facter_spec.rb +0 -108
  415. data/spec/unit/filesystems_spec.rb +0 -50
  416. data/spec/unit/fqdn_spec.rb +0 -16
  417. data/spec/unit/gce/metadata_spec.rb +0 -49
  418. data/spec/unit/gce_spec.rb +0 -34
  419. data/spec/unit/gid_spec.rb +0 -51
  420. data/spec/unit/hardwareisa_spec.rb +0 -41
  421. data/spec/unit/hardwaremodel_spec.rb +0 -58
  422. data/spec/unit/hostname_spec.rb +0 -40
  423. data/spec/unit/id_spec.rb +0 -29
  424. data/spec/unit/interfaces_spec.rb +0 -67
  425. data/spec/unit/ipaddress6_spec.rb +0 -180
  426. data/spec/unit/ipaddress_spec.rb +0 -114
  427. data/spec/unit/kernel_spec.rb +0 -24
  428. data/spec/unit/kernelmajversion_spec.rb +0 -22
  429. data/spec/unit/kernelrelease_spec.rb +0 -66
  430. data/spec/unit/kernelversion_spec.rb +0 -32
  431. data/spec/unit/ldom_spec.rb +0 -84
  432. data/spec/unit/lsbdistcodename_spec.rb +0 -30
  433. data/spec/unit/lsbdistdescription_spec.rb +0 -30
  434. data/spec/unit/lsbdistid_spec.rb +0 -30
  435. data/spec/unit/lsbdistrelease_spec.rb +0 -30
  436. data/spec/unit/lsbmajdistrelease_spec.rb +0 -30
  437. data/spec/unit/lsbminordistrelease_spec.rb +0 -31
  438. data/spec/unit/lsbrelease_spec.rb +0 -30
  439. data/spec/unit/macaddress_spec.rb +0 -76
  440. data/spec/unit/manufacturer_spec.rb +0 -115
  441. data/spec/unit/memory_spec.rb +0 -470
  442. data/spec/unit/netmask_spec.rb +0 -106
  443. data/spec/unit/operatingsystem/base_spec.rb +0 -76
  444. data/spec/unit/operatingsystem/cumuluslinux_spec.rb +0 -40
  445. data/spec/unit/operatingsystem/implementation_spec.rb +0 -50
  446. data/spec/unit/operatingsystem/linux_spec.rb +0 -559
  447. data/spec/unit/operatingsystem/sunos_spec.rb +0 -143
  448. data/spec/unit/operatingsystem/vmkernel_spec.rb +0 -13
  449. data/spec/unit/operatingsystem/windows_spec.rb +0 -77
  450. data/spec/unit/operatingsystem_spec.rb +0 -17
  451. data/spec/unit/operatingsystemmajrelease_spec.rb +0 -21
  452. data/spec/unit/operatingsystemrelease_spec.rb +0 -20
  453. data/spec/unit/os_spec.rb +0 -131
  454. data/spec/unit/osfamily_spec.rb +0 -17
  455. data/spec/unit/partitions_spec.rb +0 -88
  456. data/spec/unit/physicalprocessorcount_spec.rb +0 -13
  457. data/spec/unit/processor_spec.rb +0 -38
  458. data/spec/unit/processors/os_spec.rb +0 -469
  459. data/spec/unit/processors_spec.rb +0 -203
  460. data/spec/unit/ps_spec.rb +0 -42
  461. data/spec/unit/rackspace_spec.rb +0 -40
  462. data/spec/unit/rubyplatform_spec.rb +0 -7
  463. data/spec/unit/selinux_spec.rb +0 -119
  464. data/spec/unit/ssh_spec.rb +0 -77
  465. data/spec/unit/system32_spec.rb +0 -28
  466. data/spec/unit/system_uptime_spec.rb +0 -80
  467. data/spec/unit/uniqueid_spec.rb +0 -27
  468. data/spec/unit/uptime_spec.rb +0 -110
  469. data/spec/unit/util/collection_spec.rb +0 -258
  470. data/spec/unit/util/config_spec.rb +0 -120
  471. data/spec/unit/util/confine_spec.rb +0 -148
  472. data/spec/unit/util/dhcp_servers_spec.rb +0 -63
  473. data/spec/unit/util/directory_loader_spec.rb +0 -102
  474. data/spec/unit/util/ec2_spec.rb +0 -184
  475. data/spec/unit/util/fact_spec.rb +0 -142
  476. data/spec/unit/util/file_read_spec.rb +0 -29
  477. data/spec/unit/util/formatter_spec.rb +0 -55
  478. data/spec/unit/util/ip/windows_spec.rb +0 -80
  479. data/spec/unit/util/ip_spec.rb +0 -487
  480. data/spec/unit/util/loader_spec.rb +0 -286
  481. data/spec/unit/util/macaddress_spec.rb +0 -143
  482. data/spec/unit/util/macosx_spec.rb +0 -114
  483. data/spec/unit/util/manufacturer_spec.rb +0 -223
  484. data/spec/unit/util/normalization_spec.rb +0 -113
  485. data/spec/unit/util/operatingsystem_spec.rb +0 -107
  486. data/spec/unit/util/parser_spec.rb +0 -233
  487. data/spec/unit/util/partitions/partitions_spec.rb +0 -67
  488. data/spec/unit/util/partitions_spec.rb +0 -19
  489. data/spec/unit/util/posix_spec.rb +0 -11
  490. data/spec/unit/util/processor_spec.rb +0 -212
  491. data/spec/unit/util/registry_spec.rb +0 -76
  492. data/spec/unit/util/resolution_spec.rb +0 -129
  493. data/spec/unit/util/solaris_zones_spec.rb +0 -127
  494. data/spec/unit/util/uptime_spec.rb +0 -131
  495. data/spec/unit/util/values_spec.rb +0 -171
  496. data/spec/unit/util/virtual_spec.rb +0 -393
  497. data/spec/unit/util/vlans_spec.rb +0 -42
  498. data/spec/unit/util/wmi_spec.rb +0 -19
  499. data/spec/unit/util/xendomains_spec.rb +0 -114
  500. data/spec/unit/version_spec.rb +0 -42
  501. data/spec/unit/virtual_spec.rb +0 -585
  502. data/spec/unit/zfs_version_spec.rb +0 -87
  503. data/spec/unit/zonename_spec.rb +0 -14
  504. data/spec/unit/zones_spec.rb +0 -55
  505. data/spec/unit/zpool_version_spec.rb +0 -80
  506. data/spec/watchr.rb +0 -125
@@ -1,12 +0,0 @@
1
- # A composite loader that allows for more than one
2
- # default directory loader
3
-
4
- class Facter::Util::CompositeLoader
5
- def initialize(loaders)
6
- @loaders = loaders
7
- end
8
-
9
- def load(collection)
10
- @loaders.each { |loader| loader.load(collection) }
11
- end
12
- end
@@ -1,88 +0,0 @@
1
- require 'rbconfig'
2
-
3
- # A module to return config related data
4
- #
5
- module Facter::Util::Config
6
-
7
- def self.ext_fact_loader
8
- @ext_fact_loader || Facter::Util::DirectoryLoader.default_loader
9
- end
10
-
11
- def self.ext_fact_loader=(loader)
12
- @ext_fact_loader = loader
13
- end
14
-
15
- def self.is_mac?
16
- RbConfig::CONFIG['host_os'] =~ /darwin/i
17
- end
18
-
19
- # Returns true if OS is windows
20
- def self.is_windows?
21
- RbConfig::CONFIG['host_os'] =~ /mswin|win32|dos|mingw|cygwin/i
22
- end
23
-
24
- def self.windows_data_dir
25
- if Facter::Util::Config.is_windows?
26
- Facter::Util::Windows::Dir.get_common_appdata()
27
- else
28
- nil
29
- end
30
- end
31
-
32
- def self.external_facts_dirs=(dir)
33
- @external_facts_dirs = dir
34
- end
35
-
36
- def self.external_facts_dirs
37
- @external_facts_dirs
38
- end
39
-
40
- def self.setup_default_ext_facts_dirs
41
- if Facter::Util::Root.root?
42
- windows_dir = windows_data_dir
43
- if windows_dir.nil? then
44
- # Note: Beginning with Facter 3, /opt/puppetlabs/facter/facts.d will be the only
45
- # default external fact directory.
46
- @external_facts_dirs = ["/opt/puppetlabs/facter/facts.d",
47
- "/etc/facter/facts.d",
48
- "/etc/puppetlabs/facter/facts.d"]
49
- else
50
- @external_facts_dirs = [File.join(windows_dir, 'PuppetLabs', 'facter', 'facts.d')]
51
- end
52
- elsif ENV['HOME']
53
- # Note: Beginning with Facter 3, ~/.puppetlabs/opt/facter/facts.d will be the only
54
- # default external fact directory.
55
- @external_facts_dirs = [File.expand_path(File.join(ENV['HOME'], ".puppetlabs", "opt", "facter", "facts.d")),
56
- File.expand_path(File.join(ENV['HOME'], ".facter", "facts.d"))]
57
- else
58
- @external_facts_dirs = []
59
- end
60
- end
61
-
62
- if Facter::Util::Config.is_windows?
63
- require 'facter/util/windows/dir'
64
- require 'facter/util/windows_root'
65
- else
66
- require 'facter/util/unix_root'
67
- end
68
-
69
- setup_default_ext_facts_dirs
70
-
71
- def self.override_binary_dir=(dir)
72
- @override_binary_dir = dir
73
- end
74
-
75
- def self.override_binary_dir
76
- @override_binary_dir
77
- end
78
-
79
- def self.setup_default_override_binary_dir
80
- if Facter::Util::Config.is_windows?
81
- @override_binary_dir = nil
82
- else
83
- @override_binary_dir = "/opt/puppetlabs/puppet/bin"
84
- end
85
- end
86
-
87
- setup_default_override_binary_dir
88
- end
@@ -1,66 +0,0 @@
1
- # A restricting tag for fact resolution mechanisms. The tag must be true
2
- # for the resolution mechanism to be suitable.
3
-
4
- require 'facter/util/values'
5
-
6
- class Facter::Util::Confine
7
- attr_accessor :fact, :values
8
-
9
- include Facter::Util::Values
10
-
11
- # Add the restriction. Requires the fact name, an operator, and the value
12
- # we're comparing to.
13
- #
14
- # @param fact [Symbol] Name of the fact
15
- # @param values [Array] One or more values to match against.
16
- # They can be any type that provides a === method.
17
- # @param block [Proc] Alternatively a block can be supplied as a check. The fact
18
- # value will be passed as the argument to the block. If the block returns
19
- # true then the fact will be enabled, otherwise it will be disabled.
20
- def initialize(fact = nil, *values, &block)
21
- raise ArgumentError, "The fact name must be provided" unless fact or block_given?
22
- if values.empty? and not block_given?
23
- raise ArgumentError, "One or more values or a block must be provided"
24
- end
25
- @fact = fact
26
- @values = values
27
- @block = block
28
- end
29
-
30
- def to_s
31
- return @block.to_s if @block
32
- return "'%s' '%s'" % [@fact, @values.join(",")]
33
- end
34
-
35
- # Evaluate the fact, returning true or false.
36
- # if we have a block paramter then we only evaluate that instead
37
- def true?
38
- if @block and not @fact then
39
- begin
40
- return !! @block.call
41
- rescue StandardError => error
42
- Facter.debug "Confine raised #{error.class} #{error}"
43
- return false
44
- end
45
- end
46
-
47
- unless fact = Facter[@fact]
48
- Facter.debug "No fact for %s" % @fact
49
- return false
50
- end
51
- value = convert(fact.value)
52
-
53
- return false if value.nil?
54
-
55
- if @block then
56
- begin
57
- return !! @block.call(value)
58
- rescue StandardError => error
59
- Facter.debug "Confine raised #{error.class} #{error}"
60
- return false
61
- end
62
- end
63
-
64
- return @values.any? do |v| convert(v) === value end
65
- end
66
- end
@@ -1,58 +0,0 @@
1
- require 'facter/util/file_read'
2
-
3
- module Facter::Util::DHCPServers
4
- def self.gateway_device
5
- interface = nil
6
- if routes = Facter::Util::FileRead.read('/proc/net/route')
7
- routes.each_line do |line|
8
- device, destination = line.split(' ')
9
- if destination == '00000000'
10
- interface = device
11
- break
12
- end
13
- end
14
- end
15
- interface
16
- end
17
-
18
- def self.devices
19
- if Facter::Core::Execution.which('nmcli')
20
- Facter::Core::Execution.exec("nmcli d").split("\n").select {|d| d =~ /\sconnected/i }.collect{ |line| line.split[0] }
21
- else
22
- []
23
- end
24
- end
25
-
26
- def self.device_dhcp_server(device)
27
- if Facter::Core::Execution.which('nmcli')
28
- # If the version is >= 0.9.9, use show instead of list
29
- if is_newer_nmcli?
30
- Facter::Core::Execution.exec("nmcli -f all d show #{device}").scan(/dhcp_server_identifier.*?(\d+\.\d+\.\d+\.\d+)$/).flatten.first
31
- else
32
- Facter::Core::Execution.exec("nmcli -f all d list iface #{device}").scan(/dhcp_server_identifier.*?(\d+\.\d+\.\d+\.\d+)$/).flatten.first
33
- end
34
- end
35
- end
36
-
37
- def self.network_manager_state
38
- # If the version is >= 0.9.9, use g instead of nm
39
- if is_newer_nmcli?
40
- output = Facter::Core::Execution.exec('nmcli -t -f STATE g 2>/dev/null')
41
- else
42
- output = Facter::Core::Execution.exec('nmcli -t -f STATE nm 2>/dev/null')
43
- end
44
- return nil unless output
45
- output.strip
46
- end
47
-
48
- def self.nmcli_version
49
- if version = Facter::Core::Execution.exec("nmcli --version")
50
- version.scan(/version\s(\d+)\.?(\d+)?\.?(\d+)?\.?(\d+)?/).flatten.map(&:to_i)
51
- end
52
- end
53
-
54
- def self.is_newer_nmcli?
55
- version = nmcli_version
56
- version && (version[0] > 0 || version[1] > 9 || (version[1] == 9 && version[2] >= 9))
57
- end
58
- end
@@ -1,88 +0,0 @@
1
- # A Facter plugin that loads external facts.
2
- #
3
- # Default Unix Directories:
4
- # /opt/puppetlabs/facter/facts.d, /etc/facter/facts.d, /etc/puppetlabs/facter/facts.d
5
- #
6
- # Beginning with Facter 3, only /opt/puppetlabs/facter/facts.d will be a default external fact
7
- # directory in Unix.
8
- #
9
- # Default Windows Direcotires:
10
- # C:\ProgramData\Puppetlabs\facter\facts.d (2008)
11
- # C:\Documents and Settings\All Users\Application Data\Puppetlabs\facter\facts.d (2003)
12
- #
13
- # Can also load from command-line specified directory
14
- #
15
- # Facts can be in the form of JSON, YAML or Text files
16
- # and any executable that returns key=value pairs.
17
-
18
- require 'facter'
19
- require 'facter/util/config'
20
- require 'facter/util/composite_loader'
21
- require 'facter/util/parser'
22
- require 'yaml'
23
-
24
- class Facter::Util::DirectoryLoader
25
-
26
- class NoSuchDirectoryError < Exception
27
- end
28
-
29
- # This value makes it highly likely that external facts will take
30
- # precedence over all other facts
31
- EXTERNAL_FACT_WEIGHT = 10000
32
-
33
- # Directory for fact loading
34
- attr_reader :directory
35
-
36
- def initialize(dir, weight = nil)
37
- @directory = dir
38
- @weight = weight || EXTERNAL_FACT_WEIGHT
39
- end
40
-
41
- def self.loader_for(dir)
42
- if File.directory?(dir)
43
- Facter::Util::DirectoryLoader.new(dir)
44
- else
45
- raise NoSuchDirectoryError
46
- end
47
- end
48
-
49
- def self.default_loader
50
- loaders = Facter::Util::Config.external_facts_dirs.collect do |dir|
51
- Facter::Util::DirectoryLoader.new(dir)
52
- end
53
- Facter::Util::CompositeLoader.new(loaders)
54
- end
55
-
56
- # Load facts from files in fact directory using the relevant parser classes to
57
- # parse them.
58
- def load(collection)
59
- weight = @weight
60
- entries.each do |file|
61
- parser = Facter::Util::Parser.parser_for(file)
62
- if parser == nil
63
- next
64
- end
65
-
66
- data = parser.results
67
- if data == false
68
- Facter.warn "Could not interpret fact file #{file}"
69
- elsif data == {} or data == nil
70
- Facter.warn "Fact file #{file} was parsed but returned an empty data set"
71
- else
72
- data.each { |p,v| collection.add(p, :value => v) { has_weight(weight) } }
73
- end
74
- end
75
- end
76
-
77
- private
78
-
79
- def entries
80
- Dir.entries(directory).find_all { |f| should_parse?(f) }.sort.map { |f| File.join(directory, f) }
81
- rescue Errno::ENOENT => detail
82
- []
83
- end
84
-
85
- def should_parse?(file)
86
- not file =~ /^\./
87
- end
88
- end
@@ -1,106 +0,0 @@
1
- require 'timeout'
2
- require 'open-uri'
3
-
4
- # Provide a set of utility static methods that help with resolving the EC2
5
- # fact.
6
- module Facter::Util::EC2
7
- class << self
8
- # Test if we can connect to the EC2 api. Return true if able to connect.
9
- # On failure this function fails silently and returns false.
10
- #
11
- # The +wait_sec+ parameter provides you with an adjustable timeout.
12
- #
13
- def can_connect?(wait_sec=2)
14
- Facter.warnonce("#{self}.#{__method__} is deprecated; see the Facter::EC2 classes instead")
15
- url = "http://169.254.169.254:80/"
16
- Timeout::timeout(wait_sec) {open(url, :proxy => nil)}
17
- return true
18
- rescue Timeout::Error
19
- return false
20
- rescue
21
- return false
22
- end
23
-
24
- # Test if this host has a mac address used by Eucalyptus clouds, which
25
- # normally is +d0:0d+.
26
- def has_euca_mac?
27
- Facter.warnonce("#{self}.#{__method__} is deprecated; see the Facter::EC2 classes instead")
28
- !!(Facter.value(:macaddress) =~ %r{^[dD]0:0[dD]:})
29
- end
30
-
31
- # Test if this host has a mac address used by OpenStack, which
32
- # normally starts with FA:16:3E (older versions of OpenStack
33
- # may generate mac addresses starting with 02:16:3E)
34
- def has_openstack_mac?
35
- Facter.warnonce("#{self}.#{__method__} is deprecated; see the Facter::EC2 classes instead")
36
- !!(Facter.value(:macaddress) =~ %r{^(02|[fF][aA]):16:3[eE]})
37
- end
38
-
39
- # Test if the host has an arp entry in its cache that matches the EC2 arp,
40
- # which is normally +fe:ff:ff:ff:ff:ff+.
41
- def has_ec2_arp?
42
- Facter.warnonce("#{self}.#{__method__} is deprecated; see the Facter::EC2 classes instead")
43
- kernel = Facter.value(:kernel)
44
-
45
- mac_address_re = case kernel
46
- when /Windows/i
47
- /fe-ff-ff-ff-ff-ff/i
48
- else
49
- /fe:ff:ff:ff:ff:ff/i
50
- end
51
-
52
- arp_command = case kernel
53
- when /Windows/i, /SunOS/i
54
- "arp -a"
55
- else
56
- "arp -an"
57
- end
58
-
59
- if arp_table = Facter::Core::Execution.exec(arp_command)
60
- return true if arp_table.match(mac_address_re)
61
- end
62
- return false
63
- end
64
- end
65
-
66
- ##
67
- # userdata returns a single string containing the body of the response of the
68
- # GET request for the URI http://169.254.169.254/latest/user-data/ If the
69
- # metadata server responds with a 404 Not Found error code then this method
70
- # retuns `nil`.
71
- #
72
- # @param version [String] containing the API version for the request.
73
- # Defaults to "latest" and other examples are documented at
74
- # http://aws.amazon.com/archives/Amazon%20EC2
75
- #
76
- # @api public
77
- #
78
- # @return [String] containing the response body or `nil`
79
- def self.userdata(version="latest")
80
- Facter.warnonce("#{self}.#{__method__} is deprecated; see the Facter::EC2 classes instead")
81
- uri = "http://169.254.169.254/#{version}/user-data/"
82
- begin
83
- read_uri(uri)
84
- rescue OpenURI::HTTPError => detail
85
- case detail.message
86
- when /404 Not Found/i
87
- Facter.debug "No user-data present at #{uri}: server responded with #{detail.message}"
88
- return nil
89
- else
90
- raise detail
91
- end
92
- end
93
- end
94
-
95
- ##
96
- # read_uri provides a seam method to easily test the HTTP client
97
- # functionality of a HTTP based metadata server.
98
- #
99
- # @api private
100
- #
101
- # @return [String] containing the body of the response
102
- def self.read_uri(uri)
103
- open(uri, :proxy => nil).read
104
- end
105
- private_class_method :read_uri
106
- end
@@ -1,204 +0,0 @@
1
- require 'facter'
2
- require 'facter/util/resolution'
3
- require 'facter/core/aggregate'
4
-
5
- # This class represents a fact. Each fact has a name and multiple
6
- # {Facter::Util::Resolution resolutions}.
7
- #
8
- # Create facts using {Facter.add}
9
- #
10
- # @api public
11
- class Facter::Util::Fact
12
- # The name of the fact
13
- # @return [String]
14
- attr_accessor :name
15
-
16
- # @return [String]
17
- # @deprecated
18
- attr_accessor :ldapname
19
-
20
- # Creates a new fact, with no resolution mechanisms. See {Facter.add}
21
- # for the public API for creating facts.
22
- # @param name [String] the fact name
23
- # @param options [Hash] optional parameters
24
- # @option options [String] :ldapname set the ldapname property on the fact
25
- #
26
- # @api private
27
- def initialize(name, options = {})
28
- @name = name.to_s.downcase.intern
29
-
30
- extract_ldapname_option!(options)
31
-
32
- @ldapname ||= @name.to_s
33
-
34
- @resolves = []
35
- @searching = false
36
-
37
- @value = nil
38
- end
39
-
40
- # Adds a new {Facter::Util::Resolution resolution}. This requires a
41
- # block, which will then be evaluated in the context of the new
42
- # resolution.
43
- #
44
- # @param options [Hash] A hash of options to set on the resolution
45
- #
46
- # @return [Facter::Util::Resolution]
47
- #
48
- # @api private
49
- def add(options = {}, &block)
50
- define_resolution(nil, options, &block)
51
- end
52
-
53
- # Define a new named resolution or return an existing resolution with
54
- # the given name.
55
- #
56
- # @param resolution_name [String] The name of the resolve to define or look up
57
- # @param options [Hash] A hash of options to set on the resolution
58
- # @return [Facter::Util::Resolution]
59
- #
60
- # @api public
61
- def define_resolution(resolution_name, options = {}, &block)
62
-
63
- resolution_type = options.delete(:type) || :simple
64
-
65
- resolve = create_or_return_resolution(resolution_name, resolution_type)
66
-
67
- resolve.set_options(options) unless options.empty?
68
- resolve.evaluate(&block) if block
69
-
70
- resolve
71
- rescue => e
72
- Facter.log_exception(e, "Unable to add resolve #{resolution_name.inspect} for fact #{@name}: #{e.message}")
73
- end
74
-
75
- # Retrieve an existing resolution by name
76
- #
77
- # @param name [String]
78
- #
79
- # @return [Facter::Util::Resolution, nil] The resolution if exists, nil if
80
- # it doesn't exist or name is nil
81
- def resolution(name)
82
- return nil if name.nil?
83
-
84
- @resolves.find { |resolve| resolve.name == name }
85
- end
86
-
87
- # Flushes any cached values.
88
- #
89
- # @return [void]
90
- #
91
- # @api private
92
- def flush
93
- @resolves.each { |r| r.flush }
94
- @value = nil
95
- end
96
-
97
- # Returns the value for this fact. This searches all resolutions by
98
- # suitability and weight (see {Facter::Util::Resolution}). If no
99
- # suitable resolution is found, it returns nil.
100
- #
101
- # @api public
102
- def value
103
- return @value if @value
104
-
105
- if @resolves.empty?
106
- Facter.debug "No resolves for %s" % @name
107
- return nil
108
- end
109
-
110
- searching do
111
-
112
- suitable_resolutions = sort_by_weight(find_suitable_resolutions(@resolves))
113
- @value = find_first_real_value(suitable_resolutions)
114
-
115
- announce_when_no_suitable_resolution(suitable_resolutions)
116
- announce_when_no_value_found(@value)
117
-
118
- @value
119
- end
120
- end
121
-
122
- # @api private
123
- # @deprecated
124
- def extract_ldapname_option!(options)
125
- if options[:ldapname]
126
- Facter.warnonce("ldapname is deprecated and will be removed in a future version")
127
- self.ldapname = options.delete(:ldapname)
128
- end
129
- end
130
-
131
- private
132
-
133
- # Are we in the midst of a search?
134
- def searching?
135
- @searching
136
- end
137
-
138
- # Lock our searching process, so we never ge stuck in recursion.
139
- def searching
140
- raise RuntimeError, "Caught recursion on #{@name}" if searching?
141
-
142
- # If we've gotten this far, we're not already searching, so go ahead and do so.
143
- @searching = true
144
- begin
145
- yield
146
- ensure
147
- @searching = false
148
- end
149
- end
150
-
151
- def find_suitable_resolutions(resolutions)
152
- resolutions.find_all{ |resolve| resolve.suitable? }
153
- end
154
-
155
- def sort_by_weight(resolutions)
156
- resolutions.sort { |a, b| b.weight <=> a.weight }
157
- end
158
-
159
- def find_first_real_value(resolutions)
160
- resolutions.each do |resolve|
161
- value = resolve.value
162
- if not value.nil?
163
- return value
164
- end
165
- end
166
- nil
167
- end
168
-
169
- def announce_when_no_suitable_resolution(resolutions)
170
- if resolutions.empty?
171
- Facter.debug "Found no suitable resolves of %s for %s" % [@resolves.length, @name]
172
- end
173
- end
174
-
175
- def announce_when_no_value_found(value)
176
- if value.nil?
177
- Facter.debug("value for %s is still nil" % @name)
178
- end
179
- end
180
-
181
- def create_or_return_resolution(resolution_name, resolution_type)
182
- resolve = self.resolution(resolution_name)
183
-
184
- if resolve
185
- if resolution_type != resolve.resolution_type
186
- raise ArgumentError, "Cannot return resolution #{resolution_name} with type" +
187
- " #{resolution_type}; already defined as #{resolve.resolution_type}"
188
- end
189
- else
190
- case resolution_type
191
- when :simple
192
- resolve = Facter::Util::Resolution.new(resolution_name, self)
193
- when :aggregate
194
- resolve = Facter::Core::Aggregate.new(resolution_name, self)
195
- else
196
- raise ArgumentError, "Expected resolution type to be one of (:simple, :aggregate) but was #{resolution_type}"
197
- end
198
-
199
- @resolves << resolve
200
- end
201
-
202
- resolve
203
- end
204
- end