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,81 @@
1
+ {% macro change(c) %}
2
+
3
+ <table class="zebra-striped">
4
+ <tbody>
5
+ <tr>
6
+ <td class="left">Changed by</td>
7
+ <td><b>{{ c.who|email }}</b></td>
8
+ </tr>
9
+
10
+ <tr>
11
+ <td class="left">Changed at</td>
12
+ <td><b>{{ c.at }}</b></td>
13
+ </tr>
14
+
15
+ {% if c.repository %}
16
+ <tr>
17
+ <td class="left">Repository</td>
18
+ <td><b>{{ c.repository|repolink }}</b></td>
19
+ </tr>
20
+ {% endif %}
21
+
22
+ {% if c.project %}
23
+ <tr>
24
+ <td class="left">Project</td>
25
+ <td><b>{{ c.project|projectlink }}</b></td>
26
+ </tr>
27
+ {% endif %}
28
+
29
+ {% if c.branch %}
30
+ <tr>
31
+ <td class="left">Branch</td>
32
+ <td><b>{{ c.branch|e }}</b></td>
33
+ </tr>
34
+ {% endif %}
35
+
36
+ {% if c.rev %}
37
+ <tr>
38
+ <td class="left">Revision</td>
39
+ <td>{%- if c.revlink -%}<a href="{{ c.revlink }}">{{ c.rev|e }}</a>
40
+ {%- else -%}{{ c.rev|revlink(c.repository) }} {%- endif -%}</td>
41
+ </tr>
42
+ {% endif %}
43
+ </tbody>
44
+ </table>
45
+
46
+ {% if c.comments %}
47
+ <h3>Comments</h3>
48
+ <pre>{{ c.comments|changecomment(c.project) }}</pre>
49
+ {% endif %}
50
+
51
+ <h3>Changed files</h3>
52
+ <ul>
53
+ {% for f in c.files -%}
54
+ <li>
55
+ {%- if f.url %}
56
+ <a href="{{ f.url }}">{{ f.name|e }}</a>
57
+ {%- else %}
58
+ {{ f.name|e }}
59
+ {%- endif -%}
60
+ </li>
61
+ {% else %}
62
+ <li>no files</li>
63
+ {% endfor %}
64
+ </ul>
65
+
66
+ {% if c.properties %}
67
+ <h3>Properties</h3>
68
+ <table class="zebra-striped">
69
+ {% for p in c.properties %}
70
+ <tr>
71
+ <td class="left">{{ p[0]|capitalize|e }}</td>
72
+ <td>{{ p[1]|e }}</td>
73
+ </tr>
74
+ {% endfor %}
75
+ </table>
76
+ {% endif %}
77
+ {%- endmacro %}
78
+
79
+ {% macro box_contents(who, url, pageTitle) -%}
80
+ <a href="{{ url }}" title="{{ pageTitle|e }}">{{ who|user }}</a>
81
+ {%- endmacro %}
@@ -0,0 +1,300 @@
1
+ {% macro auth() %}
2
+ <div class="clearfix">
3
+ <label for="username">Your username:</label>
4
+ <div class="input">
5
+ <input type="text" name="username"/>
6
+ </div>
7
+ </div>
8
+
9
+ <div class="clearfix">
10
+ <label for="password">Your password:</label>
11
+ <div class="input">
12
+ <input type="password" name="passwd"/>
13
+ </div>
14
+ </div>
15
+ {% endmacro %}
16
+
17
+ {% macro cancel_pending_build(cancel_url, authz, short=False, id='all') %}
18
+ {% if not short or not authz.needAuthForm('cancelPendingBuild') %}
19
+ <form method="post" name="cancel" action="{{ cancel_url }}" class='command cancelbuild'
20
+ {{ 'style="display:inline"' if short else '' }}>
21
+ {% if not short %}
22
+ {% if on_all %}
23
+ <p>To cancel all builds, fill out the following fields and
24
+ push the 'Cancel' button</p>
25
+ {% else %}
26
+ <p>To cancel this build, fill out the following fields and
27
+ push the 'Cancel' button</p>
28
+ {% endif %}
29
+ {% endif %}
30
+
31
+ {% if authz.needAuthForm('cancelPendingBuild') %}
32
+ {{ auth() }}
33
+ {% elif not short %}
34
+ <p>To cancel individual builds, click the 'Cancel' buttons above.</p>
35
+ {% endif %}
36
+
37
+ <input type="hidden" name="id" value="{{ id }}" />
38
+
39
+ <div class="actions">
40
+ <input type="submit" class="btn" value="Cancel" />
41
+ </div>
42
+ </form>
43
+ {% endif %}
44
+ {% endmacro %}
45
+
46
+ {% macro stop_change_builds(stopchange_url, changenum, authz) %}
47
+ {% if not changenum or not authz.needAuthForm('stopChange') %}
48
+ <form method="post" action="{{ stopchange_url }}" class='command stopchange'>
49
+ {% if changenum %}
50
+ <p>To cancel all builds for this change, push the 'Cancel' button</p>
51
+ {% else %}
52
+ <p>To cancel builds for this builder for a given change, fill out all
53
+ fields and push the 'Cancel' button</p>
54
+ {% endif %}
55
+
56
+ {% if authz.needAuthForm('cancelPendingBuild') %}
57
+ {{ auth() }}
58
+ {% endif %}
59
+
60
+ {% if changenum %}
61
+ <input type="hidden" name="change" value="{{ changenum }}" />
62
+ {% else %}
63
+ <div class="row">
64
+ <span class="label">Change #:</span>
65
+ <input type="text" name="change"/>
66
+ </div>
67
+ {% endif %}
68
+ <input type="submit" value="Cancel" />
69
+ </form>
70
+ {% endif %}
71
+ {% endmacro %}
72
+
73
+ {% macro stop_build(stop_url, authz, on_all=False, on_selected=False, builders=[], short=False, label="Build") %}
74
+ {% if not short or not authz.needAuthForm('stopBuild') %}
75
+ <form method="post" name="stop_build" action="{{ stop_url }}" class='command stopbuild'
76
+ {{ 'style="display:inline"' if short else '' }}>
77
+ {% if not short %}
78
+ {% if on_all %}
79
+ <p>To stop all builds, fill out the following field and
80
+ push the <i>Stop {{ label }}</i> button</p>
81
+ {% elif on_selected %}
82
+ <p>To stop selected builds, select the builders, fill out the
83
+ following field and push the <i>Stop {{ label }}</i> button</p>
84
+ <table>
85
+ {% for b in builders %}
86
+ <tr>
87
+ <td align="center"><input type="checkbox" name="selected" value="{{ b.name }}"></td>
88
+ <td class="box"><a href="{{ b.link }}">{{ b.name|e }}</a></td>
89
+ </tr>
90
+ {% endfor %}
91
+ </table>
92
+
93
+ {% else %}
94
+ <p>To stop this build, fill out the following field and
95
+ push the <i>Stop {{ label }}</i> button</p>
96
+ {% endif %}
97
+ {% endif %}
98
+
99
+ {% if authz.needAuthForm('stopBuild') %}
100
+ {{ auth() }}
101
+ {% endif %}
102
+
103
+ {% if not short %}
104
+ <div class="clearfix">
105
+ <label for="comments">Reason</label>
106
+ <div class="input">
107
+ <input type="text" name="comments" />
108
+ </div>
109
+ </div>
110
+ {% endif %}
111
+
112
+ <div class="actions">
113
+ <input type="submit" class="btn primary" value="Stop" />
114
+ </div>
115
+ </form>
116
+ {% endif %}
117
+ {% endmacro %}
118
+
119
+ {% macro force_build(force_url, authz, on_all=False, on_selected=False, builders=[]) %}
120
+ <form method="post" name="force_build" action="{{ force_url }}" class="command forcebuild">
121
+
122
+ {% if on_all %}
123
+ <p>To force a build on <strong>all Builders</strong>, fill out the following fields
124
+ and push the 'Force Build' button</p>
125
+ {% elif on_selected %}
126
+ <p>To force a build on <strong>certain Builders</strong>, select the
127
+ builders, fill out the following fields and push the
128
+ 'Force Build' button</p>
129
+
130
+ <table>
131
+ {% for b in builders %}
132
+ <tr>
133
+ <td align="center"><input type="checkbox" name="selected" value="{{ b.name }}"></td>
134
+ <td class="box"><a href="{{ b.link }}">{{ b.name|e }}</a></td>
135
+ </tr>
136
+ {% endfor %}
137
+ </table>
138
+
139
+ {% else %}
140
+ <p>To force a build, fill out the following fields and
141
+ push the 'Force Build' button</p>
142
+ {% endif %}
143
+
144
+ {% if authz.needAuthForm('forceBuild') %}
145
+ {{ auth() }}
146
+ {% else %}
147
+ <div class="clearfix">
148
+ <label for="username">Your name</label>
149
+ <div class="input">
150
+ <input type="text" name="username" />
151
+ </div>
152
+ </div>
153
+ {% endif %}
154
+
155
+ <div class="clearfix">
156
+ <label for="comments">Reason for build</label>
157
+ <div class="input">
158
+ <input type="text" name="comments" />
159
+ </div>
160
+ </div>
161
+
162
+ <div class="clearfix">
163
+ <label for="branch">Branch to build</label>
164
+ <div class="input">
165
+ <input type="text" name="branch" />
166
+ </div>
167
+ </div>
168
+
169
+ <div class="clearfix">
170
+ <label for="revision">Revision to build</label>
171
+ <div class="input">
172
+ <input type="text" name="revision" />
173
+ </div>
174
+ </div>
175
+
176
+ <div class="clearfix">
177
+ <label for="repository">Repository to build</label>
178
+ <div class="input">
179
+ <input type="text" name="repository" />
180
+ </div>
181
+ </div>
182
+
183
+ <div class="clearfix">
184
+ <label for="project">Project to build</label>
185
+ <div class="input">
186
+ <input type="text" name="project" />
187
+ </div>
188
+ </div>
189
+
190
+ <div class="actions">
191
+ <input type="submit" class="btn" value="Force Build" />
192
+ </div>
193
+ </form>
194
+ {% endmacro %}
195
+
196
+ {% macro graceful_shutdown(shutdown_url, authz) %}
197
+ <form method="post" action="{{ shutdown_url }}" class='command graceful_shutdown'>
198
+
199
+ <p>To cause this slave to shut down gracefully when it is idle,
200
+ push the 'Graceful Shutdown' button</p>
201
+
202
+ {% if authz.needAuthForm('gracefulShutdown') %}
203
+ {{ auth() }}
204
+ {% endif %}
205
+
206
+ <input type="submit" value="Graceful Shutdown" />
207
+ </form>
208
+ {% endmacro %}
209
+
210
+ {% macro clean_shutdown(shutdown_url, authz) %}
211
+ <form method="post" action="{{ shutdown_url }}" class='command clean_shutdown'>
212
+ <p>To cause this master to shut down cleanly, push the 'Clean Shutdown' button.</p>
213
+ <p>No other builds will be started on this master, and the master will
214
+ stop once all current builds are finished.</p>
215
+
216
+ {% if authz.needAuthForm('gracefulShutdown') %}
217
+ {{ auth() }}
218
+ {% endif %}
219
+
220
+ <input type="submit" value="Clean Shutdown" />
221
+ </form>
222
+ {% endmacro %}
223
+
224
+ {% macro cancel_clean_shutdown(cancel_shutdown_url, authz) %}
225
+ <form method="post" action="{{ cancel_shutdown_url }}" class='command cancel_clean_shutdown'>
226
+ <p>To cancel a previously initiated shutdown, push the 'Cancel Shutdown' button.</p>
227
+
228
+ {% if authz.needAuthForm('gracefulShutdown') %}
229
+ {{ auth() }}
230
+ {% endif %}
231
+
232
+ <input type="submit" value="Cancel Shutdown" />
233
+ </form>
234
+ {% endmacro %}
235
+
236
+ {% macro ping_builder(ping_url, authz) %}
237
+ <form method="post" action="{{ ping_url }}" class='command ping_builder'>
238
+ <p>To ping the buildslave(s), push the 'Ping' button</p>
239
+
240
+ {% if authz.needAuthForm('gracefulShutdown') %}
241
+ {{ auth() }}
242
+ {% endif %}
243
+
244
+ <input type="submit" class="btn" value="Ping Builder" />
245
+ </form>
246
+ {% endmacro %}
247
+
248
+ {% macro rebuild_build(rebuild_url, authz, exactly, ss) %}
249
+ <form method="post" action="{{ rebuild_url }}" class="command rebuild">
250
+
251
+ {% if exactly %}
252
+ <p>This tree was built from a specific set of
253
+ source files, and can be rebuilt exactly</p>
254
+ {% else %}
255
+ <p>This tree was built from the most recent revision
256
+ {% if ss.branch %}
257
+ (along branch {{ ss.branch }})
258
+ {% endif %}
259
+ and thus it might not be possible to rebuild it
260
+ exactly. <br/>Any changes that have been committed
261
+ after this build was started <b>will</b> be
262
+ included in a rebuild.</p>
263
+ {% endif %}
264
+
265
+
266
+ {% if on_all %}
267
+ <p>To force a build on <strong>all Builders</strong>, fill out the following fields
268
+ and push the 'Force Build' button</p>
269
+ {% else %}
270
+ <p>To force a build, fill out the following fields and
271
+ push the 'Force Build' button</p>
272
+ {% endif %}
273
+
274
+ {% if authz.needAuthForm('forceBuild') %}
275
+ {{ auth() }}
276
+ {% endif %}
277
+ <div class="clearfix">
278
+ <label for="comments">Reason for build</label>
279
+ <div class="input">
280
+ <input type="text" name="comments" />
281
+ </div>
282
+ </div>
283
+
284
+ <div class="actions">
285
+ <input type="submit" class="btn primary" value="Rebuild" />
286
+ </div>
287
+ </form>
288
+ {% endmacro %}
289
+
290
+ {% macro show_users(users_url, authz) %}
291
+ <form method="post" action="{{ users_url }}" class='command show_users'>
292
+ <p>To show users, press the 'Show Users' button</p>
293
+
294
+ {% if authz.needAuthForm('showUsersPage') %}
295
+ {{ auth() }}
296
+ {% endif %}
297
+
298
+ <input type="submit" value="Show Users" />
299
+ </form>
300
+ {% endmacro %}
@@ -0,0 +1,42 @@
1
+ {% extends "layouts/base.html" %}
2
+
3
+ {% block content %}
4
+ <div class="alert-message warning">
5
+ <strong>Vagrant CI is under construction!</strong> This site is still
6
+ brand new and the exact builders, build slaves, and stability of the CI
7
+ will be in flux for the next few weeks.
8
+ </div>
9
+
10
+ <img src="/static/images/vagrant_looking.png" class="right" />
11
+
12
+ <p>
13
+ <strong>Vagrant CI, keeping Vagrant stable every step of the way.</strong>
14
+ </p>
15
+
16
+ <p>
17
+ Welcome to the CI for <a href="http://vagrantup.com">Vagrant</a>, a tool
18
+ for building and distributing virtualized environments. In order to maintain
19
+ the level of stability that users of Vagrant have come to expect, this
20
+ CI system will run a wide range of tests against all commits to the
21
+ <a href="https://github.com/mitchellh/vagrant">Vagrant project</a>.
22
+ </p>
23
+
24
+ <p>
25
+ Here is a brief overview of the pages you may be interested in:
26
+ </p>
27
+
28
+ <ul>
29
+ <li>
30
+ <a href="/waterfall">Waterfall</a> - This page will show you the status
31
+ of all the builders in reverse chronological order so you can see what
32
+ the CI is up to at this moment.
33
+ </li>
34
+ <li>
35
+ <a href="/builders">Builders</a> - This page will show you the various
36
+ builders. Builders are the things which know how to perform one kind of
37
+ build (unit tests, acceptance tests, etc.). From here you can also see the
38
+ status of the last build for each builder as well as the current status
39
+ of the builder.
40
+ </li>
41
+ </ul>
42
+ {% endblock %}
@@ -0,0 +1,53 @@
1
+ {% extends "layouts/base.html" %}
2
+ {% from "macros/box.html" import box %}
3
+
4
+ {% block content %}
5
+ <p>
6
+ This is the Waterfall page. It shows the status of various builders in
7
+ reverse chronological order. This allows you to see the most recent builds
8
+ and their current status. You can additionally see the commits as they come
9
+ in to the project.
10
+ </p>
11
+
12
+ <table class="bordered-table Module waterfall">
13
+ <thead>
14
+ <tr>
15
+ <th colspan="2">Builder</th>
16
+ {% for b in builders %}
17
+ <th class="{{ b.top_class }}">
18
+ <a href="{{ b.url }}">{{ b.name }}</a><br />
19
+ {{ " ".join(b.top) }}
20
+ </th>
21
+ {% endfor %}
22
+ </tr>
23
+ </thead>
24
+ <tbody>
25
+ <tr>
26
+ <th colspan="2">Current Activity</th>
27
+ {% for b in builders %}
28
+ <td class="{{ b.status_class }}">
29
+ {{ "<br />".join(b.status) }}
30
+ </td>
31
+ {% endfor %}
32
+ </tr>
33
+
34
+ <tr>
35
+ <th>Time ({{ tz }})</th>
36
+ <th>Changes</th>
37
+ {% for b in builders %}
38
+ <td>&nbsp;</td>
39
+ {% endfor %}
40
+ </tr>
41
+
42
+ {% for i in range(gridlen) -%}
43
+ <tr>
44
+ {% for strip in grid -%}
45
+ {%- if strip[i] -%}{{ box(**strip[i]) }}
46
+ {%- elif no_bubble -%}{{ box() }}
47
+ {%- endif -%}
48
+ {%- endfor -%}
49
+ </tr>
50
+ {% endfor %}
51
+ </tbody>
52
+ </table>
53
+ {% endblock %}