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,127 +0,0 @@
1
- require 'spec_helper'
2
- require 'facter/util/solaris_zones'
3
-
4
- describe Facter::Util::SolarisZones do
5
- let :zone_list do
6
- zone_list = <<-EOF
7
- 0:global:running:/::native:shared
8
- -:local:configured:/::native:shared
9
- -:zoneA:stopped:/::native:shared
10
- EOF
11
- end
12
-
13
- let :zone_list2 do
14
- zone_list = <<-EOF
15
- 0:global:running:/::native:shared
16
- -:local:configured:/::native:shared
17
- -:zoneB:stopped:/::native:shared
18
- -:zoneC:stopped:/::native:shared
19
- EOF
20
- end
21
-
22
- subject do
23
- described_class.new(:zoneadm_output => zone_list)
24
- end
25
-
26
- describe '.add_facts' do
27
- before :each do
28
- zones = described_class.new(:zoneadm_output => zone_list)
29
- zones.send(:parse!)
30
- zones.stubs(:refresh)
31
- described_class.stubs(:new).returns(zones)
32
- end
33
-
34
- it 'defines the zones fact' do
35
- described_class.add_facts
36
- Facter.fact(:zones).value.should == 3
37
- end
38
-
39
- it 'defines a fact for each attribute of a zone' do
40
- described_class.add_facts
41
- [:id, :name, :status, :path, :uuid, :brand, :iptype].each do |attr|
42
- Facter.fact("zone_local_#{attr}".intern).
43
- should be_a_kind_of Facter::Util::Fact
44
- end
45
- end
46
- end
47
-
48
- describe '#refresh' do
49
- it 'executes the zoneadm_cmd' do
50
- Facter::Core::Execution.expects(:execute).with(subject.zoneadm_cmd, {:on_fail => nil}).returns(zone_list)
51
- subject.refresh
52
- end
53
- end
54
-
55
- describe 'multiple facts sharing a single model' do
56
- context 'when zones is resolved for the first time' do
57
- it 'counts the number of zones' do
58
- given_initial_zone_facts
59
- Facter.fact(:zones).value.should == 3
60
- end
61
- it 'defines facts for zoneA' do
62
- given_initial_zone_facts
63
- Facter.fact(:zone_zoneA_id).value.should == '-'
64
- end
65
- it 'does not define facts for zoneB' do
66
- given_initial_zone_facts
67
- Facter.fact(:zone_zoneB_id).should be_nil
68
- end
69
- it 'uses a single read of the system information for all of the dynamically generated zone facts' do
70
- given_initial_zone_facts # <= single read happens here
71
-
72
- Facter::Core::Execution.expects(:execute).never
73
- Facter.fact(:zone_zoneA_id).value
74
- Facter.fact(:zone_local_id).value
75
- end
76
- end
77
- context 'when all facts have been flushed after zones was resolved once' do
78
- it 'updates the number of zones' do
79
- given_initial_zone_facts
80
- when_facts_have_been_resolved_then_flushed
81
-
82
- Facter.fact(:zones).value.should == 4
83
- end
84
- it 'stops resolving a value for a zone that no longer exists' do
85
- given_initial_zone_facts
86
- when_facts_have_been_resolved_then_flushed
87
-
88
- Facter.fact(:zone_zoneA_id).value.should be_nil
89
- Facter.fact(:zone_zoneA_status).value.should be_nil
90
- Facter.fact(:zone_zoneA_path).value.should be_nil
91
- end
92
- it 'defines facts for new zones' do
93
- given_initial_zone_facts
94
- when_facts_have_been_resolved_then_flushed
95
-
96
- Facter.fact(:zone_zoneB_id).should be_nil
97
- Facter.fact(:zones).value
98
- Facter.fact(:zone_zoneB_id).value.should be_a_kind_of String
99
- end
100
- it 'uses a single read of the system information for all of the dynamically generated zone facts' do
101
- given_initial_zone_facts
102
- when_facts_have_been_resolved_then_flushed
103
-
104
- Facter::Core::Execution.expects(:execute).once.returns(zone_list2)
105
- Facter.fact(:zones).value
106
- Facter.fact(:zone_zoneA_id).value
107
- Facter.fact(:zone_local_id).value
108
- end
109
-
110
- end
111
- end
112
-
113
- def given_initial_zone_facts
114
- Facter::Core::Execution.stubs(:execute).
115
- with(subject.zoneadm_cmd, {:on_fail => nil}).
116
- returns(zone_list)
117
- described_class.add_facts
118
- end
119
-
120
- def when_facts_have_been_resolved_then_flushed
121
- Facter.fact(:zones).value
122
- Facter.fact(:zone_zoneA_id).value
123
- Facter.fact(:zone_local_id).value
124
- Facter::Core::Execution.stubs(:execute).returns(zone_list2)
125
- Facter.flush
126
- end
127
- end
@@ -1,131 +0,0 @@
1
- #! /usr/bin/env ruby
2
-
3
- require 'spec_helper'
4
- require 'facter/util/uptime'
5
- require 'facter/util/posix'
6
-
7
- describe Facter::Util::Uptime do
8
-
9
- describe ".get_uptime_seconds_unix", :unless => Facter::Util::Config.is_windows? do
10
- describe "when /proc/uptime is available" do
11
- before do
12
- uptime_file = my_fixture("ubuntu_proc_uptime")
13
- Facter::Util::Uptime.stubs(:uptime_file).returns("\"#{uptime_file}\"")
14
- end
15
-
16
- it "should return the uptime in seconds as an integer" do
17
- Facter::Util::Uptime.get_uptime_seconds_unix.should == 5097686
18
- end
19
-
20
- end
21
-
22
- describe "when /proc/uptime is not available" do
23
- before :each do
24
- @nonexistent_file = '/non/existent/file'
25
- File.exists?(@nonexistent_file).should == false
26
- Facter::Util::Uptime.stubs(:uptime_file).returns(@nonexistent_file)
27
- end
28
-
29
- it "should use 'sysctl -n kern.boottime' on OpenBSD" do
30
- Facter::Util::POSIX.stubs(:sysctl).returns(my_fixture_read("sysctl_kern_boottime_openbsd"))
31
- Time.stubs(:now).returns Time.utc(2011,12,9,22,11,46) # one hour later
32
- Facter::Util::Uptime.get_uptime_seconds_unix.should == 60 * 60
33
- end
34
-
35
- it "should use 'sysctl -n kern.boottime' on Darwin, etc." do
36
- Facter::Util::POSIX.stubs(:sysctl).returns(my_fixture_read("sysctl_kern_boottime_darwin"))
37
- Time.stubs(:now).returns Time.utc(2011,10,30,22,52,27) # one hour later
38
- Facter::Util::Uptime.get_uptime_seconds_unix.should == 60 * 60
39
- end
40
-
41
- describe "nor is 'sysctl kern.boottime'" do
42
- before :each do
43
- Facter::Util::Uptime.stubs(:uptime_proc_uptime).returns(false)
44
- Facter::Util::Uptime.stubs(:uptime_sysctl).returns(false)
45
- Facter.fact(:kernel).stubs(:value).returns('SunOS')
46
- end
47
-
48
- describe "should use 'uptime' command" do
49
- # Note about uptime variations.
50
- # Solaris (I have examined 5.6, 5.7, 5.8, 5.9, 5.10 & 5.11) and HP-UX (11.00, 11.11, 11.23, 11.31) have time
51
- # right justified at at 8 characters, and two spaces before 'up'.
52
- # Solaris differs from all other Unices (and Linux) in that the plural/singular case of minutes/hours/days are
53
- # written min(s)/hr(s)/day(s) instead of min/mins/hr/hrs etc., e.g. 1 min(s), 2 min(s) as opposed to
54
- # 1 min, 2 mins, etc.
55
- # The coreutils package can be installed in Solaris, which brings in a GNU version of uptime. The output
56
- # from this binary differs in that is is missing the comma after "day(s)"
57
- # Some versions of uptime in Solaris may also include a '-' character in the minutes field.
58
- # AIX (4.3.3, 5.2, 5.3, 6.1) differs from other SysV Unices in that times are padded with a leading 0 in the
59
- # hour column where necessary, and have AM/PM in uppercase, and there are three spaces before 'up'.
60
- # Tru64 (4.0, 5.1) differs from other SysV Unices in that times are in 24 hour format, and there are no
61
- # leading spaces.
62
- # Linux (RHEL, uptime version 2.0.7) differs from the SysV Unices in that only minutes before the first hour
63
- # are written as 1 min, 2 min, 3 min etc. and after that full hours are rendered 1:00 or 21:00. Time of
64
- # day was written 5:37pm and right-justified at 8 characters, with 2 spaces before 'up'. A figure in
65
- # whole days was written as 3 days, 0 min.
66
- # By version 2.0.17 the time of day was rewritten in 24hr time with seconds, right-justified at 9 characters.
67
- # By version 3.2.7 one of the spaces before 'up' had been removed.
68
- test_cases = [
69
- [' 4:42pm up 1 min(s), 0 users, load average: 0.95, 0.25, 0.09', 1*60],
70
- ['13:16 up 58 mins, 2 users, load average: 0.00, 0.02, 0.05', 58*60],
71
- ['13:18 up 1 hr, 1 user, load average: 0.58, 0.23, 0.14', 1*60*60 ],
72
- [' 10:14pm up 3 hr(s), 0 users, load average: 0.00, 0.00, 0.00', 3*60*60 ],
73
- ['14:18 up 2 hrs, 0 users, load average: 0.33, 0.27, 0.29', 2*60*60 ],
74
- [' 9:01pm up 1:47, 0 users, load average: 0.00, 0.00, 0.00', 1*60*60 + 47*60],
75
- ['13:19 up 1:01, 1 user, load average: 0.10, 0.26, 0.21', 1*60*60 + 1*60],
76
- ['10:49 up 22:31, 0 users, load average: 0.26, 0.34, 0.27', 22*60*60 + 31*60],
77
- ['12:18 up 1 day, 0 users, load average: 0.74, 0.20, 0.10', 1*24*60*60 ],
78
- [' 2:48pm up 1 day(s), 0 users, load average: 0.21, 0.20, 0.17', 1*24*60*60 ],
79
- ['12:18 up 2 days, 0 users, load average: 0.50, 0.27, 0.16', 2*24*60*60 ],
80
- [' 1:56pm up 25 day(s), 2 users, load average: 0.59, 0.56, 0.50', 25*24*60*60 ],
81
- [' 1:29pm up 485 days, 0 users, load average: 0.00, 0.01, 0.01', 485*24*60*60 ],
82
- [' 18:11:24 up 69 days, 0 min, 0 users, load average: 0.00, 0.00, 0.00', 69*24*60*60 ],
83
- ['12:19 up 1 day, 1 min, 0 users, load average: 0.07, 0.16, 0.13', 1*24*60*60 + 1*60],
84
- [' 3:23pm up 25 day(s), 27 min(s), 2 users, load average: 0.49, 0.45, 0.46', 25*24*60*60 + 27*60],
85
- [' 02:42PM up 1 day, 39 mins, 0 users, load average: 1.49, 1.74, 1.80', 1*24*60*60 + 39*60],
86
- [' 18:13:13 up 245 days, 44 min, 1 user, load average: 0.00, 0.00, 0.00', 245*24*60*60 + 44*60],
87
- [' 6:09pm up 350 days, 2 min, 1 user, load average: 0.02, 0.03, 0.00', 350*24*60*60 + 2*60],
88
- [' 1:07pm up 174 day(s), 16 hr(s), 0 users, load average: 0.05, 0.04, 0.03', 174*24*60*60 + 16*60*60 ],
89
- [' 02:34PM up 621 days, 18 hrs, 0 users, load average: 2.67, 2.52, 2.56', 621*24*60*60 + 18*60*60 ],
90
- [' 3:30am up 108 days, 1 hr, 31 users, load average: 0.39, 0.40, 0.41', 108*24*60*60 + 1*60*60 ],
91
- ['13:18 up 1 day, 1 hr, 0 users, load average: 0.78, 0.33, 0.18', 1*24*60*60 + 1*60*60 ],
92
- ['14:18 up 1 day, 2 hrs, 0 users, load average: 1.17, 0.48, 0.41', 1*24*60*60 + 2*60*60 ],
93
- ['15:56 up 152 days, 17 hrs, 0 users, load average: 0.01, 0.06, 0.07', 152*24*60*60 + 17*60*60 ],
94
- [' 5:37pm up 25 days, 21:00, 0 users, load average: 0.01, 0.02, 0.00', 25*24*60*60 + 21*60*60 ],
95
- [' 8:59pm up 94 day(s), 3:17, 46 users, load average: 0.66, 0.67, 0.70', 94*24*60*60 + 3*60*60 + 17*60],
96
- [' 3:01pm up 4496 day(s), 21:19, 32 users, load average: 0.61, 0.62, 0.62', 4496*24*60*60 + 21*60*60 + 19*60],
97
- [' 02:42PM up 41 days, 2:38, 0 users, load average: 0.38, 0.70, 0.55', 41*24*60*60 + 2*60*60 + 38*60],
98
- [' 18:13:29 up 25 days, 21:36, 0 users, load average: 0.00, 0.00, 0.00', 25*24*60*60 + 21*60*60 + 36*60],
99
- [' 13:36:05 up 118 days, 1:15, 1 user, load average: 0.00, 0.00, 0.00', 118*24*60*60 + 1*60*60 + 15*60],
100
- ['10:27am up 1 day 7:26, 1 user, load average: 0.00, 0.00, 0.00', 1*24*60*60 + 7*60*60 + 26*60],
101
- ['22:45pm up 0:-6, 1 user, load average: 0.00, 0.00, 0.00', 6*60],
102
- ['22:45pm up 1 day 0:-6, 1 user, load average: 0.00, 0.00, 0.00', 1*24*60*60 + 6*60]
103
- ]
104
-
105
- test_cases.each do |uptime, expected|
106
- it "should return #{expected} for #{uptime}" do
107
- Facter::Core::Execution.stubs(:execute).with('uptime 2>/dev/null', {:on_fail => nil}).returns(uptime)
108
- Facter.fact(:uptime_seconds).value.should == expected
109
- end
110
- end
111
-
112
- describe "nor is 'uptime' command" do
113
- before :each do
114
- Facter::Core::Execution.stubs(:execute).with('uptime 2>/dev/null', {:on_fail => nil}).returns(nil)
115
- end
116
-
117
- it "should return nil" do
118
- Facter::Util::Uptime.get_uptime_seconds_unix.should == nil
119
- end
120
- end
121
- end
122
- end
123
- end
124
- end
125
-
126
- describe ".get_uptime_seconds_win", :if => Facter::Util::Config.is_windows? do
127
- it "should return a postive value" do
128
- Facter::Util::Uptime.get_uptime_seconds_win.should > 0
129
- end
130
- end
131
- end
@@ -1,171 +0,0 @@
1
- require 'spec_helper'
2
- require 'facter/util/values'
3
-
4
- describe Facter::Util::Values do
5
- describe 'deep_freeze' do
6
- it "it dups and freezes strings" do
7
- input = "hi"
8
- output = described_class.deep_freeze(input)
9
- expect(input).to_not be_frozen
10
- expect(output).to be_frozen
11
- end
12
-
13
- it "freezes arrays and each element in the array" do
14
- input = %w[one two three]
15
- output = described_class.deep_freeze(input)
16
-
17
- input.each { |entry| expect(entry).to_not be_frozen }
18
- output.each { |entry| expect(entry).to be_frozen }
19
-
20
- expect(input).to_not be_frozen
21
- expect(output).to be_frozen
22
- end
23
-
24
- it "freezes hashes and each key and value in the hash" do
25
- input = {'one' => 'two', 'three' => 'four'}
26
-
27
- output = described_class.deep_freeze(input)
28
-
29
- input.each_pair do |key, val|
30
- # Ruby freezes all string keys, so these will always be frozen
31
- expect(key).to be_frozen
32
- expect(val).to_not be_frozen
33
- end
34
-
35
- output.each_pair do |key, val|
36
- expect(key).to be_frozen
37
- expect(val).to be_frozen
38
- end
39
-
40
- expect(input).to_not be_frozen
41
- expect(output).to be_frozen
42
- end
43
-
44
- it "raises an error when given a structure that cannot be deeply frozen" do
45
- expect {
46
- described_class.deep_freeze(Set.new)
47
- }.to raise_error(Facter::Util::Values::DeepFreezeError, /Cannot deep freeze.*Set/)
48
- end
49
- end
50
-
51
- describe 'deep_merge' do
52
- it "non-destructively concatenates arrays" do
53
- first = %w[foo bar]
54
- second = %w[baz quux]
55
-
56
- expect(described_class.deep_merge(first, second)).to eq %w[foo bar baz quux]
57
- expect(first).to eq %w[foo bar]
58
- expect(second).to eq %w[baz quux]
59
- end
60
-
61
- it "returns the left value if the right value is nil" do
62
- expect(described_class.deep_merge("left", nil)).to eq "left"
63
- end
64
-
65
- it "returns the right value if the left value is nil" do
66
- expect(described_class.deep_merge(nil, "right")).to eq "right"
67
- end
68
-
69
- it "returns nil if both values are nil" do
70
- expect(described_class.deep_merge(nil, nil)).to be_nil
71
- end
72
-
73
- describe "with hashes" do
74
- it "merges when keys do not overlap" do
75
-
76
- first = {:foo => 'bar'}
77
- second = {:baz => 'quux'}
78
-
79
- expect(described_class.deep_merge(first, second)).to eq(:foo => 'bar', :baz => 'quux')
80
- expect(first).to eq(:foo => 'bar')
81
- expect(second).to eq(:baz => 'quux')
82
- end
83
-
84
- it "concatenates arrays when both keys are arrays" do
85
- first = {:foo => %w[bar]}
86
- second = {:foo => %w[baz quux]}
87
-
88
- expect(described_class.deep_merge(first, second)).to eq(:foo => %w[bar baz quux])
89
- expect(first).to eq(:foo => %w[bar])
90
- expect(second).to eq(:foo => %w[baz quux])
91
- end
92
-
93
- it "merges hashes when both keys are hashes" do
94
- first = {:foo => {:pb => 'lead', :ag => 'silver'}}
95
- second = {:foo => {:au => 'gold', :na => 'sodium'}}
96
-
97
- expect(described_class.deep_merge(first, second)).to eq(
98
- :foo => {
99
- :pb => 'lead',
100
- :ag => 'silver',
101
- :au => 'gold',
102
- :na => 'sodium'
103
- }
104
- )
105
- end
106
-
107
- it "prints the data structure path if an error is raised" do
108
- first = {:foo => {:bar => {:baz => {:quux => true}}}}
109
- second = {:foo => {:bar => {:baz => {:quux => false}}}}
110
-
111
- expect {
112
- described_class.deep_merge(first, second)
113
- }.to raise_error(Facter::Util::Values::DeepMergeError, /Cannot merge .*at .*foo.*bar.*baz.*quux/)
114
- end
115
- end
116
-
117
- describe "with unmergable scalar values" do
118
- [
119
- [true, false],
120
- [1, 2],
121
- ['up', 'down']
122
- ].each do |(left, right)|
123
- it "raises an error when merging #{left}:#{left.class} and #{right}:#{right.class}" do
124
- expect {
125
- described_class.deep_merge(left, right)
126
- }.to raise_error(Facter::Util::Values::DeepMergeError, /Cannot merge #{left.inspect}:#{left.class} and #{right.inspect}:#{right.class}/)
127
- end
128
- end
129
- end
130
- end
131
-
132
- describe "flatten_structure" do
133
- it "converts a string to a hash containing that string" do
134
- input = "foo"
135
- output = described_class.flatten_structure("path", input)
136
- expect(output).to eq({"path" => "foo"})
137
- end
138
-
139
- it "converts an array to a hash with the array elements with indexes" do
140
- input = ["foo"]
141
- output = described_class.flatten_structure("path", input)
142
- expect(output).to eq({"path_0" => "foo"})
143
- end
144
-
145
- it "prefixes a non-nested hash with the given path" do
146
- input = {"foo" => "bar"}
147
- output = described_class.flatten_structure("path", input)
148
- expect(output).to eq({"path_foo" => "bar"})
149
- end
150
-
151
- it "flattens elements till it reaches the first non-flattenable structure" do
152
- input = {
153
- "first" => "second",
154
- "arr" => ["zero", "one"],
155
- "nested_array" => [
156
- "hash" => "string",
157
- ],
158
- "top" => {"middle" => ['bottom']},
159
- }
160
- output = described_class.flatten_structure("path", input)
161
-
162
- expect(output).to eq({
163
- "path_first" => "second",
164
- "path_arr_0" => "zero",
165
- "path_arr_1" => "one",
166
- "path_nested_array_0_hash" => "string",
167
- "path_top_middle_0" => "bottom"
168
- })
169
- end
170
- end
171
- end
@@ -1,393 +0,0 @@
1
- #! /usr/bin/env ruby
2
-
3
- require 'spec_helper'
4
- require 'facter/util/virtual'
5
- require 'stringio'
6
-
7
- describe Facter::Util::Virtual do
8
-
9
- after do
10
- Facter.clear
11
- end
12
- it "should detect openvz" do
13
- FileTest.stubs(:directory?).with("/proc/vz").returns(true)
14
- Dir.stubs(:glob).with("/proc/vz/*").returns(['vzquota'])
15
- Facter::Util::Virtual.should be_openvz
16
- end
17
-
18
- it "should not detect openvz when /proc/lve/list is present" do
19
- FileTest.stubs(:file?).with("/proc/lve/list").returns(true)
20
- Facter::Util::Virtual.should_not be_openvz
21
- end
22
-
23
- it "should not detect openvz when /proc/vz/ is empty" do
24
- FileTest.stubs(:file?).with("/proc/lve/list").returns(false)
25
- FileTest.stubs(:directory?).with("/proc/vz").returns(true)
26
- Dir.stubs(:glob).with("/proc/vz/*").returns([])
27
- Facter::Util::Virtual.should_not be_openvz
28
- end
29
-
30
- it "should identify openvzhn when /proc/self/status has envID of 0" do
31
- Facter::Util::Virtual.stubs(:openvz?).returns(true)
32
- FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
33
- Facter::Core::Execution.stubs(:exec).with('grep "envID" /proc/self/status').returns("envID: 0")
34
- Facter::Util::Virtual.openvz_type().should == "openvzhn"
35
- end
36
-
37
- it "should identify openvzve when /proc/self/status has envID of 0" do
38
- Facter::Util::Virtual.stubs(:openvz?).returns(true)
39
- FileTest.stubs(:exists?).with('/proc/self/status').returns(true)
40
- Facter::Core::Execution.stubs(:exec).with('grep "envID" /proc/self/status').returns("envID: 666")
41
- Facter::Util::Virtual.openvz_type().should == "openvzve"
42
- end
43
-
44
- it "should not attempt to identify openvz when /proc/self/status has no envID" do
45
- Facter::Util::Virtual.stubs(:openvz?).returns(true)
46
- FileTest.stubs(:exists?).with('/proc/self/status').returns(true)
47
- Facter::Core::Execution.stubs(:exec).with('grep "envID" /proc/self/status').returns("")
48
- Facter::Util::Virtual.openvz_type().should be_nil
49
- end
50
-
51
- it "should identify Solaris zones when non-global zone" do
52
- Facter::Core::Execution.stubs(:exec).with("/sbin/zonename").returns("somezone")
53
- Facter::Util::Virtual.should be_zone
54
- end
55
-
56
- it "should not identify Solaris zones when global zone" do
57
- Facter::Core::Execution.stubs(:exec).with("/sbin/zonename").returns("global")
58
- Facter::Util::Virtual.should_not be_zone
59
- end
60
-
61
- it "(#14522) handles the unencoded binary data in /proc/self/status on Solaris" do
62
- Facter.fact(:osfamily).stubs(:value).returns("Solaris")
63
- File.stubs(:open).with('/proc/self/status', 'rb').returns(solaris_proc_self_status)
64
- FileTest.stubs(:exists?).with('/proc/self/status').returns(true)
65
-
66
- Facter::Util::Virtual.vserver?.should eq(false)
67
- end
68
-
69
- it "should not detect vserver if no self status" do
70
- FileTest.stubs(:exists?).with("/proc/self/status").returns(false)
71
- Facter::Util::Virtual.should_not be_vserver
72
- end
73
-
74
- it "should detect vserver when vxid present in process status" do
75
- FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
76
- File.stubs(:open).with("/proc/self/status", "rb").returns(StringIO.new("VxID: 42\n"))
77
- Facter::Util::Virtual.should be_vserver
78
- end
79
-
80
- it "should detect vserver when s_context present in process status" do
81
- FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
82
- File.stubs(:open).with("/proc/self/status", "rb").returns(StringIO.new("s_context: 42\n"))
83
- Facter::Util::Virtual.should be_vserver
84
- end
85
-
86
- it "should not detect vserver when vserver flags not present in process status" do
87
- FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
88
- File.stubs(:open).with("/proc/self/status", "rb").returns(StringIO.new("wibble: 42\n"))
89
- Facter::Util::Virtual.should_not be_vserver
90
- end
91
-
92
- it "should identify kvm" do
93
- Facter::Util::Virtual.stubs(:kvm?).returns(true)
94
- Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns("something")
95
- Facter::Util::Virtual.kvm_type().should == "kvm"
96
- end
97
-
98
- it "should be able to detect RHEV via sysfs on Linux" do
99
- # Fake files are always hard to stub. :/
100
- File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
101
- returns("RHEV Hypervisor")
102
-
103
- Facter::Util::Virtual.should be_rhev
104
- end
105
-
106
- it "should be able to detect RHEV via sysfs on Linux improperly" do
107
- # Fake files are always hard to stub. :/
108
- File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
109
- returns("something else")
110
-
111
- Facter::Util::Virtual.should_not be_rhev
112
- end
113
-
114
- it "should be able to detect ovirt via sysfs on Linux" do
115
- # Fake files are always hard to stub. :/
116
- File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
117
- returns("oVirt Node")
118
-
119
- Facter::Util::Virtual.should be_ovirt
120
- end
121
-
122
- it "should be able to detect ovirt via sysfs on Linux improperly" do
123
- # Fake files are always hard to stub. :/
124
- File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
125
- returns("something else")
126
-
127
- Facter::Util::Virtual.should_not be_ovirt
128
- end
129
-
130
- it "detects GCE if the DMI product name is Google" do
131
- File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").returns("Google")
132
- expect(Facter::Util::Virtual.gce?).to be_true
133
- end
134
-
135
- it "does not detect GCE if the DMI product name is not Google" do
136
- File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").returns('')
137
- expect(Facter::Util::Virtual.gce?).to be_false
138
- end
139
-
140
- fixture_path = fixtures('virtual', 'proc_self_status')
141
-
142
- test_cases = [
143
- [File.join(fixture_path, 'vserver_2_1', 'guest'), true, 'vserver 2.1 guest'],
144
- [File.join(fixture_path, 'vserver_2_1', 'host'), true, 'vserver 2.1 host'],
145
- [File.join(fixture_path, 'vserver_2_3', 'guest'), true, 'vserver 2.3 guest'],
146
- [File.join(fixture_path, 'vserver_2_3', 'host'), true, 'vserver 2.3 host']
147
- ]
148
-
149
- test_cases.each do |status_file, expected, description|
150
- describe "with /proc/self/status from #{description}" do
151
- it "should detect vserver as #{expected.inspect}" do
152
- status = File.read(status_file)
153
- FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
154
- File.stubs(:open).with("/proc/self/status", "rb").returns(StringIO.new(status))
155
- Facter::Util::Virtual.vserver?.should == expected
156
- end
157
- end
158
- end
159
-
160
- it "reads dmi entries as ascii data" do
161
- entries_file = my_fixture('invalid_unicode_dmi_entries')
162
- expected_contents = 'Virtual'
163
-
164
- entries = Facter::Util::Virtual.read_sysfs_dmi_entries(entries_file)
165
-
166
- entries.should =~ /#{expected_contents}/
167
- end
168
-
169
- it "should identify vserver_host when /proc/virtual exists" do
170
- Facter::Util::Virtual.expects(:vserver?).returns(true)
171
- FileTest.stubs(:exists?).with("/proc/virtual").returns(true)
172
- Facter::Util::Virtual.vserver_type().should == "vserver_host"
173
- end
174
-
175
- it "should identify vserver_type as vserver when /proc/virtual does not exist" do
176
- Facter::Util::Virtual.expects(:vserver?).returns(true)
177
- FileTest.stubs(:exists?).with("/proc/virtual").returns(false)
178
- Facter::Util::Virtual.vserver_type().should == "vserver"
179
- end
180
-
181
- it "should detect xen when /proc/sys/xen exists" do
182
- FileTest.expects(:exists?).with("/proc/sys/xen").returns(true)
183
- Facter::Util::Virtual.should be_xen
184
- end
185
-
186
- it "should detect xen when /sys/bus/xen exists" do
187
- FileTest.expects(:exists?).with("/proc/sys/xen").returns(false)
188
- FileTest.expects(:exists?).with("/sys/bus/xen").returns(true)
189
- Facter::Util::Virtual.should be_xen
190
- end
191
-
192
- it "should detect xen when /proc/xen exists" do
193
- FileTest.expects(:exists?).with("/proc/sys/xen").returns(false)
194
- FileTest.expects(:exists?).with("/sys/bus/xen").returns(false)
195
- FileTest.expects(:exists?).with("/proc/xen").returns(true)
196
- Facter::Util::Virtual.should be_xen
197
- end
198
-
199
- it "should not detect xen when no sysfs/proc xen directories exist" do
200
- FileTest.expects(:exists?).with("/proc/sys/xen").returns(false)
201
- FileTest.expects(:exists?).with("/sys/bus/xen").returns(false)
202
- FileTest.expects(:exists?).with("/proc/xen").returns(false)
203
- Facter::Util::Virtual.should_not be_xen
204
- end
205
-
206
- it "should detect kvm" do
207
- FileTest.stubs(:exists?).with("/proc/cpuinfo").returns(true)
208
- File.stubs(:read).with("/proc/cpuinfo").returns("model name : QEMU Virtual CPU version 0.9.1\n")
209
- Facter::Util::Virtual.should be_kvm
210
- end
211
-
212
- it "should detect kvm on FreeBSD" do
213
- FileTest.stubs(:exists?).with("/proc/cpuinfo").returns(false)
214
- Facter.fact(:kernel).stubs(:value).returns("FreeBSD")
215
- Facter::Util::POSIX.stubs(:sysctl).with("hw.model").returns("QEMU Virtual CPU version 0.12.4")
216
- Facter::Util::Virtual.should be_kvm
217
- end
218
-
219
- it "should detect kvm on OpenBSD" do
220
- FileTest.stubs(:exists?).with("/proc/cpuinfo").returns(false)
221
- Facter.fact(:kernel).stubs(:value).returns("OpenBSD")
222
- Facter::Util::POSIX.stubs(:sysctl).with("hw.model").returns('QEMU Virtual CPU version (cpu64-rhel6) ("AuthenticAMD" 686-class, 512KB L2 cache)')
223
- Facter::Util::Virtual.should be_kvm
224
- end
225
-
226
- it "should detect kvm on SunOS" do
227
- FileTest.stubs(:exists?).with("/proc/cpuinfo").returns(false)
228
- Facter.fact(:kernel).stubs(:value).returns("SunOS")
229
- FileTest.stubs(:exists?).with("/usr/sbin/prtconf").returns(true)
230
- Facter::Core::Execution.stubs(:exec).with("/usr/sbin/prtconf -v").returns("Qemu virtual machine")
231
- Facter::Util::Virtual.should be_kvm
232
- end
233
-
234
- it "should identify FreeBSD jail when in jail" do
235
- Facter.fact(:kernel).stubs(:value).returns("FreeBSD")
236
- Facter::Core::Execution.stubs(:exec).with("/sbin/sysctl -n security.jail.jailed").returns("1")
237
- Facter::Util::Virtual.should be_jail
238
- end
239
-
240
- it "should not identify GNU/kFreeBSD jail when not in jail" do
241
- Facter.fact(:kernel).stubs(:value).returns("GNU/kFreeBSD")
242
- Facter::Core::Execution.stubs(:exec).with("/bin/sysctl -n security.jail.jailed").returns("0")
243
- Facter::Util::Virtual.should_not be_jail
244
- end
245
-
246
- it "should detect hpvm on HP-UX" do
247
- Facter.fact(:kernel).stubs(:value).returns("HP-UX")
248
- Facter::Core::Execution.stubs(:exec).with("/usr/bin/getconf MACHINE_MODEL").returns('ia64 hp server Integrity Virtual Machine')
249
- Facter::Util::Virtual.should be_hpvm
250
- end
251
-
252
- it "should not detect hpvm on HP-UX when not in hpvm" do
253
- Facter.fact(:kernel).stubs(:value).returns("HP-UX")
254
- Facter::Core::Execution.stubs(:exec).with("/usr/bin/getconf MACHINE_MODEL").returns('ia64 hp server rx660')
255
- Facter::Util::Virtual.should_not be_hpvm
256
- end
257
-
258
- it "should be able to detect virtualbox via sysfs on Linux" do
259
- # Fake files are always hard to stub. :/
260
- File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
261
- returns("VirtualBox")
262
-
263
- Facter::Util::Virtual.should be_virtualbox
264
- end
265
-
266
- it "should be able to detect virtualbox via sysfs on Linux improperly" do
267
- # Fake files are always hard to stub. :/
268
- File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
269
- returns("HP-Oracle-Sun-VMWare-funky-town")
270
-
271
- Facter::Util::Virtual.should_not be_virtualbox
272
- end
273
-
274
- let :solaris_proc_self_status do
275
- sample_data = my_fixture_read('solaris10_proc_self_status1')
276
- mockfile = mock('File')
277
- mockfile.stubs(:read).returns(sample_data)
278
- mockfile
279
- end
280
-
281
- shared_examples_for "virt-what" do |kernel, path, null_device, override_location|
282
- before(:each) do
283
- Facter.fact(:kernel).stubs(:value).returns(kernel)
284
- if override_location
285
- Facter::Core::Execution.expects(:which).with(File.join(Facter::Util::Config.override_binary_dir, "virt-what")).returns(path)
286
- else
287
- Facter::Core::Execution.expects(:which).with(File.join(Facter::Util::Config.override_binary_dir, "virt-what")).returns(nil)
288
- Facter::Core::Execution.expects(:which).with("virt-what").returns(path)
289
- end
290
- Facter::Core::Execution.expects(:exec).with("#{path} 2>#{null_device}")
291
- end
292
-
293
- it "on #{kernel} virt-what is at #{path} and stderr is sent to #{null_device}" do
294
- Facter::Util::Virtual.virt_what
295
- end
296
- end
297
-
298
- context "on linux" do
299
- describe "override binary dir doesn't exist" do
300
- it_should_behave_like "virt-what", "linux", "/usr/bin/virt-what", "/dev/null", true
301
- it_should_behave_like "virt-what", "linux", "/usr/bin/virt-what", "/dev/null", false
302
-
303
- it "should strip out warnings on stdout from virt-what" do
304
- virt_what_warning = "virt-what: this script must be run as root"
305
- Facter.fact(:kernel).stubs(:value).returns('linux')
306
- Facter::Core::Execution.expects(:which).with(File.join(Facter::Util::Config.override_binary_dir, "virt-what")).returns(nil)
307
- Facter::Core::Execution.expects(:which).with('virt-what').returns "/usr/bin/virt-what"
308
- Facter::Core::Execution.expects(:exec).with('/usr/bin/virt-what 2>/dev/null').returns virt_what_warning
309
- Facter::Util::Virtual.virt_what.should_not match /^virt-what: /
310
- end
311
- end
312
- end
313
-
314
- context "on unix" do
315
- it_should_behave_like "virt-what", "unix", "/usr/bin/virt-what", "/dev/null", true
316
- it_should_behave_like "virt-what", "unix", "/usr/bin/virt-what", "/dev/null", false
317
- end
318
-
319
- context "on windows" do
320
- it_should_behave_like "virt-what", "windows", 'c:\windows\system32\virt-what', "NUL", false
321
- end
322
-
323
- describe '.lxc?' do
324
- subject do
325
- Facter::Util::Virtual.lxc?
326
- end
327
-
328
- fixture_path = fixtures('virtual', 'proc_1_cgroup')
329
-
330
- context '/proc/1/cgroup has at least one hierarchy rooted in /lxc/' do
331
- before :each do
332
- fakepath = Pathname.new(File.join(fixture_path, 'in_a_container'))
333
- Pathname.stubs(:new).with('/proc/1/cgroup').returns(fakepath)
334
- end
335
-
336
- it 'is true' do
337
- subject.should be_true
338
- end
339
- end
340
-
341
- context '/proc/1/cgroup has no hierarchies rooted in /lxc/' do
342
- before :each do
343
- fakepath = Pathname.new(File.join(fixture_path, 'not_in_a_container'))
344
- Pathname.stubs(:new).with('/proc/1/cgroup').returns(fakepath)
345
- end
346
-
347
- it 'is false' do
348
- subject.should be_false
349
- end
350
- end
351
- end
352
-
353
- describe '.docker?' do
354
- subject do
355
- Facter::Util::Virtual.docker?
356
- end
357
-
358
- fixture_path = fixtures('virtual', 'proc_1_cgroup')
359
-
360
- context '/proc/1/cgroup has at least one hierarchy rooted in /docker/' do
361
- before :each do
362
- fakepath = Pathname.new(File.join(fixture_path, 'in_a_docker_container'))
363
- Pathname.stubs(:new).with('/proc/1/cgroup').returns(fakepath)
364
- end
365
-
366
- it 'is true' do
367
- subject.should be_true
368
- end
369
- end
370
-
371
- context '/proc/1/cgroup has at least one hierarchy with docker underneath a systemd slice parent' do
372
- before :each do
373
- fakepath = Pathname.new(File.join(fixture_path, 'in_a_docker_container_with_systemd_slices'))
374
- Pathname.stubs(:new).with('/proc/1/cgroup').returns(fakepath)
375
- end
376
-
377
- it 'is true' do
378
- subject.should be_true
379
- end
380
- end
381
-
382
- context '/proc/1/cgroup has no hierarchies rooted in /docker/' do
383
- before :each do
384
- fakepath = Pathname.new(File.join(fixture_path, 'not_in_a_container'))
385
- Pathname.stubs(:new).with('/proc/1/cgroup').returns(fakepath)
386
- end
387
-
388
- it 'is false' do
389
- subject.should be_false
390
- end
391
- end
392
- end
393
- end