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,9 @@
1
+ " Teach vim to syntax highlight Vagrantfile as ruby
2
+ "
3
+ " Install: $HOME/.vim/plugin/vagrant.vim
4
+ " Author: Brandon Philips <brandon@ifup.org>
5
+
6
+ augroup vagrant
7
+ au!
8
+ au BufRead,BufNewFile Vagrantfile set filetype=ruby
9
+ augroup END
@@ -0,0 +1,17 @@
1
+ # Insecure Keypair
2
+
3
+ These keys are the "insecure" public/private keypair we offer to
4
+ [base box creators](http://vagrantup.com/docs/base_boxes.html) for use in their base boxes so that
5
+ vagrant installations can automatically SSH into the boxes.
6
+
7
+ If you're working with a team or company or with a custom box and
8
+ you want more secure SSH, you should create your own keypair
9
+ and configure the private key in the Vagrantfile with
10
+ `config.ssh.private_key_path`
11
+
12
+ # Putty
13
+
14
+ If you are using Vagrant on windows, the .ppk file contained here, in the keys directory,
15
+ has been generated from the private key and should be used to connect Putty to any VMs that
16
+ are leveraging the default key pair. See [guide](http://vagrantup.com/docs/getting-started/windows.html)
17
+ in the documentation for more details on using Putty with Vagrant.
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEogIBAAKCAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzI
3
+ w+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoP
4
+ kcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2
5
+ hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NO
6
+ Td0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcW
7
+ yLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQIBIwKCAQEA4iqWPJXtzZA68mKd
8
+ ELs4jJsdyky+ewdZeNds5tjcnHU5zUYE25K+ffJED9qUWICcLZDc81TGWjHyAqD1
9
+ Bw7XpgUwFgeUJwUlzQurAv+/ySnxiwuaGJfhFM1CaQHzfXphgVml+fZUvnJUTvzf
10
+ TK2Lg6EdbUE9TarUlBf/xPfuEhMSlIE5keb/Zz3/LUlRg8yDqz5w+QWVJ4utnKnK
11
+ iqwZN0mwpwU7YSyJhlT4YV1F3n4YjLswM5wJs2oqm0jssQu/BT0tyEXNDYBLEF4A
12
+ sClaWuSJ2kjq7KhrrYXzagqhnSei9ODYFShJu8UWVec3Ihb5ZXlzO6vdNQ1J9Xsf
13
+ 4m+2ywKBgQD6qFxx/Rv9CNN96l/4rb14HKirC2o/orApiHmHDsURs5rUKDx0f9iP
14
+ cXN7S1uePXuJRK/5hsubaOCx3Owd2u9gD6Oq0CsMkE4CUSiJcYrMANtx54cGH7Rk
15
+ EjFZxK8xAv1ldELEyxrFqkbE4BKd8QOt414qjvTGyAK+OLD3M2QdCQKBgQDtx8pN
16
+ CAxR7yhHbIWT1AH66+XWN8bXq7l3RO/ukeaci98JfkbkxURZhtxV/HHuvUhnPLdX
17
+ 3TwygPBYZFNo4pzVEhzWoTtnEtrFueKxyc3+LjZpuo+mBlQ6ORtfgkr9gBVphXZG
18
+ YEzkCD3lVdl8L4cw9BVpKrJCs1c5taGjDgdInQKBgHm/fVvv96bJxc9x1tffXAcj
19
+ 3OVdUN0UgXNCSaf/3A/phbeBQe9xS+3mpc4r6qvx+iy69mNBeNZ0xOitIjpjBo2+
20
+ dBEjSBwLk5q5tJqHmy/jKMJL4n9ROlx93XS+njxgibTvU6Fp9w+NOFD/HvxB3Tcz
21
+ 6+jJF85D5BNAG3DBMKBjAoGBAOAxZvgsKN+JuENXsST7F89Tck2iTcQIT8g5rwWC
22
+ P9Vt74yboe2kDT531w8+egz7nAmRBKNM751U/95P9t88EDacDI/Z2OwnuFQHCPDF
23
+ llYOUI+SpLJ6/vURRbHSnnn8a/XG+nzedGH5JGqEJNQsz+xT2axM0/W/CRknmGaJ
24
+ kda/AoGANWrLCz708y7VYgAtW2Uf1DPOIYMdvo6fxIB5i9ZfISgcJ/bbCUkFrhoH
25
+ +vq/5CIWxCPp0f85R4qxxQ5ihxJ0YDQT9Jpx4TMss4PSavPaBH3RXow5Ohe+bYoQ
26
+ NE5OgEXk2wVfZczCZpigBKbKZHNYcelXtTt/nP3rsCuGcM4h53s=
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1 @@
1
+ ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
@@ -0,0 +1,25 @@
1
+ module Bundler
2
+ class Dsl
3
+ unless $gex
4
+ alias :gex :gem
5
+ $gex = true
6
+ end
7
+
8
+ def gem(nm_gem, opt_gem = {})
9
+ shome = File.expand_path('../..', __FILE__)
10
+ gem_info = File.join(shome, ".local", nm_gem)
11
+ if File.exists? gem_info
12
+ source "http://localhost:9292"
13
+ local_opt = { :path => File.read(gem_info).strip }
14
+
15
+ unless local_opt[:path].empty?
16
+ gex nm_gem, local_opt
17
+ else
18
+ gex nm_gem, opt_gem.clone
19
+ end
20
+ else
21
+ gex nm_gem, opt_gem.clone
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,197 @@
1
+ require 'log4r'
2
+
3
+ # Enable logging if it is requested. We do this before
4
+ # anything else so that we can setup the output before
5
+ # any logging occurs.
6
+ if ENV["VAGRANT_LOG"] && ENV["VAGRANT_LOG"] != ""
7
+ # Require Log4r and define the levels we'll be using
8
+ require 'log4r/config'
9
+ Log4r.define_levels(*Log4r::Log4rConfig::LogLevels)
10
+
11
+ level = nil
12
+ begin
13
+ level = Log4r.const_get(ENV["VAGRANT_LOG"].upcase)
14
+ rescue NameError
15
+ # This means that the logging constant wasn't found,
16
+ # which is fine. We just keep `level` as `nil`. But
17
+ # we tell the user.
18
+ level = nil
19
+ end
20
+
21
+ # Some constants, such as "true" resolve to booleans, so the
22
+ # above error checking doesn't catch it. This will check to make
23
+ # sure that the log level is an integer, as Log4r requires.
24
+ level = nil if !level.is_a?(Integer)
25
+
26
+ if !level
27
+ # We directly write to stderr here because the VagrantError system
28
+ # is not setup yet.
29
+ $stderr.puts "Invalid VAGRANT_LOG level is set: #{ENV["VAGRANT_LOG"]}"
30
+ $stderr.puts ""
31
+ $stderr.puts "Please use one of the standard log levels: debug, info, warn, or error"
32
+ exit 1
33
+ end
34
+
35
+ # Set the logging level on all "vagrant" namespaced
36
+ # logs as long as we have a valid level.
37
+ if level
38
+ logger = Log4r::Logger.new("vagrant")
39
+ logger.outputters = Log4r::Outputter.stderr
40
+ logger.level = level
41
+ logger = nil
42
+ end
43
+ end
44
+
45
+ require 'pathname'
46
+ require 'childprocess'
47
+ require 'json'
48
+ require 'i18n'
49
+
50
+ # OpenSSL must be loaded here since when it is loaded via `autoload`
51
+ # there are issues with ciphers not being properly loaded.
52
+ require 'openssl'
53
+
54
+ # Always make the version available
55
+ require 'vagrant/version'
56
+ Log4r::Logger.new("vagrant::global").info("Vagrant version: #{Vagrant::VERSION}")
57
+
58
+ module Vagrant
59
+ autoload :Action, 'vagrant/action'
60
+ autoload :Box, 'vagrant/box'
61
+ autoload :BoxCollection, 'vagrant/box_collection'
62
+ autoload :CLI, 'vagrant/cli'
63
+ autoload :Command, 'vagrant/command'
64
+ autoload :Communication, 'vagrant/communication'
65
+ autoload :Config, 'vagrant/config'
66
+ autoload :DataStore, 'vagrant/data_store'
67
+ autoload :Downloaders, 'vagrant/downloaders'
68
+ autoload :Driver, 'vagrant/driver'
69
+ autoload :Environment, 'vagrant/environment'
70
+ autoload :Errors, 'vagrant/errors'
71
+ autoload :Guest, 'vagrant/guest'
72
+ autoload :Hosts, 'vagrant/hosts'
73
+ autoload :Plugin, 'vagrant/plugin'
74
+ autoload :Provisioners, 'vagrant/provisioners'
75
+ autoload :Registry, 'vagrant/registry'
76
+ autoload :SSH, 'vagrant/ssh'
77
+ autoload :TestHelpers, 'vagrant/test_helpers'
78
+ autoload :UI, 'vagrant/ui'
79
+ autoload :Util, 'vagrant/util'
80
+ autoload :VM, 'vagrant/vm'
81
+
82
+ # Returns a `Vagrant::Registry` object that contains all the built-in
83
+ # middleware stacks.
84
+ def self.actions
85
+ @actions ||= Vagrant::Action::Builtin.new
86
+ end
87
+
88
+ # The source root is the path to the root directory of
89
+ # the Vagrant gem.
90
+ def self.source_root
91
+ @source_root ||= Pathname.new(File.expand_path('../../', __FILE__))
92
+ end
93
+
94
+ # Global registry of commands that are available via the CLI.
95
+ #
96
+ # This registry is used to look up the sub-commands that are available
97
+ # to Vagrant.
98
+ def self.commands
99
+ @commands ||= Registry.new
100
+ end
101
+
102
+ # Global registry of config keys that are available.
103
+ #
104
+ # This registry is used to look up the keys for `config` objects.
105
+ # For example, `config.vagrant` looks up the `:vagrant` config key
106
+ # for the configuration class to use.
107
+ def self.config_keys
108
+ @config_keys ||= Registry.new
109
+ end
110
+
111
+ # Global registry of available host classes and shortcut symbols
112
+ # associated with them.
113
+ #
114
+ # This registry is used to look up the shorcuts for `config.vagrant.host`,
115
+ # or to query all hosts for automatically detecting the host system.
116
+ # The registry is global to all of Vagrant.
117
+ def self.hosts
118
+ @hosts ||= Registry.new
119
+ end
120
+
121
+ # Global registry of available guest classes and shortcut symbols
122
+ # associated with them.
123
+ #
124
+ # This registry is used to look up the shortcuts for `config.vm.guest`.
125
+ def self.guests
126
+ @guests ||= Registry.new
127
+ end
128
+
129
+ # Global registry of provisioners.
130
+ #
131
+ # This registry is used to look up the provisioners provided for
132
+ # `config.vm.provision`.
133
+ def self.provisioners
134
+ @provisioners ||= Registry.new
135
+ end
136
+ end
137
+
138
+ # # Default I18n to load the en locale
139
+ I18n.load_path << File.expand_path("templates/locales/en.yml", Vagrant.source_root)
140
+
141
+ # Register the built-in commands
142
+ Vagrant.commands.register(:box) { Vagrant::Command::Box }
143
+ Vagrant.commands.register(:destroy) { Vagrant::Command::Destroy }
144
+ Vagrant.commands.register(:gem) { Vagrant::Command::Gem }
145
+ Vagrant.commands.register(:halt) { Vagrant::Command::Halt }
146
+ Vagrant.commands.register(:init) { Vagrant::Command::Init }
147
+ Vagrant.commands.register(:package) { Vagrant::Command::Package }
148
+ Vagrant.commands.register(:provision) { Vagrant::Command::Provision }
149
+ Vagrant.commands.register(:reload) { Vagrant::Command::Reload }
150
+ Vagrant.commands.register(:resume) { Vagrant::Command::Resume }
151
+ Vagrant.commands.register(:ssh) { Vagrant::Command::SSH }
152
+ Vagrant.commands.register(:"ssh-config") { Vagrant::Command::SSHConfig }
153
+ Vagrant.commands.register(:status) { Vagrant::Command::Status }
154
+ Vagrant.commands.register(:suspend) { Vagrant::Command::Suspend }
155
+ Vagrant.commands.register(:up) { Vagrant::Command::Up }
156
+
157
+ # Register the built-in config keys
158
+ Vagrant.config_keys.register(:vagrant) { Vagrant::Config::VagrantConfig }
159
+ Vagrant.config_keys.register(:ssh) { Vagrant::Config::SSHConfig }
160
+ Vagrant.config_keys.register(:nfs) { Vagrant::Config::NFSConfig }
161
+ Vagrant.config_keys.register(:vm) { Vagrant::Config::VMConfig }
162
+ Vagrant.config_keys.register(:package) { Vagrant::Config::PackageConfig }
163
+
164
+ # Register the built-in hosts
165
+ Vagrant.hosts.register(:arch) { Vagrant::Hosts::Arch }
166
+ Vagrant.hosts.register(:bsd) { Vagrant::Hosts::BSD }
167
+ Vagrant.hosts.register(:fedora) { Vagrant::Hosts::Fedora }
168
+ Vagrant.hosts.register(:opensuse) { Vagrant::Hosts::OpenSUSE }
169
+ Vagrant.hosts.register(:freebsd) { Vagrant::Hosts::FreeBSD }
170
+ Vagrant.hosts.register(:gentoo) { Vagrant::Hosts::Gentoo }
171
+ Vagrant.hosts.register(:linux) { Vagrant::Hosts::Linux }
172
+ Vagrant.hosts.register(:windows) { Vagrant::Hosts::Windows }
173
+
174
+ # Register the built-in guests
175
+ Vagrant.guests.register(:arch) { Vagrant::Guest::Arch }
176
+ Vagrant.guests.register(:debian) { Vagrant::Guest::Debian }
177
+ Vagrant.guests.register(:fedora) { Vagrant::Guest::Fedora }
178
+ Vagrant.guests.register(:freebsd) { Vagrant::Guest::FreeBSD }
179
+ Vagrant.guests.register(:gentoo) { Vagrant::Guest::Gentoo }
180
+ Vagrant.guests.register(:linux) { Vagrant::Guest::Linux }
181
+ Vagrant.guests.register(:openbsd) { Vagrant::Guest::OpenBSD }
182
+ Vagrant.guests.register(:redhat) { Vagrant::Guest::Redhat }
183
+ Vagrant.guests.register(:solaris) { Vagrant::Guest::Solaris }
184
+ Vagrant.guests.register(:suse) { Vagrant::Guest::Suse }
185
+ Vagrant.guests.register(:ubuntu) { Vagrant::Guest::Ubuntu }
186
+
187
+ # Register the built-in provisioners
188
+ Vagrant.provisioners.register(:chef_solo) { Vagrant::Provisioners::ChefSolo }
189
+ Vagrant.provisioners.register(:chef_client) { Vagrant::Provisioners::ChefClient }
190
+ Vagrant.provisioners.register(:puppet) { Vagrant::Provisioners::Puppet }
191
+ Vagrant.provisioners.register(:puppet_server) { Vagrant::Provisioners::PuppetServer }
192
+ Vagrant.provisioners.register(:shell) { Vagrant::Provisioners::Shell }
193
+
194
+ # Register the built-in systems
195
+ Vagrant.config_keys.register(:freebsd) { Vagrant::Guest::FreeBSD::FreeBSDConfig }
196
+ Vagrant.config_keys.register(:linux) { Vagrant::Guest::Linux::LinuxConfig }
197
+ Vagrant.config_keys.register(:solaris) { Vagrant::Guest::Solaris::SolarisConfig }
@@ -0,0 +1,63 @@
1
+ require 'vagrant/action/builder'
2
+
3
+ module Vagrant
4
+ module Action
5
+ autoload :Builtin, 'vagrant/action/builtin'
6
+ autoload :Environment, 'vagrant/action/environment'
7
+ autoload :Runner, 'vagrant/action/runner'
8
+ autoload :Warden, 'vagrant/action/warden'
9
+
10
+ module Box
11
+ autoload :Destroy, 'vagrant/action/box/destroy'
12
+ autoload :Download, 'vagrant/action/box/download'
13
+ autoload :Package, 'vagrant/action/box/package'
14
+ autoload :Unpackage, 'vagrant/action/box/unpackage'
15
+ autoload :Verify, 'vagrant/action/box/verify'
16
+ end
17
+
18
+ module Env
19
+ autoload :Set, 'vagrant/action/env/set'
20
+ end
21
+
22
+ module General
23
+ autoload :CheckVirtualbox, 'vagrant/action/general/check_virtualbox'
24
+ autoload :Package, 'vagrant/action/general/package'
25
+ autoload :Validate, 'vagrant/action/general/validate'
26
+ end
27
+
28
+ module VM
29
+ autoload :Boot, 'vagrant/action/vm/boot'
30
+ autoload :CheckAccessible, 'vagrant/action/vm/check_accessible'
31
+ autoload :CheckBox, 'vagrant/action/vm/check_box'
32
+ autoload :CheckGuestAdditions, 'vagrant/action/vm/check_guest_additions'
33
+ autoload :CheckPortCollisions, 'vagrant/action/vm/check_port_collisions'
34
+ autoload :CleanMachineFolder, 'vagrant/action/vm/clean_machine_folder'
35
+ autoload :ClearForwardedPorts, 'vagrant/action/vm/clear_forwarded_ports'
36
+ autoload :ClearNetworkInterfaces, 'vagrant/action/vm/clear_network_interfaces'
37
+ autoload :ClearSharedFolders, 'vagrant/action/vm/clear_shared_folders'
38
+ autoload :Customize, 'vagrant/action/vm/customize'
39
+ autoload :DefaultName, 'vagrant/action/vm/default_name'
40
+ autoload :Destroy, 'vagrant/action/vm/destroy'
41
+ autoload :DestroyUnusedNetworkInterfaces, 'vagrant/action/vm/destroy_unused_network_interfaces'
42
+ autoload :DiscardState, 'vagrant/action/vm/discard_state'
43
+ autoload :Export, 'vagrant/action/vm/export'
44
+ autoload :ForwardPorts, 'vagrant/action/vm/forward_ports'
45
+ autoload :Halt, 'vagrant/action/vm/halt'
46
+ autoload :HostName, 'vagrant/action/vm/host_name'
47
+ autoload :Import, 'vagrant/action/vm/import'
48
+ autoload :MatchMACAddress, 'vagrant/action/vm/match_mac_address'
49
+ autoload :Network, 'vagrant/action/vm/network'
50
+ autoload :NFS, 'vagrant/action/vm/nfs'
51
+ autoload :Package, 'vagrant/action/vm/package'
52
+ autoload :PackageVagrantfile, 'vagrant/action/vm/package_vagrantfile'
53
+ autoload :Provision, 'vagrant/action/vm/provision'
54
+ autoload :ProvisionerCleanup, 'vagrant/action/vm/provisioner_cleanup'
55
+ autoload :PruneNFSExports, 'vagrant/action/vm/prune_nfs_exports'
56
+ autoload :Resume, 'vagrant/action/vm/resume'
57
+ autoload :SaneDefaults, 'vagrant/action/vm/sane_defaults'
58
+ autoload :ShareFolders, 'vagrant/action/vm/share_folders'
59
+ autoload :SetupPackageFiles, 'vagrant/action/vm/setup_package_files'
60
+ autoload :Suspend, 'vagrant/action/vm/suspend'
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,25 @@
1
+ require 'fileutils'
2
+
3
+ module Vagrant
4
+ module Action
5
+ module Box
6
+ class Destroy
7
+ def initialize(app, env)
8
+ @app = app
9
+ @env = env
10
+ end
11
+
12
+ def call(env)
13
+ # Delete the existing box
14
+ env[:ui].info I18n.t("vagrant.actions.box.destroy.destroying", :name => env[:box_name])
15
+ FileUtils.rm_rf(env[:box_directory])
16
+
17
+ # Reload the box collection
18
+ env[:box_collection].reload!
19
+
20
+ @app.call(env)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,84 @@
1
+ module Vagrant
2
+ module Action
3
+ module Box
4
+ class Download
5
+ BASENAME = "box"
6
+
7
+ include Util
8
+
9
+ attr_reader :temp_path
10
+
11
+ def initialize(app, env)
12
+ @app = app
13
+ @env = env
14
+ @env["download.classes"] ||= []
15
+ @env["download.classes"] += [Downloaders::HTTP, Downloaders::File]
16
+ @downloader = nil
17
+ end
18
+
19
+ def call(env)
20
+ @env = env
21
+
22
+ download if instantiate_downloader
23
+ @app.call(@env)
24
+
25
+ recover(env) # called in both cases to cleanup workspace
26
+ end
27
+
28
+ def instantiate_downloader
29
+ # Assign to a temporary variable since this is easier to type out,
30
+ # since it is used so many times.
31
+ classes = @env["download.classes"]
32
+
33
+ # Find the class to use.
34
+ classes.each_index do |i|
35
+ klass = classes[i]
36
+
37
+ # Use the class if it matches the given URI or if this
38
+ # is the last class...
39
+ if classes.length == (i + 1) || klass.match?(@env["box_url"])
40
+ @env[:ui].info I18n.t("vagrant.actions.box.download.with", :class => klass.to_s)
41
+ @downloader = klass.new(@env[:ui])
42
+ break
43
+ end
44
+ end
45
+
46
+ # This line should never be reached, but we'll keep this here
47
+ # just in case for now.
48
+ raise Errors::BoxDownloadUnknownType if !@downloader
49
+
50
+ @downloader.prepare(@env["box_url"])
51
+ true
52
+ end
53
+
54
+ def download
55
+ with_tempfile do |tempfile|
56
+ download_to(tempfile)
57
+ @temp_path = @env["download.temp_path"] = tempfile.path
58
+ end
59
+ end
60
+
61
+ def recover(env)
62
+ if temp_path && File.exist?(temp_path)
63
+ env[:ui].info I18n.t("vagrant.actions.box.download.cleaning")
64
+ File.unlink(temp_path)
65
+ end
66
+ end
67
+
68
+ def with_tempfile
69
+ File.open(box_temp_path, Platform.tar_file_options) do |tempfile|
70
+ yield tempfile
71
+ end
72
+ end
73
+
74
+ def box_temp_path
75
+ @env[:tmp_path].join(BASENAME + Time.now.to_i.to_s)
76
+ end
77
+
78
+ def download_to(f)
79
+ @downloader.download!(@env["box_url"], f)
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end