boxcar 0.10005.1

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 (453) hide show
  1. data/.gitignore +48 -0
  2. data/.gitsetup.yml +6 -0
  3. data/.yardopts +1 -0
  4. data/CHANGELOG.md +696 -0
  5. data/Gemfile +5 -0
  6. data/Gemfile.lock +40 -0
  7. data/LICENSE +21 -0
  8. data/README.md +91 -0
  9. data/Rakefile +18 -0
  10. data/VERSION +1 -0
  11. data/bin/_bump +126 -0
  12. data/bin/_jason +172 -0
  13. data/bin/_log4sh +3840 -0
  14. data/bin/_meat +172 -0
  15. data/bin/_prime +8 -0
  16. data/bin/_shflags +1012 -0
  17. data/bin/_shunit +1048 -0
  18. data/bin/_sub +37 -0
  19. data/bin/_treadstone +8 -0
  20. data/bin/_versions +174 -0
  21. data/bin/build +15 -0
  22. data/bin/bump +15 -0
  23. data/bin/edit +15 -0
  24. data/bin/publish +15 -0
  25. data/bin/stub +15 -0
  26. data/bin/vagrant +60 -0
  27. data/boxcar.gemspec +32 -0
  28. data/config/default.rb +30 -0
  29. data/contrib/README.md +12 -0
  30. data/contrib/emacs/vagrant.el +8 -0
  31. data/contrib/vim/vagrantfile.vim +9 -0
  32. data/keys/README.md +17 -0
  33. data/keys/vagrant +27 -0
  34. data/keys/vagrant.pub +1 -0
  35. data/lib/development.rb +25 -0
  36. data/lib/vagrant.rb +197 -0
  37. data/lib/vagrant/action.rb +63 -0
  38. data/lib/vagrant/action/box/destroy.rb +25 -0
  39. data/lib/vagrant/action/box/download.rb +84 -0
  40. data/lib/vagrant/action/box/package.rb +19 -0
  41. data/lib/vagrant/action/box/unpackage.rb +61 -0
  42. data/lib/vagrant/action/box/verify.rb +23 -0
  43. data/lib/vagrant/action/builder.rb +128 -0
  44. data/lib/vagrant/action/builtin.rb +171 -0
  45. data/lib/vagrant/action/env/set.rb +21 -0
  46. data/lib/vagrant/action/environment.rb +12 -0
  47. data/lib/vagrant/action/general/check_virtualbox.rb +28 -0
  48. data/lib/vagrant/action/general/package.rb +101 -0
  49. data/lib/vagrant/action/general/validate.rb +18 -0
  50. data/lib/vagrant/action/runner.rb +53 -0
  51. data/lib/vagrant/action/vm/boot.rb +53 -0
  52. data/lib/vagrant/action/vm/check_accessible.rb +23 -0
  53. data/lib/vagrant/action/vm/check_box.rb +33 -0
  54. data/lib/vagrant/action/vm/check_guest_additions.rb +38 -0
  55. data/lib/vagrant/action/vm/check_port_collisions.rb +89 -0
  56. data/lib/vagrant/action/vm/clean_machine_folder.rb +43 -0
  57. data/lib/vagrant/action/vm/clear_forwarded_ports.rb +18 -0
  58. data/lib/vagrant/action/vm/clear_network_interfaces.rb +31 -0
  59. data/lib/vagrant/action/vm/clear_shared_folders.rb +18 -0
  60. data/lib/vagrant/action/vm/customize.rb +36 -0
  61. data/lib/vagrant/action/vm/default_name.rb +22 -0
  62. data/lib/vagrant/action/vm/destroy.rb +19 -0
  63. data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +20 -0
  64. data/lib/vagrant/action/vm/discard_state.rb +22 -0
  65. data/lib/vagrant/action/vm/export.rb +57 -0
  66. data/lib/vagrant/action/vm/forward_ports.rb +92 -0
  67. data/lib/vagrant/action/vm/halt.rb +32 -0
  68. data/lib/vagrant/action/vm/host_name.rb +21 -0
  69. data/lib/vagrant/action/vm/import.rb +48 -0
  70. data/lib/vagrant/action/vm/match_mac_address.rb +21 -0
  71. data/lib/vagrant/action/vm/network.rb +403 -0
  72. data/lib/vagrant/action/vm/nfs.rb +196 -0
  73. data/lib/vagrant/action/vm/package.rb +23 -0
  74. data/lib/vagrant/action/vm/package_vagrantfile.rb +36 -0
  75. data/lib/vagrant/action/vm/provision.rb +61 -0
  76. data/lib/vagrant/action/vm/provisioner_cleanup.rb +26 -0
  77. data/lib/vagrant/action/vm/prune_nfs_exports.rb +20 -0
  78. data/lib/vagrant/action/vm/resume.rb +20 -0
  79. data/lib/vagrant/action/vm/sane_defaults.rb +78 -0
  80. data/lib/vagrant/action/vm/setup_package_files.rb +54 -0
  81. data/lib/vagrant/action/vm/share_folders.rb +114 -0
  82. data/lib/vagrant/action/vm/suspend.rb +20 -0
  83. data/lib/vagrant/action/warden.rb +92 -0
  84. data/lib/vagrant/box.rb +44 -0
  85. data/lib/vagrant/box_collection.rb +58 -0
  86. data/lib/vagrant/cli.rb +76 -0
  87. data/lib/vagrant/command.rb +24 -0
  88. data/lib/vagrant/command/base.rb +167 -0
  89. data/lib/vagrant/command/box.rb +58 -0
  90. data/lib/vagrant/command/box_add.rb +37 -0
  91. data/lib/vagrant/command/box_list.rb +28 -0
  92. data/lib/vagrant/command/box_remove.rb +27 -0
  93. data/lib/vagrant/command/box_repackage.rb +27 -0
  94. data/lib/vagrant/command/destroy.rb +64 -0
  95. data/lib/vagrant/command/gem.rb +39 -0
  96. data/lib/vagrant/command/halt.rb +39 -0
  97. data/lib/vagrant/command/init.rb +40 -0
  98. data/lib/vagrant/command/package.rb +75 -0
  99. data/lib/vagrant/command/provision.rb +40 -0
  100. data/lib/vagrant/command/reload.rb +39 -0
  101. data/lib/vagrant/command/resume.rb +33 -0
  102. data/lib/vagrant/command/ssh.rb +90 -0
  103. data/lib/vagrant/command/ssh_config.rb +51 -0
  104. data/lib/vagrant/command/start_mixins.rb +26 -0
  105. data/lib/vagrant/command/status.rb +36 -0
  106. data/lib/vagrant/command/suspend.rb +33 -0
  107. data/lib/vagrant/command/up.rb +40 -0
  108. data/lib/vagrant/communication.rb +7 -0
  109. data/lib/vagrant/communication/base.rb +56 -0
  110. data/lib/vagrant/communication/ssh.rb +229 -0
  111. data/lib/vagrant/config.rb +49 -0
  112. data/lib/vagrant/config/base.rb +82 -0
  113. data/lib/vagrant/config/container.rb +37 -0
  114. data/lib/vagrant/config/error_recorder.rb +19 -0
  115. data/lib/vagrant/config/loader.rb +127 -0
  116. data/lib/vagrant/config/nfs.rb +8 -0
  117. data/lib/vagrant/config/package.rb +7 -0
  118. data/lib/vagrant/config/ssh.rb +27 -0
  119. data/lib/vagrant/config/top.rb +72 -0
  120. data/lib/vagrant/config/vagrant.rb +14 -0
  121. data/lib/vagrant/config/vm.rb +168 -0
  122. data/lib/vagrant/config/vm/provisioner.rb +52 -0
  123. data/lib/vagrant/config/vm/sub_vm.rb +17 -0
  124. data/lib/vagrant/data_store.rb +92 -0
  125. data/lib/vagrant/downloaders.rb +7 -0
  126. data/lib/vagrant/downloaders/base.rb +25 -0
  127. data/lib/vagrant/downloaders/file.rb +22 -0
  128. data/lib/vagrant/downloaders/http.rb +97 -0
  129. data/lib/vagrant/driver.rb +8 -0
  130. data/lib/vagrant/driver/virtualbox.rb +134 -0
  131. data/lib/vagrant/driver/virtualbox_4_0.rb +459 -0
  132. data/lib/vagrant/driver/virtualbox_4_1.rb +459 -0
  133. data/lib/vagrant/driver/virtualbox_4_2.rb +606 -0
  134. data/lib/vagrant/driver/virtualbox_base.rb +309 -0
  135. data/lib/vagrant/environment.rb +517 -0
  136. data/lib/vagrant/errors.rb +441 -0
  137. data/lib/vagrant/guest.rb +18 -0
  138. data/lib/vagrant/guest/arch.rb +56 -0
  139. data/lib/vagrant/guest/base.rb +99 -0
  140. data/lib/vagrant/guest/debian.rb +64 -0
  141. data/lib/vagrant/guest/fedora.rb +66 -0
  142. data/lib/vagrant/guest/freebsd.rb +86 -0
  143. data/lib/vagrant/guest/gentoo.rb +46 -0
  144. data/lib/vagrant/guest/linux.rb +118 -0
  145. data/lib/vagrant/guest/linux/config.rb +19 -0
  146. data/lib/vagrant/guest/linux/error.rb +9 -0
  147. data/lib/vagrant/guest/openbsd.rb +20 -0
  148. data/lib/vagrant/guest/redhat.rb +67 -0
  149. data/lib/vagrant/guest/solaris.rb +118 -0
  150. data/lib/vagrant/guest/suse.rb +9 -0
  151. data/lib/vagrant/guest/ubuntu.rb +23 -0
  152. data/lib/vagrant/hosts.rb +37 -0
  153. data/lib/vagrant/hosts/arch.rb +55 -0
  154. data/lib/vagrant/hosts/base.rb +66 -0
  155. data/lib/vagrant/hosts/bsd.rb +97 -0
  156. data/lib/vagrant/hosts/fedora.rb +47 -0
  157. data/lib/vagrant/hosts/freebsd.rb +41 -0
  158. data/lib/vagrant/hosts/gentoo.rb +20 -0
  159. data/lib/vagrant/hosts/linux.rb +94 -0
  160. data/lib/vagrant/hosts/opensuse.rb +30 -0
  161. data/lib/vagrant/hosts/windows.rb +16 -0
  162. data/lib/vagrant/plugin.rb +81 -0
  163. data/lib/vagrant/provisioners.rb +12 -0
  164. data/lib/vagrant/provisioners/base.rb +44 -0
  165. data/lib/vagrant/provisioners/chef.rb +168 -0
  166. data/lib/vagrant/provisioners/chef_client.rb +132 -0
  167. data/lib/vagrant/provisioners/chef_solo.rb +234 -0
  168. data/lib/vagrant/provisioners/puppet.rb +175 -0
  169. data/lib/vagrant/provisioners/puppet_server.rb +78 -0
  170. data/lib/vagrant/provisioners/shell.rb +96 -0
  171. data/lib/vagrant/registry.rb +52 -0
  172. data/lib/vagrant/ssh.rb +126 -0
  173. data/lib/vagrant/test_helpers.rb +154 -0
  174. data/lib/vagrant/ui.rb +168 -0
  175. data/lib/vagrant/util.rb +12 -0
  176. data/lib/vagrant/util/ansi_escape_code_remover.rb +34 -0
  177. data/lib/vagrant/util/busy.rb +59 -0
  178. data/lib/vagrant/util/counter.rb +24 -0
  179. data/lib/vagrant/util/file_checksum.rb +38 -0
  180. data/lib/vagrant/util/file_mode.rb +12 -0
  181. data/lib/vagrant/util/hash_with_indifferent_access.rb +63 -0
  182. data/lib/vagrant/util/is_port_open.rb +38 -0
  183. data/lib/vagrant/util/line_ending_helpers.rb +14 -0
  184. data/lib/vagrant/util/network_ip.rb +28 -0
  185. data/lib/vagrant/util/platform.rb +68 -0
  186. data/lib/vagrant/util/retryable.rb +25 -0
  187. data/lib/vagrant/util/safe_exec.rb +36 -0
  188. data/lib/vagrant/util/safe_puts.rb +31 -0
  189. data/lib/vagrant/util/stacked_proc_runner.rb +35 -0
  190. data/lib/vagrant/util/subprocess.rb +247 -0
  191. data/lib/vagrant/util/template_renderer.rb +83 -0
  192. data/lib/vagrant/version.rb +7 -0
  193. data/lib/vagrant/vm.rb +195 -0
  194. data/libexec/build +30 -0
  195. data/libexec/build-gem +30 -0
  196. data/libexec/bump +32 -0
  197. data/libexec/edit-gem +81 -0
  198. data/libexec/publish +58 -0
  199. data/libexec/publish-gem +58 -0
  200. data/libexec/stub-prepare +37 -0
  201. data/tasks/acceptance.rake +113 -0
  202. data/tasks/bundler.rake +3 -0
  203. data/tasks/test.rake +20 -0
  204. data/templates/commands/init/Vagrantfile.erb +99 -0
  205. data/templates/commands/ssh_config/config.erb +15 -0
  206. data/templates/config/validation_failed.erb +7 -0
  207. data/templates/guests/arch/network_dhcp.erb +7 -0
  208. data/templates/guests/arch/network_static.erb +7 -0
  209. data/templates/guests/debian/network_dhcp.erb +6 -0
  210. data/templates/guests/debian/network_static.erb +7 -0
  211. data/templates/guests/fedora/network_dhcp.erb +6 -0
  212. data/templates/guests/fedora/network_static.erb +13 -0
  213. data/templates/guests/freebsd/network_dhcp.erb +3 -0
  214. data/templates/guests/freebsd/network_static.erb +3 -0
  215. data/templates/guests/gentoo/network_dhcp.erb +4 -0
  216. data/templates/guests/gentoo/network_static.erb +4 -0
  217. data/templates/guests/redhat/network_dhcp.erb +6 -0
  218. data/templates/guests/redhat/network_static.erb +7 -0
  219. data/templates/locales/en.yml +747 -0
  220. data/templates/nfs/exports.erb +5 -0
  221. data/templates/nfs/exports_freebsd.erb +5 -0
  222. data/templates/nfs/exports_linux.erb +5 -0
  223. data/templates/package_Vagrantfile.erb +11 -0
  224. data/templates/provisioners/chef_client/client.erb +32 -0
  225. data/templates/provisioners/chef_solo/solo.erb +25 -0
  226. data/test/acceptance/base.rb +48 -0
  227. data/test/acceptance/box_test.rb +99 -0
  228. data/test/acceptance/destroy_test.rb +37 -0
  229. data/test/acceptance/halt_test.rb +72 -0
  230. data/test/acceptance/init_test.rb +33 -0
  231. data/test/acceptance/networking/host_only_test.rb +37 -0
  232. data/test/acceptance/networking/port_forward_test.rb +125 -0
  233. data/test/acceptance/package_test.rb +46 -0
  234. data/test/acceptance/provisioning/basic_test.rb +61 -0
  235. data/test/acceptance/provisioning/chef_solo_test.rb +37 -0
  236. data/test/acceptance/provisioning/shell_test.rb +53 -0
  237. data/test/acceptance/resume_test.rb +17 -0
  238. data/test/acceptance/shared_folders_test.rb +84 -0
  239. data/test/acceptance/skeletons/chef_solo_basic/README.md +3 -0
  240. data/test/acceptance/skeletons/chef_solo_basic/cookbooks/basic/recipes/default.rb +5 -0
  241. data/test/acceptance/skeletons/chef_solo_json/README.md +3 -0
  242. data/test/acceptance/skeletons/chef_solo_json/cookbooks/basic/recipes/default.rb +6 -0
  243. data/test/acceptance/skeletons/provisioner_multi/README.md +3 -0
  244. data/test/acceptance/skeletons/provisioner_multi/cookbooks/basic/recipes/default.rb +5 -0
  245. data/test/acceptance/ssh_test.rb +46 -0
  246. data/test/acceptance/support/config.rb +42 -0
  247. data/test/acceptance/support/isolated_environment.rb +117 -0
  248. data/test/acceptance/support/matchers/have_color.rb +9 -0
  249. data/test/acceptance/support/matchers/match_output.rb +14 -0
  250. data/test/acceptance/support/matchers/succeed.rb +14 -0
  251. data/test/acceptance/support/network_tests.rb +29 -0
  252. data/test/acceptance/support/output.rb +95 -0
  253. data/test/acceptance/support/shared/base_context.rb +72 -0
  254. data/test/acceptance/support/shared/command_examples.rb +33 -0
  255. data/test/acceptance/support/virtualbox.rb +36 -0
  256. data/test/acceptance/suspend_test.rb +56 -0
  257. data/test/acceptance/up_basic_test.rb +33 -0
  258. data/test/acceptance/up_with_box_url.rb +40 -0
  259. data/test/acceptance/vagrant_test.rb +47 -0
  260. data/test/acceptance/version_test.rb +15 -0
  261. data/test/buildbot/README.md +72 -0
  262. data/test/buildbot/buildbot_config/__init__.py +0 -0
  263. data/test/buildbot/buildbot_config/config/__init__.py +0 -0
  264. data/test/buildbot/buildbot_config/config/loader.py +24 -0
  265. data/test/buildbot/buildbot_config/config/master.py +24 -0
  266. data/test/buildbot/buildbot_config/config/slave.py +22 -0
  267. data/test/buildbot/buildbot_config/master/__init__.py +6 -0
  268. data/test/buildbot/buildbot_config/master/builders.py +78 -0
  269. data/test/buildbot/buildbot_config/master/buildsteps.py +100 -0
  270. data/test/buildbot/buildbot_config/master/change_sources.py +8 -0
  271. data/test/buildbot/buildbot_config/master/schedulers.py +32 -0
  272. data/test/buildbot/buildbot_config/master/slaves.py +60 -0
  273. data/test/buildbot/buildbot_config/master/status.py +52 -0
  274. data/test/buildbot/master/Makefile.sample +28 -0
  275. data/test/buildbot/master/buildbot.tac +36 -0
  276. data/test/buildbot/master/master.cfg +67 -0
  277. data/test/buildbot/master/public_html/bg_gradient.jpg +0 -0
  278. data/test/buildbot/master/public_html/default.css +545 -0
  279. data/test/buildbot/master/public_html/favicon.ico +0 -0
  280. data/test/buildbot/master/public_html/robots.txt +10 -0
  281. data/test/buildbot/master/public_html/static/css/bootstrap-1.4.0.min.css +356 -0
  282. data/test/buildbot/master/public_html/static/css/prettify.css +97 -0
  283. data/test/buildbot/master/public_html/static/css/syntax.css +60 -0
  284. data/test/buildbot/master/public_html/static/css/vagrant.base.css +205 -0
  285. data/test/buildbot/master/public_html/static/images/base_box_mac.jpg +0 -0
  286. data/test/buildbot/master/public_html/static/images/getting-started/success.jpg +0 -0
  287. data/test/buildbot/master/public_html/static/images/icons/error.png +0 -0
  288. data/test/buildbot/master/public_html/static/images/vagrant_chilling.png +0 -0
  289. data/test/buildbot/master/public_html/static/images/vagrant_holding.png +0 -0
  290. data/test/buildbot/master/public_html/static/images/vagrant_looking.png +0 -0
  291. data/test/buildbot/master/public_html/static/images/windows/alter_path.jpg +0 -0
  292. data/test/buildbot/master/public_html/static/images/windows/edit_path.jpg +0 -0
  293. data/test/buildbot/master/public_html/static/images/windows/environment_variables_button.jpg +0 -0
  294. data/test/buildbot/master/public_html/static/images/windows/port_and_ppk_path.jpg +0 -0
  295. data/test/buildbot/master/public_html/static/images/windows/ppk_selection.jpg +0 -0
  296. data/test/buildbot/master/public_html/static/images/windows/putty_first_screen.jpg +0 -0
  297. data/test/buildbot/master/public_html/static/images/windows/save_result.jpg +0 -0
  298. data/test/buildbot/master/public_html/static/images/windows/vbox_manage_default_location.jpg +0 -0
  299. data/test/buildbot/master/public_html/static/js/bootstrap-tabs.js +80 -0
  300. data/test/buildbot/master/public_html/static/js/jquery-1.7.min.js +4 -0
  301. data/test/buildbot/master/templates/authfail.html +9 -0
  302. data/test/buildbot/master/templates/build.html +205 -0
  303. data/test/buildbot/master/templates/builder.html +118 -0
  304. data/test/buildbot/master/templates/builders.html +33 -0
  305. data/test/buildbot/master/templates/buildslave.html +72 -0
  306. data/test/buildbot/master/templates/buildslaves.html +70 -0
  307. data/test/buildbot/master/templates/change.html +15 -0
  308. data/test/buildbot/master/templates/layouts/base.html +58 -0
  309. data/test/buildbot/master/templates/macros/box.html +37 -0
  310. data/test/buildbot/master/templates/macros/build_line.html +50 -0
  311. data/test/buildbot/master/templates/macros/change.html +81 -0
  312. data/test/buildbot/master/templates/macros/forms.html +300 -0
  313. data/test/buildbot/master/templates/root.html +42 -0
  314. data/test/buildbot/master/templates/waterfall.html +53 -0
  315. data/test/buildbot/requirements.txt +4 -0
  316. data/test/buildbot/scripts/deploy.sh +38 -0
  317. data/test/buildbot/scripts/setup.sh +107 -0
  318. data/test/buildbot/slave/buildbot.tac +43 -0
  319. data/test/buildbot/slave/info/admin +1 -0
  320. data/test/buildbot/slave/info/host +1 -0
  321. data/test/buildbot/tests/__init__.py +0 -0
  322. data/test/buildbot/tests/master/__init__.py +0 -0
  323. data/test/buildbot/tests/master/test_slaves.py +41 -0
  324. data/test/buildbot/vendor/choices-0.4.0.tar.gz +0 -0
  325. data/test/config/acceptance_boxes.yml +7 -0
  326. data/test/support/isolated_environment.rb +46 -0
  327. data/test/support/tempdir.rb +34 -0
  328. data/test/unit/base.rb +21 -0
  329. data/test/unit/support/isolated_environment.rb +47 -0
  330. data/test/unit/support/shared/base_context.rb +30 -0
  331. data/test/unit/vagrant/action/builder_test.rb +156 -0
  332. data/test/unit/vagrant/action/environment_test.rb +16 -0
  333. data/test/unit/vagrant/action/runner_test.rb +65 -0
  334. data/test/unit/vagrant/action/warden_test.rb +92 -0
  335. data/test/unit/vagrant/box_collection_test.rb +56 -0
  336. data/test/unit/vagrant/box_test.rb +34 -0
  337. data/test/unit/vagrant/command/base_test.rb +150 -0
  338. data/test/unit/vagrant/config/base_test.rb +48 -0
  339. data/test/unit/vagrant/config/loader_test.rb +79 -0
  340. data/test/unit/vagrant/config/ssh_test.rb +17 -0
  341. data/test/unit/vagrant/config/top_test.rb +69 -0
  342. data/test/unit/vagrant/config/vm_test.rb +71 -0
  343. data/test/unit/vagrant/config_test.rb +27 -0
  344. data/test/unit/vagrant/data_store_test.rb +79 -0
  345. data/test/unit/vagrant/downloaders/base_test.rb +18 -0
  346. data/test/unit/vagrant/downloaders/file_test.rb +75 -0
  347. data/test/unit/vagrant/downloaders/http_test.rb +19 -0
  348. data/test/unit/vagrant/environment_test.rb +212 -0
  349. data/test/unit/vagrant/hosts_test.rb +36 -0
  350. data/test/unit/vagrant/registry_test.rb +74 -0
  351. data/test/unit/vagrant/util/ansi_escape_code_remover_test.rb +16 -0
  352. data/test/unit/vagrant/util/file_checksum_test.rb +23 -0
  353. data/test/unit/vagrant/util/hash_with_indifferent_access_test.rb +38 -0
  354. data/test/unit/vagrant/util/is_port_open_test.rb +53 -0
  355. data/test/unit/vagrant/util/line_endings_helper_test.rb +16 -0
  356. data/test/unit/vagrant/util/network_ip_test.rb +17 -0
  357. data/test/unit/vagrant/util/retryable_test.rb +106 -0
  358. data/test/unit/vagrant_test.rb +27 -0
  359. data/test/unit_legacy/locales/en.yml +8 -0
  360. data/test/unit_legacy/test_helper.rb +32 -0
  361. data/test/unit_legacy/vagrant/action/box/destroy_test.rb +18 -0
  362. data/test/unit_legacy/vagrant/action/box/download_test.rb +125 -0
  363. data/test/unit_legacy/vagrant/action/box/package_test.rb +25 -0
  364. data/test/unit_legacy/vagrant/action/box/unpackage_test.rb +84 -0
  365. data/test/unit_legacy/vagrant/action/box/verify_test.rb +30 -0
  366. data/test/unit_legacy/vagrant/action/env/set_test.rb +24 -0
  367. data/test/unit_legacy/vagrant/action/general/package_test.rb +268 -0
  368. data/test/unit_legacy/vagrant/action/general/validate_test.rb +31 -0
  369. data/test/unit_legacy/vagrant/action/vm/boot_test.rb +66 -0
  370. data/test/unit_legacy/vagrant/action/vm/check_accessible_test.rb +61 -0
  371. data/test/unit_legacy/vagrant/action/vm/check_box_test.rb +61 -0
  372. data/test/unit_legacy/vagrant/action/vm/check_guest_additions_test.rb +9 -0
  373. data/test/unit_legacy/vagrant/action/vm/clean_machine_folder_test.rb +84 -0
  374. data/test/unit_legacy/vagrant/action/vm/clear_forwarded_ports_test.rb +52 -0
  375. data/test/unit_legacy/vagrant/action/vm/clear_nfs_exports_test.rb +22 -0
  376. data/test/unit_legacy/vagrant/action/vm/clear_shared_folders_test.rb +40 -0
  377. data/test/unit_legacy/vagrant/action/vm/customize_test.rb +37 -0
  378. data/test/unit_legacy/vagrant/action/vm/destroy_test.rb +25 -0
  379. data/test/unit_legacy/vagrant/action/vm/destroy_unused_network_interfaces_test.rb +49 -0
  380. data/test/unit_legacy/vagrant/action/vm/discard_state_test.rb +45 -0
  381. data/test/unit_legacy/vagrant/action/vm/export_test.rb +107 -0
  382. data/test/unit_legacy/vagrant/action/vm/forward_ports_helpers_test.rb +77 -0
  383. data/test/unit_legacy/vagrant/action/vm/forward_ports_test.rb +197 -0
  384. data/test/unit_legacy/vagrant/action/vm/halt_test.rb +79 -0
  385. data/test/unit_legacy/vagrant/action/vm/host_name_test.rb +36 -0
  386. data/test/unit_legacy/vagrant/action/vm/import_test.rb +66 -0
  387. data/test/unit_legacy/vagrant/action/vm/match_mac_address_test.rb +40 -0
  388. data/test/unit_legacy/vagrant/action/vm/modify_test.rb +38 -0
  389. data/test/unit_legacy/vagrant/action/vm/network_test.rb +286 -0
  390. data/test/unit_legacy/vagrant/action/vm/nfs_helpers_test.rb +26 -0
  391. data/test/unit_legacy/vagrant/action/vm/nfs_test.rb +260 -0
  392. data/test/unit_legacy/vagrant/action/vm/package_test.rb +25 -0
  393. data/test/unit_legacy/vagrant/action/vm/package_vagrantfile_test.rb +46 -0
  394. data/test/unit_legacy/vagrant/action/vm/provision_test.rb +65 -0
  395. data/test/unit_legacy/vagrant/action/vm/provisioner_cleanup_test.rb +56 -0
  396. data/test/unit_legacy/vagrant/action/vm/resume_test.rb +35 -0
  397. data/test/unit_legacy/vagrant/action/vm/share_folders_test.rb +144 -0
  398. data/test/unit_legacy/vagrant/action/vm/suspend_test.rb +35 -0
  399. data/test/unit_legacy/vagrant/action_test.rb +89 -0
  400. data/test/unit_legacy/vagrant/box_collection_test.rb +45 -0
  401. data/test/unit_legacy/vagrant/box_test.rb +74 -0
  402. data/test/unit_legacy/vagrant/cli_test.rb +35 -0
  403. data/test/unit_legacy/vagrant/command/base_test.rb +23 -0
  404. data/test/unit_legacy/vagrant/command/group_base_test.rb +15 -0
  405. data/test/unit_legacy/vagrant/command/helpers_test.rb +88 -0
  406. data/test/unit_legacy/vagrant/command/init_test.rb +10 -0
  407. data/test/unit_legacy/vagrant/command/package_test.rb +27 -0
  408. data/test/unit_legacy/vagrant/config/base_test.rb +52 -0
  409. data/test/unit_legacy/vagrant/config/error_recorder_test.rb +18 -0
  410. data/test/unit_legacy/vagrant/config/ssh_test.rb +12 -0
  411. data/test/unit_legacy/vagrant/config/vagrant_test.rb +35 -0
  412. data/test/unit_legacy/vagrant/config/vm/provisioner_test.rb +92 -0
  413. data/test/unit_legacy/vagrant/config/vm_test.rb +47 -0
  414. data/test/unit_legacy/vagrant/config_test.rb +148 -0
  415. data/test/unit_legacy/vagrant/downloaders/http_test.rb +93 -0
  416. data/test/unit_legacy/vagrant/environment_test.rb +539 -0
  417. data/test/unit_legacy/vagrant/errors_test.rb +42 -0
  418. data/test/unit_legacy/vagrant/hosts/base_test.rb +46 -0
  419. data/test/unit_legacy/vagrant/hosts/bsd_test.rb +53 -0
  420. data/test/unit_legacy/vagrant/hosts/linux_test.rb +54 -0
  421. data/test/unit_legacy/vagrant/plugin_test.rb +9 -0
  422. data/test/unit_legacy/vagrant/provisioners/base_test.rb +63 -0
  423. data/test/unit_legacy/vagrant/provisioners/chef_client_test.rb +190 -0
  424. data/test/unit_legacy/vagrant/provisioners/chef_solo_test.rb +115 -0
  425. data/test/unit_legacy/vagrant/provisioners/chef_test.rb +209 -0
  426. data/test/unit_legacy/vagrant/provisioners/puppet_server_test.rb +68 -0
  427. data/test/unit_legacy/vagrant/provisioners/puppet_test.rb +182 -0
  428. data/test/unit_legacy/vagrant/provisioners/shell_test.rb +79 -0
  429. data/test/unit_legacy/vagrant/ssh/session_test.rb +40 -0
  430. data/test/unit_legacy/vagrant/ssh_test.rb +304 -0
  431. data/test/unit_legacy/vagrant/systems/base_test.rb +18 -0
  432. data/test/unit_legacy/vagrant/systems/linux_test.rb +104 -0
  433. data/test/unit_legacy/vagrant/util/busy_test.rb +106 -0
  434. data/test/unit_legacy/vagrant/util/counter_test.rb +29 -0
  435. data/test/unit_legacy/vagrant/util/platform_test.rb +18 -0
  436. data/test/unit_legacy/vagrant/util/stacked_proc_runner_test.rb +43 -0
  437. data/test/unit_legacy/vagrant/util/template_renderer_test.rb +145 -0
  438. data/test/unit_legacy/vagrant/vm_test.rb +300 -0
  439. data/vagrant.gemspec +39 -0
  440. data/vendor/cache/contest-0.1.3.gem +0 -0
  441. data/vendor/cache/diff-lcs-1.1.3.gem +0 -0
  442. data/vendor/cache/erubis-2.7.0.gem +0 -0
  443. data/vendor/cache/i18n-0.6.1.gem +0 -0
  444. data/vendor/cache/json-1.5.4.gem +0 -0
  445. data/vendor/cache/log4r-1.1.10.gem +0 -0
  446. data/vendor/cache/metaclass-0.0.1.gem +0 -0
  447. data/vendor/cache/minitest-2.5.1.gem +0 -0
  448. data/vendor/cache/mocha-0.13.1.gem +0 -0
  449. data/vendor/cache/rake-10.0.2.gem +0 -0
  450. data/vendor/cache/rspec-core-2.8.0.gem +0 -0
  451. data/vendor/cache/rspec-expectations-2.8.0.gem +0 -0
  452. data/vendor/cache/rspec-mocks-2.8.0.gem +0 -0
  453. metadata +676 -0
