facter 2.5.7-x86-mingw32 → 3.9.6.cfacter.20180606-x86-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,158 +0,0 @@
1
- require 'facter/util/resolution'
2
-
3
- module Facter
4
- module Util
5
- ##
6
- # Provide a set of utility methods to interact with Solaris zones. This class
7
- # is expected to be instantiated once per set of resolutions in order to
8
- # cache the output of the zoneadm command, which can be quite expensive.
9
- #
10
- # @api private
11
- class SolarisZones
12
- attr_reader :zone_hash
13
- attr_reader :zoneadm_cmd
14
- attr_reader :zoneadm_output
15
- attr_reader :zoneadm_keys
16
-
17
- ##
18
- # add_facts defines all of the facts for solaris zones, for example `zones`,
19
- # `zone_global_id`, `zone_global_status`, etc... This method defines the
20
- # static fact named `zones`. The value of this fact is the numver of zones
21
- # reported by the zoneadm system command. The `zones` fact also defines
22
- # all of the dynamic facts describing the following seven attribute values
23
- # for each zone.
24
- #
25
- # Zones may be added to the system while Facter is loaded. In order to
26
- # define new dynamic facts that reflect this new information, the `virtual`
27
- # will define new facts as a side effect of refreshing it's own value.
28
- #
29
- # @api private
30
- def self.add_facts
31
- model = new
32
- model.refresh
33
- model.add_dynamic_facts
34
- Facter.add("zones") do
35
- setcode do
36
- model.refresh if model.flushed?
37
- model.add_dynamic_facts
38
- model.count
39
- end
40
- on_flush do
41
- model.flush!
42
- end
43
- end
44
- end
45
-
46
- ##
47
- # @param [Hash] opts the options to create the instance with
48
- # @option opts [String] :zoneadm_cmd ('/usr/sbin/zoneadm list -cp') the
49
- # system command to inspect zones
50
- # @option opts [String] :zoneadm_output (nil) the cached output of the
51
- # zoneadm_cmd
52
- def initialize(opts = {})
53
- @zoneadm_keys = [:id, :name, :status, :path, :uuid, :brand, :iptype]
54
- @zoneadm_cmd = opts[:zoneadm_cmd] || '/usr/sbin/zoneadm list -cp'
55
- if opts[:zoneadm_output]
56
- @zoneadm_output = opts[:zoneadm_output]
57
- end
58
- end
59
-
60
- ##
61
- # add_dynamic_facts defines all of the dynamic facts derived from parsing
62
- # the output of the zoneadm command. The zone facts are dynamic, so this
63
- # method has the behavior of figuring out what dynamic zone facts need to
64
- # be defined and how they should be resolved.
65
- #
66
- # @param model [SolarisZones] the model used to store data from the system
67
- #
68
- # @api private
69
- def add_dynamic_facts
70
- model = self
71
- zone_hash.each_pair do |zone, attr_hsh|
72
- attr_hsh.keys.each do |attr|
73
- Facter.add("zone_#{zone}_#{attr}") do
74
- setcode do
75
- model.refresh if model.flushed?
76
- # Don't resolve if the zone has since been deleted
77
- if zone_hsh = model.zone_hash[zone]
78
- zone_hsh[attr] # the value
79
- end
80
- end
81
- on_flush do
82
- model.flush!
83
- end
84
- end
85
- end
86
- end
87
- end
88
-
89
- ##
90
- # refresh executes the zoneadm_cmd and stores the output data.
91
- #
92
- # @api private
93
- #
94
- # @return [Hash] the parsed output of the zoneadm command
95
- def refresh
96
- @zoneadm_output = Facter::Core::Execution.execute(zoneadm_cmd, {:on_fail => nil})
97
- parse!
98
- end
99
-
100
- ##
101
- # parse! parses the string stored in {@zoneadm_output} and stores the
102
- # resulting Hash data structure in {@zone_hash}
103
- #
104
- # @api private
105
- def parse!
106
- if @zoneadm_output
107
- rows = @zoneadm_output.split("\n").collect { |line| line.split(':') }
108
- else
109
- Facter.debug "Cannot parse zone facts, #{zoneadm_cmd} returned no output"
110
- rows = []
111
- end
112
-
113
- @zone_hash = rows.inject({}) do |memo, fields|
114
- zone = fields[1].intern
115
- # Transform the row into a hash with keys named by the column names
116
- memo[zone] = Hash[*@zoneadm_keys.zip(fields).flatten]
117
- memo
118
- end
119
- end
120
- private :parse!
121
-
122
- ##
123
- # count returns the number of running zones, including the global zone.
124
- # This method is intended to be used from the setcode block of the `zones`
125
- # fact.
126
- #
127
- # @api private
128
- #
129
- # @return [Fixnum, nil] the number of running zones or nil if the number
130
- # could not be determined.
131
- def count
132
- if @zone_hash
133
- @zone_hash.size
134
- end
135
- end
136
-
137
- ##
138
- # flush! purges the saved data from the zoneadm_cmd output
139
- #
140
- # @api private
141
- def flush!
142
- @zoneadm_output = nil
143
- @zone_hash = nil
144
- end
145
-
146
- ##
147
- # flushed? returns true if the instance has no parsed data accessible via
148
- # the {zone_hash} method.
149
- #
150
- # @api private
151
- #
152
- # @return [Boolean] true if there is no parsed data, false otherwise
153
- def flushed?
154
- !@zone_hash
155
- end
156
- end
157
- end
158
- end
@@ -1,5 +0,0 @@
1
- module Facter::Util::Root
2
- def self.root?
3
- Process.uid == 0
4
- end
5
- end
@@ -1,83 +0,0 @@
1
- require 'time'
2
-
3
- # A module to gather uptime facts
4
- #
5
- module Facter::Util::Uptime
6
- def self.get_uptime_seconds_unix
7
- uptime_proc_uptime or uptime_sysctl or uptime_executable
8
- end
9
-
10
- def self.get_uptime_seconds_win
11
- require 'facter/util/wmi'
12
-
13
- last_boot = ""
14
- Facter::Util::WMI.execquery("select * from Win32_OperatingSystem").each do |x|
15
- last_boot = x.LastBootupTime
16
- end
17
- self.compute_uptime(Time.parse(last_boot.split('.').first))
18
- end
19
-
20
- private
21
-
22
- def self.uptime_proc_uptime
23
- output = Facter::Core::Execution.execute("/bin/cat #{uptime_file} 2>/dev/null")
24
-
25
- if not output.empty?
26
- output.chomp.split(" ").first.to_i
27
- end
28
- end
29
-
30
- def self.uptime_sysctl
31
- require 'facter/util/posix'
32
- output = Facter::Util::POSIX.sysctl(uptime_sysctl_variable)
33
- if output
34
- compute_uptime(Time.at(output.match(/\d+/)[0].to_i))
35
- end
36
- end
37
-
38
- def self.uptime_executable
39
- output = Facter::Core::Execution.execute("#{uptime_executable_cmd} 2>/dev/null", :on_fail => nil)
40
-
41
- if output
42
- up=0
43
- if output =~ /(\d+) day(?:s|\(s\))?,?\s+(\d+):-?(\d+)/
44
- # Regexp handles Solaris, AIX, HP-UX, and Tru64.
45
- # 'day(?:s|\(s\))?' says maybe 'day', 'days',
46
- # or 'day(s)', and don't set $2.
47
- up=86400*$1.to_i + 3600*$2.to_i + 60*$3.to_i
48
- elsif output =~ /(\d+) day(?:s|\(s\))?,\s+(\d+) hr(?:s|\(s\))?,/
49
- up=86400*$1.to_i + 3600*$2.to_i
50
- elsif output =~ /(\d+) day(?:s|\(s\))?,\s+(\d+) min(?:s|\(s\))?,/
51
- up=86400*$1.to_i + 60*$2.to_i
52
- elsif output =~ /(\d+) day(?:s|\(s\))?,/
53
- up=86400*$1.to_i
54
- elsif output =~ /up\s+(\d+):-?(\d+),/
55
- # must anchor to 'up' to avoid matching time of day
56
- # at beginning of line. Certain versions of uptime on
57
- # Solaris may insert a '-' into the minutes field.
58
- up=3600*$1.to_i + 60*$2.to_i
59
- elsif output =~ /(\d+) hr(?:s|\(s\))?,/
60
- up=3600*$1.to_i
61
- elsif output =~ /(\d+) min(?:s|\(s\))?,/
62
- up=60*$1.to_i
63
- end
64
- up
65
- end
66
- end
67
-
68
- def self.compute_uptime(time)
69
- (Time.now - time).to_i
70
- end
71
-
72
- def self.uptime_file
73
- "/proc/uptime"
74
- end
75
-
76
- def self.uptime_sysctl_variable
77
- 'kern.boottime'
78
- end
79
-
80
- def self.uptime_executable_cmd
81
- "uptime"
82
- end
83
- end
@@ -1,109 +0,0 @@
1
-
2
- module Facter
3
- module Util
4
- # A util module for facter containing helper methods
5
- module Values
6
- module_function
7
-
8
- class DeepFreezeError < StandardError; end
9
-
10
- # Duplicate and deeply freeze a given data structure
11
- #
12
- # @param value [Object] The structure to freeze
13
- # @return [void]
14
- def deep_freeze(value)
15
- case value
16
- when Numeric, Symbol, TrueClass, FalseClass, NilClass
17
- # These are immutable values, we can safely ignore them
18
- value
19
- when String
20
- value.dup.freeze
21
- when Array
22
- value.map do |entry|
23
- deep_freeze(entry)
24
- end.freeze
25
- when Hash
26
- value.inject({}) do |hash, (key, value)|
27
- hash[deep_freeze(key)] = deep_freeze(value)
28
- hash
29
- end.freeze
30
- else
31
- raise DeepFreezeError, "Cannot deep freeze #{value}:#{value.class}"
32
- end
33
- end
34
-
35
- class DeepMergeError < StandardError; end
36
-
37
- # Perform a deep merge of two nested data structures.
38
- #
39
- # @param left [Object]
40
- # @param right [Object]
41
- # @param path [Array<String>] The traversal path followed when merging nested hashes
42
- #
43
- # @return [Object] The merged data structure.
44
- def deep_merge(left, right, path = [], &block)
45
- ret = nil
46
-
47
- if left.is_a? Hash and right.is_a? Hash
48
- ret = left.merge(right) do |key, left_val, right_val|
49
- path.push(key)
50
- merged = deep_merge(left_val, right_val, path)
51
- path.pop
52
- merged
53
- end
54
- elsif left.is_a? Array and right.is_a? Array
55
- ret = left.dup.concat(right)
56
- elsif right.nil?
57
- ret = left
58
- elsif left.nil?
59
- ret = right
60
- elsif left.nil? and right.nil?
61
- ret = nil
62
- else
63
- msg = "Cannot merge #{left.inspect}:#{left.class} and #{right.inspect}:#{right.class}"
64
- if not path.empty?
65
- msg << " at root"
66
- msg << path.map { |part| "[#{part.inspect}]" }.join
67
- end
68
- raise DeepMergeError, msg
69
- end
70
-
71
- ret
72
- end
73
-
74
- def convert(value)
75
- value = value.to_s if value.is_a?(Symbol)
76
- value = value.downcase if value.is_a?(String)
77
- value
78
- end
79
-
80
- # Flatten the given data structure to something that's suitable to return
81
- # as flat facts.
82
- #
83
- # @param path [String] The fact path to be prefixed to the given value.
84
- # @param structure [Object] The data structure to flatten. Nested hashes
85
- # will be recursively flattened, everything else will be returned as-is.
86
- #
87
- # @return [Hash] The given data structure prefixed with the given path
88
- def flatten_structure(path, structure)
89
- results = {}
90
-
91
- if structure.is_a? Hash
92
- structure.each_pair do |name, value|
93
- new_path = "#{path}_#{name}".gsub(/\-|\//, '_')
94
- results.merge! flatten_structure(new_path, value)
95
- end
96
- elsif structure.is_a? Array
97
- structure.each_with_index do |value, index|
98
- new_path = "#{path}_#{index}"
99
- results.merge! flatten_structure(new_path, value)
100
- end
101
- else
102
- results[path] = structure
103
- end
104
-
105
- results
106
- end
107
- end
108
- end
109
- end
@@ -1,220 +0,0 @@
1
- require 'facter/util/posix'
2
- require 'facter/util/file_read'
3
- require 'pathname'
4
-
5
- module Facter::Util::Virtual
6
- ##
7
- # virt_what is a delegating helper method intended to make it easier to stub
8
- # the system call without affecting other calls to
9
- # Facter::Core::Execution.exec
10
- #
11
- # Per https://bugzilla.redhat.com/show_bug.cgi?id=719611 when run as a
12
- # non-root user the virt-what command may emit an error message on stdout,
13
- # and later versions of virt-what may emit this message on stderr. This
14
- # method ensures stderr is redirected and that error messages are stripped
15
- # from stdout.
16
- def self.virt_what(cmd = "virt-what")
17
- if bindir = Facter::Util::Config.override_binary_dir
18
- command = Facter::Core::Execution.which(File.join(bindir, cmd))
19
- else
20
- command = nil
21
- end
22
-
23
- if !command
24
- command = Facter::Core::Execution.which(cmd)
25
- return unless command
26
- end
27
-
28
- if Facter.value(:kernel) == 'windows'
29
- redirected_cmd = "#{command} 2>NUL"
30
- else
31
- redirected_cmd = "#{command} 2>/dev/null"
32
- end
33
- output = Facter::Core::Execution.exec redirected_cmd
34
- output.gsub(/^virt-what: .*$/, '') if output
35
- end
36
-
37
- ##
38
- # lspci is a delegating helper method intended to make it easier to stub the
39
- # system call without affecting other calls to Facter::Core::Execution.exec
40
- def self.lspci(command = nil)
41
- if command.nil?
42
- if ["FreeBSD", "OpenBSD"].include? Facter.value(:kernel)
43
- command = "pciconf -lv 2>/dev/null"
44
- else
45
- command = "lspci 2>/dev/null"
46
- end
47
- end
48
-
49
- Facter::Core::Execution.exec command
50
- end
51
-
52
- def self.openvz?
53
- FileTest.directory?("/proc/vz") and not self.openvz_cloudlinux?
54
- end
55
-
56
- # So one can either have #6728 work on OpenVZ or Cloudlinux. Whoo.
57
- def self.openvz_type
58
- return false unless self.openvz?
59
- return false unless FileTest.exists?( '/proc/self/status' )
60
-
61
- envid = Facter::Core::Execution.exec( 'grep "envID" /proc/self/status' )
62
- if envid =~ /^envID:\s+0$/i
63
- return 'openvzhn'
64
- elsif envid =~ /^envID:\s+(\d+)$/i
65
- return 'openvzve'
66
- end
67
- end
68
-
69
- # Cloudlinux uses OpenVZ to a degree, but always has an empty /proc/vz/ and
70
- # has /proc/lve/list present
71
- def self.openvz_cloudlinux?
72
- FileTest.file?("/proc/lve/list") or Dir.glob('/proc/vz/*').empty?
73
- end
74
-
75
- def self.zone?
76
- return true if FileTest.directory?("/.SUNWnative")
77
- z = Facter::Core::Execution.exec("/sbin/zonename")
78
- return false unless z
79
- return z.chomp != 'global'
80
- end
81
-
82
- def self.vserver?
83
- return false unless FileTest.exists?("/proc/self/status")
84
- txt = File.open("/proc/self/status", "rb").read
85
- if txt.respond_to?(:encode!)
86
- txt.encode!('UTF-16', 'UTF-8', :invalid => :replace)
87
- txt.encode!('UTF-8', 'UTF-16')
88
- end
89
- return true if txt =~ /^(s_context|VxID):[[:blank:]]*[0-9]/
90
- return false
91
- end
92
-
93
- def self.vserver_type
94
- if self.vserver?
95
- if FileTest.exists?("/proc/virtual")
96
- "vserver_host"
97
- else
98
- "vserver"
99
- end
100
- end
101
- end
102
-
103
- def self.xen?
104
- ["/proc/sys/xen", "/sys/bus/xen", "/proc/xen" ].detect do |f|
105
- FileTest.exists?(f)
106
- end
107
- end
108
-
109
- def self.ec2?
110
- File.read("/sys/devices/virtual/dmi/id/bios_vendor") =~ /Amazon EC2/ rescue false
111
- end
112
-
113
- def self.kvm?
114
- txt = if FileTest.exists?("/proc/cpuinfo")
115
- File.read("/proc/cpuinfo")
116
- elsif ["FreeBSD", "OpenBSD"].include? Facter.value(:kernel)
117
- Facter::Util::POSIX.sysctl("hw.model")
118
- elsif Facter.value(:kernel) == "SunOS" and FileTest.exists?("/usr/sbin/prtconf")
119
- Facter::Core::Execution.exec("/usr/sbin/prtconf -v")
120
- end
121
- (txt =~ /QEMU Virtual (CPU|Machine)/i) ? true : false
122
- end
123
-
124
- def self.virtualbox?
125
- File.read("/sys/devices/virtual/dmi/id/product_name") =~ /VirtualBox/ rescue false
126
- end
127
-
128
- def self.kvm_type
129
- # TODO Tell the difference between kvm and qemu
130
- # Can't work out a way to do this at the moment that doesn't
131
- # require a special binary
132
- if self.kvm?
133
- "kvm"
134
- end
135
- end
136
-
137
- def self.rhev?
138
- File.read("/sys/devices/virtual/dmi/id/product_name") =~ /RHEV Hypervisor/ rescue false
139
- end
140
-
141
- def self.ovirt?
142
- File.read("/sys/devices/virtual/dmi/id/product_name") =~ /oVirt Node/ rescue false
143
- end
144
-
145
- def self.gce?
146
- File.read("/sys/devices/virtual/dmi/id/product_name") =~ /Google/ rescue false
147
- end
148
-
149
- def self.nitro?
150
- File.read("/sys/devices/virtual/dmi/id/bios_vendor") =~ /Amazon/ rescue false
151
- end
152
-
153
- def self.jail?
154
- path = case Facter.value(:kernel)
155
- when "FreeBSD" then "/sbin"
156
- when "GNU/kFreeBSD" then "/bin"
157
- end
158
- Facter::Core::Execution.exec("#{path}/sysctl -n security.jail.jailed") == "1"
159
- end
160
-
161
- def self.hpvm?
162
- Facter::Core::Execution.exec("/usr/bin/getconf MACHINE_MODEL").chomp =~ /Virtual Machine/
163
- end
164
-
165
- ##
166
- # lxc? returns true if the process is running inside of a linux container.
167
- # Implementation derived from
168
- # http://stackoverflow.com/questions/20010199/determining-if-a-process-runs-inside-lxc-docker
169
- def self.lxc?
170
- path = Pathname.new('/proc/1/cgroup')
171
- return false unless path.readable?
172
- begin
173
- in_lxc = path.readlines.any? {|l| l.split(":")[2].to_s.include? '/lxc' }
174
- rescue Errno::EPERM => exc
175
- # If we get "operation not permitted" here, it probably means we are
176
- # running OpenVZ. We are not running LXC anyway, so...
177
- return false
178
- end
179
- return true if in_lxc
180
- return false
181
- end
182
-
183
- ##
184
- # docker? returns true if the process is running inside of a docker container.
185
- # Implementation derived from observation of a boot2docker system
186
- def self.docker?
187
- path = Pathname.new('/proc/1/cgroup')
188
- return false unless path.readable?
189
- begin
190
- in_docker = path.readlines.any? {|l| l.split(":")[2].to_s.include? '/docker' }
191
- rescue Errno::EPERM => exc
192
- # This can fail under OpenVZ, just like in .lxc?
193
- return false
194
- end
195
- return true if in_docker
196
- return false
197
- end
198
-
199
- def self.zlinux?
200
- "zlinux"
201
- end
202
-
203
- ##
204
- # read_sysfs Reads the raw data as per the documentation at [Detecting if You
205
- # Are Running in Google Compute
206
- # Engine](https://developers.google.com/compute/docs/instances#dmi) This
207
- # method is intended to provide an easy seam to mock.
208
- #
209
- # @api public
210
- #
211
- # @return [String] or nil if the path does not exist or is unreadable
212
- def self.read_sysfs_dmi_entries(path="/sys/firmware/dmi/entries/1-0/raw")
213
- if File.readable?(path)
214
- begin
215
- Facter::Util::FileRead.read_binary(path)
216
- rescue Errno::EINVAL
217
- end
218
- end
219
- end
220
- end