vagrant-fixed-ssh 1.0.7

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 (413) hide show
  1. data/.gitignore +46 -0
  2. data/.yardopts +1 -0
  3. data/CHANGELOG.md +723 -0
  4. data/Gemfile +3 -0
  5. data/LICENSE +22 -0
  6. data/README.md +121 -0
  7. data/Rakefile +18 -0
  8. data/bin/vagrant +60 -0
  9. data/config/default.rb +30 -0
  10. data/contrib/README.md +12 -0
  11. data/contrib/emacs/vagrant.el +8 -0
  12. data/contrib/vim/vagrantfile.vim +9 -0
  13. data/keys/README.md +17 -0
  14. data/keys/vagrant +27 -0
  15. data/keys/vagrant.pub +1 -0
  16. data/lib/vagrant.rb +197 -0
  17. data/lib/vagrant/action.rb +63 -0
  18. data/lib/vagrant/action/box/destroy.rb +25 -0
  19. data/lib/vagrant/action/box/download.rb +84 -0
  20. data/lib/vagrant/action/box/package.rb +19 -0
  21. data/lib/vagrant/action/box/unpackage.rb +61 -0
  22. data/lib/vagrant/action/box/verify.rb +23 -0
  23. data/lib/vagrant/action/builder.rb +128 -0
  24. data/lib/vagrant/action/builtin.rb +171 -0
  25. data/lib/vagrant/action/env/set.rb +21 -0
  26. data/lib/vagrant/action/environment.rb +12 -0
  27. data/lib/vagrant/action/general/check_virtualbox.rb +28 -0
  28. data/lib/vagrant/action/general/package.rb +101 -0
  29. data/lib/vagrant/action/general/validate.rb +18 -0
  30. data/lib/vagrant/action/runner.rb +53 -0
  31. data/lib/vagrant/action/vm/boot.rb +53 -0
  32. data/lib/vagrant/action/vm/check_accessible.rb +23 -0
  33. data/lib/vagrant/action/vm/check_box.rb +33 -0
  34. data/lib/vagrant/action/vm/check_guest_additions.rb +38 -0
  35. data/lib/vagrant/action/vm/check_port_collisions.rb +89 -0
  36. data/lib/vagrant/action/vm/clean_machine_folder.rb +43 -0
  37. data/lib/vagrant/action/vm/clear_forwarded_ports.rb +18 -0
  38. data/lib/vagrant/action/vm/clear_network_interfaces.rb +31 -0
  39. data/lib/vagrant/action/vm/clear_shared_folders.rb +18 -0
  40. data/lib/vagrant/action/vm/customize.rb +36 -0
  41. data/lib/vagrant/action/vm/default_name.rb +22 -0
  42. data/lib/vagrant/action/vm/destroy.rb +19 -0
  43. data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +20 -0
  44. data/lib/vagrant/action/vm/discard_state.rb +22 -0
  45. data/lib/vagrant/action/vm/export.rb +57 -0
  46. data/lib/vagrant/action/vm/forward_ports.rb +92 -0
  47. data/lib/vagrant/action/vm/halt.rb +32 -0
  48. data/lib/vagrant/action/vm/host_name.rb +21 -0
  49. data/lib/vagrant/action/vm/import.rb +48 -0
  50. data/lib/vagrant/action/vm/match_mac_address.rb +21 -0
  51. data/lib/vagrant/action/vm/network.rb +403 -0
  52. data/lib/vagrant/action/vm/nfs.rb +196 -0
  53. data/lib/vagrant/action/vm/package.rb +23 -0
  54. data/lib/vagrant/action/vm/package_vagrantfile.rb +36 -0
  55. data/lib/vagrant/action/vm/provision.rb +61 -0
  56. data/lib/vagrant/action/vm/provisioner_cleanup.rb +26 -0
  57. data/lib/vagrant/action/vm/prune_nfs_exports.rb +20 -0
  58. data/lib/vagrant/action/vm/resume.rb +20 -0
  59. data/lib/vagrant/action/vm/sane_defaults.rb +78 -0
  60. data/lib/vagrant/action/vm/setup_package_files.rb +54 -0
  61. data/lib/vagrant/action/vm/share_folders.rb +114 -0
  62. data/lib/vagrant/action/vm/suspend.rb +20 -0
  63. data/lib/vagrant/action/warden.rb +92 -0
  64. data/lib/vagrant/box.rb +44 -0
  65. data/lib/vagrant/box_collection.rb +58 -0
  66. data/lib/vagrant/cli.rb +76 -0
  67. data/lib/vagrant/command.rb +24 -0
  68. data/lib/vagrant/command/base.rb +167 -0
  69. data/lib/vagrant/command/box.rb +58 -0
  70. data/lib/vagrant/command/box_add.rb +37 -0
  71. data/lib/vagrant/command/box_list.rb +28 -0
  72. data/lib/vagrant/command/box_remove.rb +27 -0
  73. data/lib/vagrant/command/box_repackage.rb +27 -0
  74. data/lib/vagrant/command/destroy.rb +64 -0
  75. data/lib/vagrant/command/gem.rb +39 -0
  76. data/lib/vagrant/command/halt.rb +39 -0
  77. data/lib/vagrant/command/init.rb +40 -0
  78. data/lib/vagrant/command/package.rb +75 -0
  79. data/lib/vagrant/command/provision.rb +40 -0
  80. data/lib/vagrant/command/reload.rb +39 -0
  81. data/lib/vagrant/command/resume.rb +33 -0
  82. data/lib/vagrant/command/ssh.rb +90 -0
  83. data/lib/vagrant/command/ssh_config.rb +51 -0
  84. data/lib/vagrant/command/start_mixins.rb +26 -0
  85. data/lib/vagrant/command/status.rb +36 -0
  86. data/lib/vagrant/command/suspend.rb +33 -0
  87. data/lib/vagrant/command/up.rb +40 -0
  88. data/lib/vagrant/communication.rb +7 -0
  89. data/lib/vagrant/communication/base.rb +56 -0
  90. data/lib/vagrant/communication/ssh.rb +230 -0
  91. data/lib/vagrant/config.rb +49 -0
  92. data/lib/vagrant/config/base.rb +82 -0
  93. data/lib/vagrant/config/container.rb +37 -0
  94. data/lib/vagrant/config/error_recorder.rb +19 -0
  95. data/lib/vagrant/config/loader.rb +127 -0
  96. data/lib/vagrant/config/nfs.rb +8 -0
  97. data/lib/vagrant/config/package.rb +7 -0
  98. data/lib/vagrant/config/ssh.rb +27 -0
  99. data/lib/vagrant/config/top.rb +72 -0
  100. data/lib/vagrant/config/vagrant.rb +14 -0
  101. data/lib/vagrant/config/vm.rb +168 -0
  102. data/lib/vagrant/config/vm/provisioner.rb +52 -0
  103. data/lib/vagrant/config/vm/sub_vm.rb +17 -0
  104. data/lib/vagrant/data_store.rb +92 -0
  105. data/lib/vagrant/downloaders.rb +7 -0
  106. data/lib/vagrant/downloaders/base.rb +25 -0
  107. data/lib/vagrant/downloaders/file.rb +22 -0
  108. data/lib/vagrant/downloaders/http.rb +97 -0
  109. data/lib/vagrant/driver.rb +8 -0
  110. data/lib/vagrant/driver/virtualbox.rb +134 -0
  111. data/lib/vagrant/driver/virtualbox_4_0.rb +459 -0
  112. data/lib/vagrant/driver/virtualbox_4_1.rb +459 -0
  113. data/lib/vagrant/driver/virtualbox_4_2.rb +606 -0
  114. data/lib/vagrant/driver/virtualbox_base.rb +326 -0
  115. data/lib/vagrant/environment.rb +522 -0
  116. data/lib/vagrant/errors.rb +445 -0
  117. data/lib/vagrant/guest.rb +18 -0
  118. data/lib/vagrant/guest/arch.rb +56 -0
  119. data/lib/vagrant/guest/base.rb +99 -0
  120. data/lib/vagrant/guest/debian.rb +64 -0
  121. data/lib/vagrant/guest/fedora.rb +66 -0
  122. data/lib/vagrant/guest/freebsd.rb +86 -0
  123. data/lib/vagrant/guest/gentoo.rb +46 -0
  124. data/lib/vagrant/guest/linux.rb +118 -0
  125. data/lib/vagrant/guest/linux/config.rb +19 -0
  126. data/lib/vagrant/guest/linux/error.rb +9 -0
  127. data/lib/vagrant/guest/openbsd.rb +20 -0
  128. data/lib/vagrant/guest/redhat.rb +67 -0
  129. data/lib/vagrant/guest/solaris.rb +118 -0
  130. data/lib/vagrant/guest/suse.rb +17 -0
  131. data/lib/vagrant/guest/ubuntu.rb +23 -0
  132. data/lib/vagrant/hosts.rb +37 -0
  133. data/lib/vagrant/hosts/arch.rb +55 -0
  134. data/lib/vagrant/hosts/base.rb +66 -0
  135. data/lib/vagrant/hosts/bsd.rb +97 -0
  136. data/lib/vagrant/hosts/fedora.rb +47 -0
  137. data/lib/vagrant/hosts/freebsd.rb +41 -0
  138. data/lib/vagrant/hosts/gentoo.rb +20 -0
  139. data/lib/vagrant/hosts/linux.rb +94 -0
  140. data/lib/vagrant/hosts/opensuse.rb +30 -0
  141. data/lib/vagrant/hosts/windows.rb +16 -0
  142. data/lib/vagrant/plugin.rb +81 -0
  143. data/lib/vagrant/provisioners.rb +12 -0
  144. data/lib/vagrant/provisioners/base.rb +44 -0
  145. data/lib/vagrant/provisioners/chef.rb +168 -0
  146. data/lib/vagrant/provisioners/chef_client.rb +132 -0
  147. data/lib/vagrant/provisioners/chef_solo.rb +234 -0
  148. data/lib/vagrant/provisioners/puppet.rb +176 -0
  149. data/lib/vagrant/provisioners/puppet_server.rb +78 -0
  150. data/lib/vagrant/provisioners/shell.rb +103 -0
  151. data/lib/vagrant/registry.rb +52 -0
  152. data/lib/vagrant/ssh.rb +126 -0
  153. data/lib/vagrant/test_helpers.rb +154 -0
  154. data/lib/vagrant/ui.rb +168 -0
  155. data/lib/vagrant/util.rb +12 -0
  156. data/lib/vagrant/util/ansi_escape_code_remover.rb +34 -0
  157. data/lib/vagrant/util/busy.rb +59 -0
  158. data/lib/vagrant/util/counter.rb +24 -0
  159. data/lib/vagrant/util/file_checksum.rb +38 -0
  160. data/lib/vagrant/util/file_mode.rb +12 -0
  161. data/lib/vagrant/util/hash_with_indifferent_access.rb +63 -0
  162. data/lib/vagrant/util/is_port_open.rb +38 -0
  163. data/lib/vagrant/util/line_ending_helpers.rb +14 -0
  164. data/lib/vagrant/util/network_ip.rb +28 -0
  165. data/lib/vagrant/util/platform.rb +68 -0
  166. data/lib/vagrant/util/retryable.rb +25 -0
  167. data/lib/vagrant/util/safe_exec.rb +36 -0
  168. data/lib/vagrant/util/safe_puts.rb +31 -0
  169. data/lib/vagrant/util/stacked_proc_runner.rb +35 -0
  170. data/lib/vagrant/util/subprocess.rb +247 -0
  171. data/lib/vagrant/util/template_renderer.rb +83 -0
  172. data/lib/vagrant/version.rb +6 -0
  173. data/lib/vagrant/vm.rb +195 -0
  174. data/tasks/acceptance.rake +113 -0
  175. data/tasks/bundler.rake +3 -0
  176. data/tasks/test.rake +20 -0
  177. data/templates/commands/init/Vagrantfile.erb +99 -0
  178. data/templates/commands/ssh_config/config.erb +15 -0
  179. data/templates/config/validation_failed.erb +7 -0
  180. data/templates/guests/arch/network_dhcp.erb +7 -0
  181. data/templates/guests/arch/network_static.erb +7 -0
  182. data/templates/guests/debian/network_dhcp.erb +6 -0
  183. data/templates/guests/debian/network_static.erb +7 -0
  184. data/templates/guests/fedora/network_dhcp.erb +6 -0
  185. data/templates/guests/fedora/network_static.erb +13 -0
  186. data/templates/guests/freebsd/network_dhcp.erb +3 -0
  187. data/templates/guests/freebsd/network_static.erb +3 -0
  188. data/templates/guests/gentoo/network_dhcp.erb +4 -0
  189. data/templates/guests/gentoo/network_static.erb +4 -0
  190. data/templates/guests/redhat/network_dhcp.erb +6 -0
  191. data/templates/guests/redhat/network_static.erb +7 -0
  192. data/templates/locales/en.yml +759 -0
  193. data/templates/nfs/exports.erb +5 -0
  194. data/templates/nfs/exports_freebsd.erb +5 -0
  195. data/templates/nfs/exports_linux.erb +5 -0
  196. data/templates/package_Vagrantfile.erb +11 -0
  197. data/templates/provisioners/chef_client/client.erb +32 -0
  198. data/templates/provisioners/chef_solo/solo.erb +25 -0
  199. data/test/acceptance/base.rb +48 -0
  200. data/test/acceptance/box_test.rb +99 -0
  201. data/test/acceptance/destroy_test.rb +37 -0
  202. data/test/acceptance/halt_test.rb +72 -0
  203. data/test/acceptance/init_test.rb +33 -0
  204. data/test/acceptance/networking/host_only_test.rb +37 -0
  205. data/test/acceptance/networking/port_forward_test.rb +125 -0
  206. data/test/acceptance/package_test.rb +46 -0
  207. data/test/acceptance/provisioning/basic_test.rb +61 -0
  208. data/test/acceptance/provisioning/chef_solo_test.rb +37 -0
  209. data/test/acceptance/provisioning/shell_test.rb +53 -0
  210. data/test/acceptance/resume_test.rb +17 -0
  211. data/test/acceptance/shared_folders_test.rb +84 -0
  212. data/test/acceptance/skeletons/chef_solo_basic/README.md +3 -0
  213. data/test/acceptance/skeletons/chef_solo_basic/cookbooks/basic/recipes/default.rb +5 -0
  214. data/test/acceptance/skeletons/chef_solo_json/README.md +3 -0
  215. data/test/acceptance/skeletons/chef_solo_json/cookbooks/basic/recipes/default.rb +6 -0
  216. data/test/acceptance/skeletons/provisioner_multi/README.md +3 -0
  217. data/test/acceptance/skeletons/provisioner_multi/cookbooks/basic/recipes/default.rb +5 -0
  218. data/test/acceptance/ssh_test.rb +46 -0
  219. data/test/acceptance/support/config.rb +42 -0
  220. data/test/acceptance/support/isolated_environment.rb +117 -0
  221. data/test/acceptance/support/matchers/have_color.rb +9 -0
  222. data/test/acceptance/support/matchers/match_output.rb +14 -0
  223. data/test/acceptance/support/matchers/succeed.rb +14 -0
  224. data/test/acceptance/support/network_tests.rb +29 -0
  225. data/test/acceptance/support/output.rb +95 -0
  226. data/test/acceptance/support/shared/base_context.rb +72 -0
  227. data/test/acceptance/support/shared/command_examples.rb +33 -0
  228. data/test/acceptance/support/virtualbox.rb +36 -0
  229. data/test/acceptance/suspend_test.rb +56 -0
  230. data/test/acceptance/up_basic_test.rb +33 -0
  231. data/test/acceptance/up_with_box_url.rb +40 -0
  232. data/test/acceptance/vagrant_test.rb +47 -0
  233. data/test/acceptance/version_test.rb +15 -0
  234. data/test/buildbot/README.md +72 -0
  235. data/test/buildbot/buildbot_config/__init__.py +0 -0
  236. data/test/buildbot/buildbot_config/config/__init__.py +0 -0
  237. data/test/buildbot/buildbot_config/config/loader.py +24 -0
  238. data/test/buildbot/buildbot_config/config/master.py +24 -0
  239. data/test/buildbot/buildbot_config/config/slave.py +22 -0
  240. data/test/buildbot/buildbot_config/master/__init__.py +6 -0
  241. data/test/buildbot/buildbot_config/master/builders.py +78 -0
  242. data/test/buildbot/buildbot_config/master/buildsteps.py +100 -0
  243. data/test/buildbot/buildbot_config/master/change_sources.py +8 -0
  244. data/test/buildbot/buildbot_config/master/schedulers.py +32 -0
  245. data/test/buildbot/buildbot_config/master/slaves.py +60 -0
  246. data/test/buildbot/buildbot_config/master/status.py +52 -0
  247. data/test/buildbot/master/Makefile.sample +28 -0
  248. data/test/buildbot/master/buildbot.tac +36 -0
  249. data/test/buildbot/master/master.cfg +67 -0
  250. data/test/buildbot/master/public_html/bg_gradient.jpg +0 -0
  251. data/test/buildbot/master/public_html/default.css +545 -0
  252. data/test/buildbot/master/public_html/favicon.ico +0 -0
  253. data/test/buildbot/master/public_html/robots.txt +10 -0
  254. data/test/buildbot/master/public_html/static/css/bootstrap-1.4.0.min.css +356 -0
  255. data/test/buildbot/master/public_html/static/css/prettify.css +97 -0
  256. data/test/buildbot/master/public_html/static/css/syntax.css +60 -0
  257. data/test/buildbot/master/public_html/static/css/vagrant.base.css +205 -0
  258. data/test/buildbot/master/public_html/static/images/base_box_mac.jpg +0 -0
  259. data/test/buildbot/master/public_html/static/images/getting-started/success.jpg +0 -0
  260. data/test/buildbot/master/public_html/static/images/icons/error.png +0 -0
  261. data/test/buildbot/master/public_html/static/images/vagrant_chilling.png +0 -0
  262. data/test/buildbot/master/public_html/static/images/vagrant_holding.png +0 -0
  263. data/test/buildbot/master/public_html/static/images/vagrant_looking.png +0 -0
  264. data/test/buildbot/master/public_html/static/images/windows/alter_path.jpg +0 -0
  265. data/test/buildbot/master/public_html/static/images/windows/edit_path.jpg +0 -0
  266. data/test/buildbot/master/public_html/static/images/windows/environment_variables_button.jpg +0 -0
  267. data/test/buildbot/master/public_html/static/images/windows/port_and_ppk_path.jpg +0 -0
  268. data/test/buildbot/master/public_html/static/images/windows/ppk_selection.jpg +0 -0
  269. data/test/buildbot/master/public_html/static/images/windows/putty_first_screen.jpg +0 -0
  270. data/test/buildbot/master/public_html/static/images/windows/save_result.jpg +0 -0
  271. data/test/buildbot/master/public_html/static/images/windows/vbox_manage_default_location.jpg +0 -0
  272. data/test/buildbot/master/public_html/static/js/bootstrap-tabs.js +80 -0
  273. data/test/buildbot/master/public_html/static/js/jquery-1.7.min.js +4 -0
  274. data/test/buildbot/master/templates/authfail.html +9 -0
  275. data/test/buildbot/master/templates/build.html +205 -0
  276. data/test/buildbot/master/templates/builder.html +118 -0
  277. data/test/buildbot/master/templates/builders.html +33 -0
  278. data/test/buildbot/master/templates/buildslave.html +72 -0
  279. data/test/buildbot/master/templates/buildslaves.html +70 -0
  280. data/test/buildbot/master/templates/change.html +15 -0
  281. data/test/buildbot/master/templates/layouts/base.html +58 -0
  282. data/test/buildbot/master/templates/macros/box.html +37 -0
  283. data/test/buildbot/master/templates/macros/build_line.html +50 -0
  284. data/test/buildbot/master/templates/macros/change.html +81 -0
  285. data/test/buildbot/master/templates/macros/forms.html +300 -0
  286. data/test/buildbot/master/templates/root.html +42 -0
  287. data/test/buildbot/master/templates/waterfall.html +53 -0
  288. data/test/buildbot/requirements.txt +4 -0
  289. data/test/buildbot/scripts/deploy.sh +38 -0
  290. data/test/buildbot/scripts/setup.sh +107 -0
  291. data/test/buildbot/slave/buildbot.tac +43 -0
  292. data/test/buildbot/slave/info/admin +1 -0
  293. data/test/buildbot/slave/info/host +1 -0
  294. data/test/buildbot/tests/__init__.py +0 -0
  295. data/test/buildbot/tests/master/__init__.py +0 -0
  296. data/test/buildbot/tests/master/test_slaves.py +41 -0
  297. data/test/buildbot/vendor/choices-0.4.0.tar.gz +0 -0
  298. data/test/config/acceptance_boxes.yml +7 -0
  299. data/test/support/isolated_environment.rb +46 -0
  300. data/test/support/tempdir.rb +34 -0
  301. data/test/unit/base.rb +21 -0
  302. data/test/unit/support/isolated_environment.rb +47 -0
  303. data/test/unit/support/shared/base_context.rb +30 -0
  304. data/test/unit/vagrant/action/builder_test.rb +156 -0
  305. data/test/unit/vagrant/action/environment_test.rb +16 -0
  306. data/test/unit/vagrant/action/runner_test.rb +65 -0
  307. data/test/unit/vagrant/action/warden_test.rb +92 -0
  308. data/test/unit/vagrant/box_collection_test.rb +56 -0
  309. data/test/unit/vagrant/box_test.rb +34 -0
  310. data/test/unit/vagrant/command/base_test.rb +150 -0
  311. data/test/unit/vagrant/config/base_test.rb +48 -0
  312. data/test/unit/vagrant/config/loader_test.rb +79 -0
  313. data/test/unit/vagrant/config/ssh_test.rb +17 -0
  314. data/test/unit/vagrant/config/top_test.rb +69 -0
  315. data/test/unit/vagrant/config/vm_test.rb +71 -0
  316. data/test/unit/vagrant/config_test.rb +27 -0
  317. data/test/unit/vagrant/data_store_test.rb +79 -0
  318. data/test/unit/vagrant/downloaders/base_test.rb +18 -0
  319. data/test/unit/vagrant/downloaders/file_test.rb +75 -0
  320. data/test/unit/vagrant/downloaders/http_test.rb +19 -0
  321. data/test/unit/vagrant/environment_test.rb +220 -0
  322. data/test/unit/vagrant/hosts_test.rb +36 -0
  323. data/test/unit/vagrant/registry_test.rb +74 -0
  324. data/test/unit/vagrant/util/ansi_escape_code_remover_test.rb +16 -0
  325. data/test/unit/vagrant/util/file_checksum_test.rb +23 -0
  326. data/test/unit/vagrant/util/hash_with_indifferent_access_test.rb +38 -0
  327. data/test/unit/vagrant/util/is_port_open_test.rb +53 -0
  328. data/test/unit/vagrant/util/line_endings_helper_test.rb +16 -0
  329. data/test/unit/vagrant/util/network_ip_test.rb +17 -0
  330. data/test/unit/vagrant/util/retryable_test.rb +106 -0
  331. data/test/unit/vagrant_test.rb +27 -0
  332. data/test/unit_legacy/locales/en.yml +8 -0
  333. data/test/unit_legacy/test_helper.rb +32 -0
  334. data/test/unit_legacy/vagrant/action/box/destroy_test.rb +18 -0
  335. data/test/unit_legacy/vagrant/action/box/download_test.rb +125 -0
  336. data/test/unit_legacy/vagrant/action/box/package_test.rb +25 -0
  337. data/test/unit_legacy/vagrant/action/box/unpackage_test.rb +84 -0
  338. data/test/unit_legacy/vagrant/action/box/verify_test.rb +30 -0
  339. data/test/unit_legacy/vagrant/action/env/set_test.rb +24 -0
  340. data/test/unit_legacy/vagrant/action/general/package_test.rb +268 -0
  341. data/test/unit_legacy/vagrant/action/general/validate_test.rb +31 -0
  342. data/test/unit_legacy/vagrant/action/vm/boot_test.rb +66 -0
  343. data/test/unit_legacy/vagrant/action/vm/check_accessible_test.rb +61 -0
  344. data/test/unit_legacy/vagrant/action/vm/check_box_test.rb +61 -0
  345. data/test/unit_legacy/vagrant/action/vm/check_guest_additions_test.rb +9 -0
  346. data/test/unit_legacy/vagrant/action/vm/clean_machine_folder_test.rb +84 -0
  347. data/test/unit_legacy/vagrant/action/vm/clear_forwarded_ports_test.rb +52 -0
  348. data/test/unit_legacy/vagrant/action/vm/clear_nfs_exports_test.rb +22 -0
  349. data/test/unit_legacy/vagrant/action/vm/clear_shared_folders_test.rb +40 -0
  350. data/test/unit_legacy/vagrant/action/vm/customize_test.rb +37 -0
  351. data/test/unit_legacy/vagrant/action/vm/destroy_test.rb +25 -0
  352. data/test/unit_legacy/vagrant/action/vm/destroy_unused_network_interfaces_test.rb +49 -0
  353. data/test/unit_legacy/vagrant/action/vm/discard_state_test.rb +45 -0
  354. data/test/unit_legacy/vagrant/action/vm/export_test.rb +107 -0
  355. data/test/unit_legacy/vagrant/action/vm/forward_ports_helpers_test.rb +77 -0
  356. data/test/unit_legacy/vagrant/action/vm/forward_ports_test.rb +197 -0
  357. data/test/unit_legacy/vagrant/action/vm/halt_test.rb +79 -0
  358. data/test/unit_legacy/vagrant/action/vm/host_name_test.rb +36 -0
  359. data/test/unit_legacy/vagrant/action/vm/import_test.rb +66 -0
  360. data/test/unit_legacy/vagrant/action/vm/match_mac_address_test.rb +40 -0
  361. data/test/unit_legacy/vagrant/action/vm/modify_test.rb +38 -0
  362. data/test/unit_legacy/vagrant/action/vm/network_test.rb +286 -0
  363. data/test/unit_legacy/vagrant/action/vm/nfs_helpers_test.rb +26 -0
  364. data/test/unit_legacy/vagrant/action/vm/nfs_test.rb +260 -0
  365. data/test/unit_legacy/vagrant/action/vm/package_test.rb +25 -0
  366. data/test/unit_legacy/vagrant/action/vm/package_vagrantfile_test.rb +46 -0
  367. data/test/unit_legacy/vagrant/action/vm/provision_test.rb +65 -0
  368. data/test/unit_legacy/vagrant/action/vm/provisioner_cleanup_test.rb +56 -0
  369. data/test/unit_legacy/vagrant/action/vm/resume_test.rb +35 -0
  370. data/test/unit_legacy/vagrant/action/vm/share_folders_test.rb +144 -0
  371. data/test/unit_legacy/vagrant/action/vm/suspend_test.rb +35 -0
  372. data/test/unit_legacy/vagrant/action_test.rb +89 -0
  373. data/test/unit_legacy/vagrant/box_collection_test.rb +45 -0
  374. data/test/unit_legacy/vagrant/box_test.rb +74 -0
  375. data/test/unit_legacy/vagrant/cli_test.rb +35 -0
  376. data/test/unit_legacy/vagrant/command/base_test.rb +23 -0
  377. data/test/unit_legacy/vagrant/command/group_base_test.rb +15 -0
  378. data/test/unit_legacy/vagrant/command/helpers_test.rb +88 -0
  379. data/test/unit_legacy/vagrant/command/init_test.rb +10 -0
  380. data/test/unit_legacy/vagrant/command/package_test.rb +27 -0
  381. data/test/unit_legacy/vagrant/config/base_test.rb +52 -0
  382. data/test/unit_legacy/vagrant/config/error_recorder_test.rb +18 -0
  383. data/test/unit_legacy/vagrant/config/ssh_test.rb +12 -0
  384. data/test/unit_legacy/vagrant/config/vagrant_test.rb +35 -0
  385. data/test/unit_legacy/vagrant/config/vm/provisioner_test.rb +92 -0
  386. data/test/unit_legacy/vagrant/config/vm_test.rb +47 -0
  387. data/test/unit_legacy/vagrant/config_test.rb +148 -0
  388. data/test/unit_legacy/vagrant/downloaders/http_test.rb +93 -0
  389. data/test/unit_legacy/vagrant/environment_test.rb +539 -0
  390. data/test/unit_legacy/vagrant/errors_test.rb +42 -0
  391. data/test/unit_legacy/vagrant/hosts/base_test.rb +46 -0
  392. data/test/unit_legacy/vagrant/hosts/bsd_test.rb +53 -0
  393. data/test/unit_legacy/vagrant/hosts/linux_test.rb +54 -0
  394. data/test/unit_legacy/vagrant/plugin_test.rb +9 -0
  395. data/test/unit_legacy/vagrant/provisioners/base_test.rb +63 -0
  396. data/test/unit_legacy/vagrant/provisioners/chef_client_test.rb +190 -0
  397. data/test/unit_legacy/vagrant/provisioners/chef_solo_test.rb +115 -0
  398. data/test/unit_legacy/vagrant/provisioners/chef_test.rb +209 -0
  399. data/test/unit_legacy/vagrant/provisioners/puppet_server_test.rb +68 -0
  400. data/test/unit_legacy/vagrant/provisioners/puppet_test.rb +182 -0
  401. data/test/unit_legacy/vagrant/provisioners/shell_test.rb +79 -0
  402. data/test/unit_legacy/vagrant/ssh/session_test.rb +40 -0
  403. data/test/unit_legacy/vagrant/ssh_test.rb +304 -0
  404. data/test/unit_legacy/vagrant/systems/base_test.rb +18 -0
  405. data/test/unit_legacy/vagrant/systems/linux_test.rb +104 -0
  406. data/test/unit_legacy/vagrant/util/busy_test.rb +106 -0
  407. data/test/unit_legacy/vagrant/util/counter_test.rb +29 -0
  408. data/test/unit_legacy/vagrant/util/platform_test.rb +18 -0
  409. data/test/unit_legacy/vagrant/util/stacked_proc_runner_test.rb +43 -0
  410. data/test/unit_legacy/vagrant/util/template_renderer_test.rb +145 -0
  411. data/test/unit_legacy/vagrant/vm_test.rb +300 -0
  412. data/vagrant-fixed-ssh.gemspec +70 -0
  413. metadata +712 -0
