vagrantup 1.0.7 → 1.1.0

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 (623) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +91 -0
  3. data/LICENSE +2 -2
  4. data/README.md +11 -13
  5. data/bin/vagrant +29 -5
  6. data/config/default.rb +14 -9
  7. data/contrib/bash/completion.sh +3 -0
  8. data/keys/README.md +3 -3
  9. data/lib/vagrant.rb +156 -102
  10. data/lib/vagrant/action.rb +26 -47
  11. data/lib/vagrant/action/builder.rb +49 -23
  12. data/lib/vagrant/action/builtin/box_add.rb +85 -0
  13. data/lib/vagrant/action/builtin/call.rb +67 -0
  14. data/lib/vagrant/action/builtin/config_validate.rb +30 -0
  15. data/lib/vagrant/action/builtin/confirm.rb +38 -0
  16. data/lib/vagrant/action/builtin/env_set.rb +24 -0
  17. data/lib/vagrant/action/builtin/graceful_halt.rb +73 -0
  18. data/lib/vagrant/action/builtin/handle_box_url.rb +43 -0
  19. data/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb +117 -0
  20. data/lib/vagrant/action/builtin/lock.rb +57 -0
  21. data/lib/vagrant/action/builtin/nfs.rb +117 -0
  22. data/lib/vagrant/action/builtin/provision.rb +70 -0
  23. data/lib/vagrant/action/builtin/set_hostname.rb +27 -0
  24. data/lib/vagrant/action/builtin/ssh_exec.rb +42 -0
  25. data/lib/vagrant/action/builtin/ssh_run.rb +43 -0
  26. data/lib/vagrant/action/general/package.rb +19 -18
  27. data/lib/vagrant/action/hook.rb +103 -0
  28. data/lib/vagrant/action/runner.rb +21 -5
  29. data/lib/vagrant/action/warden.rb +20 -9
  30. data/lib/vagrant/box.rb +75 -26
  31. data/lib/vagrant/box_collection.rb +301 -35
  32. data/lib/vagrant/cli.rb +20 -14
  33. data/lib/vagrant/config.rb +23 -9
  34. data/lib/vagrant/config/loader.rb +131 -36
  35. data/lib/vagrant/config/v1.rb +9 -0
  36. data/lib/vagrant/config/v1/dummy_config.rb +13 -0
  37. data/lib/vagrant/config/v1/loader.rb +105 -0
  38. data/lib/vagrant/config/v1/root.rb +60 -0
  39. data/lib/vagrant/config/v2.rb +9 -0
  40. data/lib/vagrant/config/v2/dummy_config.rb +13 -0
  41. data/lib/vagrant/config/v2/loader.rb +141 -0
  42. data/lib/vagrant/config/v2/root.rb +105 -0
  43. data/lib/vagrant/config/v2/util.rb +21 -0
  44. data/lib/vagrant/config/version_base.rb +80 -0
  45. data/lib/vagrant/downloaders/base.rb +0 -3
  46. data/lib/vagrant/downloaders/file.rb +10 -4
  47. data/lib/vagrant/downloaders/http.rb +29 -10
  48. data/lib/vagrant/environment.rb +447 -240
  49. data/lib/vagrant/errors.rb +138 -97
  50. data/lib/vagrant/hosts.rb +3 -12
  51. data/lib/vagrant/machine.rb +325 -0
  52. data/lib/vagrant/machine_state.rb +45 -0
  53. data/lib/vagrant/plugin.rb +3 -78
  54. data/lib/vagrant/plugin/v1.rb +19 -0
  55. data/lib/vagrant/plugin/v1/command.rb +169 -0
  56. data/lib/vagrant/plugin/v1/communicator.rb +98 -0
  57. data/lib/vagrant/plugin/v1/config.rb +112 -0
  58. data/lib/vagrant/plugin/v1/errors.rb +15 -0
  59. data/lib/vagrant/plugin/v1/guest.rb +92 -0
  60. data/lib/vagrant/plugin/v1/host.rb +66 -0
  61. data/lib/vagrant/plugin/v1/manager.rb +131 -0
  62. data/lib/vagrant/plugin/v1/plugin.rb +229 -0
  63. data/lib/vagrant/plugin/v1/provider.rb +68 -0
  64. data/lib/vagrant/plugin/v1/provisioner.rb +50 -0
  65. data/lib/vagrant/plugin/v2.rb +22 -0
  66. data/lib/vagrant/plugin/v2/command.rb +234 -0
  67. data/lib/vagrant/plugin/v2/communicator.rb +98 -0
  68. data/lib/vagrant/plugin/v2/components.rb +29 -0
  69. data/lib/vagrant/plugin/v2/config.rb +101 -0
  70. data/lib/vagrant/plugin/v2/errors.rb +15 -0
  71. data/lib/vagrant/plugin/v2/guest.rb +92 -0
  72. data/lib/vagrant/plugin/v2/host.rb +66 -0
  73. data/lib/vagrant/plugin/v2/manager.rb +158 -0
  74. data/lib/vagrant/plugin/v2/plugin.rb +217 -0
  75. data/lib/vagrant/plugin/v2/provider.rb +69 -0
  76. data/lib/vagrant/plugin/v2/provisioner.rb +47 -0
  77. data/lib/vagrant/registry.rb +43 -17
  78. data/lib/vagrant/ssh.rb +15 -9
  79. data/lib/vagrant/ui.rb +7 -5
  80. data/lib/vagrant/util/is_port_open.rb +1 -1
  81. data/lib/vagrant/util/platform.rb +19 -0
  82. data/lib/vagrant/util/retryable.rb +8 -2
  83. data/lib/vagrant/util/safe_exec.rb +2 -2
  84. data/lib/vagrant/util/scoped_hash_override.rb +45 -0
  85. data/lib/vagrant/util/ssh.rb +126 -0
  86. data/lib/vagrant/util/string_block_editor.rb +75 -0
  87. data/lib/vagrant/util/subprocess.rb +33 -10
  88. data/lib/vagrant/util/which.rb +43 -0
  89. data/lib/vagrant/version.rb +1 -1
  90. data/plugins/README.md +5 -0
  91. data/plugins/commands/box/command/add.rb +46 -0
  92. data/plugins/commands/box/command/list.rb +41 -0
  93. data/plugins/commands/box/command/remove.rb +37 -0
  94. data/plugins/commands/box/command/repackage.rb +43 -0
  95. data/plugins/commands/box/command/root.rb +75 -0
  96. data/plugins/commands/box/plugin.rb +15 -0
  97. data/plugins/commands/destroy/command.rb +31 -0
  98. data/plugins/commands/destroy/plugin.rb +18 -0
  99. data/plugins/commands/halt/command.rb +33 -0
  100. data/plugins/commands/halt/plugin.rb +18 -0
  101. data/{lib/vagrant/command/init.rb → plugins/commands/init/command.rb} +4 -4
  102. data/plugins/commands/init/plugin.rb +18 -0
  103. data/plugins/commands/package/command.rb +83 -0
  104. data/plugins/commands/package/plugin.rb +18 -0
  105. data/plugins/commands/plugin/action.rb +52 -0
  106. data/plugins/commands/plugin/action/bundler_check.rb +25 -0
  107. data/plugins/commands/plugin/action/install_gem.rb +70 -0
  108. data/plugins/commands/plugin/action/license_plugin.rb +54 -0
  109. data/plugins/commands/plugin/action/list_plugins.rb +54 -0
  110. data/plugins/commands/plugin/action/prune_gems.rb +149 -0
  111. data/plugins/commands/plugin/action/uninstall_plugin.rb +23 -0
  112. data/plugins/commands/plugin/command/base.rb +22 -0
  113. data/plugins/commands/plugin/command/install.rb +39 -0
  114. data/plugins/commands/plugin/command/license.rb +31 -0
  115. data/plugins/commands/plugin/command/list.rb +28 -0
  116. data/plugins/commands/plugin/command/root.rb +75 -0
  117. data/plugins/commands/plugin/command/uninstall.rb +28 -0
  118. data/plugins/commands/plugin/gem_helper.rb +74 -0
  119. data/plugins/commands/plugin/plugin.rb +22 -0
  120. data/plugins/commands/plugin/state_file.rb +57 -0
  121. data/plugins/commands/provision/command.rb +34 -0
  122. data/plugins/commands/provision/plugin.rb +18 -0
  123. data/plugins/commands/reload/command.rb +37 -0
  124. data/plugins/commands/reload/plugin.rb +18 -0
  125. data/plugins/commands/resume/command.rb +25 -0
  126. data/plugins/commands/resume/plugin.rb +17 -0
  127. data/{lib/vagrant/command/ssh.rb → plugins/commands/ssh/command.rb} +17 -41
  128. data/plugins/commands/ssh/plugin.rb +17 -0
  129. data/{lib/vagrant/command/ssh_config.rb → plugins/commands/ssh_config/command.rb} +14 -16
  130. data/plugins/commands/ssh_config/plugin.rb +18 -0
  131. data/plugins/commands/status/command.rb +39 -0
  132. data/plugins/commands/status/plugin.rb +18 -0
  133. data/plugins/commands/suspend/command.rb +25 -0
  134. data/plugins/commands/suspend/plugin.rb +18 -0
  135. data/plugins/commands/up/command.rb +45 -0
  136. data/plugins/commands/up/plugin.rb +17 -0
  137. data/{lib/vagrant/command → plugins/commands/up}/start_mixins.rb +6 -6
  138. data/{lib/vagrant/communication/ssh.rb → plugins/communicators/ssh/communicator.rb} +139 -52
  139. data/plugins/communicators/ssh/plugin.rb +19 -0
  140. data/plugins/guests/arch/guest.rb +41 -0
  141. data/plugins/guests/arch/plugin.rb +15 -0
  142. data/{lib/vagrant/guest/debian.rb → plugins/guests/debian/guest.rb} +21 -13
  143. data/plugins/guests/debian/plugin.rb +15 -0
  144. data/{lib/vagrant/guest/fedora.rb → plugins/guests/fedora/guest.rb} +19 -14
  145. data/plugins/guests/fedora/plugin.rb +15 -0
  146. data/plugins/guests/freebsd/config.rb +13 -0
  147. data/plugins/guests/freebsd/guest.rb +70 -0
  148. data/plugins/guests/freebsd/plugin.rb +20 -0
  149. data/plugins/guests/gentoo/guest.rb +51 -0
  150. data/plugins/guests/gentoo/plugin.rb +15 -0
  151. data/plugins/guests/linux/config.rb +13 -0
  152. data/{lib/vagrant/guest/linux.rb → plugins/guests/linux/guest.rb} +35 -34
  153. data/plugins/guests/linux/plugin.rb +20 -0
  154. data/plugins/guests/openbsd/guest.rb +13 -0
  155. data/plugins/guests/openbsd/plugin.rb +15 -0
  156. data/{lib/vagrant/guest/redhat.rb → plugins/guests/redhat/guest.rb} +22 -15
  157. data/plugins/guests/redhat/plugin.rb +15 -0
  158. data/plugins/guests/solaris/config.rb +18 -0
  159. data/plugins/guests/solaris/guest.rb +73 -0
  160. data/plugins/guests/solaris/plugin.rb +20 -0
  161. data/plugins/guests/suse/guest.rb +24 -0
  162. data/plugins/guests/suse/plugin.rb +15 -0
  163. data/plugins/guests/ubuntu/guest.rb +44 -0
  164. data/plugins/guests/ubuntu/plugin.rb +15 -0
  165. data/{lib/vagrant/hosts/arch.rb → plugins/hosts/arch/host.rb} +18 -5
  166. data/plugins/hosts/arch/plugin.rb +15 -0
  167. data/{lib/vagrant/hosts/bsd.rb → plugins/hosts/bsd/host.rb} +16 -11
  168. data/plugins/hosts/bsd/plugin.rb +15 -0
  169. data/{lib/vagrant/hosts/fedora.rb → plugins/hosts/fedora/host.rb} +8 -4
  170. data/plugins/hosts/fedora/plugin.rb +15 -0
  171. data/{lib/vagrant/hosts/freebsd.rb → plugins/hosts/freebsd/host.rb} +10 -8
  172. data/plugins/hosts/freebsd/plugin.rb +15 -0
  173. data/{lib/vagrant/hosts/gentoo.rb → plugins/hosts/gentoo/host.rb} +7 -3
  174. data/plugins/hosts/gentoo/plugin.rb +15 -0
  175. data/{lib/vagrant/hosts/linux.rb → plugins/hosts/linux/host.rb} +12 -11
  176. data/plugins/hosts/linux/plugin.rb +15 -0
  177. data/{lib/vagrant/hosts/opensuse.rb → plugins/hosts/opensuse/host.rb} +8 -4
  178. data/plugins/hosts/opensuse/plugin.rb +15 -0
  179. data/{lib/vagrant/hosts/windows.rb → plugins/hosts/windows/host.rb} +5 -4
  180. data/plugins/hosts/windows/plugin.rb +15 -0
  181. data/plugins/kernel_v1/config/nfs.rb +20 -0
  182. data/plugins/kernel_v1/config/package.rb +17 -0
  183. data/plugins/kernel_v1/config/ssh.rb +46 -0
  184. data/plugins/kernel_v1/config/vagrant.rb +31 -0
  185. data/plugins/kernel_v1/config/vm.rb +184 -0
  186. data/plugins/kernel_v1/plugin.rb +44 -0
  187. data/plugins/kernel_v2/config/nfs.rb +10 -0
  188. data/plugins/kernel_v2/config/package.rb +9 -0
  189. data/plugins/kernel_v2/config/ssh.rb +35 -0
  190. data/plugins/kernel_v2/config/vagrant.rb +9 -0
  191. data/plugins/kernel_v2/config/vm.rb +314 -0
  192. data/plugins/kernel_v2/config/vm_provisioner.rb +40 -0
  193. data/plugins/kernel_v2/config/vm_subvm.rb +30 -0
  194. data/plugins/kernel_v2/plugin.rb +44 -0
  195. data/plugins/providers/virtualbox/action.rb +308 -0
  196. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/boot.rb +12 -16
  197. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/check_accessible.rb +5 -5
  198. data/plugins/providers/virtualbox/action/check_created.rb +21 -0
  199. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/check_guest_additions.rb +18 -11
  200. data/plugins/providers/virtualbox/action/check_running.rb +21 -0
  201. data/plugins/providers/virtualbox/action/check_virtualbox.rb +22 -0
  202. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/clean_machine_folder.rb +5 -5
  203. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/clear_forwarded_ports.rb +4 -4
  204. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/clear_network_interfaces.rb +4 -4
  205. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/clear_shared_folders.rb +4 -5
  206. data/plugins/providers/virtualbox/action/created.rb +20 -0
  207. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/customize.rb +7 -7
  208. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/destroy.rb +5 -5
  209. data/plugins/providers/virtualbox/action/destroy_confirm.rb +17 -0
  210. data/plugins/providers/virtualbox/action/destroy_unused_network_interfaces.rb +16 -0
  211. data/plugins/providers/virtualbox/action/discard_state.rb +20 -0
  212. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/export.rb +7 -7
  213. data/plugins/providers/virtualbox/action/forced_halt.rb +25 -0
  214. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/forward_ports.rb +29 -42
  215. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/import.rb +15 -12
  216. data/plugins/providers/virtualbox/action/is_paused.rb +20 -0
  217. data/plugins/providers/virtualbox/action/is_running.rb +20 -0
  218. data/plugins/providers/virtualbox/action/is_saved.rb +20 -0
  219. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/match_mac_address.rb +5 -5
  220. data/plugins/providers/virtualbox/action/message_not_created.rb +16 -0
  221. data/plugins/providers/virtualbox/action/message_not_running.rb +16 -0
  222. data/plugins/providers/virtualbox/action/message_will_not_destroy.rb +17 -0
  223. data/plugins/providers/virtualbox/action/network.rb +366 -0
  224. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/package.rb +4 -7
  225. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/package_vagrantfile.rb +5 -8
  226. data/plugins/providers/virtualbox/action/prepare_forwarded_port_collision_params.rb +35 -0
  227. data/plugins/providers/virtualbox/action/prepare_nfs_settings.rb +51 -0
  228. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/prune_nfs_exports.rb +5 -5
  229. data/plugins/providers/virtualbox/action/resume.rb +25 -0
  230. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/sane_defaults.rb +41 -32
  231. data/plugins/providers/virtualbox/action/set_name.rb +40 -0
  232. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/setup_package_files.rb +5 -8
  233. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/share_folders.rb +24 -25
  234. data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/suspend.rb +5 -5
  235. data/plugins/providers/virtualbox/config.rb +82 -0
  236. data/plugins/providers/virtualbox/driver/base.rb +344 -0
  237. data/plugins/providers/virtualbox/driver/meta.rb +142 -0
  238. data/plugins/providers/virtualbox/driver/version_4_0.rb +485 -0
  239. data/plugins/providers/virtualbox/driver/version_4_1.rb +485 -0
  240. data/plugins/providers/virtualbox/driver/version_4_2.rb +475 -0
  241. data/plugins/providers/virtualbox/model/forwarded_port.rb +58 -0
  242. data/plugins/providers/virtualbox/plugin.rb +42 -0
  243. data/plugins/providers/virtualbox/provider.rb +92 -0
  244. data/plugins/providers/virtualbox/util/compile_forwarded_ports.rb +31 -0
  245. data/plugins/provisioners/chef/config/base.rb +65 -0
  246. data/plugins/provisioners/chef/config/chef_client.rb +39 -0
  247. data/plugins/provisioners/chef/config/chef_solo.rb +87 -0
  248. data/plugins/provisioners/chef/plugin.rb +33 -0
  249. data/plugins/provisioners/chef/provisioner/base.rb +91 -0
  250. data/plugins/provisioners/chef/provisioner/chef_client.rb +103 -0
  251. data/plugins/provisioners/chef/provisioner/chef_solo.rb +182 -0
  252. data/plugins/provisioners/puppet/config/puppet.rb +70 -0
  253. data/plugins/provisioners/puppet/config/puppet_server.rb +16 -0
  254. data/plugins/provisioners/puppet/plugin.rb +33 -0
  255. data/plugins/provisioners/puppet/provisioner/puppet.rb +110 -0
  256. data/plugins/provisioners/puppet/provisioner/puppet_server.rb +67 -0
  257. data/plugins/provisioners/shell/config.rb +46 -0
  258. data/plugins/provisioners/shell/plugin.rb +23 -0
  259. data/plugins/provisioners/shell/provisioner.rb +66 -0
  260. data/templates/commands/init/Vagrantfile.erb +33 -21
  261. data/templates/commands/ssh_config/config.erb +1 -0
  262. data/templates/config/messages.erb +14 -0
  263. data/templates/config/validation_failed.erb +3 -3
  264. data/templates/guests/arch/network_dhcp.erb +4 -7
  265. data/templates/guests/arch/network_static.erb +6 -7
  266. data/templates/guests/debian/network_dhcp.erb +5 -0
  267. data/templates/locales/en.yml +336 -100
  268. data/templates/rgloader.rb +9 -0
  269. data/test/acceptance/support/isolated_environment.rb +3 -2
  270. data/test/support/tempdir.rb +13 -4
  271. data/test/unit/base.rb +6 -0
  272. data/test/unit/support/dummy_provider.rb +16 -0
  273. data/test/unit/support/isolated_environment.rb +132 -0
  274. data/test/unit/support/shared/base_context.rb +74 -0
  275. data/test/unit/vagrant/action/builder_test.rb +88 -48
  276. data/test/unit/vagrant/action/builtin/call_test.rb +145 -0
  277. data/test/unit/vagrant/action/builtin/confirm_test.rb +36 -0
  278. data/test/unit/vagrant/action/builtin/env_set_test.rb +20 -0
  279. data/test/unit/vagrant/action/builtin/graceful_halt_test.rb +61 -0
  280. data/test/unit/vagrant/action/builtin/lock_test.rb +98 -0
  281. data/test/unit/vagrant/action/builtin/ssh_exec_test.rb +57 -0
  282. data/test/unit/vagrant/action/hook_test.rb +101 -0
  283. data/test/unit/vagrant/action/runner_test.rb +15 -9
  284. data/test/unit/vagrant/box_collection_test.rb +219 -38
  285. data/test/unit/vagrant/box_test.rb +94 -19
  286. data/test/unit/vagrant/cli_test.rb +27 -0
  287. data/test/unit/vagrant/config/loader_test.rb +154 -49
  288. data/test/unit/vagrant/config/v1/dummy_config_test.rb +24 -0
  289. data/test/unit/vagrant/config/v1/loader_test.rb +145 -0
  290. data/test/unit/vagrant/config/v1/root_test.rb +40 -0
  291. data/test/unit/vagrant/config/v2/dummy_config_test.rb +24 -0
  292. data/test/unit/vagrant/config/v2/loader_test.rb +151 -0
  293. data/test/unit/vagrant/config/v2/root_test.rb +97 -0
  294. data/test/unit/vagrant/config/v2/util_test.rb +21 -0
  295. data/test/unit/vagrant/config_test.rb +40 -1
  296. data/test/unit/vagrant/downloaders/base_test.rb +0 -4
  297. data/test/unit/vagrant/downloaders/file_test.rb +21 -9
  298. data/test/unit/vagrant/downloaders/http_test.rb +4 -0
  299. data/test/unit/vagrant/environment_test.rb +414 -63
  300. data/test/unit/vagrant/hosts_test.rb +10 -9
  301. data/test/unit/vagrant/machine_state_test.rb +26 -0
  302. data/test/unit/vagrant/machine_test.rb +418 -0
  303. data/test/unit/vagrant/{command/base_test.rb → plugin/v1/command_test.rb} +2 -9
  304. data/test/unit/vagrant/plugin/v1/communicator_test.rb +9 -0
  305. data/test/unit/vagrant/plugin/v1/config_test.rb +50 -0
  306. data/test/unit/vagrant/plugin/v1/host_test.rb +5 -0
  307. data/test/unit/vagrant/plugin/v1/manager_test.rb +114 -0
  308. data/test/unit/vagrant/plugin/v1/plugin_test.rb +267 -0
  309. data/test/unit/vagrant/plugin/v1/provider_test.rb +18 -0
  310. data/test/unit/vagrant/plugin/v2/command_test.rb +238 -0
  311. data/test/unit/vagrant/plugin/v2/communicator_test.rb +9 -0
  312. data/test/unit/vagrant/plugin/v2/components_test.rb +17 -0
  313. data/test/unit/vagrant/plugin/v2/config_test.rb +60 -0
  314. data/test/unit/vagrant/plugin/v2/host_test.rb +5 -0
  315. data/test/unit/vagrant/plugin/v2/manager_test.rb +157 -0
  316. data/test/unit/vagrant/plugin/v2/plugin_test.rb +287 -0
  317. data/test/unit/vagrant/plugin/v2/provider_test.rb +18 -0
  318. data/test/unit/vagrant/registry_test.rb +59 -5
  319. data/test/unit/vagrant/util/scoped_hash_override_test.rb +48 -0
  320. data/test/unit/vagrant/util/ssh_test.rb +30 -0
  321. data/test/unit/vagrant/util/string_block_editor_test.rb +98 -0
  322. data/test/unit/vagrant/util/which_test.rb +43 -0
  323. data/test/unit/vagrant_test.rb +42 -13
  324. data/vagrant.gemspec +6 -7
  325. data/vagrant.gemspecbak +6 -7
  326. metadata +273 -358
  327. data/lib/vagrant/action/box/destroy.rb +0 -25
  328. data/lib/vagrant/action/box/download.rb +0 -84
  329. data/lib/vagrant/action/box/package.rb +0 -19
  330. data/lib/vagrant/action/box/unpackage.rb +0 -61
  331. data/lib/vagrant/action/box/verify.rb +0 -23
  332. data/lib/vagrant/action/builtin.rb +0 -171
  333. data/lib/vagrant/action/env/set.rb +0 -21
  334. data/lib/vagrant/action/environment.rb +0 -12
  335. data/lib/vagrant/action/general/check_virtualbox.rb +0 -28
  336. data/lib/vagrant/action/general/validate.rb +0 -18
  337. data/lib/vagrant/action/vm/check_box.rb +0 -33
  338. data/lib/vagrant/action/vm/check_port_collisions.rb +0 -89
  339. data/lib/vagrant/action/vm/default_name.rb +0 -22
  340. data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +0 -20
  341. data/lib/vagrant/action/vm/discard_state.rb +0 -22
  342. data/lib/vagrant/action/vm/halt.rb +0 -32
  343. data/lib/vagrant/action/vm/host_name.rb +0 -21
  344. data/lib/vagrant/action/vm/network.rb +0 -403
  345. data/lib/vagrant/action/vm/nfs.rb +0 -196
  346. data/lib/vagrant/action/vm/provision.rb +0 -61
  347. data/lib/vagrant/action/vm/provisioner_cleanup.rb +0 -26
  348. data/lib/vagrant/action/vm/resume.rb +0 -20
  349. data/lib/vagrant/command.rb +0 -24
  350. data/lib/vagrant/command/base.rb +0 -167
  351. data/lib/vagrant/command/box.rb +0 -58
  352. data/lib/vagrant/command/box_add.rb +0 -37
  353. data/lib/vagrant/command/box_list.rb +0 -28
  354. data/lib/vagrant/command/box_remove.rb +0 -27
  355. data/lib/vagrant/command/box_repackage.rb +0 -27
  356. data/lib/vagrant/command/destroy.rb +0 -64
  357. data/lib/vagrant/command/gem.rb +0 -39
  358. data/lib/vagrant/command/halt.rb +0 -39
  359. data/lib/vagrant/command/package.rb +0 -75
  360. data/lib/vagrant/command/provision.rb +0 -40
  361. data/lib/vagrant/command/reload.rb +0 -39
  362. data/lib/vagrant/command/resume.rb +0 -33
  363. data/lib/vagrant/command/status.rb +0 -36
  364. data/lib/vagrant/command/suspend.rb +0 -33
  365. data/lib/vagrant/command/up.rb +0 -40
  366. data/lib/vagrant/communication.rb +0 -7
  367. data/lib/vagrant/communication/base.rb +0 -56
  368. data/lib/vagrant/config/base.rb +0 -82
  369. data/lib/vagrant/config/error_recorder.rb +0 -19
  370. data/lib/vagrant/config/nfs.rb +0 -8
  371. data/lib/vagrant/config/package.rb +0 -7
  372. data/lib/vagrant/config/ssh.rb +0 -27
  373. data/lib/vagrant/config/top.rb +0 -72
  374. data/lib/vagrant/config/vagrant.rb +0 -14
  375. data/lib/vagrant/config/vm.rb +0 -168
  376. data/lib/vagrant/config/vm/provisioner.rb +0 -52
  377. data/lib/vagrant/config/vm/sub_vm.rb +0 -17
  378. data/lib/vagrant/data_store.rb +0 -92
  379. data/lib/vagrant/driver.rb +0 -8
  380. data/lib/vagrant/driver/virtualbox.rb +0 -134
  381. data/lib/vagrant/driver/virtualbox_4_0.rb +0 -459
  382. data/lib/vagrant/driver/virtualbox_4_1.rb +0 -459
  383. data/lib/vagrant/driver/virtualbox_4_2.rb +0 -606
  384. data/lib/vagrant/driver/virtualbox_base.rb +0 -326
  385. data/lib/vagrant/guest.rb +0 -18
  386. data/lib/vagrant/guest/arch.rb +0 -56
  387. data/lib/vagrant/guest/base.rb +0 -99
  388. data/lib/vagrant/guest/freebsd.rb +0 -86
  389. data/lib/vagrant/guest/gentoo.rb +0 -46
  390. data/lib/vagrant/guest/linux/config.rb +0 -19
  391. data/lib/vagrant/guest/linux/error.rb +0 -9
  392. data/lib/vagrant/guest/openbsd.rb +0 -20
  393. data/lib/vagrant/guest/solaris.rb +0 -118
  394. data/lib/vagrant/guest/suse.rb +0 -17
  395. data/lib/vagrant/guest/ubuntu.rb +0 -23
  396. data/lib/vagrant/hosts/base.rb +0 -66
  397. data/lib/vagrant/provisioners.rb +0 -12
  398. data/lib/vagrant/provisioners/base.rb +0 -44
  399. data/lib/vagrant/provisioners/chef.rb +0 -168
  400. data/lib/vagrant/provisioners/chef_client.rb +0 -132
  401. data/lib/vagrant/provisioners/chef_solo.rb +0 -234
  402. data/lib/vagrant/provisioners/puppet.rb +0 -176
  403. data/lib/vagrant/provisioners/puppet_server.rb +0 -78
  404. data/lib/vagrant/provisioners/shell.rb +0 -103
  405. data/lib/vagrant/vm.rb +0 -195
  406. data/test/buildbot/README.md +0 -72
  407. data/test/buildbot/buildbot_config/__init__.py +0 -0
  408. data/test/buildbot/buildbot_config/config/__init__.py +0 -0
  409. data/test/buildbot/buildbot_config/config/loader.py +0 -24
  410. data/test/buildbot/buildbot_config/config/master.py +0 -24
  411. data/test/buildbot/buildbot_config/config/slave.py +0 -22
  412. data/test/buildbot/buildbot_config/master/__init__.py +0 -6
  413. data/test/buildbot/buildbot_config/master/builders.py +0 -78
  414. data/test/buildbot/buildbot_config/master/buildsteps.py +0 -100
  415. data/test/buildbot/buildbot_config/master/change_sources.py +0 -8
  416. data/test/buildbot/buildbot_config/master/schedulers.py +0 -32
  417. data/test/buildbot/buildbot_config/master/slaves.py +0 -60
  418. data/test/buildbot/buildbot_config/master/status.py +0 -52
  419. data/test/buildbot/master/Makefile.sample +0 -28
  420. data/test/buildbot/master/buildbot.tac +0 -36
  421. data/test/buildbot/master/master.cfg +0 -67
  422. data/test/buildbot/master/public_html/bg_gradient.jpg +0 -0
  423. data/test/buildbot/master/public_html/default.css +0 -545
  424. data/test/buildbot/master/public_html/favicon.ico +0 -0
  425. data/test/buildbot/master/public_html/robots.txt +0 -10
  426. data/test/buildbot/master/public_html/static/css/bootstrap-1.4.0.min.css +0 -356
  427. data/test/buildbot/master/public_html/static/css/prettify.css +0 -97
  428. data/test/buildbot/master/public_html/static/css/syntax.css +0 -60
  429. data/test/buildbot/master/public_html/static/css/vagrant.base.css +0 -205
  430. data/test/buildbot/master/public_html/static/images/base_box_mac.jpg +0 -0
  431. data/test/buildbot/master/public_html/static/images/getting-started/success.jpg +0 -0
  432. data/test/buildbot/master/public_html/static/images/icons/error.png +0 -0
  433. data/test/buildbot/master/public_html/static/images/vagrant_chilling.png +0 -0
  434. data/test/buildbot/master/public_html/static/images/vagrant_holding.png +0 -0
  435. data/test/buildbot/master/public_html/static/images/vagrant_looking.png +0 -0
  436. data/test/buildbot/master/public_html/static/images/windows/alter_path.jpg +0 -0
  437. data/test/buildbot/master/public_html/static/images/windows/edit_path.jpg +0 -0
  438. data/test/buildbot/master/public_html/static/images/windows/environment_variables_button.jpg +0 -0
  439. data/test/buildbot/master/public_html/static/images/windows/port_and_ppk_path.jpg +0 -0
  440. data/test/buildbot/master/public_html/static/images/windows/ppk_selection.jpg +0 -0
  441. data/test/buildbot/master/public_html/static/images/windows/putty_first_screen.jpg +0 -0
  442. data/test/buildbot/master/public_html/static/images/windows/save_result.jpg +0 -0
  443. data/test/buildbot/master/public_html/static/images/windows/vbox_manage_default_location.jpg +0 -0
  444. data/test/buildbot/master/public_html/static/js/bootstrap-tabs.js +0 -80
  445. data/test/buildbot/master/public_html/static/js/jquery-1.7.min.js +0 -4
  446. data/test/buildbot/master/templates/authfail.html +0 -9
  447. data/test/buildbot/master/templates/build.html +0 -205
  448. data/test/buildbot/master/templates/builder.html +0 -118
  449. data/test/buildbot/master/templates/builders.html +0 -33
  450. data/test/buildbot/master/templates/buildslave.html +0 -72
  451. data/test/buildbot/master/templates/buildslaves.html +0 -70
  452. data/test/buildbot/master/templates/change.html +0 -15
  453. data/test/buildbot/master/templates/layouts/base.html +0 -58
  454. data/test/buildbot/master/templates/macros/box.html +0 -37
  455. data/test/buildbot/master/templates/macros/build_line.html +0 -50
  456. data/test/buildbot/master/templates/macros/change.html +0 -81
  457. data/test/buildbot/master/templates/macros/forms.html +0 -300
  458. data/test/buildbot/master/templates/root.html +0 -42
  459. data/test/buildbot/master/templates/waterfall.html +0 -53
  460. data/test/buildbot/requirements.txt +0 -4
  461. data/test/buildbot/scripts/deploy.sh +0 -38
  462. data/test/buildbot/scripts/setup.sh +0 -107
  463. data/test/buildbot/slave/buildbot.tac +0 -43
  464. data/test/buildbot/slave/info/admin +0 -1
  465. data/test/buildbot/slave/info/host +0 -1
  466. data/test/buildbot/tests/__init__.py +0 -0
  467. data/test/buildbot/tests/master/__init__.py +0 -0
  468. data/test/buildbot/tests/master/test_slaves.py +0 -41
  469. data/test/buildbot/vendor/choices-0.4.0.tar.gz +0 -0
  470. data/test/unit/vagrant/action/environment_test.rb +0 -16
  471. data/test/unit/vagrant/config/base_test.rb +0 -48
  472. data/test/unit/vagrant/config/ssh_test.rb +0 -17
  473. data/test/unit/vagrant/config/top_test.rb +0 -69
  474. data/test/unit/vagrant/config/vm_test.rb +0 -71
  475. data/test/unit/vagrant/data_store_test.rb +0 -79
  476. data/test/unit_legacy/locales/en.yml +0 -8
  477. data/test/unit_legacy/test_helper.rb +0 -32
  478. data/test/unit_legacy/vagrant/action/box/destroy_test.rb +0 -18
  479. data/test/unit_legacy/vagrant/action/box/download_test.rb +0 -125
  480. data/test/unit_legacy/vagrant/action/box/package_test.rb +0 -25
  481. data/test/unit_legacy/vagrant/action/box/unpackage_test.rb +0 -84
  482. data/test/unit_legacy/vagrant/action/box/verify_test.rb +0 -30
  483. data/test/unit_legacy/vagrant/action/env/set_test.rb +0 -24
  484. data/test/unit_legacy/vagrant/action/general/package_test.rb +0 -268
  485. data/test/unit_legacy/vagrant/action/general/validate_test.rb +0 -31
  486. data/test/unit_legacy/vagrant/action/vm/boot_test.rb +0 -66
  487. data/test/unit_legacy/vagrant/action/vm/check_accessible_test.rb +0 -61
  488. data/test/unit_legacy/vagrant/action/vm/check_box_test.rb +0 -61
  489. data/test/unit_legacy/vagrant/action/vm/check_guest_additions_test.rb +0 -9
  490. data/test/unit_legacy/vagrant/action/vm/clean_machine_folder_test.rb +0 -84
  491. data/test/unit_legacy/vagrant/action/vm/clear_forwarded_ports_test.rb +0 -52
  492. data/test/unit_legacy/vagrant/action/vm/clear_nfs_exports_test.rb +0 -22
  493. data/test/unit_legacy/vagrant/action/vm/clear_shared_folders_test.rb +0 -40
  494. data/test/unit_legacy/vagrant/action/vm/customize_test.rb +0 -37
  495. data/test/unit_legacy/vagrant/action/vm/destroy_test.rb +0 -25
  496. data/test/unit_legacy/vagrant/action/vm/destroy_unused_network_interfaces_test.rb +0 -49
  497. data/test/unit_legacy/vagrant/action/vm/discard_state_test.rb +0 -45
  498. data/test/unit_legacy/vagrant/action/vm/export_test.rb +0 -107
  499. data/test/unit_legacy/vagrant/action/vm/forward_ports_helpers_test.rb +0 -77
  500. data/test/unit_legacy/vagrant/action/vm/forward_ports_test.rb +0 -197
  501. data/test/unit_legacy/vagrant/action/vm/halt_test.rb +0 -79
  502. data/test/unit_legacy/vagrant/action/vm/host_name_test.rb +0 -36
  503. data/test/unit_legacy/vagrant/action/vm/import_test.rb +0 -66
  504. data/test/unit_legacy/vagrant/action/vm/match_mac_address_test.rb +0 -40
  505. data/test/unit_legacy/vagrant/action/vm/modify_test.rb +0 -38
  506. data/test/unit_legacy/vagrant/action/vm/network_test.rb +0 -286
  507. data/test/unit_legacy/vagrant/action/vm/nfs_helpers_test.rb +0 -26
  508. data/test/unit_legacy/vagrant/action/vm/nfs_test.rb +0 -260
  509. data/test/unit_legacy/vagrant/action/vm/package_test.rb +0 -25
  510. data/test/unit_legacy/vagrant/action/vm/package_vagrantfile_test.rb +0 -46
  511. data/test/unit_legacy/vagrant/action/vm/provision_test.rb +0 -65
  512. data/test/unit_legacy/vagrant/action/vm/provisioner_cleanup_test.rb +0 -56
  513. data/test/unit_legacy/vagrant/action/vm/resume_test.rb +0 -35
  514. data/test/unit_legacy/vagrant/action/vm/share_folders_test.rb +0 -144
  515. data/test/unit_legacy/vagrant/action/vm/suspend_test.rb +0 -35
  516. data/test/unit_legacy/vagrant/action_test.rb +0 -89
  517. data/test/unit_legacy/vagrant/box_collection_test.rb +0 -45
  518. data/test/unit_legacy/vagrant/box_test.rb +0 -74
  519. data/test/unit_legacy/vagrant/cli_test.rb +0 -35
  520. data/test/unit_legacy/vagrant/command/base_test.rb +0 -23
  521. data/test/unit_legacy/vagrant/command/group_base_test.rb +0 -15
  522. data/test/unit_legacy/vagrant/command/helpers_test.rb +0 -88
  523. data/test/unit_legacy/vagrant/command/init_test.rb +0 -10
  524. data/test/unit_legacy/vagrant/command/package_test.rb +0 -27
  525. data/test/unit_legacy/vagrant/config/base_test.rb +0 -52
  526. data/test/unit_legacy/vagrant/config/error_recorder_test.rb +0 -18
  527. data/test/unit_legacy/vagrant/config/ssh_test.rb +0 -12
  528. data/test/unit_legacy/vagrant/config/vagrant_test.rb +0 -35
  529. data/test/unit_legacy/vagrant/config/vm/provisioner_test.rb +0 -92
  530. data/test/unit_legacy/vagrant/config/vm_test.rb +0 -47
  531. data/test/unit_legacy/vagrant/config_test.rb +0 -148
  532. data/test/unit_legacy/vagrant/downloaders/http_test.rb +0 -93
  533. data/test/unit_legacy/vagrant/environment_test.rb +0 -539
  534. data/test/unit_legacy/vagrant/errors_test.rb +0 -42
  535. data/test/unit_legacy/vagrant/hosts/base_test.rb +0 -46
  536. data/test/unit_legacy/vagrant/hosts/bsd_test.rb +0 -53
  537. data/test/unit_legacy/vagrant/hosts/linux_test.rb +0 -54
  538. data/test/unit_legacy/vagrant/plugin_test.rb +0 -9
  539. data/test/unit_legacy/vagrant/provisioners/base_test.rb +0 -63
  540. data/test/unit_legacy/vagrant/provisioners/chef_client_test.rb +0 -190
  541. data/test/unit_legacy/vagrant/provisioners/chef_solo_test.rb +0 -115
  542. data/test/unit_legacy/vagrant/provisioners/chef_test.rb +0 -209
  543. data/test/unit_legacy/vagrant/provisioners/puppet_server_test.rb +0 -68
  544. data/test/unit_legacy/vagrant/provisioners/puppet_test.rb +0 -182
  545. data/test/unit_legacy/vagrant/provisioners/shell_test.rb +0 -79
  546. data/test/unit_legacy/vagrant/ssh/session_test.rb +0 -40
  547. data/test/unit_legacy/vagrant/ssh_test.rb +0 -304
  548. data/test/unit_legacy/vagrant/systems/base_test.rb +0 -18
  549. data/test/unit_legacy/vagrant/systems/linux_test.rb +0 -104
  550. data/test/unit_legacy/vagrant/util/busy_test.rb +0 -106
  551. data/test/unit_legacy/vagrant/util/counter_test.rb +0 -29
  552. data/test/unit_legacy/vagrant/util/platform_test.rb +0 -18
  553. data/test/unit_legacy/vagrant/util/stacked_proc_runner_test.rb +0 -43
  554. data/test/unit_legacy/vagrant/util/template_renderer_test.rb +0 -145
  555. data/test/unit_legacy/vagrant/vm_test.rb +0 -300
  556. data/vagrant-1.1.4.gem +0 -0
  557. data/vagrantup-0.1.0.gem +0 -0
  558. data/vagrantup-0.1.1.gem +0 -0
  559. data/vagrantup-0.1.2.gem +0 -0
  560. data/vagrantup-0.1.3.gem +0 -0
  561. data/vagrantup-0.1.4.gem +0 -0
  562. data/vagrantup-0.2.0.gem +0 -0
  563. data/vagrantup-0.3.0.gem +0 -0
  564. data/vagrantup-0.3.1.gem +0 -0
  565. data/vagrantup-0.3.2.gem +0 -0
  566. data/vagrantup-0.3.3.gem +0 -0
  567. data/vagrantup-0.3.4.gem +0 -0
  568. data/vagrantup-0.4.0.gem +0 -0
  569. data/vagrantup-0.4.1.gem +0 -0
  570. data/vagrantup-0.4.3.dev.gem +0 -0
  571. data/vagrantup-0.5.0.gem +0 -0
  572. data/vagrantup-0.5.1.gem +0 -0
  573. data/vagrantup-0.5.2.gem +0 -0
  574. data/vagrantup-0.5.3.gem +0 -0
  575. data/vagrantup-0.5.4.gem +0 -0
  576. data/vagrantup-0.6.0.gem +0 -0
  577. data/vagrantup-0.6.1.gem +0 -0
  578. data/vagrantup-0.6.2.gem +0 -0
  579. data/vagrantup-0.6.3.gem +0 -0
  580. data/vagrantup-0.6.4.gem +0 -0
  581. data/vagrantup-0.6.5.gem +0 -0
  582. data/vagrantup-0.6.6.gem +0 -0
  583. data/vagrantup-0.6.7.gem +0 -0
  584. data/vagrantup-0.6.8.gem +0 -0
  585. data/vagrantup-0.6.9.gem +0 -0
  586. data/vagrantup-0.7.0.gem +0 -0
  587. data/vagrantup-0.7.1.gem +0 -0
  588. data/vagrantup-0.7.2.gem +0 -0
  589. data/vagrantup-0.7.3.gem +0 -0
  590. data/vagrantup-0.7.4.gem +0 -0
  591. data/vagrantup-0.7.5.gem +0 -0
  592. data/vagrantup-0.7.6.gem +0 -0
  593. data/vagrantup-0.7.7.gem +0 -0
  594. data/vagrantup-0.7.8.gem +0 -0
  595. data/vagrantup-0.8.0.gem +0 -0
  596. data/vagrantup-0.8.1.gem +0 -0
  597. data/vagrantup-0.8.10.gem +0 -0
  598. data/vagrantup-0.8.2.gem +0 -0
  599. data/vagrantup-0.8.3.gem +0 -0
  600. data/vagrantup-0.8.4.gem +0 -0
  601. data/vagrantup-0.8.5.gem +0 -0
  602. data/vagrantup-0.8.6.gem +0 -0
  603. data/vagrantup-0.8.7.gem +0 -0
  604. data/vagrantup-0.8.8.gem +0 -0
  605. data/vagrantup-0.8.9.gem +0 -0
  606. data/vagrantup-0.9.0.gem +0 -0
  607. data/vagrantup-0.9.1.gem +0 -0
  608. data/vagrantup-0.9.2.gem +0 -0
  609. data/vagrantup-0.9.3.gem +0 -0
  610. data/vagrantup-0.9.4.gem +0 -0
  611. data/vagrantup-0.9.5.gem +0 -0
  612. data/vagrantup-0.9.6.gem +0 -0
  613. data/vagrantup-0.9.7.gem +0 -0
  614. data/vagrantup-0.9.99.1.gem +0 -0
  615. data/vagrantup-0.9.99.2.gem +0 -0
  616. data/vagrantup-1.0.0.gem +0 -0
  617. data/vagrantup-1.0.1.gem +0 -0
  618. data/vagrantup-1.0.2.gem +0 -0
  619. data/vagrantup-1.0.3.gem +0 -0
  620. data/vagrantup-1.0.4.gem +0 -0
  621. data/vagrantup-1.0.5.gem +0 -0
  622. data/vagrantup-1.0.6.gem +0 -0
  623. data/vagrantup-1.1.4.gem +0 -0
