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.
- data/.gitignore +46 -0
- data/.yardopts +1 -0
- data/CHANGELOG.md +723 -0
- data/Gemfile +3 -0
- data/LICENSE +22 -0
- data/README.md +121 -0
- data/Rakefile +18 -0
- data/bin/vagrant +60 -0
- data/config/default.rb +30 -0
- data/contrib/README.md +12 -0
- data/contrib/emacs/vagrant.el +8 -0
- data/contrib/vim/vagrantfile.vim +9 -0
- data/keys/README.md +17 -0
- data/keys/vagrant +27 -0
- data/keys/vagrant.pub +1 -0
- data/lib/vagrant.rb +197 -0
- data/lib/vagrant/action.rb +63 -0
- data/lib/vagrant/action/box/destroy.rb +25 -0
- data/lib/vagrant/action/box/download.rb +84 -0
- data/lib/vagrant/action/box/package.rb +19 -0
- data/lib/vagrant/action/box/unpackage.rb +61 -0
- data/lib/vagrant/action/box/verify.rb +23 -0
- data/lib/vagrant/action/builder.rb +128 -0
- data/lib/vagrant/action/builtin.rb +171 -0
- data/lib/vagrant/action/env/set.rb +21 -0
- data/lib/vagrant/action/environment.rb +12 -0
- data/lib/vagrant/action/general/check_virtualbox.rb +28 -0
- data/lib/vagrant/action/general/package.rb +101 -0
- data/lib/vagrant/action/general/validate.rb +18 -0
- data/lib/vagrant/action/runner.rb +53 -0
- data/lib/vagrant/action/vm/boot.rb +53 -0
- data/lib/vagrant/action/vm/check_accessible.rb +23 -0
- data/lib/vagrant/action/vm/check_box.rb +33 -0
- data/lib/vagrant/action/vm/check_guest_additions.rb +38 -0
- data/lib/vagrant/action/vm/check_port_collisions.rb +89 -0
- data/lib/vagrant/action/vm/clean_machine_folder.rb +43 -0
- data/lib/vagrant/action/vm/clear_forwarded_ports.rb +18 -0
- data/lib/vagrant/action/vm/clear_network_interfaces.rb +31 -0
- data/lib/vagrant/action/vm/clear_shared_folders.rb +18 -0
- data/lib/vagrant/action/vm/customize.rb +36 -0
- data/lib/vagrant/action/vm/default_name.rb +22 -0
- data/lib/vagrant/action/vm/destroy.rb +19 -0
- data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +20 -0
- data/lib/vagrant/action/vm/discard_state.rb +22 -0
- data/lib/vagrant/action/vm/export.rb +57 -0
- data/lib/vagrant/action/vm/forward_ports.rb +92 -0
- data/lib/vagrant/action/vm/halt.rb +32 -0
- data/lib/vagrant/action/vm/host_name.rb +21 -0
- data/lib/vagrant/action/vm/import.rb +48 -0
- data/lib/vagrant/action/vm/match_mac_address.rb +21 -0
- data/lib/vagrant/action/vm/network.rb +403 -0
- data/lib/vagrant/action/vm/nfs.rb +196 -0
- data/lib/vagrant/action/vm/package.rb +23 -0
- data/lib/vagrant/action/vm/package_vagrantfile.rb +36 -0
- data/lib/vagrant/action/vm/provision.rb +61 -0
- data/lib/vagrant/action/vm/provisioner_cleanup.rb +26 -0
- data/lib/vagrant/action/vm/prune_nfs_exports.rb +20 -0
- data/lib/vagrant/action/vm/resume.rb +20 -0
- data/lib/vagrant/action/vm/sane_defaults.rb +78 -0
- data/lib/vagrant/action/vm/setup_package_files.rb +54 -0
- data/lib/vagrant/action/vm/share_folders.rb +114 -0
- data/lib/vagrant/action/vm/suspend.rb +20 -0
- data/lib/vagrant/action/warden.rb +92 -0
- data/lib/vagrant/box.rb +44 -0
- data/lib/vagrant/box_collection.rb +58 -0
- data/lib/vagrant/cli.rb +76 -0
- data/lib/vagrant/command.rb +24 -0
- data/lib/vagrant/command/base.rb +167 -0
- data/lib/vagrant/command/box.rb +58 -0
- data/lib/vagrant/command/box_add.rb +37 -0
- data/lib/vagrant/command/box_list.rb +28 -0
- data/lib/vagrant/command/box_remove.rb +27 -0
- data/lib/vagrant/command/box_repackage.rb +27 -0
- data/lib/vagrant/command/destroy.rb +64 -0
- data/lib/vagrant/command/gem.rb +39 -0
- data/lib/vagrant/command/halt.rb +39 -0
- data/lib/vagrant/command/init.rb +40 -0
- data/lib/vagrant/command/package.rb +75 -0
- data/lib/vagrant/command/provision.rb +40 -0
- data/lib/vagrant/command/reload.rb +39 -0
- data/lib/vagrant/command/resume.rb +33 -0
- data/lib/vagrant/command/ssh.rb +90 -0
- data/lib/vagrant/command/ssh_config.rb +51 -0
- data/lib/vagrant/command/start_mixins.rb +26 -0
- data/lib/vagrant/command/status.rb +36 -0
- data/lib/vagrant/command/suspend.rb +33 -0
- data/lib/vagrant/command/up.rb +40 -0
- data/lib/vagrant/communication.rb +7 -0
- data/lib/vagrant/communication/base.rb +56 -0
- data/lib/vagrant/communication/ssh.rb +230 -0
- data/lib/vagrant/config.rb +49 -0
- data/lib/vagrant/config/base.rb +82 -0
- data/lib/vagrant/config/container.rb +37 -0
- data/lib/vagrant/config/error_recorder.rb +19 -0
- data/lib/vagrant/config/loader.rb +127 -0
- data/lib/vagrant/config/nfs.rb +8 -0
- data/lib/vagrant/config/package.rb +7 -0
- data/lib/vagrant/config/ssh.rb +27 -0
- data/lib/vagrant/config/top.rb +72 -0
- data/lib/vagrant/config/vagrant.rb +14 -0
- data/lib/vagrant/config/vm.rb +168 -0
- data/lib/vagrant/config/vm/provisioner.rb +52 -0
- data/lib/vagrant/config/vm/sub_vm.rb +17 -0
- data/lib/vagrant/data_store.rb +92 -0
- data/lib/vagrant/downloaders.rb +7 -0
- data/lib/vagrant/downloaders/base.rb +25 -0
- data/lib/vagrant/downloaders/file.rb +22 -0
- data/lib/vagrant/downloaders/http.rb +97 -0
- data/lib/vagrant/driver.rb +8 -0
- data/lib/vagrant/driver/virtualbox.rb +134 -0
- data/lib/vagrant/driver/virtualbox_4_0.rb +459 -0
- data/lib/vagrant/driver/virtualbox_4_1.rb +459 -0
- data/lib/vagrant/driver/virtualbox_4_2.rb +606 -0
- data/lib/vagrant/driver/virtualbox_base.rb +326 -0
- data/lib/vagrant/environment.rb +522 -0
- data/lib/vagrant/errors.rb +445 -0
- data/lib/vagrant/guest.rb +18 -0
- data/lib/vagrant/guest/arch.rb +56 -0
- data/lib/vagrant/guest/base.rb +99 -0
- data/lib/vagrant/guest/debian.rb +64 -0
- data/lib/vagrant/guest/fedora.rb +66 -0
- data/lib/vagrant/guest/freebsd.rb +86 -0
- data/lib/vagrant/guest/gentoo.rb +46 -0
- data/lib/vagrant/guest/linux.rb +118 -0
- data/lib/vagrant/guest/linux/config.rb +19 -0
- data/lib/vagrant/guest/linux/error.rb +9 -0
- data/lib/vagrant/guest/openbsd.rb +20 -0
- data/lib/vagrant/guest/redhat.rb +67 -0
- data/lib/vagrant/guest/solaris.rb +118 -0
- data/lib/vagrant/guest/suse.rb +17 -0
- data/lib/vagrant/guest/ubuntu.rb +23 -0
- data/lib/vagrant/hosts.rb +37 -0
- data/lib/vagrant/hosts/arch.rb +55 -0
- data/lib/vagrant/hosts/base.rb +66 -0
- data/lib/vagrant/hosts/bsd.rb +97 -0
- data/lib/vagrant/hosts/fedora.rb +47 -0
- data/lib/vagrant/hosts/freebsd.rb +41 -0
- data/lib/vagrant/hosts/gentoo.rb +20 -0
- data/lib/vagrant/hosts/linux.rb +94 -0
- data/lib/vagrant/hosts/opensuse.rb +30 -0
- data/lib/vagrant/hosts/windows.rb +16 -0
- data/lib/vagrant/plugin.rb +81 -0
- data/lib/vagrant/provisioners.rb +12 -0
- data/lib/vagrant/provisioners/base.rb +44 -0
- data/lib/vagrant/provisioners/chef.rb +168 -0
- data/lib/vagrant/provisioners/chef_client.rb +132 -0
- data/lib/vagrant/provisioners/chef_solo.rb +234 -0
- data/lib/vagrant/provisioners/puppet.rb +176 -0
- data/lib/vagrant/provisioners/puppet_server.rb +78 -0
- data/lib/vagrant/provisioners/shell.rb +103 -0
- data/lib/vagrant/registry.rb +52 -0
- data/lib/vagrant/ssh.rb +126 -0
- data/lib/vagrant/test_helpers.rb +154 -0
- data/lib/vagrant/ui.rb +168 -0
- data/lib/vagrant/util.rb +12 -0
- data/lib/vagrant/util/ansi_escape_code_remover.rb +34 -0
- data/lib/vagrant/util/busy.rb +59 -0
- data/lib/vagrant/util/counter.rb +24 -0
- data/lib/vagrant/util/file_checksum.rb +38 -0
- data/lib/vagrant/util/file_mode.rb +12 -0
- data/lib/vagrant/util/hash_with_indifferent_access.rb +63 -0
- data/lib/vagrant/util/is_port_open.rb +38 -0
- data/lib/vagrant/util/line_ending_helpers.rb +14 -0
- data/lib/vagrant/util/network_ip.rb +28 -0
- data/lib/vagrant/util/platform.rb +68 -0
- data/lib/vagrant/util/retryable.rb +25 -0
- data/lib/vagrant/util/safe_exec.rb +36 -0
- data/lib/vagrant/util/safe_puts.rb +31 -0
- data/lib/vagrant/util/stacked_proc_runner.rb +35 -0
- data/lib/vagrant/util/subprocess.rb +247 -0
- data/lib/vagrant/util/template_renderer.rb +83 -0
- data/lib/vagrant/version.rb +6 -0
- data/lib/vagrant/vm.rb +195 -0
- data/tasks/acceptance.rake +113 -0
- data/tasks/bundler.rake +3 -0
- data/tasks/test.rake +20 -0
- data/templates/commands/init/Vagrantfile.erb +99 -0
- data/templates/commands/ssh_config/config.erb +15 -0
- data/templates/config/validation_failed.erb +7 -0
- data/templates/guests/arch/network_dhcp.erb +7 -0
- data/templates/guests/arch/network_static.erb +7 -0
- data/templates/guests/debian/network_dhcp.erb +6 -0
- data/templates/guests/debian/network_static.erb +7 -0
- data/templates/guests/fedora/network_dhcp.erb +6 -0
- data/templates/guests/fedora/network_static.erb +13 -0
- data/templates/guests/freebsd/network_dhcp.erb +3 -0
- data/templates/guests/freebsd/network_static.erb +3 -0
- data/templates/guests/gentoo/network_dhcp.erb +4 -0
- data/templates/guests/gentoo/network_static.erb +4 -0
- data/templates/guests/redhat/network_dhcp.erb +6 -0
- data/templates/guests/redhat/network_static.erb +7 -0
- data/templates/locales/en.yml +759 -0
- data/templates/nfs/exports.erb +5 -0
- data/templates/nfs/exports_freebsd.erb +5 -0
- data/templates/nfs/exports_linux.erb +5 -0
- data/templates/package_Vagrantfile.erb +11 -0
- data/templates/provisioners/chef_client/client.erb +32 -0
- data/templates/provisioners/chef_solo/solo.erb +25 -0
- data/test/acceptance/base.rb +48 -0
- data/test/acceptance/box_test.rb +99 -0
- data/test/acceptance/destroy_test.rb +37 -0
- data/test/acceptance/halt_test.rb +72 -0
- data/test/acceptance/init_test.rb +33 -0
- data/test/acceptance/networking/host_only_test.rb +37 -0
- data/test/acceptance/networking/port_forward_test.rb +125 -0
- data/test/acceptance/package_test.rb +46 -0
- data/test/acceptance/provisioning/basic_test.rb +61 -0
- data/test/acceptance/provisioning/chef_solo_test.rb +37 -0
- data/test/acceptance/provisioning/shell_test.rb +53 -0
- data/test/acceptance/resume_test.rb +17 -0
- data/test/acceptance/shared_folders_test.rb +84 -0
- data/test/acceptance/skeletons/chef_solo_basic/README.md +3 -0
- data/test/acceptance/skeletons/chef_solo_basic/cookbooks/basic/recipes/default.rb +5 -0
- data/test/acceptance/skeletons/chef_solo_json/README.md +3 -0
- data/test/acceptance/skeletons/chef_solo_json/cookbooks/basic/recipes/default.rb +6 -0
- data/test/acceptance/skeletons/provisioner_multi/README.md +3 -0
- data/test/acceptance/skeletons/provisioner_multi/cookbooks/basic/recipes/default.rb +5 -0
- data/test/acceptance/ssh_test.rb +46 -0
- data/test/acceptance/support/config.rb +42 -0
- data/test/acceptance/support/isolated_environment.rb +117 -0
- data/test/acceptance/support/matchers/have_color.rb +9 -0
- data/test/acceptance/support/matchers/match_output.rb +14 -0
- data/test/acceptance/support/matchers/succeed.rb +14 -0
- data/test/acceptance/support/network_tests.rb +29 -0
- data/test/acceptance/support/output.rb +95 -0
- data/test/acceptance/support/shared/base_context.rb +72 -0
- data/test/acceptance/support/shared/command_examples.rb +33 -0
- data/test/acceptance/support/virtualbox.rb +36 -0
- data/test/acceptance/suspend_test.rb +56 -0
- data/test/acceptance/up_basic_test.rb +33 -0
- data/test/acceptance/up_with_box_url.rb +40 -0
- data/test/acceptance/vagrant_test.rb +47 -0
- data/test/acceptance/version_test.rb +15 -0
- data/test/buildbot/README.md +72 -0
- data/test/buildbot/buildbot_config/__init__.py +0 -0
- data/test/buildbot/buildbot_config/config/__init__.py +0 -0
- data/test/buildbot/buildbot_config/config/loader.py +24 -0
- data/test/buildbot/buildbot_config/config/master.py +24 -0
- data/test/buildbot/buildbot_config/config/slave.py +22 -0
- data/test/buildbot/buildbot_config/master/__init__.py +6 -0
- data/test/buildbot/buildbot_config/master/builders.py +78 -0
- data/test/buildbot/buildbot_config/master/buildsteps.py +100 -0
- data/test/buildbot/buildbot_config/master/change_sources.py +8 -0
- data/test/buildbot/buildbot_config/master/schedulers.py +32 -0
- data/test/buildbot/buildbot_config/master/slaves.py +60 -0
- data/test/buildbot/buildbot_config/master/status.py +52 -0
- data/test/buildbot/master/Makefile.sample +28 -0
- data/test/buildbot/master/buildbot.tac +36 -0
- data/test/buildbot/master/master.cfg +67 -0
- data/test/buildbot/master/public_html/bg_gradient.jpg +0 -0
- data/test/buildbot/master/public_html/default.css +545 -0
- data/test/buildbot/master/public_html/favicon.ico +0 -0
- data/test/buildbot/master/public_html/robots.txt +10 -0
- data/test/buildbot/master/public_html/static/css/bootstrap-1.4.0.min.css +356 -0
- data/test/buildbot/master/public_html/static/css/prettify.css +97 -0
- data/test/buildbot/master/public_html/static/css/syntax.css +60 -0
- data/test/buildbot/master/public_html/static/css/vagrant.base.css +205 -0
- data/test/buildbot/master/public_html/static/images/base_box_mac.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/getting-started/success.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/icons/error.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_chilling.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_holding.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_looking.png +0 -0
- data/test/buildbot/master/public_html/static/images/windows/alter_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/edit_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/environment_variables_button.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/port_and_ppk_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/ppk_selection.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/putty_first_screen.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/save_result.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/vbox_manage_default_location.jpg +0 -0
- data/test/buildbot/master/public_html/static/js/bootstrap-tabs.js +80 -0
- data/test/buildbot/master/public_html/static/js/jquery-1.7.min.js +4 -0
- data/test/buildbot/master/templates/authfail.html +9 -0
- data/test/buildbot/master/templates/build.html +205 -0
- data/test/buildbot/master/templates/builder.html +118 -0
- data/test/buildbot/master/templates/builders.html +33 -0
- data/test/buildbot/master/templates/buildslave.html +72 -0
- data/test/buildbot/master/templates/buildslaves.html +70 -0
- data/test/buildbot/master/templates/change.html +15 -0
- data/test/buildbot/master/templates/layouts/base.html +58 -0
- data/test/buildbot/master/templates/macros/box.html +37 -0
- data/test/buildbot/master/templates/macros/build_line.html +50 -0
- data/test/buildbot/master/templates/macros/change.html +81 -0
- data/test/buildbot/master/templates/macros/forms.html +300 -0
- data/test/buildbot/master/templates/root.html +42 -0
- data/test/buildbot/master/templates/waterfall.html +53 -0
- data/test/buildbot/requirements.txt +4 -0
- data/test/buildbot/scripts/deploy.sh +38 -0
- data/test/buildbot/scripts/setup.sh +107 -0
- data/test/buildbot/slave/buildbot.tac +43 -0
- data/test/buildbot/slave/info/admin +1 -0
- data/test/buildbot/slave/info/host +1 -0
- data/test/buildbot/tests/__init__.py +0 -0
- data/test/buildbot/tests/master/__init__.py +0 -0
- data/test/buildbot/tests/master/test_slaves.py +41 -0
- data/test/buildbot/vendor/choices-0.4.0.tar.gz +0 -0
- data/test/config/acceptance_boxes.yml +7 -0
- data/test/support/isolated_environment.rb +46 -0
- data/test/support/tempdir.rb +34 -0
- data/test/unit/base.rb +21 -0
- data/test/unit/support/isolated_environment.rb +47 -0
- data/test/unit/support/shared/base_context.rb +30 -0
- data/test/unit/vagrant/action/builder_test.rb +156 -0
- data/test/unit/vagrant/action/environment_test.rb +16 -0
- data/test/unit/vagrant/action/runner_test.rb +65 -0
- data/test/unit/vagrant/action/warden_test.rb +92 -0
- data/test/unit/vagrant/box_collection_test.rb +56 -0
- data/test/unit/vagrant/box_test.rb +34 -0
- data/test/unit/vagrant/command/base_test.rb +150 -0
- data/test/unit/vagrant/config/base_test.rb +48 -0
- data/test/unit/vagrant/config/loader_test.rb +79 -0
- data/test/unit/vagrant/config/ssh_test.rb +17 -0
- data/test/unit/vagrant/config/top_test.rb +69 -0
- data/test/unit/vagrant/config/vm_test.rb +71 -0
- data/test/unit/vagrant/config_test.rb +27 -0
- data/test/unit/vagrant/data_store_test.rb +79 -0
- data/test/unit/vagrant/downloaders/base_test.rb +18 -0
- data/test/unit/vagrant/downloaders/file_test.rb +75 -0
- data/test/unit/vagrant/downloaders/http_test.rb +19 -0
- data/test/unit/vagrant/environment_test.rb +220 -0
- data/test/unit/vagrant/hosts_test.rb +36 -0
- data/test/unit/vagrant/registry_test.rb +74 -0
- data/test/unit/vagrant/util/ansi_escape_code_remover_test.rb +16 -0
- data/test/unit/vagrant/util/file_checksum_test.rb +23 -0
- data/test/unit/vagrant/util/hash_with_indifferent_access_test.rb +38 -0
- data/test/unit/vagrant/util/is_port_open_test.rb +53 -0
- data/test/unit/vagrant/util/line_endings_helper_test.rb +16 -0
- data/test/unit/vagrant/util/network_ip_test.rb +17 -0
- data/test/unit/vagrant/util/retryable_test.rb +106 -0
- data/test/unit/vagrant_test.rb +27 -0
- data/test/unit_legacy/locales/en.yml +8 -0
- data/test/unit_legacy/test_helper.rb +32 -0
- data/test/unit_legacy/vagrant/action/box/destroy_test.rb +18 -0
- data/test/unit_legacy/vagrant/action/box/download_test.rb +125 -0
- data/test/unit_legacy/vagrant/action/box/package_test.rb +25 -0
- data/test/unit_legacy/vagrant/action/box/unpackage_test.rb +84 -0
- data/test/unit_legacy/vagrant/action/box/verify_test.rb +30 -0
- data/test/unit_legacy/vagrant/action/env/set_test.rb +24 -0
- data/test/unit_legacy/vagrant/action/general/package_test.rb +268 -0
- data/test/unit_legacy/vagrant/action/general/validate_test.rb +31 -0
- data/test/unit_legacy/vagrant/action/vm/boot_test.rb +66 -0
- data/test/unit_legacy/vagrant/action/vm/check_accessible_test.rb +61 -0
- data/test/unit_legacy/vagrant/action/vm/check_box_test.rb +61 -0
- data/test/unit_legacy/vagrant/action/vm/check_guest_additions_test.rb +9 -0
- data/test/unit_legacy/vagrant/action/vm/clean_machine_folder_test.rb +84 -0
- data/test/unit_legacy/vagrant/action/vm/clear_forwarded_ports_test.rb +52 -0
- data/test/unit_legacy/vagrant/action/vm/clear_nfs_exports_test.rb +22 -0
- data/test/unit_legacy/vagrant/action/vm/clear_shared_folders_test.rb +40 -0
- data/test/unit_legacy/vagrant/action/vm/customize_test.rb +37 -0
- data/test/unit_legacy/vagrant/action/vm/destroy_test.rb +25 -0
- data/test/unit_legacy/vagrant/action/vm/destroy_unused_network_interfaces_test.rb +49 -0
- data/test/unit_legacy/vagrant/action/vm/discard_state_test.rb +45 -0
- data/test/unit_legacy/vagrant/action/vm/export_test.rb +107 -0
- data/test/unit_legacy/vagrant/action/vm/forward_ports_helpers_test.rb +77 -0
- data/test/unit_legacy/vagrant/action/vm/forward_ports_test.rb +197 -0
- data/test/unit_legacy/vagrant/action/vm/halt_test.rb +79 -0
- data/test/unit_legacy/vagrant/action/vm/host_name_test.rb +36 -0
- data/test/unit_legacy/vagrant/action/vm/import_test.rb +66 -0
- data/test/unit_legacy/vagrant/action/vm/match_mac_address_test.rb +40 -0
- data/test/unit_legacy/vagrant/action/vm/modify_test.rb +38 -0
- data/test/unit_legacy/vagrant/action/vm/network_test.rb +286 -0
- data/test/unit_legacy/vagrant/action/vm/nfs_helpers_test.rb +26 -0
- data/test/unit_legacy/vagrant/action/vm/nfs_test.rb +260 -0
- data/test/unit_legacy/vagrant/action/vm/package_test.rb +25 -0
- data/test/unit_legacy/vagrant/action/vm/package_vagrantfile_test.rb +46 -0
- data/test/unit_legacy/vagrant/action/vm/provision_test.rb +65 -0
- data/test/unit_legacy/vagrant/action/vm/provisioner_cleanup_test.rb +56 -0
- data/test/unit_legacy/vagrant/action/vm/resume_test.rb +35 -0
- data/test/unit_legacy/vagrant/action/vm/share_folders_test.rb +144 -0
- data/test/unit_legacy/vagrant/action/vm/suspend_test.rb +35 -0
- data/test/unit_legacy/vagrant/action_test.rb +89 -0
- data/test/unit_legacy/vagrant/box_collection_test.rb +45 -0
- data/test/unit_legacy/vagrant/box_test.rb +74 -0
- data/test/unit_legacy/vagrant/cli_test.rb +35 -0
- data/test/unit_legacy/vagrant/command/base_test.rb +23 -0
- data/test/unit_legacy/vagrant/command/group_base_test.rb +15 -0
- data/test/unit_legacy/vagrant/command/helpers_test.rb +88 -0
- data/test/unit_legacy/vagrant/command/init_test.rb +10 -0
- data/test/unit_legacy/vagrant/command/package_test.rb +27 -0
- data/test/unit_legacy/vagrant/config/base_test.rb +52 -0
- data/test/unit_legacy/vagrant/config/error_recorder_test.rb +18 -0
- data/test/unit_legacy/vagrant/config/ssh_test.rb +12 -0
- data/test/unit_legacy/vagrant/config/vagrant_test.rb +35 -0
- data/test/unit_legacy/vagrant/config/vm/provisioner_test.rb +92 -0
- data/test/unit_legacy/vagrant/config/vm_test.rb +47 -0
- data/test/unit_legacy/vagrant/config_test.rb +148 -0
- data/test/unit_legacy/vagrant/downloaders/http_test.rb +93 -0
- data/test/unit_legacy/vagrant/environment_test.rb +539 -0
- data/test/unit_legacy/vagrant/errors_test.rb +42 -0
- data/test/unit_legacy/vagrant/hosts/base_test.rb +46 -0
- data/test/unit_legacy/vagrant/hosts/bsd_test.rb +53 -0
- data/test/unit_legacy/vagrant/hosts/linux_test.rb +54 -0
- data/test/unit_legacy/vagrant/plugin_test.rb +9 -0
- data/test/unit_legacy/vagrant/provisioners/base_test.rb +63 -0
- data/test/unit_legacy/vagrant/provisioners/chef_client_test.rb +190 -0
- data/test/unit_legacy/vagrant/provisioners/chef_solo_test.rb +115 -0
- data/test/unit_legacy/vagrant/provisioners/chef_test.rb +209 -0
- data/test/unit_legacy/vagrant/provisioners/puppet_server_test.rb +68 -0
- data/test/unit_legacy/vagrant/provisioners/puppet_test.rb +182 -0
- data/test/unit_legacy/vagrant/provisioners/shell_test.rb +79 -0
- data/test/unit_legacy/vagrant/ssh/session_test.rb +40 -0
- data/test/unit_legacy/vagrant/ssh_test.rb +304 -0
- data/test/unit_legacy/vagrant/systems/base_test.rb +18 -0
- data/test/unit_legacy/vagrant/systems/linux_test.rb +104 -0
- data/test/unit_legacy/vagrant/util/busy_test.rb +106 -0
- data/test/unit_legacy/vagrant/util/counter_test.rb +29 -0
- data/test/unit_legacy/vagrant/util/platform_test.rb +18 -0
- data/test/unit_legacy/vagrant/util/stacked_proc_runner_test.rb +43 -0
- data/test/unit_legacy/vagrant/util/template_renderer_test.rb +145 -0
- data/test/unit_legacy/vagrant/vm_test.rb +300 -0
- data/vagrant-fixed-ssh.gemspec +70 -0
- metadata +712 -0
@@ -0,0 +1,5 @@
|
|
1
|
+
# VAGRANT-BEGIN: <%= uuid %>
|
2
|
+
<% folders.each do |name, opts| %>
|
3
|
+
"<%= opts[:hostpath] %>" <%= ip %>(rw,no_subtree_check,all_squash<% if opts[:map_uid] %>,anonuid=<%= opts[:map_uid] %><% end %><% if opts[:map_gid] %>,anongid=<%= opts[:map_gid] %><% end %>,fsid=<%= opts[:uuid] %>)
|
4
|
+
<% end %>
|
5
|
+
# VAGRANT-END: <%= uuid %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Vagrant::Config.run do |config|
|
2
|
+
# This Vagrantfile is auto-generated by `vagrant package` to contain
|
3
|
+
# the MAC address of the box. Custom configuration should be placed in
|
4
|
+
# the actual `Vagrantfile` in this box.
|
5
|
+
config.vm.base_mac = "<%= base_mac %>"
|
6
|
+
end
|
7
|
+
|
8
|
+
# Load include vagrant file if it exists after the auto-generated
|
9
|
+
# so it can override any of the settings
|
10
|
+
include_vagrantfile = File.expand_path("../include/_Vagrantfile", __FILE__)
|
11
|
+
load include_vagrantfile if File.exist?(include_vagrantfile)
|
@@ -0,0 +1,32 @@
|
|
1
|
+
log_level <%= log_level.inspect %>
|
2
|
+
log_location STDOUT
|
3
|
+
<% if node_name %>
|
4
|
+
node_name "<%= node_name %>"
|
5
|
+
<% end %>
|
6
|
+
ssl_verify_mode :verify_none
|
7
|
+
chef_server_url "<%= chef_server_url %>"
|
8
|
+
|
9
|
+
validation_client_name "<%= validation_client_name %>"
|
10
|
+
validation_key "<%= validation_key %>"
|
11
|
+
client_key "<%= client_key %>"
|
12
|
+
|
13
|
+
encrypted_data_bag_secret "<%= encrypted_data_bag_secret %>"
|
14
|
+
|
15
|
+
<% unless environment.nil? %>
|
16
|
+
environment "<%= environment %>"
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
file_cache_path "<%= file_cache_path %>"
|
20
|
+
file_backup_path "<%= file_backup_path %>"
|
21
|
+
|
22
|
+
http_proxy <%= http_proxy.inspect %>
|
23
|
+
http_proxy_user <%= http_proxy_user.inspect %>
|
24
|
+
http_proxy_pass <%= http_proxy_pass.inspect %>
|
25
|
+
https_proxy <%= https_proxy.inspect %>
|
26
|
+
https_proxy_user <%= https_proxy_user.inspect %>
|
27
|
+
https_proxy_pass <%= https_proxy_pass.inspect %>
|
28
|
+
no_proxy <%= no_proxy.inspect %>
|
29
|
+
|
30
|
+
pid_file "/var/run/chef/chef-client.pid"
|
31
|
+
|
32
|
+
Mixlib::Log::Formatter.show_time = true
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<% if node_name %>
|
2
|
+
node_name "<%= node_name %>"
|
3
|
+
<% end %>
|
4
|
+
file_cache_path "<%= provisioning_path %>"
|
5
|
+
cookbook_path <%= cookbooks_path.inspect %>
|
6
|
+
role_path <%= roles_path.inspect %>
|
7
|
+
log_level <%= log_level.inspect %>
|
8
|
+
|
9
|
+
encrypted_data_bag_secret "<%= encrypted_data_bag_secret %>"
|
10
|
+
|
11
|
+
<% if data_bags_path -%>
|
12
|
+
data_bag_path <%= data_bags_path.inspect %>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<% if recipe_url -%>
|
16
|
+
recipe_url "<%= recipe_url %>"
|
17
|
+
<% end -%>
|
18
|
+
|
19
|
+
http_proxy <%= http_proxy.inspect %>
|
20
|
+
http_proxy_user <%= http_proxy_user.inspect %>
|
21
|
+
http_proxy_pass <%= http_proxy_pass.inspect %>
|
22
|
+
https_proxy <%= https_proxy.inspect %>
|
23
|
+
https_proxy_user <%= https_proxy_user.inspect %>
|
24
|
+
https_proxy_pass <%= https_proxy_pass.inspect %>
|
25
|
+
no_proxy <%= no_proxy.inspect %>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "rspec/autorun"
|
3
|
+
|
4
|
+
require "log4r"
|
5
|
+
|
6
|
+
# Add the test directory to the load path
|
7
|
+
$:.unshift File.expand_path("../../", __FILE__)
|
8
|
+
|
9
|
+
# Load in the supporting files for our tests
|
10
|
+
require "acceptance/support/shared/base_context"
|
11
|
+
require "acceptance/support/config"
|
12
|
+
require "acceptance/support/virtualbox"
|
13
|
+
require "acceptance/support/matchers/match_output"
|
14
|
+
require "acceptance/support/matchers/succeed"
|
15
|
+
|
16
|
+
# Do not buffer output
|
17
|
+
$stdout.sync = true
|
18
|
+
$stderr.sync = true
|
19
|
+
|
20
|
+
# If VirtualBox is currently running, fail.
|
21
|
+
if Acceptance::VirtualBox.find_vboxsvc
|
22
|
+
$stderr.puts "VirtualBox must be closed and remain closed for the duration of the tests."
|
23
|
+
abort
|
24
|
+
end
|
25
|
+
|
26
|
+
# Enable logging if requested
|
27
|
+
if ENV["ACCEPTANCE_LOG"]
|
28
|
+
logger = Log4r::Logger.new("test")
|
29
|
+
logger.outputters = Log4r::Outputter.stdout
|
30
|
+
logger.level = Log4r.const_get(ENV["ACCEPTANCE_LOG"].upcase)
|
31
|
+
logger = nil
|
32
|
+
end
|
33
|
+
|
34
|
+
# Parse the command line options and load the global configuration.
|
35
|
+
if !ENV.has_key?("ACCEPTANCE_CONFIG")
|
36
|
+
$stderr.puts "A configuration file must be passed into the acceptance test."
|
37
|
+
abort
|
38
|
+
elsif !File.file?(ENV["ACCEPTANCE_CONFIG"])
|
39
|
+
$stderr.puts "The configuration file must exist."
|
40
|
+
abort
|
41
|
+
end
|
42
|
+
|
43
|
+
$acceptance_options = Acceptance::Config.new(ENV["ACCEPTANCE_CONFIG"])
|
44
|
+
|
45
|
+
# Configure RSpec
|
46
|
+
RSpec.configure do |c|
|
47
|
+
c.expect_with :rspec, :stdlib
|
48
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
require File.expand_path("../base", __FILE__)
|
2
|
+
|
3
|
+
describe "vagrant box" do
|
4
|
+
include_context "acceptance"
|
5
|
+
|
6
|
+
it "has no boxes by default" do
|
7
|
+
result = execute("vagrant", "box", "list")
|
8
|
+
result.stdout.should match_output(:no_boxes)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "can add a box from a file" do
|
12
|
+
require_box("default")
|
13
|
+
|
14
|
+
# Add the box, which we expect to succeed
|
15
|
+
result = execute("vagrant", "box", "add", "foo", box_path("default"))
|
16
|
+
result.should succeed
|
17
|
+
|
18
|
+
# Verify that the box now shows up in the list of available boxes
|
19
|
+
result = execute("vagrant", "box", "list")
|
20
|
+
result.stdout.should match_output(:box_installed, "foo")
|
21
|
+
end
|
22
|
+
|
23
|
+
it "errors if attempting to add a box with the same name" do
|
24
|
+
require_box("default")
|
25
|
+
|
26
|
+
# Add the box, which we expect to succeed
|
27
|
+
assert_execute("vagrant", "box", "add", "foo", box_path("default"))
|
28
|
+
|
29
|
+
# Adding it again should not succeed
|
30
|
+
result = execute("vagrant", "box", "add", "foo", box_path("default"))
|
31
|
+
result.should_not succeed
|
32
|
+
result.stderr.should match_output(:box_already_exists, "foo")
|
33
|
+
end
|
34
|
+
|
35
|
+
it "overwrites a box when adding with `--force`" do
|
36
|
+
require_box("default")
|
37
|
+
|
38
|
+
# Add the box, which we expect to succeed
|
39
|
+
assert_execute("vagrant", "box", "add", "foo", box_path("default"))
|
40
|
+
|
41
|
+
# Adding it again should not succeed
|
42
|
+
assert_execute("vagrant", "box", "add", "foo", box_path("default"), "--force")
|
43
|
+
end
|
44
|
+
|
45
|
+
it "gives an error if the file doesn't exist" do
|
46
|
+
result = execute("vagrant", "box", "add", "foo", "/tmp/nope/nope/nope/nonono.box")
|
47
|
+
result.should_not succeed
|
48
|
+
result.stderr.should match_output(:box_path_doesnt_exist)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "gives an error if the file is not a valid box" do
|
52
|
+
invalid = environment.workdir.join("nope.txt")
|
53
|
+
invalid.open("w+") do |f|
|
54
|
+
f.write("INVALID!")
|
55
|
+
end
|
56
|
+
|
57
|
+
result = execute("vagrant", "box", "add", "foo", invalid.to_s)
|
58
|
+
result.should_not succeed
|
59
|
+
result.stderr.should match_output(:box_invalid)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "can add a box from an HTTP server" do
|
63
|
+
pending("Need to setup HTTP server functionality")
|
64
|
+
end
|
65
|
+
|
66
|
+
it "can remove a box" do
|
67
|
+
require_box("default")
|
68
|
+
|
69
|
+
# Add the box, remove the box, then verify that the box no longer
|
70
|
+
# shows up in the list of available boxes.
|
71
|
+
execute("vagrant", "box", "add", "foo", box_path("default"))
|
72
|
+
execute("vagrant", "box", "remove", "foo")
|
73
|
+
result = execute("vagrant", "box", "list")
|
74
|
+
result.should succeed
|
75
|
+
result.stdout.should match_output(:no_boxes)
|
76
|
+
end
|
77
|
+
|
78
|
+
it "can repackage a box" do
|
79
|
+
require_box("default")
|
80
|
+
|
81
|
+
original_size = File.size(box_path("default"))
|
82
|
+
logger.debug("Original package size: #{original_size}")
|
83
|
+
|
84
|
+
# Add the box, repackage it, and verify that a package.box is
|
85
|
+
# dumped of relatively similar size.
|
86
|
+
execute("vagrant", "box", "add", "foo", box_path("default"))
|
87
|
+
execute("vagrant", "box", "repackage", "foo")
|
88
|
+
|
89
|
+
# By default, repackage should dump into package.box into the CWD
|
90
|
+
repackaged_file = environment.workdir.join("package.box")
|
91
|
+
repackaged_file.file?.should be, "package.box should exist in cwd of environment"
|
92
|
+
|
93
|
+
# Compare the sizes
|
94
|
+
repackaged_size = repackaged_file.size
|
95
|
+
logger.debug("Repackaged size: #{repackaged_size}")
|
96
|
+
size_diff = (repackaged_size - original_size).abs
|
97
|
+
size_diff.should be < 1000, "Sizes should be very similar"
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.expand_path("../base", __FILE__)
|
2
|
+
require "acceptance/support/shared/command_examples"
|
3
|
+
|
4
|
+
describe "vagrant destroy" do
|
5
|
+
include_context "acceptance"
|
6
|
+
it_behaves_like "a command that requires a Vagrantfile", ["vagrant", "destroy"]
|
7
|
+
|
8
|
+
it "succeeds and ignores if the VM is not created" do
|
9
|
+
require_box("default")
|
10
|
+
|
11
|
+
assert_execute("vagrant", "box", "add", "base", box_path("default"))
|
12
|
+
assert_execute("vagrant", "init")
|
13
|
+
|
14
|
+
result = assert_execute("vagrant", "destroy")
|
15
|
+
result.stdout.should match_output(:vm_not_created_warning)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "is able to destroy a running virtual machine" do
|
19
|
+
require_box("default")
|
20
|
+
|
21
|
+
assert_execute("vagrant", "box", "add", "base", box_path("default"))
|
22
|
+
assert_execute("vagrant", "init")
|
23
|
+
assert_execute("vagrant", "up")
|
24
|
+
|
25
|
+
# Destroy the VM and assert that it worked properly (seemingly)
|
26
|
+
result = assert_execute("vagrant", "destroy")
|
27
|
+
result.stdout.should match_output(:vm_destroyed)
|
28
|
+
|
29
|
+
# Assert that the VM no longer is created
|
30
|
+
result = assert_execute("vagrant", "status")
|
31
|
+
result.stdout.should match_output(:status, "default", "not created")
|
32
|
+
end
|
33
|
+
|
34
|
+
# TODO:
|
35
|
+
# it is able to destroy a halted virtual machine
|
36
|
+
# it is able to destroy a suspended virtual machine
|
37
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require File.expand_path("../base", __FILE__)
|
2
|
+
require "acceptance/support/shared/command_examples"
|
3
|
+
|
4
|
+
describe "vagrant halt" do
|
5
|
+
include_context "acceptance"
|
6
|
+
it_behaves_like "a command that requires a Vagrantfile", ["vagrant", "halt"]
|
7
|
+
|
8
|
+
it "succeeds and ignores if the VM is not created" do
|
9
|
+
require_box("default")
|
10
|
+
|
11
|
+
assert_execute("vagrant", "box", "add", "base", box_path("default"))
|
12
|
+
assert_execute("vagrant", "init")
|
13
|
+
|
14
|
+
result = assert_execute("vagrant", "halt")
|
15
|
+
result.stdout.should match_output(:vm_not_created_warning)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "is able to halt a running virtual machine" do
|
19
|
+
require_box("default")
|
20
|
+
|
21
|
+
assert_execute("vagrant", "box", "add", "base", box_path("default"))
|
22
|
+
assert_execute("vagrant", "init")
|
23
|
+
assert_execute("vagrant", "up")
|
24
|
+
|
25
|
+
# Halt the VM and assert that it worked properly (seemingly)
|
26
|
+
result = assert_execute("vagrant", "halt")
|
27
|
+
result.stdout.should match_output(:vm_halt_graceful)
|
28
|
+
|
29
|
+
# Assert that the VM is no longer running
|
30
|
+
result = assert_execute("vagrant", "status")
|
31
|
+
result.stdout.should match_output(:status, "default", "poweroff")
|
32
|
+
end
|
33
|
+
|
34
|
+
it "is able to force halt a running virtual machine" do
|
35
|
+
require_box("default")
|
36
|
+
|
37
|
+
assert_execute("vagrant", "box", "add", "base", box_path("default"))
|
38
|
+
assert_execute("vagrant", "init")
|
39
|
+
assert_execute("vagrant", "up")
|
40
|
+
|
41
|
+
# Halt the VM and assert that it worked properly (seemingly)
|
42
|
+
result = assert_execute("vagrant", "halt", "--force")
|
43
|
+
result.stdout.should match_output(:vm_halt_force)
|
44
|
+
|
45
|
+
# Assert that the VM is no longer running
|
46
|
+
result = assert_execute("vagrant", "status")
|
47
|
+
result.stdout.should match_output(:status, "default", "poweroff")
|
48
|
+
end
|
49
|
+
|
50
|
+
it "is able to come back up after the machine has been halted" do
|
51
|
+
require_box("default")
|
52
|
+
|
53
|
+
assert_execute("vagrant", "box", "add", "base", box_path("default"))
|
54
|
+
assert_execute("vagrant", "init")
|
55
|
+
assert_execute("vagrant", "up")
|
56
|
+
assert_execute("vagrant", "halt")
|
57
|
+
|
58
|
+
# Assert that the VM is no longer running
|
59
|
+
result = assert_execute("vagrant", "status")
|
60
|
+
result.stdout.should match_output(:status, "default", "poweroff")
|
61
|
+
|
62
|
+
assert_execute("vagrant", "up")
|
63
|
+
|
64
|
+
# Assert that the VM is once again running
|
65
|
+
result = assert_execute("vagrant", "status")
|
66
|
+
result.stdout.should match_output(:status, "default", "running")
|
67
|
+
end
|
68
|
+
|
69
|
+
# TODO:
|
70
|
+
# halt behavior on suspend machine
|
71
|
+
# halt behavior if machine is already powered off
|
72
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.expand_path("../base", __FILE__)
|
2
|
+
|
3
|
+
describe "vagrant init" do
|
4
|
+
include_context "acceptance"
|
5
|
+
|
6
|
+
it "creates a Vagrantfile in the working directory" do
|
7
|
+
vagrantfile = environment.workdir.join("Vagrantfile")
|
8
|
+
vagrantfile.exist?.should_not be, "Vagrantfile shouldn't exist initially"
|
9
|
+
|
10
|
+
result = execute("vagrant", "init")
|
11
|
+
result.should succeed
|
12
|
+
vagrantfile.exist?.should be, "Vagrantfile should exist"
|
13
|
+
end
|
14
|
+
|
15
|
+
it "creates a Vagrantfile with the box set to the given argument" do
|
16
|
+
vagrantfile = environment.workdir.join("Vagrantfile")
|
17
|
+
|
18
|
+
result = execute("vagrant", "init", "foo")
|
19
|
+
result.should succeed
|
20
|
+
vagrantfile.read.should match(/config.vm.box = "foo"$/)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "creates a Vagrantfile with the box URL set to the given argument" do
|
24
|
+
vagrantfile = environment.workdir.join("Vagrantfile")
|
25
|
+
|
26
|
+
result = execute("vagrant", "init", "foo", "bar")
|
27
|
+
result.should succeed
|
28
|
+
|
29
|
+
contents = vagrantfile.read
|
30
|
+
contents.should match(/config.vm.box = "foo"$/)
|
31
|
+
contents.should match(/config.vm.box_url = "bar"$/)
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.expand_path("../../base", __FILE__)
|
2
|
+
|
3
|
+
require "net/http"
|
4
|
+
require "uri"
|
5
|
+
|
6
|
+
require "acceptance/support/network_tests"
|
7
|
+
require "acceptance/support/shared/command_examples"
|
8
|
+
require "support/tempdir"
|
9
|
+
|
10
|
+
describe "vagrant host only networking" do
|
11
|
+
include Acceptance::NetworkTests
|
12
|
+
|
13
|
+
include_context "acceptance"
|
14
|
+
|
15
|
+
def initialize_environment(env=nil)
|
16
|
+
require_box("default")
|
17
|
+
|
18
|
+
env ||= environment
|
19
|
+
env.execute("vagrant", "box", "add", "base", box_path("default")).should succeed
|
20
|
+
end
|
21
|
+
|
22
|
+
it "creates a network with a static IP" do
|
23
|
+
initialize_environment
|
24
|
+
|
25
|
+
environment.workdir.join("Vagrantfile").open("w+") do |f|
|
26
|
+
f.puts(<<VFILE)
|
27
|
+
Vagrant::Config.run do |config|
|
28
|
+
config.vm.box = "base"
|
29
|
+
config.vm.network :hostonly, "192.168.33.10"
|
30
|
+
end
|
31
|
+
VFILE
|
32
|
+
end
|
33
|
+
|
34
|
+
assert_execute("vagrant", "up")
|
35
|
+
assert_host_to_vm_network("http://192.168.33.10:8000/", 8000)
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,125 @@
|
|
1
|
+
require File.expand_path("../../base", __FILE__)
|
2
|
+
|
3
|
+
require "net/http"
|
4
|
+
require "uri"
|
5
|
+
|
6
|
+
require "acceptance/support/network_tests"
|
7
|
+
require "acceptance/support/shared/command_examples"
|
8
|
+
require "support/tempdir"
|
9
|
+
|
10
|
+
describe "vagrant port forwarding" do
|
11
|
+
include Acceptance::NetworkTests
|
12
|
+
|
13
|
+
include_context "acceptance"
|
14
|
+
|
15
|
+
def initialize_environment(env=nil)
|
16
|
+
require_box("default")
|
17
|
+
|
18
|
+
env ||= environment
|
19
|
+
env.execute("vagrant", "box", "add", "base", box_path("default")).should succeed
|
20
|
+
end
|
21
|
+
|
22
|
+
it "forwards ports properly" do
|
23
|
+
initialize_environment
|
24
|
+
|
25
|
+
guest_port = 3000
|
26
|
+
host_port = 5000
|
27
|
+
|
28
|
+
environment.workdir.join("Vagrantfile").open("w+") do |f|
|
29
|
+
f.puts(<<VFILE)
|
30
|
+
Vagrant::Config.run do |config|
|
31
|
+
config.vm.box = "base"
|
32
|
+
config.vm.forward_port #{guest_port}, #{host_port}
|
33
|
+
end
|
34
|
+
VFILE
|
35
|
+
end
|
36
|
+
|
37
|
+
assert_execute("vagrant", "up")
|
38
|
+
assert_host_to_vm_network("http://localhost:#{host_port}/", guest_port)
|
39
|
+
end
|
40
|
+
|
41
|
+
it "properly overrides port forwarding from the same port" do
|
42
|
+
initialize_environment
|
43
|
+
|
44
|
+
guest_port = 3000
|
45
|
+
host_port = 5000
|
46
|
+
|
47
|
+
environment.workdir.join("Vagrantfile").open("w+") do |f|
|
48
|
+
f.puts(<<VFILE)
|
49
|
+
Vagrant::Config.run do |config|
|
50
|
+
config.vm.box = "base"
|
51
|
+
config.vm.forward_port #{guest_port}, #{host_port - 1}
|
52
|
+
config.vm.forward_port #{guest_port}, #{host_port}
|
53
|
+
end
|
54
|
+
VFILE
|
55
|
+
end
|
56
|
+
|
57
|
+
assert_execute("vagrant", "up")
|
58
|
+
assert_host_to_vm_network("http://localhost:#{host_port}/", guest_port)
|
59
|
+
end
|
60
|
+
|
61
|
+
it "detects and corrects port collisions" do
|
62
|
+
# The two environments need to share a VBOX_USER_HOME so that the
|
63
|
+
# VM's go into the same place.
|
64
|
+
env_vars = { "VBOX_USER_HOME" => Tempdir.new("vagrant").to_s }
|
65
|
+
environment = new_environment(env_vars)
|
66
|
+
environment2 = new_environment(env_vars)
|
67
|
+
|
68
|
+
# For this test we create two isolated environments and `vagrant up`
|
69
|
+
# in each. SSH would collide, so this verifies that it won't!
|
70
|
+
begin
|
71
|
+
initialize_environment(environment)
|
72
|
+
initialize_environment(environment2)
|
73
|
+
|
74
|
+
# Build both environments up.
|
75
|
+
environment.execute("vagrant", "init").should succeed
|
76
|
+
environment.execute("vagrant", "up").should succeed
|
77
|
+
environment2.execute("vagrant", "init").should succeed
|
78
|
+
environment2.execute("vagrant", "up").should succeed
|
79
|
+
|
80
|
+
# Touch files in both environments
|
81
|
+
environment.execute("vagrant", "ssh", "-c", "touch /vagrant/foo").should succeed
|
82
|
+
environment2.execute("vagrant", "ssh", "-c", "touch /vagrant/bar").should succeed
|
83
|
+
|
84
|
+
# Verify that the files exist in each folder, properly
|
85
|
+
environment.workdir.join("foo").exist?.should be
|
86
|
+
environment2.workdir.join("bar").exist?.should be
|
87
|
+
ensure
|
88
|
+
environment.close
|
89
|
+
environment2.close
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
it "refuses to resume if there is a port collision" do
|
94
|
+
# The two environments need to share a VBOX_USER_HOME so that the
|
95
|
+
# VM's go into the same place.
|
96
|
+
env_vars = { "VBOX_USER_HOME" => Tempdir.new("vagrant").path }
|
97
|
+
environment = new_environment(env_vars)
|
98
|
+
environment2 = new_environment(env_vars)
|
99
|
+
|
100
|
+
# For this test we `vagrant up` one environment, suspend it,
|
101
|
+
# `vagrant up` another environment, and then come back to the first
|
102
|
+
# and try to resume. SSH would collide so it should error.
|
103
|
+
begin
|
104
|
+
# Bring up the first environment and suspend it
|
105
|
+
initialize_environment(environment)
|
106
|
+
environment.execute("vagrant", "init").should succeed
|
107
|
+
environment.execute("vagrant", "up").should succeed
|
108
|
+
environment.execute("vagrant", "suspend").should succeed
|
109
|
+
|
110
|
+
# Bring up the second environment
|
111
|
+
initialize_environment(environment2)
|
112
|
+
environment2.execute("vagrant", "init").should succeed
|
113
|
+
environment2.execute("vagrant", "up").should succeed
|
114
|
+
|
115
|
+
# Attempt to bring up the first environment again, but it should
|
116
|
+
# result in an error.
|
117
|
+
result = environment.execute("vagrant", "up")
|
118
|
+
result.should_not succeed
|
119
|
+
result.stderr.should match_output(:resume_port_collision)
|
120
|
+
ensure
|
121
|
+
environment.close
|
122
|
+
environment2.close
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|