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,94 +0,0 @@
1
- require 'timeout'
2
-
3
- # The resolvable mixin defines behavior for evaluating and returning fact
4
- # resolutions.
5
- #
6
- # Classes including this mixin should implement at #name method describing
7
- # the value being resolved and a #resolve_value that actually executes the code
8
- # to resolve the value.
9
- module Facter::Core::Resolvable
10
-
11
- # The timeout, in seconds, for evaluating this resolution.
12
- # @return [Integer]
13
- # @api public
14
- attr_accessor :timeout
15
-
16
- # Return the timeout period for resolving a value.
17
- # (see #timeout)
18
- # @return [Numeric]
19
- # @comment requiring 'timeout' stdlib class causes Object#timeout to be
20
- # defined which delegates to Timeout.timeout. This method may potentially
21
- # overwrite the #timeout attr_reader on this class, so we define #limit to
22
- # avoid conflicts.
23
- def limit
24
- @timeout || 0
25
- end
26
-
27
- ##
28
- # on_flush accepts a block and executes the block when the resolution's value
29
- # is flushed. This makes it possible to model a single, expensive system
30
- # call inside of a Ruby object and then define multiple dynamic facts which
31
- # resolve by sending messages to the model instance. If one of the dynamic
32
- # facts is flushed then it can, in turn, flush the data stored in the model
33
- # instance to keep all of the dynamic facts in sync without making multiple,
34
- # expensive, system calls.
35
- #
36
- # Please see the Solaris zones fact for an example of how this feature may be
37
- # used.
38
- #
39
- # @see Facter::Util::Fact#flush
40
- # @see Facter::Util::Resolution#flush
41
- #
42
- # @api public
43
- def on_flush(&block)
44
- @on_flush_block = block
45
- end
46
-
47
- ##
48
- # flush executes the block, if any, stored by the {on_flush} method
49
- #
50
- # @see Facter::Util::Fact#flush
51
- # @see Facter::Util::Resolution#on_flush
52
- #
53
- # @api private
54
- def flush
55
- @on_flush_block.call if @on_flush_block
56
- end
57
-
58
- def value
59
- result = nil
60
-
61
- with_timing do
62
- Timeout.timeout(limit) do
63
- result = resolve_value
64
- end
65
- end
66
-
67
- Facter::Util::Normalization.normalize(result)
68
- rescue Timeout::Error => detail
69
- Facter.log_exception(detail, "Timed out after #{limit} seconds while resolving #{qualified_name}")
70
- return nil
71
- rescue Facter::Util::Normalization::NormalizationError => detail
72
- Facter.log_exception(detail, "Fact resolution #{qualified_name} resolved to an invalid value: #{detail.message}")
73
- return nil
74
- rescue => detail
75
- Facter.log_exception(detail, "Could not retrieve #{qualified_name}: #{detail.message}")
76
- return nil
77
- end
78
-
79
- private
80
-
81
- def with_timing
82
- starttime = Time.now.to_f
83
-
84
- yield
85
-
86
- finishtime = Time.now.to_f
87
- ms = (finishtime - starttime) * 1000
88
- Facter.show_time "#{qualified_name}: #{"%.2f" % ms}ms"
89
- end
90
-
91
- def qualified_name
92
- "fact='#{@fact.name.to_s}', resolution='#{@name || '<anonymous>'}'"
93
- end
94
- end
@@ -1,113 +0,0 @@
1
- require 'facter'
2
-
3
- # The Suitable mixin provides mechanisms for confining objects to run on
4
- # certain platforms and determining the run precedence of these objects.
5
- #
6
- # Classes that include the Suitable mixin should define a `#confines` method
7
- # that returns an Array of zero or more Facter::Util::Confine objects.
8
- module Facter::Core::Suitable
9
-
10
- attr_writer :weight
11
-
12
- # Sets the weight of this resolution. If multiple suitable resolutions
13
- # are found, the one with the highest weight will be used. If weight
14
- # is not given, the number of confines set on a resolution will be
15
- # used as its weight (so that the most specific resolution is used).
16
- #
17
- # @param weight [Integer] the weight of this resolution
18
- #
19
- # @return [void]
20
- #
21
- # @api public
22
- def has_weight(weight)
23
- @weight = weight
24
- end
25
-
26
- # Sets the conditions for this resolution to be used. This method accepts
27
- # multiple forms of arguments to determine suitability.
28
- #
29
- # @return [void]
30
- #
31
- # @api public
32
- #
33
- # @overload confine(confines)
34
- # Confine a fact to a specific fact value or values. This form takes a
35
- # hash of fact names and values. Every fact must match the values given for
36
- # that fact, otherwise this resolution will not be considered suitable. The
37
- # values given for a fact can be an array, in which case the value of the
38
- # fact must be in the array for it to match.
39
- # @param [Hash{String,Symbol=>String,Array<String>}] confines set of facts identified by the hash keys whose
40
- # fact value must match the argument value.
41
- # @example Confining to Linux
42
- # Facter.add(:powerstates) do
43
- # # This resolution only makes sense on linux systems
44
- # confine :kernel => "Linux"
45
- # setcode do
46
- # File.read('/sys/power/states')
47
- # end
48
- # end
49
- #
50
- # @overload confine(confines, &block)
51
- # Confine a fact to a block with the value of a specified fact yielded to
52
- # the block.
53
- # @param [String,Symbol] confines the fact name whose value should be
54
- # yielded to the block
55
- # @param [Proc] block determines the suitability of the fact. If the block
56
- # evaluates to `false` or `nil` then the confined fact will not be
57
- # evaluated.
58
- # @yield [value] the value of the fact identified by {confines}
59
- # @example Confine the fact to a host with an ipaddress in a specific
60
- # subnet
61
- # confine :ipaddress do |addr|
62
- # require 'ipaddr'
63
- # IPAddr.new('192.168.0.0/16').include? addr
64
- # end
65
- #
66
- # @overload confine(&block)
67
- # Confine a fact to a block. The fact will be evaluated only if the block
68
- # evaluates to something other than `false` or `nil`.
69
- # @param [Proc] block determines the suitability of the fact. If the block
70
- # evaluates to `false` or `nil` then the confined fact will not be
71
- # evaluated.
72
- # @example Confine the fact to systems with a specific file.
73
- # confine { File.exist? '/bin/foo' }
74
- def confine(confines = nil, &block)
75
- case confines
76
- when Hash
77
- confines.each do |fact, values|
78
- @confines.push Facter::Util::Confine.new(fact, *values)
79
- end
80
- else
81
- if block
82
- if confines
83
- @confines.push Facter::Util::Confine.new(confines, &block)
84
- else
85
- @confines.push Facter::Util::Confine.new(&block)
86
- end
87
- else
88
- end
89
- end
90
- end
91
-
92
- # Returns the importance of this resolution. If the weight was not
93
- # given, the number of confines is used instead (so that a more
94
- # specific resolution wins over a less specific one).
95
- #
96
- # @return [Integer] the weight of this resolution
97
- #
98
- # @api private
99
- def weight
100
- if @weight
101
- @weight
102
- else
103
- @confines.length
104
- end
105
- end
106
-
107
- # Is this resolution mechanism suitable on the system in question?
108
- #
109
- # @api private
110
- def suitable?
111
- @confines.all? { |confine| confine.true? }
112
- end
113
- end
@@ -1,45 +0,0 @@
1
- # Fact: dhcp_servers
2
- #
3
- # Purpose:
4
- # Return the DHCP server addresses for all interfaces as a hash.
5
- # If the interface that is the default gateway is DHCP assigned, there
6
- # will also be a `"system"` entry in the hash.
7
- #
8
- # This fact is structured. Values are returned as a group of key-value pairs.
9
- #
10
- # Resolution:
11
- # Parses the output of `nmcli` to find the DHCP server for the interface if available.
12
- #
13
- # Caveats:
14
- # Requires `nmcli` to be available and the interface must use network-manager.
15
- #
16
-
17
- require 'facter'
18
- require 'facter/util/dhcp_servers'
19
-
20
-
21
- Facter.add(:dhcp_servers) do
22
- confine :kernel => :linux
23
- confine do
24
- Facter::Core::Execution.which('nmcli')
25
- end
26
- confine do
27
- s = Facter::Util::DHCPServers.network_manager_state
28
- !s.empty? && (s != 'unknown')
29
- end
30
-
31
- setcode do
32
- gwdev = Facter::Util::DHCPServers.gateway_device
33
- devices = Facter::Util::DHCPServers.devices
34
-
35
- dhcp_servers = {}
36
- devices.each do |device|
37
- if server = Facter::Util::DHCPServers.device_dhcp_server(device)
38
- dhcp_servers['system'] = server if device == gwdev
39
- dhcp_servers[device] = server
40
- end
41
- end
42
-
43
- dhcp_servers.keys.length > 0 ? dhcp_servers : nil
44
- end
45
- end
data/lib/facter/domain.rb DELETED
@@ -1,99 +0,0 @@
1
- # Fact: domain
2
- #
3
- # Purpose:
4
- # Return the host's primary DNS domain name.
5
- #
6
- # Resolution:
7
- # On UNIX (excluding Darwin), first try and use the hostname fact,
8
- # which uses the `hostname` system command, and then parse the output
9
- # of that.
10
- # Failing that, it tries the `dnsdomainname` system command.
11
- # Failing that, it uses `/etc/resolv.conf` and takes the domain from that, or as
12
- # a final resort, the search from that.
13
- # Otherwise returns `nil`.
14
- #
15
- # On Windows uses the win32ole gem and winmgmts to get the DNSDomain value
16
- # from the Win32 networking stack.
17
- #
18
- # Caveats:
19
- #
20
-
21
- Facter.add(:domain) do
22
- setcode do
23
- # Get the domain from various sources; the order of these
24
- # steps is important
25
-
26
- # In some OS 'hostname -f' will change the hostname to '-f'
27
- # We know that Solaris and HP-UX exhibit this behavior
28
- # On good OS, 'hostname -f' will return the FQDN which is preferable
29
- # Due to dangerous behavior of 'hostname -f' on old OS, we will explicitly opt-in
30
- # 'hostname -f' --hkenney May 9, 2012
31
- basic_hostname = 'hostname 2> /dev/null'
32
- windows_hostname = 'hostname > NUL'
33
- full_hostname = 'hostname -f 2> /dev/null'
34
- can_do_hostname_f = Regexp.union /Linux/i, /FreeBSD/i, /Darwin/i
35
-
36
- hostname_command = if Facter.value(:kernel) =~ can_do_hostname_f
37
- full_hostname
38
- elsif Facter.value(:kernel) == "windows"
39
- windows_hostname
40
- else
41
- basic_hostname
42
- end
43
-
44
- if name = Facter::Core::Execution.exec(hostname_command) \
45
- and name =~ /.*?\.(.+$)/
46
-
47
- return_value = $1
48
- elsif Facter.value(:kernel) != "windows" and domain = Facter::Core::Execution.exec('dnsdomainname 2> /dev/null') \
49
- and domain =~ /.+/
50
-
51
- return_value = domain
52
- elsif FileTest.exists?("/etc/resolv.conf")
53
- domain = nil
54
- search = nil
55
- File.open("/etc/resolv.conf") { |file|
56
- file.each { |line|
57
- if line =~ /^\s*domain\s+(\S+)/
58
- domain = $1
59
- elsif line =~ /^\s*search\s+(\S+)/
60
- search = $1
61
- end
62
- }
63
- }
64
- return_value ||= domain
65
- return_value ||= search
66
- end
67
-
68
- if return_value
69
- return_value.gsub(/\.$/, '')
70
- end
71
- end
72
- end
73
-
74
- Facter.add(:domain) do
75
- confine :kernel => :windows
76
- setcode do
77
- require 'facter/util/registry'
78
-
79
- domain = nil
80
- regvalue = Facter::Util::Registry.hklm_read('SYSTEM\CurrentControlSet\Services\Tcpip\Parameters', 'Domain')
81
-
82
- if regvalue and not regvalue.empty?
83
- domain = regvalue
84
- else
85
- require 'facter/util/wmi'
86
- Facter::Util::WMI.execquery("select DNSDomain from Win32_NetworkAdapterConfiguration where IPEnabled = True").each { |nic|
87
- if nic.DNSDomain && nic.DNSDomain.length > 0
88
- domain = nic.DNSDomain
89
- break
90
- end
91
- }
92
- end
93
-
94
-
95
- if domain
96
- domain.gsub(/\.$/, '')
97
- end
98
- end
99
- end
data/lib/facter/ec2.rb DELETED
@@ -1,68 +0,0 @@
1
- # Fact: ec2_<EC2 INSTANCE DATA>
2
- #
3
- # Purpose:
4
- # Returns info retrieved in bulk from the EC2 API. The names of these facts
5
- # should be self explanatory, and they are otherwise undocumented. The full
6
- # list of these facts is: ec2_ami_id, ec2_ami_launch_index,
7
- # ec2_ami_manifest_path, ec2_block_device_mapping_ami,
8
- # ec2_block_device_mapping_ephemeral0, ec2_block_device_mapping_root,
9
- # ec2_hostname, ec2_instance_id, ec2_instance_type, ec2_kernel_id,
10
- # ec2_local_hostname, ec2_local_ipv4, ec2_placement_availability_zone,
11
- # ec2_profile, ec2_public_hostname, ec2_public_ipv4,
12
- # ec2_public_keys_0_openssh_key, ec2_reservation_id, and ec2_security_groups.
13
- #
14
- # Resolution:
15
- # Directly queries the EC2 metadata endpoint.
16
- #
17
-
18
- require 'facter/ec2/rest' unless defined?(Facter::EC2)
19
-
20
- Facter.define_fact(:ec2_metadata) do
21
- define_resolution(:rest) do
22
- confine do
23
- Facter.value(:virtual).match /^(xen|kvm|nitro|ec2)/
24
- end
25
-
26
- @querier = Facter::EC2::Metadata.new
27
- confine do
28
- @querier.reachable?
29
- end
30
-
31
- setcode do
32
- @querier.fetch
33
- end
34
- end
35
- end
36
-
37
- Facter.define_fact(:ec2_userdata) do
38
- define_resolution(:rest) do
39
- confine do
40
- Facter.value(:virtual).match /^(xen|kvm|nitro|ec2)/
41
- end
42
-
43
- @querier = Facter::EC2::Userdata.new
44
- confine do
45
- @querier.reachable?
46
- end
47
-
48
- setcode do
49
- userdata = @querier.fetch
50
- begin
51
- Facter::Util::Normalization.normalize_string(userdata)
52
- rescue Facter::Util::Normalization::NormalizationError => e
53
- Facter.debug("Failed to read ec2 userdata: #{e.message}")
54
- userdata = nil
55
- end
56
- userdata
57
- end
58
- end
59
- end
60
-
61
- # The flattened version of the EC2 facts are deprecated and will be removed in
62
- # a future release of Facter.
63
- if (ec2_metadata = Facter.value(:ec2_metadata))
64
- ec2_facts = Facter::Util::Values.flatten_structure("ec2", ec2_metadata)
65
- ec2_facts.each_pair do |factname, factvalue|
66
- Facter.add(factname, :value => factvalue)
67
- end
68
- end
@@ -1,137 +0,0 @@
1
- require 'timeout'
2
- require 'open-uri'
3
-
4
- module Facter
5
- module EC2
6
- CONNECTION_ERRORS = [
7
- Errno::EHOSTDOWN,
8
- Errno::EHOSTUNREACH,
9
- Errno::ENETUNREACH,
10
- Errno::ECONNABORTED,
11
- Errno::ECONNREFUSED,
12
- Errno::ECONNRESET,
13
- Errno::ETIMEDOUT,
14
- ]
15
-
16
- # Contains metadata keys that should not be collected
17
- FILTERED_KEYS = [
18
- 'security-credentials/'
19
- ].freeze
20
-
21
- class Base
22
- def reachable?(retry_limit = 3)
23
- timeout = 0.5
24
- able_to_connect = false
25
- attempts = 0
26
-
27
- begin
28
- open(@baseurl, :proxy => nil, :read_timeout => timeout).read
29
- able_to_connect = true
30
- rescue OpenURI::HTTPError => e
31
- if e.message.match /404 Not Found/i
32
- able_to_connect = false
33
- else
34
- attempts = attempts + 1
35
- retry if attempts < retry_limit
36
- end
37
- rescue Timeout::Error
38
- attempts = attempts + 1
39
- retry if attempts < retry_limit
40
- rescue *CONNECTION_ERRORS
41
- attempts = attempts + 1
42
- retry if attempts < retry_limit
43
- end
44
-
45
- able_to_connect
46
- end
47
- end
48
-
49
- class Metadata < Base
50
-
51
- DEFAULT_URI = "http://169.254.169.254/latest/meta-data/"
52
-
53
- def initialize(uri = DEFAULT_URI)
54
- @baseurl = uri
55
- end
56
-
57
- def fetch(path = '')
58
- results = {}
59
-
60
- keys = fetch_endpoint(path)
61
- keys.each do |key|
62
- next if FILTERED_KEYS.include? key
63
- if key.match(%r[/$])
64
- # If a metadata key is suffixed with '/' then it's a general metadata
65
- # resource, so we have to recursively look up all the keys in the given
66
- # collection.
67
- name = key[0..-2]
68
- results[name] = fetch("#{path}#{key}")
69
- else
70
- # This is a simple key/value pair, we can just query the given endpoint
71
- # and store the results.
72
- ret = fetch_endpoint("#{path}#{key}")
73
- results[key] = ret.size > 1 ? ret : ret.first
74
- end
75
- end
76
-
77
- results
78
- end
79
-
80
- # @param path [String] The path relative to the object base url
81
- #
82
- # @return [Array, NilClass]
83
- def fetch_endpoint(path)
84
- uri = @baseurl + path
85
- body = open(uri, :proxy => nil).read
86
- parse_results(body)
87
- rescue OpenURI::HTTPError => e
88
- if e.message.match /404 Not Found/i
89
- return nil
90
- else
91
- Facter.log_exception(e, "Failed to fetch ec2 uri #{uri}: #{e.message}")
92
- return nil
93
- end
94
- rescue *CONNECTION_ERRORS => e
95
- Facter.log_exception(e, "Failed to fetch ec2 uri #{uri}: #{e.message}")
96
- return nil
97
- rescue Timeout::Error => e
98
- Facter.log_exception(e, "Failed to fetch ec2 uri #{uri}: #{e.message}")
99
- return nil
100
- end
101
-
102
- private
103
-
104
- def parse_results(body)
105
- lines = body.split("\n")
106
- lines.map do |line|
107
- if (match = line.match(/^(\d+)=.*$/))
108
- # Metadata arrays are formatted like '<index>=<associated key>/', so
109
- # we need to extract the index from that output.
110
- "#{match[1]}/"
111
- else
112
- line
113
- end
114
- end
115
- end
116
- end
117
-
118
- class Userdata < Base
119
- DEFAULT_URI = "http://169.254.169.254/latest/user-data/"
120
-
121
- def initialize(uri = DEFAULT_URI)
122
- @baseurl = uri
123
- end
124
-
125
- def fetch
126
- open(@baseurl, :proxy => nil).read
127
- rescue OpenURI::HTTPError => e
128
- if e.message.match /404 Not Found/i
129
- return nil
130
- else
131
- Facter.log_exception(e, "Failed to fetch ec2 uri #{uri}: #{e.message}")
132
- return nil
133
- end
134
- end
135
- end
136
- end
137
- end