@@ -1,79 +0,0 @@
1
- require File.expand_path("../../base", __FILE__)
2
-
3
- require 'pathname'
4
-
5
- describe Vagrant::DataStore do
6
- include_context "unit"
7
-
8
- let(:db_file) do
9
- # We create a tempfile and force an explicit close/unlink
10
- # but save the path so that we can re-use it multiple times
11
- temp = Tempfile.new("vagrant")
12
- result = Pathname.new(temp.path)
13
- temp.close
14
- temp.unlink
15
-
16
- result
17
- end
18
-
19
- let(:instance) { described_class.new(db_file) }
20
-
21
- it "initializes a new DB file" do
22
- instance[:data] = true
23
- instance.commit
24
- instance[:data].should == true
25
-
26
- test = described_class.new(db_file)
27
- test[:data].should == true
28
- end
29
-
30
- it "initializes empty if the file contains invalid data" do
31
- db_file.open("w+") { |f| f.write("NOPE!") }
32
- described_class.new(db_file).should be_empty
33
- end
34
-
35
- it "initializes empty if the file doesn't exist" do
36
- described_class.new("NOPENOPENOPENOPENPEPEPEPE").should be_empty
37
- end
38
-
39
- it "raises an error if the path given is a directory" do
40
- db_file.delete if db_file.exist?
41
- db_file.mkdir
42
-
43
- expect { described_class.new(db_file) }.
44
- to raise_error(Vagrant::Errors::DotfileIsDirectory)
45
- end
46
-
47
- it "cleans nil and empties when committing" do
48
- instance[:data] = { :bar => nil }
49
- instance[:another] = {}
50
- instance.commit
51
-
52
- # The instance is now empty because the data was nil
53
- instance.should be_empty
54
- end
55
-
56
- it "deletes the data file if the store is empty when saving" do
57
- instance[:data] = true
58
- instance.commit
59
-
60
- another = described_class.new(db_file)
61
- another[:data] = nil
62
- another.commit
63
-
64
- # The file should no longer exist
65
- db_file.should_not be_exist
66
- end
67
-
68
- it "works if the DB file is nil" do
69
- store = described_class.new(nil)
70
- store[:foo] = "bar"
71
- store[:foo].should == "bar"
72
- end
73
-
74
- it "throws an exception if attempting to commit a data store with no file" do
75
- store = described_class.new(nil)
76
- expect { store.commit }.
77
- to raise_error(StandardError)
78
- end
79
- end
@@ -1,8 +0,0 @@
1
- en:
2
- vagrant:
3
- test:
4
- errors:
5
- test_key: This is a test key
6
- test_key_with_interpolation: This is a test key that says %{key}
7
- alternate:
8
- test_key: This is an alternate
@@ -1,32 +0,0 @@
1
- # Add this folder to the load path for "test_helper"
2
- $:.unshift(File.dirname(__FILE__))
3
-
4
- require 'vagrant'
5
- require 'contest'
6
- require 'mocha'
7
-
8
- # Try to load ruby debug since its useful if it is available.
9
- # But not a big deal if its not available (probably on a non-MRI
10
- # platform)
11
- begin
12
- require 'ruby-debug'
13
- rescue LoadError
14
- end
15
-
16
- # Do not buffer output for tests
17
- $stdout.sync = true
18
- $stderr.sync = true
19
-
20
- # Set the home directory to some temporary directory
21
- ENV["HOME"] = Vagrant.source_root.join("test", "tmp", "home").to_s
22
-
23
- # Set the log output to nothing
24
- ENV["VAGRANT_LOG"] = "NULL"
25
-
26
- # Add the I18n locale for tests
27
- I18n.load_path << File.expand_path("../locales/en.yml", __FILE__)
28
-
29
- class Test::Unit::TestCase
30
- include Vagrant::TestHelpers
31
- end
32
-
@@ -1,18 +0,0 @@
1
- require "test_helper"
2
-
3
- class DestroyBoxActionTest < Test::Unit::TestCase
4
- setup do
5
- @klass = Vagrant::Action::Box::Destroy
6
- @app, @env = action_env
7
- @env["box"] = Vagrant::Box.new(vagrant_env, "foo")
8
-
9
- @instance = @klass.new(@app, @env)
10
- end
11
-
12
- should "delete the box directory" do
13
- seq = sequence("seq")
14
- FileUtils.expects(:rm_rf).with(@env["box"].directory).in_sequence(seq)
15
- @app.expects(:call).with(@env).once.in_sequence(seq)
16
- @instance.call(@env)
17
- end
18
- end
@@ -1,125 +0,0 @@
1
- require "test_helper"
2
-
3
- class DownloadBoxActionTest < Test::Unit::TestCase
4
- setup do
5
- @klass = Vagrant::Action::Box::Download
6
- @app, @env = action_env
7
- @env["box"] = Vagrant::Box.new(vagrant_env, "foo")
8
- @env["box"].uri = "http://google.com"
9
- end
10
-
11
- context "initializing" do
12
- should "initialize download classes" do
13
- @klass.new(@app, @env)
14
- assert_equal [Vagrant::Downloaders::HTTP, Vagrant::Downloaders::File], @env["download.classes"]
15
- end
16
- end
17
-
18
- context "with an instance" do
19
- setup do
20
- @instance = @klass.new(@app, @env)
21
- end
22
-
23
- context "calling" do
24
- should "call the proper methods in sequence" do
25
- seq = sequence("seq")
26
- @instance.expects(:instantiate_downloader).in_sequence(seq).returns(true)
27
- @instance.expects(:download).in_sequence(seq)
28
- @app.expects(:call).with(@env).in_sequence(seq)
29
- @instance.expects(:recover).with(@env).in_sequence(seq)
30
- @instance.call(@env)
31
- end
32
- end
33
-
34
- context "instantiating downloader" do
35
- should "instantiate the proper class" do
36
- instance = mock("instance")
37
- Vagrant::Downloaders::HTTP.expects(:new).with(@env).returns(instance)
38
- instance.expects(:prepare).with(@env["box"].uri).once
39
- assert @instance.instantiate_downloader
40
- end
41
-
42
- should "complain that the file doesn't exist if the URI is invalid for any downloaders" do
43
- @env["box"].uri = "foobar"
44
- assert_raises(Vagrant::Errors::DownloaderFileDoesntExist) {
45
- @instance.instantiate_downloader
46
- }
47
- end
48
- end
49
-
50
- context "downloading" do
51
- setup do
52
- @path = "foo"
53
-
54
- @tempfile = mock("tempfile")
55
- @tempfile.stubs(:path).returns(@path)
56
-
57
- @instance.stubs(:with_tempfile).yields(@tempfile)
58
- @instance.stubs(:download_to)
59
- end
60
-
61
- should "make a tempfile and copy the URI contents to it" do
62
- @instance.expects(:with_tempfile).yields(@tempfile)
63
- @instance.expects(:download_to).with(@tempfile)
64
- @instance.download
65
- end
66
-
67
- should "save the tempfile path" do
68
- @instance.download
69
- assert @env.has_key?("download.temp_path")
70
- assert_equal @tempfile.path, @env["download.temp_path"]
71
- assert_equal @tempfile.path, @instance.temp_path
72
- end
73
- end
74
-
75
- context "tempfile" do
76
- should "create a tempfile in the vagrant tmp directory" do
77
- File.expects(:open).with { |name, bitmask|
78
- name.to_s =~ /#{Vagrant::Action::Box::Download::BASENAME}/ && name.to_s =~ /#{@env.env.tmp_path}/
79
- }.once
80
- @instance.with_tempfile
81
- end
82
-
83
- should "yield the tempfile object" do
84
- @tempfile = mock("tempfile")
85
- File.expects(:open).yields(@tempfile)
86
-
87
- @instance.with_tempfile do |otherfile|
88
- assert @tempfile.equal?(otherfile)
89
- end
90
- end
91
- end
92
-
93
- context "cleaning up" do
94
- setup do
95
- @temp_path = "foo"
96
- @instance.stubs(:temp_path).returns(@temp_path)
97
- File.stubs(:exist?).returns(true)
98
- end
99
-
100
- should "delete the temporary file if it exists" do
101
- File.expects(:unlink).with(@temp_path).once
102
- @instance.recover(@env)
103
- end
104
-
105
- should "not delete anything if it doesn't exist" do
106
- File.stubs(:exist?).returns(false)
107
- File.expects(:unlink).never
108
- @instance.recover(@env)
109
- end
110
- end
111
-
112
- context "downloading to" do
113
- setup do
114
- @downloader = mock("downloader")
115
- @instance.instance_variable_set(:@downloader, @downloader)
116
- end
117
-
118
- should "call download! on the download with the URI and tempfile" do
119
- tempfile = "foo"
120
- @downloader.expects(:download!).with(@env["box"].uri, tempfile)
121
- @instance.download_to(tempfile)
122
- end
123
- end
124
- end
125
- end
@@ -1,25 +0,0 @@
1
- require "test_helper"
2
-
3
- class PackageBoxActionTest < Test::Unit::TestCase
4
- setup do
5
- @klass = Vagrant::Action::Box::Package
6
- @app, @env = action_env
7
- @env["box"] = Vagrant::Box.new(vagrant_env, "foo")
8
-
9
- @instance = @klass.new(@app, @env)
10
- end
11
-
12
- should "be a subclass of general packaging middleware" do
13
- assert @instance.is_a?(Vagrant::Action::General::Package)
14
- end
15
-
16
- should "set the package directory then call parent" do
17
- @instance.expects(:general_call).once.with() do |env|
18
- assert env["package.directory"]
19
- assert_equal env["package.directory"], @env["box"].directory
20
- true
21
- end
22
-
23
- @instance.call(@env)
24
- end
25
- end
@@ -1,84 +0,0 @@
1
- require "test_helper"
2
-
3
- class UnpackageBoxActionTest < Test::Unit::TestCase
4
- setup do
5
- @klass = Vagrant::Action::Box::Unpackage
6
- @app, @env = action_env
7
- @env["box"] = Vagrant::Box.new(vagrant_env, "foo")
8
-
9
- @instance = @klass.new(@app, @env)
10
- end
11
-
12
- context "calling" do
13
- should "call the proper chain" do
14
- seq = sequence("sequence")
15
- @instance.expects(:setup_box_directory).in_sequence(seq).returns(true)
16
- @instance.expects(:decompress).in_sequence(seq)
17
- @app.expects(:call).with(@env)
18
- @instance.call(@env)
19
- end
20
- end
21
-
22
- context "cleaning up" do
23
- setup do
24
- @instance.stubs(:box_directory).returns("foo")
25
- File.stubs(:directory?).returns(false)
26
- FileUtils.stubs(:rm_rf)
27
- end
28
-
29
- should "do nothing if box directory is not set" do
30
- @instance.stubs(:box_directory).returns(nil)
31
- File.expects(:directory?).never
32
- FileUtils.expects(:rm_rf).never
33
- @instance.recover(nil)
34
- end
35
-
36
- should "do nothing if not a directory" do
37
- FileUtils.expects(:rm_rf).never
38
- @instance.recover(nil)
39
- end
40
-
41
- should "remove the directory if exists" do
42
- File.expects(:directory?).with(@instance.box_directory).once.returns(true)
43
- FileUtils.expects(:rm_rf).with(@instance.box_directory).once
44
- @instance.recover(nil)
45
- end
46
- end
47
-
48
- context "setting up the box directory" do
49
- setup do
50
- File.stubs(:directory?).returns(false)
51
- FileUtils.stubs(:mkdir_p)
52
- end
53
-
54
- should "error the environment if the box already exists" do
55
- File.expects(:directory?).returns(true)
56
- assert_raises(Vagrant::Errors::BoxAlreadyExists) {
57
- @instance.setup_box_directory
58
- }
59
- end
60
-
61
- should "create the directory" do
62
- FileUtils.expects(:mkdir_p).with(@env["box"].directory).once
63
- @instance.setup_box_directory
64
- end
65
- end
66
-
67
- context "decompressing" do
68
- setup do
69
- @env["download.temp_path"] = "bar"
70
-
71
- Dir.stubs(:chdir).yields
72
- end
73
-
74
- should "change to the box directory" do
75
- Dir.expects(:chdir).with(@env["box"].directory)
76
- @instance.decompress
77
- end
78
-
79
- should "open the tar file within the new directory, and extract it all" do
80
- Archive::Tar::Minitar.expects(:unpack).with(@env["download.temp_path"], @env["box"].directory.to_s).once
81
- @instance.decompress
82
- end
83
- end
84
- end
@@ -1,30 +0,0 @@
1
- require "test_helper"
2
-
3
- class VerifyBoxActionTest < Test::Unit::TestCase
4
- setup do
5
- @klass = Vagrant::Action::Box::Verify
6
- @app, @env = action_env
7
- @env["box"] = Vagrant::Box.new(vagrant_env, "foo")
8
-
9
- @instance = @klass.new(@app, @env)
10
- end
11
-
12
- context "calling" do
13
- should "continue fine if verification succeeds" do
14
- seq = sequence("seq")
15
- VirtualBox::Appliance.expects(:new).with(@env["box"].ovf_file.to_s).in_sequence(seq)
16
- @app.expects(:call).with(@env).once.in_sequence(seq)
17
- assert_nothing_raised {
18
- @instance.call(@env)
19
- }
20
- end
21
-
22
- should "halt chain if verification fails" do
23
- VirtualBox::Appliance.expects(:new).with(@env["box"].ovf_file.to_s).raises(Exception)
24
- @app.expects(:call).with(@env).never
25
- assert_raises(Vagrant::Errors::BoxVerificationFailed) {
26
- @instance.call(@env)
27
- }
28
- end
29
- end
30
- end
@@ -1,24 +0,0 @@
1
- require "test_helper"
2
-
3
- class SetEnvActionTest < Test::Unit::TestCase
4
- setup do
5
- @klass = Vagrant::Action::Env::Set
6
- @app, @env = action_env
7
- @env.clear
8
- end
9
-
10
- should "merge in the given options" do
11
- @klass.new(@app, @env, :foo => :bar)
12
- assert_equal :bar, @env[:foo]
13
- end
14
-
15
- should "not merge in anything if not given" do
16
- @klass.new(@app, @env)
17
- assert @env.empty?
18
- end
19
-
20
- should "just continue the chain" do
21
- @app.expects(:call).with(@env)
22
- @klass.new(@app, @env).call(@env)
23
- end
24
- end
@@ -1,268 +0,0 @@
1
- require "test_helper"
2
-
3
- class PackageGeneralActionTest < Test::Unit::TestCase
4
- setup do
5
- @klass = Vagrant::Action::General::Package
6
- @app, @env = action_env
7
-
8
- @vm = mock("vm")
9
- @env["vm"] = @vm
10
- end
11
-
12
- context "initializing" do
13
- setup do
14
- @tar_path = "foo"
15
- File.stubs(:exist?).returns(false)
16
- @klass.any_instance.stubs(:tar_path).returns(@tar_path)
17
- end
18
-
19
- should "initialize fine" do
20
- @klass.new(@app, @env)
21
- end
22
-
23
- should "set the output path to configured by default" do
24
- @klass.new(@app, @env)
25
- assert_equal @env["config"].package.name, @env["package.output"]
26
- end
27
-
28
- should "not set the output path if it is already set" do
29
- @env["package.output"] = "foo"
30
- @klass.new(@app, @env)
31
- assert_equal "foo", @env["package.output"]
32
- end
33
-
34
- should "set the included files to empty by default" do
35
- @klass.new(@app, @env)
36
- assert_equal [], @env["package.include"]
37
- end
38
-
39
- should "not set the include path if it is already set" do
40
- @env["package.include"] = "foo"
41
- @klass.new(@app, @env)
42
- assert_equal "foo", @env["package.include"]
43
- end
44
- end
45
-
46
- context "with an instance" do
47
- setup do
48
- File.stubs(:exist?).returns(false)
49
- File.stubs(:directory?).returns(true)
50
- @instance = @klass.new(@app, @env)
51
-
52
- @env["package.directory"] = "foo"
53
- end
54
-
55
- context "calling" do
56
- should "call the proper methods then continue chain" do
57
- seq = sequence("seq")
58
- @instance.expects(:verify_files_to_copy).in_sequence(seq).returns(true)
59
- @instance.expects(:compress).in_sequence(seq)
60
- @app.expects(:call).with(@env).in_sequence(seq)
61
- @instance.call(@env)
62
- end
63
-
64
- should "halt the chain if the output file already exists" do
65
- File.expects(:exist?).returns(true)
66
- @app.expects(:call).never
67
- assert_raises(Vagrant::Errors::PackageOutputExists) {
68
- @instance.call(@env)
69
- }
70
- end
71
-
72
- should "halt the chain if directory isn't set" do
73
- @env["package.directory"] = nil
74
- @app.expects(:call).never
75
- assert_raises(Vagrant::Errors::PackageRequiresDirectory) {
76
- @instance.call(@env)
77
- }
78
- end
79
-
80
- should "halt the chain if directory doesn't exist" do
81
- File.expects(:directory?).with(@env["package.directory"]).returns(false)
82
- @app.expects(:call).never
83
- assert_raises(Vagrant::Errors::PackageRequiresDirectory) {
84
- @instance.call(@env)
85
- }
86
- end
87
- end
88
-
89
- context "cleaning up" do
90
- setup do
91
- File.stubs(:exist?).returns(false)
92
- File.stubs(:delete)
93
-
94
- @instance.stubs(:tar_path).returns("foo")
95
- end
96
-
97
- should "do nothing if the file doesn't exist" do
98
- File.expects(:exist?).with(@instance.tar_path).returns(false)
99
- File.expects(:delete).never
100
-
101
- @instance.recover(@env)
102
- end
103
-
104
- should "delete the packaged box if it exists" do
105
- File.expects(:exist?).returns(true)
106
- File.expects(:delete).with(@instance.tar_path).once
107
-
108
- @instance.recover(@env)
109
- end
110
- end
111
-
112
- context "files to copy" do
113
- setup do
114
- @env["package.include"] = []
115
- @package_dir = Pathname.new(@env["package.directory"]).join("include")
116
- end
117
-
118
- should "have included files whole path if relative" do
119
- path = "lib/foo"
120
- @env["package.include"] = [path]
121
- result = @instance.files_to_copy
122
- assert_equal @package_dir.join(path), result[path]
123
- end
124
-
125
- should "have the filename if an absolute path" do
126
- path = "/foo/bar"
127
- @env["package.include"] = [path]
128
- result = @instance.files_to_copy
129
- assert_equal @package_dir.join("bar"), result[path]
130
- end
131
-
132
- should "include the Vagrantfile if specified" do
133
- @env["package.vagrantfile"] = "foo"
134
- result = @instance.files_to_copy
135
- assert_equal @package_dir.join("_Vagrantfile"), result["foo"]
136
- end
137
- end
138
-
139
- context "verifying files to copy" do
140
- setup do
141
- @env["package.include"] = ["foo"]
142
- File.stubs(:exist?).returns(true)
143
- end
144
-
145
- should "error if included file is not found" do
146
- File.expects(:exist?).with("foo").returns(false)
147
- assert_raises(Vagrant::Errors::PackageIncludeMissing) {
148
- @instance.verify_files_to_copy
149
- }
150
- end
151
-
152
- should "return true if all exist" do
153
- assert_nothing_raised {
154
- assert @instance.verify_files_to_copy
155
- }
156
- end
157
- end
158
-
159
- context "copying include files" do
160
- setup do
161
- @env["package.include"] = []
162
- end
163
-
164
- should "do nothing if no include files are specified" do
165
- assert @env["package.include"].empty?
166
- FileUtils.expects(:mkdir_p).never
167
- FileUtils.expects(:cp).never
168
- @instance.copy_include_files
169
- end
170
-
171
- should "create the include directory and copy files to it" do
172
- @env["package.include"] = ["/foo/bar", "lib/foo"]
173
- seq = sequence("seq")
174
- @instance.files_to_copy.each do |from, to|
175
- FileUtils.expects(:mkdir_p).with(to.parent).in_sequence(seq)
176
- File.expects(:directory?).with(from).returns(false).in_sequence(seq)
177
- FileUtils.expects(:cp).with(from, to).in_sequence(seq)
178
- end
179
-
180
- @instance.copy_include_files
181
- end
182
-
183
- should "create the include directory and recursively copy globbed files to it" do
184
- @env["package.include"] = ["foo*.txt"]
185
- seq = sequence("seq")
186
- @instance.files_to_copy.each do |from, to|
187
- FileUtils.expects(:mkdir_p).with(to.parent).in_sequence(seq)
188
- File.expects(:directory?).with(from).returns(true).in_sequence(seq)
189
- Dir.expects(:glob).with(from).returns(from).in_sequence(seq)
190
- FileUtils.expects(:cp_r).with(from, to.parent).in_sequence(seq)
191
- end
192
-
193
- @instance.copy_include_files
194
- end
195
- end
196
-
197
- context "compression" do
198
- setup do
199
- @env["package.include"] = []
200
-
201
- @tar_path = "foo"
202
- @instance.stubs(:tar_path).returns(@tar_path)
203
-
204
- @pwd = "bar"
205
- FileUtils.stubs(:pwd).returns(@pwd)
206
- FileUtils.stubs(:cd)
207
-
208
- @file = mock("file")
209
- File.stubs(:open).yields(@file)
210
-
211
- @output = mock("output")
212
- @tar = Archive::Tar::Minitar
213
- Archive::Tar::Minitar::Output.stubs(:open).yields(@output)
214
- @tar.stubs(:pack_file)
215
-
216
- @instance.stubs(:copy_include_files)
217
- end
218
-
219
- should "open the tar file with the tar path properly" do
220
- File.expects(:open).with(@tar_path, Vagrant::Util::Platform.tar_file_options).once
221
- @instance.compress
222
- end
223
-
224
- should "open tar file" do
225
- Archive::Tar::Minitar::Output.expects(:open).with(@file).once
226
- @instance.compress
227
- end
228
-
229
- #----------------------------------------------------------------
230
- # Methods below this comment test the block yielded by Minitar open
231
- #----------------------------------------------------------------
232
- should "cd to the directory and append the directory" do
233
- @files = []
234
- compress_seq = sequence("compress_seq")
235
-
236
- FileUtils.expects(:pwd).once.returns(@pwd).in_sequence(compress_seq)
237
- @instance.expects(:copy_include_files).once.in_sequence(compress_seq)
238
- FileUtils.expects(:cd).with(@env["package.directory"]).in_sequence(compress_seq)
239
- Dir.expects(:glob).returns(@files).in_sequence(compress_seq)
240
-
241
- 5.times do |i|
242
- file = mock("file#{i}")
243
- @tar.expects(:pack_file).with(file, @output).once.in_sequence(compress_seq)
244
- @files << file
245
- end
246
-
247
- FileUtils.expects(:cd).with(@pwd).in_sequence(compress_seq)
248
- @instance.compress
249
- end
250
-
251
- should "pop back to the current directory even if an exception is raised" do
252
- cd_seq = sequence("cd_seq")
253
- FileUtils.expects(:cd).with(@env["package.directory"]).raises(Exception).in_sequence(cd_seq)
254
- FileUtils.expects(:cd).with(@pwd).in_sequence(cd_seq)
255
-
256
- assert_raises(Exception) {
257
- @instance.compress
258
- }
259
- end
260
- end
261
-
262
- context "tar path" do
263
- should "return proper path" do
264
- assert_equal File.join(FileUtils.pwd, @env["package.output"]), @instance.tar_path
265
- end
266
- end
267
- end
268
- end