@@ -0,0 +1,441 @@
1
+ # This file contains all of the internal errors in Vagrant's core
2
+ # commands, actions, etc.
3
+
4
+ module Vagrant
5
+ # This module contains all of the internal errors in Vagrant's core.
6
+ # These errors are _expected_ errors and as such don't typically represent
7
+ # bugs in Vagrant itself. These are meant as a way to detect errors and
8
+ # display them in a user-friendly way.
9
+ #
10
+ # # Defining a new Error
11
+ #
12
+ # To define a new error, inherit from {VagrantError}, which lets Vagrant
13
+ # know that this is an expected error, and also gives you some helpers for
14
+ # providing exit codes and error messages. An example is shown below, then
15
+ # it is explained:
16
+ #
17
+ # class MyError < Vagrant::Errors::VagrantError
18
+ # error_key "my_error"
19
+ # end
20
+ #
21
+ # This creates an error with an I18n error key of "my_error." {VagrantError}
22
+ # uses I18n to look up error messages, in the "vagrant.errors" namespace. So
23
+ # in the above, the error message would be the translation of "vagrant.errors.my_error"
24
+ #
25
+ # If you don't want to use I18n, you can override the {#initialize} method and
26
+ # set your own error message.
27
+ #
28
+ # # Raising an Error
29
+ #
30
+ # To raise an error, it is nothing special, just raise it like any normal
31
+ # exception:
32
+ #
33
+ # raise MyError.new
34
+ #
35
+ # Eventually this exception will bubble out to the `vagrant` binary which
36
+ # will show a nice error message. And if it is raised in the middle of a
37
+ # middleware sequence, then {Action::Warden} will catch it and begin the
38
+ # recovery process prior to exiting.
39
+ module Errors
40
+ # Main superclass of any errors in Vagrant. This provides some
41
+ # convenience methods for setting the status code and error key.
42
+ # The status code is used by the `vagrant` executable as the
43
+ # error code, and the error key is used as a default message from
44
+ # I18n.
45
+ class VagrantError < StandardError
46
+ @@used_codes = []
47
+
48
+ def self.status_code(code = nil)
49
+ if code
50
+ raise "Status code already in use: #{code}" if @@used_codes.include?(code)
51
+ @@used_codes << code
52
+ end
53
+
54
+ define_method(:status_code) { code }
55
+ end
56
+
57
+ def self.error_key(key=nil, namespace=nil)
58
+ define_method(:error_key) { key }
59
+ error_namespace(namespace) if namespace
60
+ end
61
+
62
+ def self.error_namespace(namespace)
63
+ define_method(:error_namespace) { namespace }
64
+ end
65
+
66
+ def initialize(message=nil, *args)
67
+ message = { :_key => message } if message && !message.is_a?(Hash)
68
+ message = { :_key => error_key, :_namespace => error_namespace }.merge(message || {})
69
+ message = translate_error(message)
70
+
71
+ super
72
+ end
73
+
74
+ # The default error namespace which is used for the error key.
75
+ # This can be overridden here or by calling the "error_namespace"
76
+ # class method.
77
+ def error_namespace; "vagrant.errors"; end
78
+
79
+ # The key for the error message. This should be set using the
80
+ # {error_key} method but can be overridden here if needed.
81
+ def error_key; nil; end
82
+
83
+ protected
84
+
85
+ def translate_error(opts)
86
+ return nil if !opts[:_key]
87
+ I18n.t("#{opts[:_namespace]}.#{opts[:_key]}", opts)
88
+ end
89
+ end
90
+
91
+ class BaseVMNotFound < VagrantError
92
+ status_code(18)
93
+ error_key(:base_vm_not_found)
94
+ end
95
+
96
+ class BoxAlreadyExists < VagrantError
97
+ status_code(14)
98
+ error_key(:already_exists, "vagrant.actions.box.unpackage")
99
+ end
100
+
101
+ class BoxDownloadUnknownType < VagrantError
102
+ status_code(13)
103
+ error_key(:unknown_type, "vagrant.actions.box.download")
104
+ end
105
+
106
+ class BoxNotFound < VagrantError
107
+ status_code(2)
108
+ error_key(:box_not_found)
109
+ end
110
+
111
+ class BoxNotSpecified < VagrantError
112
+ status_code(22)
113
+ error_key(:not_specified, "vagrant.actions.vm.check_box")
114
+ end
115
+
116
+ class BoxSpecifiedDoesntExist < VagrantError
117
+ status_code(23)
118
+ error_key(:does_not_exist, "vagrant.actions.vm.check_box")
119
+ end
120
+
121
+ class BoxUnpackageFailure < VagrantError
122
+ status_code(57)
123
+ error_key(:untar_failure, "vagrant.actions.box.unpackage")
124
+ end
125
+
126
+ class BoxVerificationFailed < VagrantError
127
+ status_code(15)
128
+ error_key(:failed, "vagrant.actions.box.verify")
129
+ end
130
+
131
+ class CLIInvalidUsage < VagrantError
132
+ status_code(69)
133
+ error_key(:cli_invalid_usage)
134
+ end
135
+
136
+ class CLIInvalidOptions < VagrantError
137
+ status_code(1)
138
+ error_key(:cli_invalid_options)
139
+ end
140
+
141
+ class ConfigValidationFailed < VagrantError
142
+ status_code(42)
143
+ error_key(:config_validation)
144
+ end
145
+
146
+ class DeprecationError < VagrantError
147
+ status_code(60)
148
+ error_key(:deprecation)
149
+ end
150
+
151
+ class DestroyRequiresForce < VagrantError
152
+ status_code(74)
153
+ error_key(:destroy_requires_force)
154
+ end
155
+
156
+ class DotfileIsDirectory < VagrantError
157
+ status_code(46)
158
+ error_key(:dotfile_is_directory)
159
+ end
160
+
161
+ class DownloaderFileDoesntExist < VagrantError
162
+ status_code(37)
163
+ error_key(:file_missing, "vagrant.downloaders.file")
164
+ end
165
+
166
+ class DownloaderHTTPSocketError < VagrantError
167
+ status_code(38)
168
+ error_key(:socket_error, "vagrant.downloaders.http")
169
+ end
170
+
171
+ class DownloaderHTTPStatusError < VagrantError
172
+ status_code(51)
173
+ error_key(:status_error, "vagrant.downloaders.http")
174
+ end
175
+
176
+ class EnvironmentNonExistentCWD < VagrantError
177
+ status_code(75)
178
+ error_key(:environment_non_existent_cwd)
179
+ end
180
+
181
+ class EnvironmentLockedError < VagrantError
182
+ status_code(52)
183
+ error_key(:environment_locked)
184
+ end
185
+
186
+ class GemCommandInBundler < VagrantError
187
+ status_code(71)
188
+ error_key(:gem_command_in_bundler)
189
+ end
190
+
191
+ class HomeDirectoryMigrationFailed < VagrantError
192
+ status_code(53)
193
+ error_key(:home_dir_migration_failed)
194
+ end
195
+
196
+ class HomeDirectoryNotAccessible < VagrantError
197
+ status_code(55)
198
+ error_key(:home_dir_not_accessible)
199
+ end
200
+
201
+ class ForwardPortAutolistEmpty < VagrantError
202
+ status_code(27)
203
+ error_key(:auto_empty, "vagrant.actions.vm.forward_ports")
204
+ end
205
+
206
+ class ForwardPortCollision < VagrantError
207
+ status_code(26)
208
+ error_key(:collision_error, "vagrant.actions.vm.forward_ports")
209
+ end
210
+
211
+ class ForwardPortCollisionResume < VagrantError
212
+ status_code(62)
213
+ error_key(:port_collision_resume)
214
+ end
215
+
216
+ class MultiVMEnvironmentRequired < VagrantError
217
+ status_code(5)
218
+ error_key(:multi_vm_required)
219
+ end
220
+
221
+ class MultiVMTargetRequired < VagrantError
222
+ status_code(7)
223
+ error_key(:multi_vm_target_required)
224
+ end
225
+
226
+ class NetworkAdapterCollision < VagrantError
227
+ status_code(65)
228
+ error_key(:adapter_collision, "vagrant.actions.vm.network")
229
+ end
230
+
231
+ class NetworkCollision < VagrantError
232
+ status_code(29)
233
+ error_key(:collides, "vagrant.actions.vm.host_only_network")
234
+ end
235
+
236
+ class NetworkNoAdapters < VagrantError
237
+ status_code(64)
238
+ error_key(:no_adapters, "vagrant.actions.vm.network")
239
+ end
240
+
241
+ class NetworkDHCPAlreadyAttached < VagrantError
242
+ status_code(68)
243
+ error_key(:dhcp_already_attached, "vagrant.actions.vm.network")
244
+ end
245
+
246
+ class NetworkNotFound < VagrantError
247
+ status_code(30)
248
+ error_key(:not_found, "vagrant.actions.vm.host_only_network")
249
+ end
250
+
251
+ class NFSHostRequired < VagrantError
252
+ status_code(31)
253
+ error_key(:host_required, "vagrant.actions.vm.nfs")
254
+ end
255
+
256
+ class NFSNotSupported < VagrantError
257
+ status_code(32)
258
+ error_key(:not_supported, "vagrant.actions.vm.nfs")
259
+ end
260
+
261
+ class NFSNoHostNetwork < VagrantError
262
+ status_code(33)
263
+ error_key(:no_host_network, "vagrant.actions.vm.nfs")
264
+ end
265
+
266
+ class NoEnvironmentError < VagrantError
267
+ status_code(3)
268
+ error_key(:no_env)
269
+ end
270
+
271
+ class PackageIncludeMissing < VagrantError
272
+ status_code(20)
273
+ error_key(:include_file_missing, "vagrant.actions.general.package")
274
+ end
275
+
276
+ class PackageOutputDirectory < VagrantError
277
+ status_code(72)
278
+ error_key(:output_is_directory, "vagrant.actions.general.package")
279
+ end
280
+
281
+ class PackageOutputExists < VagrantError
282
+ status_code(16)
283
+ error_key(:output_exists, "vagrant.actions.general.package")
284
+ end
285
+
286
+ class PackageRequiresDirectory < VagrantError
287
+ status_code(19)
288
+ error_key(:requires_directory, "vagrant.actions.general.package")
289
+ end
290
+
291
+ class PersistDotfileExists < VagrantError
292
+ status_code(34)
293
+ error_key(:dotfile_error, "vagrant.actions.vm.persist")
294
+ end
295
+
296
+ class SCPUnavailable < VagrantError
297
+ status_code(56)
298
+ error_key(:scp_unavailable)
299
+ end
300
+
301
+ class SharedFolderCreateFailed < VagrantError
302
+ status_code(66)
303
+ error_key(:shared_folder_create_failed)
304
+ end
305
+
306
+ class SSHAuthenticationFailed < VagrantError
307
+ status_code(11)
308
+ error_key(:ssh_authentication_failed)
309
+ end
310
+
311
+ class SSHConnectionRefused < VagrantError
312
+ status_code(43)
313
+ error_key(:ssh_connection_refused)
314
+ end
315
+
316
+ class SSHKeyBadPermissions < VagrantError
317
+ status_code(12)
318
+ error_key(:ssh_key_bad_permissions)
319
+ end
320
+
321
+ class SSHKeyTypeNotSupported < VagrantError
322
+ status_code(76)
323
+ error_key(:ssh_key_type_not_supported)
324
+ end
325
+
326
+ class SSHPortNotDetected < VagrantError
327
+ status_code(50)
328
+ error_key(:ssh_port_not_detected)
329
+ end
330
+
331
+ class SSHUnavailable < VagrantError
332
+ status_code(45)
333
+ error_key(:ssh_unavailable)
334
+ end
335
+
336
+ class SSHUnavailableWindows < VagrantError
337
+ status_code(10)
338
+ error_key(:ssh_unavailable_windows)
339
+ end
340
+
341
+ class UIExpectsTTY < VagrantError
342
+ status_code(73)
343
+ error_key(:ui_expects_tty)
344
+ end
345
+
346
+ class VagrantInterrupt < VagrantError
347
+ status_code(40)
348
+ error_key(:interrupted)
349
+ end
350
+
351
+ class VagrantfileExistsError < VagrantError
352
+ status_code(58)
353
+ error_key(:vagrantfile_exists)
354
+ end
355
+
356
+ class VagrantfileSyntaxError < VagrantError
357
+ status_code(41)
358
+ error_key(:vagrantfile_syntax_error)
359
+ end
360
+
361
+ class VBoxManageError < VagrantError
362
+ status_code(59)
363
+ error_key(:vboxmanage_error)
364
+ end
365
+
366
+ class VirtualBoxInvalidVersion < VagrantError
367
+ status_code(17)
368
+ error_key(:virtualbox_invalid_version)
369
+ end
370
+
371
+ class VirtualBoxNotDetected < VagrantError
372
+ status_code(8)
373
+ error_key(:virtualbox_not_detected)
374
+ end
375
+
376
+ class VirtualBoxKernelModuleNotLoaded < VagrantError
377
+ status_code(70)
378
+ error_key(:virtualbox_kernel_module_not_loaded)
379
+ end
380
+
381
+ class VMBaseMacNotSpecified < VagrantError
382
+ status_code(47)
383
+ error_key(:no_base_mac, "vagrant.actions.vm.match_mac")
384
+ end
385
+
386
+ class VMCustomizationFailed < VagrantError
387
+ status_code(61)
388
+ error_key(:failure, "vagrant.actions.vm.customize")
389
+ end
390
+
391
+ class VMFailedToBoot < VagrantError
392
+ status_code(21)
393
+ error_key(:failed_to_boot, "vagrant.actions.vm.boot")
394
+ end
395
+
396
+ class VMFailedToRun < VagrantError
397
+ status_code(77)
398
+ error_key(:failed_to_run, "vagrant.actions.vm.boot")
399
+ end
400
+
401
+ class VMGuestError < VagrantError
402
+ status_code(39)
403
+ error_namespace("vagrant.errors.guest")
404
+ end
405
+
406
+ class VMImportFailure < VagrantError
407
+ status_code(28)
408
+ error_key(:failure, "vagrant.actions.vm.import")
409
+ end
410
+
411
+ class VMInaccessible < VagrantError
412
+ status_code(54)
413
+ error_key(:vm_inaccessible)
414
+ end
415
+
416
+ class VMNoMatchError < VagrantError
417
+ status_code(63)
418
+ error_key(:vm_no_match)
419
+ end
420
+
421
+ class VMNotCreatedError < VagrantError
422
+ status_code(6)
423
+ error_key(:vm_creation_required)
424
+ end
425
+
426
+ class VMNotFoundError < VagrantError
427
+ status_code(4)
428
+ error_key(:vm_not_found)
429
+ end
430
+
431
+ class VMNotRunningError < VagrantError
432
+ status_code(44)
433
+ error_key(:vm_not_running)
434
+ end
435
+
436
+ class VMPowerOffToPackage < VagrantError
437
+ status_code(24)
438
+ error_key(:power_off, "vagrant.actions.vm.export")
439
+ end
440
+ end
441
+ end
@@ -0,0 +1,18 @@
1
+ module Vagrant
2
+ module Guest
3
+ autoload :Base, 'vagrant/guest/base'
4
+
5
+ # Specific guests
6
+ autoload :Arch, 'vagrant/guest/arch'
7
+ autoload :Debian, 'vagrant/guest/debian'
8
+ autoload :Fedora, 'vagrant/guest/fedora'
9
+ autoload :FreeBSD, 'vagrant/guest/freebsd'
10
+ autoload :Gentoo, 'vagrant/guest/gentoo'
11
+ autoload :Linux, 'vagrant/guest/linux'
12
+ autoload :OpenBSD, 'vagrant/guest/openbsd'
13
+ autoload :Redhat, 'vagrant/guest/redhat'
14
+ autoload :Solaris, 'vagrant/guest/solaris'
15
+ autoload :Suse, 'vagrant/guest/suse'
16
+ autoload :Ubuntu, 'vagrant/guest/ubuntu'
17
+ end
18
+ end