@@ -0,0 +1,42 @@
1
+ require "test_helper"
2
+
3
+ class ErrorsTest < Test::Unit::TestCase
4
+ setup do
5
+ @klass = Vagrant::Errors::VagrantError
6
+ @super = Class.new(@klass) { error_namespace("vagrant.test.errors") }
7
+ end
8
+
9
+ should "set the given status code" do
10
+ klass = Class.new(@super) { status_code(4444) }
11
+ assert_equal 4444, klass.new.status_code
12
+ end
13
+
14
+ should "raise an error if attempting to set the same status code twice" do
15
+ klass = Class.new(@super) { status_code(4445) }
16
+
17
+ assert_raises(RuntimeError) {
18
+ Class.new(@super) { status_code(4445) }
19
+ }
20
+ end
21
+
22
+ should "translate the given message if non-hash is given" do
23
+ klass = Class.new(@super)
24
+ assert_equal I18n.t("vagrant.test.errors.test_key"), klass.new("test_key").message
25
+ end
26
+
27
+ should "use the alternate namespace if given" do
28
+ klass = Class.new(@super)
29
+ instance = klass.new(:_key => :test_key, :_namespace => "vagrant.test.alternate")
30
+ assert_equal I18n.t("vagrant.test.alternate.test_key"), instance.message
31
+ end
32
+
33
+ should "use the translation from I18n if specified" do
34
+ klass = Class.new(@super) { error_key(:test_key) }
35
+ assert_equal I18n.t("vagrant.test.errors.test_key"), klass.new.message
36
+ end
37
+
38
+ should "use the translation with the options specified if key given" do
39
+ klass = Class.new(@super) { error_key(:test_key_with_interpolation) }
40
+ assert_equal I18n.t("vagrant.test.errors.test_key_with_interpolation", :key => "yo"), klass.new(:key => "yo").message
41
+ end
42
+ end
@@ -0,0 +1,46 @@
1
+ require "test_helper"
2
+
3
+ class BaseHostTest < Test::Unit::TestCase
4
+ setup do
5
+ @klass = Vagrant::Hosts::Base
6
+ end
7
+
8
+ context "class methods" do
9
+ context "loading" do
10
+ setup do
11
+ @env = vagrant_env
12
+ end
13
+
14
+ should "return detected class if klass is nil" do
15
+ Vagrant::Util::Platform.stubs(:platform).returns("darwin")
16
+ result = @klass.load(@env, nil)
17
+ assert result.is_a?(Vagrant::Hosts::BSD)
18
+ end
19
+
20
+ should "instantiate the given class" do
21
+ result = @klass.load(@env, Vagrant::Hosts::BSD)
22
+ assert result.is_a?(Vagrant::Hosts::BSD)
23
+ assert_equal @env, result.env
24
+ end
25
+ end
26
+
27
+ context "detecting class" do
28
+ should "return the proper class" do
29
+ Vagrant::Util::Platform.stubs(:platform).returns("darwin10")
30
+ assert_equal Vagrant::Hosts::BSD, @klass.detect
31
+ end
32
+
33
+ should "return nil if no class is detected" do
34
+ Vagrant::Util::Platform.stubs(:platform).returns("boo")
35
+ assert_nil @klass.detect
36
+ end
37
+
38
+ should "return nil if an exception is raised" do
39
+ Vagrant::Util::Platform.stubs(:platform).returns("boo")
40
+ assert_nothing_raised {
41
+ assert_nil @klass.detect
42
+ }
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,53 @@
1
+ require "test_helper"
2
+
3
+ class BSDHostTest < Test::Unit::TestCase
4
+ setup do
5
+ @klass = Vagrant::Hosts::BSD
6
+ @env = vagrant_env
7
+ @instance = @klass.new(@env.vms.values.first.env)
8
+ end
9
+
10
+ context "supporting nfs check" do
11
+ should "support NFS" do
12
+ @instance.expects(:system).returns(true)
13
+ assert @instance.nfs?
14
+ end
15
+
16
+ should "not support NFS if nfsd is not found" do
17
+ @instance.expects(:system).returns(false)
18
+ assert !@instance.nfs?
19
+ end
20
+
21
+ should "retry until a boolean is returned" do
22
+ seq = sequence("seq")
23
+ @instance.expects(:system).in_sequence(seq).raises(TypeError.new("foo"))
24
+ @instance.expects(:system).in_sequence(seq).returns(true)
25
+ assert @instance.nfs?
26
+ end
27
+ end
28
+
29
+ context "nfs export" do
30
+ setup do
31
+ @instance.stubs(:system)
32
+
33
+ @ip = "foo"
34
+ @folders = "bar"
35
+ end
36
+
37
+ should "output the lines of the rendered template" do
38
+ output = %W[foo bar baz].join("\n")
39
+ Vagrant::Util::TemplateRenderer.expects(:render).with("nfs/exports",
40
+ :uuid => @instance.env.vm.uuid,
41
+ :ip => @ip,
42
+ :folders => @folders).returns(output)
43
+
44
+ @instance.expects(:system).times(output.split("\n").length)
45
+ @instance.expects(:system).with("sudo nfsd restart")
46
+ @instance.nfs_export(@ip, @folders)
47
+ end
48
+ end
49
+
50
+ context "nfs cleanup" do
51
+ # TODO: How to test all the system calls?
52
+ end
53
+ end
@@ -0,0 +1,54 @@
1
+ require "test_helper"
2
+
3
+ class LinuxHostTest < Test::Unit::TestCase
4
+ setup do
5
+ @klass = Vagrant::Hosts::Linux
6
+ @env = vagrant_env
7
+
8
+ @instance = @klass.new(@env.vms.values.first.env)
9
+ end
10
+
11
+ context "supporting nfs check" do
12
+ should "support NFS" do
13
+ @instance.expects(:system).returns(true)
14
+ assert @instance.nfs?
15
+ end
16
+
17
+ should "not support NFS if nfsd is not found" do
18
+ @instance.expects(:system).returns(false)
19
+ assert !@instance.nfs?
20
+ end
21
+
22
+ should "retry until a boolean is returned" do
23
+ seq = sequence("seq")
24
+ @instance.expects(:system).in_sequence(seq).raises(TypeError.new("foo"))
25
+ @instance.expects(:system).in_sequence(seq).returns(true)
26
+ assert @instance.nfs?
27
+ end
28
+ end
29
+
30
+ context "nfs export" do
31
+ setup do
32
+ @instance.stubs(:system)
33
+
34
+ @ip = "foo"
35
+ @folders = "bar"
36
+ end
37
+
38
+ should "output the lines of the rendered template" do
39
+ output = %W[foo bar baz].join("\n")
40
+ Vagrant::Util::TemplateRenderer.expects(:render).with("nfs/exports_linux",
41
+ :uuid => @instance.env.vm.uuid,
42
+ :ip => @ip,
43
+ :folders => @folders).returns(output)
44
+
45
+ @instance.expects(:system).times(output.split("\n").length)
46
+ @instance.expects(:system).with("sudo /etc/init.d/nfs-kernel-server restart")
47
+ @instance.nfs_export(@ip, @folders)
48
+ end
49
+ end
50
+
51
+ context "nfs cleanup" do
52
+ # TODO: How to test all the system calls?
53
+ end
54
+ end
@@ -0,0 +1,9 @@
1
+ require "test_helper"
2
+
3
+ class PluginTest < Test::Unit::TestCase
4
+ setup do
5
+ @klass = Vagrant::Plugin
6
+ end
7
+
8
+ # This is a pretty tough class to test. TODO.
9
+ end
@@ -0,0 +1,63 @@
1
+ require "test_helper"
2
+
3
+ class BaseProvisionerTest < Test::Unit::TestCase
4
+ setup do
5
+ @klass = Vagrant::Provisioners::Base
6
+ end
7
+
8
+ should "include the util class so subclasses have access to it" do
9
+ assert Vagrant::Provisioners::Base.include?(Vagrant::Util)
10
+ end
11
+
12
+ context "registering provisioners" do
13
+ teardown do
14
+ @klass.registered.delete(:zomg)
15
+ end
16
+
17
+ should "not have unregistered provisioners" do
18
+ assert_nil @klass.registered[:foo]
19
+ end
20
+
21
+ should "be able to register a provisioner" do
22
+ foo = Class.new(@klass) do
23
+ register :zomg
24
+ end
25
+
26
+ assert_equal foo, @klass.registered[:zomg]
27
+ end
28
+ end
29
+
30
+ context "base instance" do
31
+ setup do
32
+ @env = Vagrant::Action::Environment.new(vagrant_env)
33
+ @config = mock("config")
34
+ @base = Vagrant::Provisioners::Base.new(@env, @config)
35
+ end
36
+
37
+ should "set the environment" do
38
+ assert_equal @env.env, @base.env
39
+ end
40
+
41
+ should "return the VM which the provisioner is acting on" do
42
+ assert_equal @env.env.vm, @base.vm
43
+ end
44
+
45
+ should "provide access to the config" do
46
+ assert_equal @config, @base.config
47
+ end
48
+
49
+ should "implement provision! which does nothing" do
50
+ assert_nothing_raised do
51
+ assert @base.respond_to?(:provision!)
52
+ @base.provision!
53
+ end
54
+ end
55
+
56
+ should "implement prepare which does nothing" do
57
+ assert_nothing_raised do
58
+ assert @base.respond_to?(:prepare)
59
+ @base.prepare
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,190 @@
1
+ require "test_helper"
2
+
3
+ class ChefClientProvisionerTest < Test::Unit::TestCase
4
+ setup do
5
+ @klass = Vagrant::Provisioners::ChefClient
6
+
7
+ @action_env = Vagrant::Action::Environment.new(vagrant_env.vms[:default].env)
8
+
9
+ @config = @klass::Config.new
10
+ @action = @klass.new(@action_env, @config)
11
+ @env = @action.env
12
+ @vm = @action.vm
13
+ end
14
+
15
+ context "config validation" do
16
+ setup do
17
+ @errors = Vagrant::Config::ErrorRecorder.new
18
+
19
+ @config.run_list = ["foo"]
20
+ @config.chef_server_url = "foo"
21
+ @config.validation_key_path = "foo"
22
+ end
23
+
24
+ should "be invalid if run list is empty" do
25
+ @config.run_list = []
26
+ @config.validate(@errors)
27
+ assert !@errors.errors.empty?
28
+ end
29
+
30
+ should "be invalid if run list is empty" do
31
+ @config.chef_server_url = nil
32
+ @config.validate(@errors)
33
+ assert !@errors.errors.empty?
34
+ end
35
+
36
+ should "be invalid if run list is empty" do
37
+ @config.validation_key_path = nil
38
+ @config.validate(@errors)
39
+ assert !@errors.errors.empty?
40
+ end
41
+ end
42
+
43
+ context "provisioning" do
44
+ should "run the proper sequence of methods in order" do
45
+ prov_seq = sequence("prov_seq")
46
+ @action.expects(:verify_binary).with("chef-client").once.in_sequence(prov_seq)
47
+ @action.expects(:chown_provisioning_folder).once.in_sequence(prov_seq)
48
+ @action.expects(:create_client_key_folder).once.in_sequence(prov_seq)
49
+ @action.expects(:upload_validation_key).once.in_sequence(prov_seq)
50
+ @action.expects(:setup_json).once.in_sequence(prov_seq)
51
+ @action.expects(:setup_server_config).once.in_sequence(prov_seq)
52
+ @action.expects(:run_chef_client).once.in_sequence(prov_seq)
53
+ @action.provision!
54
+ end
55
+ end
56
+
57
+ context "preparing" do
58
+ setup do
59
+ File.stubs(:file?).returns(true)
60
+ end
61
+
62
+ should "not raise an exception if validation_key_path is set" do
63
+ @config.validation_key_path = "7"
64
+ @config.chef_server_url = "7"
65
+
66
+ assert_nothing_raised { @action.prepare }
67
+ end
68
+
69
+ should "raise an exception if validation_key_path is nil" do
70
+ @config.validation_key_path = nil
71
+
72
+ assert_raises(Vagrant::Provisioners::Chef::ChefError) {
73
+ @action.prepare
74
+ }
75
+ end
76
+
77
+ should "not raise an exception if validation_key_path does exist" do
78
+ @config.validation_key_path = vagrantfile(tmp_path)
79
+ @config.chef_server_url = "7"
80
+
81
+ assert_nothing_raised { @action.prepare }
82
+ end
83
+
84
+ should "raise an exception if validation_key_path doesn't exist" do
85
+ @config.validation_key_path = "7"
86
+ @config.chef_server_url = "7"
87
+
88
+ File.expects(:file?).with(@action.validation_key_path).returns(false)
89
+ assert_raises(Vagrant::Provisioners::Chef::ChefError) {
90
+ @action.prepare
91
+ }
92
+ end
93
+
94
+ should "not raise an exception if chef_server_url is set" do
95
+ @config.validation_key_path = vagrantfile(tmp_path)
96
+ @config.chef_server_url = "7"
97
+
98
+ assert_nothing_raised { @action.prepare }
99
+ end
100
+
101
+ should "raise an exception if chef_server_url is nil" do
102
+ @config.chef_server_url = nil
103
+
104
+ assert_raises(Vagrant::Provisioners::Chef::ChefError) {
105
+ @action.prepare
106
+ }
107
+ end
108
+ end
109
+
110
+ context "creating the client key folder" do
111
+ setup do
112
+ @raw_path = "/foo/bar/baz.pem"
113
+ @config.client_key_path = @raw_path
114
+
115
+ @path = Pathname.new(@raw_path)
116
+ end
117
+
118
+ should "create the folder using the dirname of the path" do
119
+ ssh = mock("ssh")
120
+ ssh.expects(:sudo!).with("mkdir -p #{@path.dirname}").once
121
+ @vm.ssh.expects(:execute).yields(ssh)
122
+ @action.create_client_key_folder
123
+ end
124
+ end
125
+
126
+ context "uploading the validation key" do
127
+ should "upload the validation key to the provisioning path" do
128
+ @action.expects(:validation_key_path).once.returns("foo")
129
+ @action.expects(:guest_validation_key_path).once.returns("bar")
130
+ @vm.ssh.expects(:upload!).with("foo", "bar").once
131
+ @action.upload_validation_key
132
+ end
133
+ end
134
+
135
+ context "the validation key path" do
136
+ should "expand the configured key path" do
137
+ result = mock("result")
138
+ File.expects(:expand_path).with(@config.validation_key_path, @env.root_path).once.returns(result)
139
+ assert_equal result, @action.validation_key_path
140
+ end
141
+ end
142
+
143
+ context "the guest validation key path" do
144
+ should "be the provisioning path joined with validation.pem" do
145
+ result = mock("result")
146
+ File.expects(:join).with(@config.provisioning_path, "validation.pem").once.returns(result)
147
+ assert_equal result, @action.guest_validation_key_path
148
+ end
149
+ end
150
+
151
+ context "generating and uploading chef client configuration file" do
152
+ setup do
153
+ @action.stubs(:guest_validation_key_path).returns("foo")
154
+ end
155
+
156
+ should "call setup_config with proper variables" do
157
+ @action.expects(:setup_config).with("chef_server_client", "client.rb", {
158
+ :node_name => @config.node_name,
159
+ :chef_server_url => @config.chef_server_url,
160
+ :validation_client_name => @config.validation_client_name,
161
+ :validation_key => @action.guest_validation_key_path,
162
+ :client_key => @config.client_key_path,
163
+ :file_cache_path => @config.file_cache_path,
164
+ :file_backup_path => @config.file_backup_path,
165
+ :environment => @config.environment,
166
+ :encrypted_data_bag_secret => @config.encrypted_data_bag_secret
167
+ })
168
+
169
+ @action.setup_server_config
170
+ end
171
+ end
172
+
173
+ context "running chef client" do
174
+ setup do
175
+ @ssh = mock("ssh")
176
+ @vm.ssh.stubs(:execute).yields(@ssh)
177
+ end
178
+
179
+ should "run chef client" do
180
+ @ssh.expects(:sudo!).with("chef-client -c #{@config.provisioning_path}/client.rb -j #{@config.provisioning_path}/dna.json").once
181
+ @action.run_chef_client
182
+ end
183
+
184
+ should "check the exit status if that is given" do
185
+ @ssh.stubs(:sudo!).yields(nil, :exit_status, :foo)
186
+ @ssh.expects(:check_exit_status).with(:foo, anything).once
187
+ @action.run_chef_client
188
+ end
189
+ end
190
+ end