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,83 @@
1
+ require 'ostruct'
2
+ require 'erubis'
3
+
4
+ module Vagrant
5
+ module Util
6
+ # This class is used to render the ERB templates in the
7
+ # `GEM_ROOT/templates` directory.
8
+ class TemplateRenderer < OpenStruct
9
+ class << self
10
+ # Render a given template and return the result. This method optionally
11
+ # takes a block which will be passed the renderer prior to rendering, which
12
+ # allows the caller to set any view variables within the renderer itself.
13
+ #
14
+ # @return [String] Rendered template
15
+ def render(*args)
16
+ render_with(:render, *args)
17
+ end
18
+
19
+ # Render a given string and return the result. This method optionally
20
+ # takes a block which will be passed the renderer prior to rendering, which
21
+ # allows the caller to set any view variables within the renderer itself.
22
+ #
23
+ # @param [String] template The template data string.
24
+ # @return [String] Rendered template
25
+ def render_string(*args)
26
+ render_with(:render_string, *args)
27
+ end
28
+
29
+ # Method used internally to DRY out the other renderers. This method
30
+ # creates and sets up the renderer before calling a specified method on it.
31
+ def render_with(method, template, data={})
32
+ renderer = new(template, data)
33
+ yield renderer if block_given?
34
+ renderer.send(method.to_sym)
35
+ end
36
+ end
37
+
38
+ def initialize(template, data = {})
39
+ super()
40
+
41
+ data[:template] = template
42
+ data.each do |key, value|
43
+ send("#{key}=", value)
44
+ end
45
+ end
46
+
47
+ # Renders the template using the class intance as the binding. Because the
48
+ # renderer inherits from `OpenStruct`, additional view variables can be
49
+ # added like normal accessors.
50
+ #
51
+ # @return [String]
52
+ def render
53
+ # TODO: Seems like a pretty dirty way to do this. Perhaps refactor this
54
+ old_template = template
55
+ result = nil
56
+ File.open(full_template_path, 'r') do |f|
57
+ self.template = f.read
58
+ result = render_string
59
+ end
60
+
61
+ result
62
+ ensure
63
+ self.template = old_template
64
+ end
65
+
66
+ # Renders a template, handling the template as a string, but otherwise
67
+ # acting the same way as {#render}.
68
+ #
69
+ # @return [String]
70
+ def render_string
71
+ Erubis::Eruby.new(template, :trim => true).result(binding)
72
+ end
73
+
74
+ # Returns the full path to the template, taking into accoun the gem directory
75
+ # and adding the `.erb` extension to the end.
76
+ #
77
+ # @return [String]
78
+ def full_template_path
79
+ Vagrant.source_root.join('templates', "#{template}.erb").to_s.squeeze("/")
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,7 @@
1
+ module Vagrant
2
+ # This will always be up to date with the current version of Vagrant,
3
+ # since it is used to generate the gemspec and is also the source of
4
+ # the version for `vagrant -v`
5
+ Version = File.read(File.expand_path('../../../VERSION', __FILE__)).strip
6
+ VERSION = Version
7
+ end
@@ -0,0 +1,195 @@
1
+ require 'log4r'
2
+
3
+ module Vagrant
4
+ class VM
5
+ include Vagrant::Util
6
+
7
+ attr_reader :uuid
8
+ attr_reader :env
9
+ attr_reader :name
10
+ attr_reader :vm
11
+ attr_reader :box
12
+ attr_reader :config
13
+ attr_reader :driver
14
+
15
+ def initialize(name, env, config, opts=nil)
16
+ @logger = Log4r::Logger.new("vagrant::vm")
17
+
18
+ @name = name
19
+ @vm = nil
20
+ @env = env
21
+ @config = config
22
+ @box = env.boxes.find(config.vm.box)
23
+
24
+ opts ||= {}
25
+ if opts[:base]
26
+ # The name is the ID we use.
27
+ @uuid = name
28
+ else
29
+ # Load the UUID if its saved.
30
+ active = env.local_data[:active] || {}
31
+ @uuid = active[@name.to_s]
32
+ end
33
+
34
+ # Reload ourselves to get the state
35
+ reload!
36
+
37
+ # Load the associated guest.
38
+ load_guest!
39
+ @loaded_guest_distro = false
40
+ end
41
+
42
+ # Loads the guest associated with the VM. The guest class is
43
+ # responsible for OS-specific functionality. More information
44
+ # can be found by reading the documentation on {Vagrant::Guest::Base}.
45
+ #
46
+ # **This method should never be called manually.**
47
+ def load_guest!(guest=nil)
48
+ guest ||= config.vm.guest
49
+ @logger.info("Loading guest: #{guest}")
50
+
51
+ if guest.is_a?(Class)
52
+ raise Errors::VMGuestError, :_key => :invalid_class, :guest => guest.to_s if !(guest <= Guest::Base)
53
+ @guest = guest.new(self)
54
+ elsif guest.is_a?(Symbol)
55
+ guest_klass = Vagrant.guests.get(guest)
56
+ raise Errors::VMGuestError, :_key => :unknown_type, :guest => guest.to_s if !guest_klass
57
+ @guest = guest_klass.new(self)
58
+ else
59
+ raise Errors::VMGuestError, :unspecified
60
+ end
61
+ end
62
+
63
+ # Returns a channel object to communicate with the virtual
64
+ # machine.
65
+ def channel
66
+ @channel ||= Communication::SSH.new(self)
67
+ end
68
+
69
+ # Returns the guest for this VM, loading the distro of the system if
70
+ # we can.
71
+ def guest
72
+ if !@loaded_guest_distro && state == :running
73
+ # Load the guest distro for the first time
74
+ result = @guest.distro_dispatch
75
+ load_guest!(result)
76
+ @loaded_guest_distro = true
77
+ end
78
+
79
+ @guest
80
+ end
81
+
82
+ # Access the {Vagrant::SSH} object associated with this VM, which
83
+ # is used to get SSH credentials with the virtual machine.
84
+ def ssh
85
+ @ssh ||= SSH.new(self)
86
+ end
87
+
88
+ # Returns the state of the VM as a symbol.
89
+ #
90
+ # @return [Symbol]
91
+ def state
92
+ return :not_created if !@uuid
93
+ state = @driver.read_state
94
+ return :not_created if !state
95
+ return state
96
+ end
97
+
98
+ # Returns a boolean true if the VM has been created, otherwise
99
+ # returns false.
100
+ #
101
+ # @return [Boolean]
102
+ def created?
103
+ state != :not_created
104
+ end
105
+
106
+ # Sets the currently active VM for this VM. If the VM is a valid,
107
+ # created virtual machine, then it will also update the local data
108
+ # to persist the VM. Otherwise, it will remove itself from the
109
+ # local data (if it exists).
110
+ def uuid=(value)
111
+ env.local_data[:active] ||= {}
112
+ if value
113
+ env.local_data[:active][name.to_s] = value
114
+ else
115
+ env.local_data[:active].delete(name.to_s)
116
+ end
117
+
118
+ # Commit the local data so that the next time vagrant is initialized,
119
+ # it realizes the VM exists
120
+ env.local_data.commit
121
+
122
+ # Store the uuid and reload the instance
123
+ @uuid = value
124
+ reload!
125
+ end
126
+
127
+ def reload!
128
+ begin
129
+ @driver = Driver::VirtualBox.new(@uuid)
130
+ rescue Driver::VirtualBox::VMNotFound
131
+ # Clear the UUID since this VM doesn't exist.
132
+ @uuid = nil
133
+
134
+ # Reset the driver. This shouldn't raise a VMNotFound since we won't
135
+ # feed it a UUID.
136
+ @driver = Driver::VirtualBox.new
137
+ end
138
+ end
139
+
140
+ def package(options=nil)
141
+ run_action(:package, { "validate" => false }.merge(options || {}))
142
+ end
143
+
144
+ def up(options=nil)
145
+ run_action(:up, options)
146
+ end
147
+
148
+ def start(options=nil)
149
+ return if state == :running
150
+ return resume if state == :saved
151
+
152
+ run_action(:start, options)
153
+ end
154
+
155
+ def halt(options=nil)
156
+ run_action(:halt, options)
157
+ end
158
+
159
+ def reload(options=nil)
160
+ run_action(:reload, options)
161
+ end
162
+
163
+ def provision
164
+ run_action(:provision)
165
+ end
166
+
167
+ def destroy
168
+ run_action(:destroy)
169
+ end
170
+
171
+ def suspend
172
+ run_action(:suspend)
173
+ end
174
+
175
+ def resume
176
+ run_action(:resume)
177
+ end
178
+
179
+ def ui
180
+ return @_ui if defined?(@_ui)
181
+ @_ui = @env.ui.dup
182
+ @_ui.resource = @name
183
+ @_ui
184
+ end
185
+
186
+ def run_action(name, options=nil)
187
+ options = {
188
+ :vm => self,
189
+ :ui => ui
190
+ }.merge(options || {})
191
+
192
+ env.action_runner.run(name, options)
193
+ end
194
+ end
195
+ end
@@ -0,0 +1,30 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ build-gem -- upload the latest (timestamp) rubygem to rubygems.org
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/ build gem -n gem_name
8
+
9
+ # figure out the project root under which bin, lib live
10
+ shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
11
+
12
+ # load a jason bourne library
13
+ source "$shome/bin/_treadstone"
14
+
15
+ # define command line options:
16
+ DEFINE_string 'name' "$(basename "$shome")" 'name of gem' 'n'
17
+
18
+ # entry point
19
+ function main {
20
+ local pth_gemspec="$shome/$FLAGS_name.gemspec"
21
+ if [[ ! -e "$pth_gemspec" ]]; then
22
+ logger_fatal "could not find gemspec $pth_gemspec"
23
+ exit 1
24
+ fi
25
+
26
+ cd "$shome"
27
+ gem build "$pth_gemspec"
28
+ }
29
+
30
+ require sub "$BASH_SOURCE" "$@"
@@ -0,0 +1,30 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ build-gem -- upload the latest (timestamp) rubygem to rubygems.org
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/ build gem -n gem_name
8
+
9
+ # figure out the project root under which bin, lib live
10
+ shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
11
+
12
+ # load a jason bourne library
13
+ source "$shome/bin/_treadstone"
14
+
15
+ # define command line options:
16
+ DEFINE_string 'name' "$(basename "$shome")" 'name of gem' 'n'
17
+
18
+ # entry point
19
+ function main {
20
+ local pth_gemspec="$shome/$FLAGS_name.gemspec"
21
+ if [[ ! -e "$pth_gemspec" ]]; then
22
+ logger_fatal "could not find gemspec $pth_gemspec"
23
+ exit 1
24
+ fi
25
+
26
+ cd "$shome"
27
+ gem build "$pth_gemspec"
28
+ }
29
+
30
+ require sub "$BASH_SOURCE" "$@"
@@ -0,0 +1,32 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ bump -- increments a semver in a file or in git tags
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/ bump [major|minor|patch]
8
+ #/ bump 1.2.3
9
+ #/ bump
10
+ #/ without arguments is equivalent to 'bump patch'
11
+
12
+ # figure out the project root under which bin, lib live
13
+ shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
14
+
15
+ # load a jason bourne library
16
+ source "$shome/bin/_treadstone"
17
+
18
+ # parse the command-line
19
+ DEFINE_boolean 'dirty' "$FLAGS_FALSE" 'force bumping in unclean work area' 'f'
20
+
21
+ # entry point
22
+ function main {
23
+ require 'bump'
24
+
25
+ if [[ "$#" = 0 ]]; then
26
+ set -- patch
27
+ fi
28
+
29
+ bump_version "$FLAGS_dirty" "$@"
30
+ }
31
+
32
+ require sub "$BASH_SOURCE" "$@"
@@ -0,0 +1,81 @@
1
+ #!/bin/bash
2
+
3
+ #/ NAME
4
+ #/ edit-gem -- set environment to hint to Gemfile to use a local gemspec
5
+ #/
6
+ #/ SYNOPSIS
7
+ #/ edit gem <name> [location]
8
+ #/ edit gem -r <names>
9
+ #/ edit gem -R
10
+
11
+ # figure out the project root under which bin, lib live
12
+ shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
13
+
14
+ # load a jason bourne library
15
+ source "$shome/bin/_treadstone"
16
+
17
+ # define command line options:
18
+ DEFINE_boolean "update" "$FLAGS_FALSE" "finish editing a local gem and updates project" "u"
19
+ DEFINE_boolean "reset" "$FLAGS_FALSE" "reset gem to remote" "r"
20
+ DEFINE_boolean "resetall" "$FLAGS_FALSE" "reset all gems to remote" "R"
21
+
22
+ # entry point
23
+ function main {
24
+ if [[ "$FLAGS_resetall" = "$FLAGS_TRUE" ]]; then
25
+ set +f
26
+ rm -f $shome/.local/*
27
+ set -f
28
+ bundle --local --quiet && bundle check > /dev/null
29
+ git diff --no-ext-diff Gemfile.lock vendor/cache
30
+ elif [[ "$FLAGS_reset" = "$FLAGS_TRUE" ]]; then
31
+ local nm_gem
32
+ for nm_gem in "$@"; do
33
+ rm -f "$shome/.local/$nm_gem"
34
+ done
35
+
36
+ bundle --local --quiet && bundle check > /dev/null
37
+
38
+ git diff --no-ext-diff Gemfile.lock vendor/cache
39
+ elif [[ "$FLAGS_update" = "$FLAGS_TRUE" ]]; then
40
+ local nm_gem
41
+ for nm_gem in "$@"; do
42
+ echo -n > "$shome/.local/$nm_gem"
43
+ done
44
+
45
+ bundle update "$@"
46
+
47
+ for nm_gem in "$@"; do
48
+ rm -f "$shome/.local/$nm_gem"
49
+ done
50
+ bundle --local --quiet && bundle check > /dev/null
51
+
52
+ git add Gemfile.lock vendor/cache
53
+ git add -u vendor/cache
54
+ git diff --no-ext-diff --cached Gemfile.lock vendor/cache
55
+ else
56
+ local nm_gem="$1"; shift
57
+
58
+ local pth_gem
59
+ if [[ "$#" = 0 ]]; then
60
+ pth_gem="gems/$nm_gem"
61
+ else
62
+ pth_gem="$1"; shift
63
+ fi
64
+
65
+ if [[ ! -d "$pth_gem" ]]; then
66
+ logger_fatal "cannot find local gem directoy at $pth_gem"
67
+ exit 1
68
+ fi
69
+
70
+ pth_gem="$(cd -P -- "$pth_gem" && pwd -P)"
71
+
72
+ echo "enabling local gem development on ${nm_gem} at ${pth_gem}"
73
+ mkdir -p "$shome/.local"
74
+ echo "$pth_gem" > "$shome/.local/$nm_gem"
75
+
76
+ bundle --local --quiet && bundle check > /dev/null
77
+ git diff --no-ext-diff Gemfile.lock vendor/cache
78
+ fi
79
+ }
80
+
81
+ require sub "$BASH_SOURCE" "$@"