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,63 @@
|
|
1
|
+
require 'vagrant/action/builder'
|
2
|
+
|
3
|
+
module Vagrant
|
4
|
+
module Action
|
5
|
+
autoload :Builtin, 'vagrant/action/builtin'
|
6
|
+
autoload :Environment, 'vagrant/action/environment'
|
7
|
+
autoload :Runner, 'vagrant/action/runner'
|
8
|
+
autoload :Warden, 'vagrant/action/warden'
|
9
|
+
|
10
|
+
module Box
|
11
|
+
autoload :Destroy, 'vagrant/action/box/destroy'
|
12
|
+
autoload :Download, 'vagrant/action/box/download'
|
13
|
+
autoload :Package, 'vagrant/action/box/package'
|
14
|
+
autoload :Unpackage, 'vagrant/action/box/unpackage'
|
15
|
+
autoload :Verify, 'vagrant/action/box/verify'
|
16
|
+
end
|
17
|
+
|
18
|
+
module Env
|
19
|
+
autoload :Set, 'vagrant/action/env/set'
|
20
|
+
end
|
21
|
+
|
22
|
+
module General
|
23
|
+
autoload :CheckVirtualbox, 'vagrant/action/general/check_virtualbox'
|
24
|
+
autoload :Package, 'vagrant/action/general/package'
|
25
|
+
autoload :Validate, 'vagrant/action/general/validate'
|
26
|
+
end
|
27
|
+
|
28
|
+
module VM
|
29
|
+
autoload :Boot, 'vagrant/action/vm/boot'
|
30
|
+
autoload :CheckAccessible, 'vagrant/action/vm/check_accessible'
|
31
|
+
autoload :CheckBox, 'vagrant/action/vm/check_box'
|
32
|
+
autoload :CheckGuestAdditions, 'vagrant/action/vm/check_guest_additions'
|
33
|
+
autoload :CheckPortCollisions, 'vagrant/action/vm/check_port_collisions'
|
34
|
+
autoload :CleanMachineFolder, 'vagrant/action/vm/clean_machine_folder'
|
35
|
+
autoload :ClearForwardedPorts, 'vagrant/action/vm/clear_forwarded_ports'
|
36
|
+
autoload :ClearNetworkInterfaces, 'vagrant/action/vm/clear_network_interfaces'
|
37
|
+
autoload :ClearSharedFolders, 'vagrant/action/vm/clear_shared_folders'
|
38
|
+
autoload :Customize, 'vagrant/action/vm/customize'
|
39
|
+
autoload :DefaultName, 'vagrant/action/vm/default_name'
|
40
|
+
autoload :Destroy, 'vagrant/action/vm/destroy'
|
41
|
+
autoload :DestroyUnusedNetworkInterfaces, 'vagrant/action/vm/destroy_unused_network_interfaces'
|
42
|
+
autoload :DiscardState, 'vagrant/action/vm/discard_state'
|
43
|
+
autoload :Export, 'vagrant/action/vm/export'
|
44
|
+
autoload :ForwardPorts, 'vagrant/action/vm/forward_ports'
|
45
|
+
autoload :Halt, 'vagrant/action/vm/halt'
|
46
|
+
autoload :HostName, 'vagrant/action/vm/host_name'
|
47
|
+
autoload :Import, 'vagrant/action/vm/import'
|
48
|
+
autoload :MatchMACAddress, 'vagrant/action/vm/match_mac_address'
|
49
|
+
autoload :Network, 'vagrant/action/vm/network'
|
50
|
+
autoload :NFS, 'vagrant/action/vm/nfs'
|
51
|
+
autoload :Package, 'vagrant/action/vm/package'
|
52
|
+
autoload :PackageVagrantfile, 'vagrant/action/vm/package_vagrantfile'
|
53
|
+
autoload :Provision, 'vagrant/action/vm/provision'
|
54
|
+
autoload :ProvisionerCleanup, 'vagrant/action/vm/provisioner_cleanup'
|
55
|
+
autoload :PruneNFSExports, 'vagrant/action/vm/prune_nfs_exports'
|
56
|
+
autoload :Resume, 'vagrant/action/vm/resume'
|
57
|
+
autoload :SaneDefaults, 'vagrant/action/vm/sane_defaults'
|
58
|
+
autoload :ShareFolders, 'vagrant/action/vm/share_folders'
|
59
|
+
autoload :SetupPackageFiles, 'vagrant/action/vm/setup_package_files'
|
60
|
+
autoload :Suspend, 'vagrant/action/vm/suspend'
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
module Vagrant
|
4
|
+
module Action
|
5
|
+
module Box
|
6
|
+
class Destroy
|
7
|
+
def initialize(app, env)
|
8
|
+
@app = app
|
9
|
+
@env = env
|
10
|
+
end
|
11
|
+
|
12
|
+
def call(env)
|
13
|
+
# Delete the existing box
|
14
|
+
env[:ui].info I18n.t("vagrant.actions.box.destroy.destroying", :name => env[:box_name])
|
15
|
+
FileUtils.rm_rf(env[:box_directory])
|
16
|
+
|
17
|
+
# Reload the box collection
|
18
|
+
env[:box_collection].reload!
|
19
|
+
|
20
|
+
@app.call(env)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module Vagrant
|
2
|
+
module Action
|
3
|
+
module Box
|
4
|
+
class Download
|
5
|
+
BASENAME = "box"
|
6
|
+
|
7
|
+
include Util
|
8
|
+
|
9
|
+
attr_reader :temp_path
|
10
|
+
|
11
|
+
def initialize(app, env)
|
12
|
+
@app = app
|
13
|
+
@env = env
|
14
|
+
@env["download.classes"] ||= []
|
15
|
+
@env["download.classes"] += [Downloaders::HTTP, Downloaders::File]
|
16
|
+
@downloader = nil
|
17
|
+
end
|
18
|
+
|
19
|
+
def call(env)
|
20
|
+
@env = env
|
21
|
+
|
22
|
+
download if instantiate_downloader
|
23
|
+
@app.call(@env)
|
24
|
+
|
25
|
+
recover(env) # called in both cases to cleanup workspace
|
26
|
+
end
|
27
|
+
|
28
|
+
def instantiate_downloader
|
29
|
+
# Assign to a temporary variable since this is easier to type out,
|
30
|
+
# since it is used so many times.
|
31
|
+
classes = @env["download.classes"]
|
32
|
+
|
33
|
+
# Find the class to use.
|
34
|
+
classes.each_index do |i|
|
35
|
+
klass = classes[i]
|
36
|
+
|
37
|
+
# Use the class if it matches the given URI or if this
|
38
|
+
# is the last class...
|
39
|
+
if classes.length == (i + 1) || klass.match?(@env["box_url"])
|
40
|
+
@env[:ui].info I18n.t("vagrant.actions.box.download.with", :class => klass.to_s)
|
41
|
+
@downloader = klass.new(@env[:ui])
|
42
|
+
break
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# This line should never be reached, but we'll keep this here
|
47
|
+
# just in case for now.
|
48
|
+
raise Errors::BoxDownloadUnknownType if !@downloader
|
49
|
+
|
50
|
+
@downloader.prepare(@env["box_url"])
|
51
|
+
true
|
52
|
+
end
|
53
|
+
|
54
|
+
def download
|
55
|
+
with_tempfile do |tempfile|
|
56
|
+
download_to(tempfile)
|
57
|
+
@temp_path = @env["download.temp_path"] = tempfile.path
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def recover(env)
|
62
|
+
if temp_path && File.exist?(temp_path)
|
63
|
+
env[:ui].info I18n.t("vagrant.actions.box.download.cleaning")
|
64
|
+
File.unlink(temp_path)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def with_tempfile
|
69
|
+
File.open(box_temp_path, Platform.tar_file_options) do |tempfile|
|
70
|
+
yield tempfile
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def box_temp_path
|
75
|
+
@env[:tmp_path].join(BASENAME + Time.now.to_i.to_s)
|
76
|
+
end
|
77
|
+
|
78
|
+
def download_to(f)
|
79
|
+
@downloader.download!(@env["box_url"], f)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'vagrant/action/general/package'
|
2
|
+
|
3
|
+
module Vagrant
|
4
|
+
module Action
|
5
|
+
module Box
|
6
|
+
# Packages a box which has already been unpackaged (such as
|
7
|
+
# for the `vagrant box repackage` command) by leveraging the
|
8
|
+
# general packager middleware.
|
9
|
+
class Package < General::Package
|
10
|
+
# Alias instead of calling super for testability
|
11
|
+
alias_method :general_call, :call
|
12
|
+
def call(env)
|
13
|
+
env["package.directory"] = env["box_directory"]
|
14
|
+
general_call(env)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'archive/tar/minitar'
|
3
|
+
|
4
|
+
module Vagrant
|
5
|
+
module Action
|
6
|
+
module Box
|
7
|
+
# Unpackages a downloaded box to a given directory with a given
|
8
|
+
# name.
|
9
|
+
#
|
10
|
+
# # Required Variables
|
11
|
+
#
|
12
|
+
# * `download.temp_path` - A location for the downloaded box. This is
|
13
|
+
# set by the {Download} action.
|
14
|
+
# * `box` - A {Vagrant::Box} object.
|
15
|
+
#
|
16
|
+
class Unpackage
|
17
|
+
attr_reader :box_directory
|
18
|
+
|
19
|
+
def initialize(app, env)
|
20
|
+
@app = app
|
21
|
+
@env = env
|
22
|
+
end
|
23
|
+
|
24
|
+
def call(env)
|
25
|
+
@env = env
|
26
|
+
|
27
|
+
setup_box_directory
|
28
|
+
decompress
|
29
|
+
|
30
|
+
@app.call(@env)
|
31
|
+
end
|
32
|
+
|
33
|
+
def recover(env)
|
34
|
+
if box_directory && File.directory?(box_directory)
|
35
|
+
FileUtils.rm_rf(box_directory)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def setup_box_directory
|
40
|
+
if File.directory?(@env["box_directory"])
|
41
|
+
raise Errors::BoxAlreadyExists, :name => @env["box_name"]
|
42
|
+
end
|
43
|
+
|
44
|
+
FileUtils.mkdir_p(@env["box_directory"])
|
45
|
+
@box_directory = @env["box_directory"]
|
46
|
+
end
|
47
|
+
|
48
|
+
def decompress
|
49
|
+
Dir.chdir(@env["box_directory"]) do
|
50
|
+
@env[:ui].info I18n.t("vagrant.actions.box.unpackage.extracting")
|
51
|
+
begin
|
52
|
+
Archive::Tar::Minitar.unpack(@env["download.temp_path"], @env["box_directory"].to_s)
|
53
|
+
rescue SystemCallError
|
54
|
+
raise Errors::BoxUnpackageFailure
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Vagrant
|
2
|
+
module Action
|
3
|
+
module Box
|
4
|
+
class Verify
|
5
|
+
def initialize(app, env)
|
6
|
+
@app = app
|
7
|
+
@env = env
|
8
|
+
end
|
9
|
+
|
10
|
+
def call(env)
|
11
|
+
@env[:ui].info I18n.t("vagrant.actions.box.verify.verifying")
|
12
|
+
|
13
|
+
driver = Driver::VirtualBox.new(nil)
|
14
|
+
if !driver.verify_image(env["box_directory"].join("box.ovf").to_s)
|
15
|
+
raise Errors::BoxVerificationFailed
|
16
|
+
end
|
17
|
+
|
18
|
+
@app.call(env)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,128 @@
|
|
1
|
+
module Vagrant
|
2
|
+
module Action
|
3
|
+
# Action builder which provides a nice DSL for building up
|
4
|
+
# a middleware sequence for Vagrant actions. This code is based
|
5
|
+
# heavily off of `Rack::Builder` and `ActionDispatch::MiddlewareStack`
|
6
|
+
# in Rack and Rails, respectively.
|
7
|
+
#
|
8
|
+
# Usage
|
9
|
+
#
|
10
|
+
# Building an action sequence is very easy:
|
11
|
+
#
|
12
|
+
# app = Vagrant::Action::Builder.new do
|
13
|
+
# use MiddlewareA
|
14
|
+
# use MiddlewareB
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
# Vagrant::Action.run(app)
|
18
|
+
#
|
19
|
+
class Builder
|
20
|
+
# Initializes the builder. An optional block can be passed which
|
21
|
+
# will be evaluated in the context of the instance.
|
22
|
+
def initialize(&block)
|
23
|
+
instance_eval(&block) if block_given?
|
24
|
+
end
|
25
|
+
|
26
|
+
# Returns a mergeable version of the builder. If `use` is called with
|
27
|
+
# the return value of this method, then the stack will merge, instead
|
28
|
+
# of being treated as a separate single middleware.
|
29
|
+
def flatten
|
30
|
+
lambda do |env|
|
31
|
+
self.call(env)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# Adds a middleware class to the middleware stack. Any additional
|
36
|
+
# args and a block, if given, are saved and passed to the initializer
|
37
|
+
# of the middleware.
|
38
|
+
#
|
39
|
+
# @param [Class] middleware The middleware class
|
40
|
+
def use(middleware, *args, &block)
|
41
|
+
# Prepend with a environment setter if args are given
|
42
|
+
if !args.empty? && args.first.is_a?(Hash) && middleware != Env::Set
|
43
|
+
self.use(Env::Set, args.shift, &block)
|
44
|
+
end
|
45
|
+
|
46
|
+
if middleware.kind_of?(Builder)
|
47
|
+
# Merge in the other builder's stack into our own
|
48
|
+
self.stack.concat(middleware.stack)
|
49
|
+
else
|
50
|
+
self.stack << [middleware, args, block]
|
51
|
+
end
|
52
|
+
|
53
|
+
self
|
54
|
+
end
|
55
|
+
|
56
|
+
# Inserts a middleware at the given index or directly before the
|
57
|
+
# given middleware object.
|
58
|
+
def insert(index, middleware, *args, &block)
|
59
|
+
index = self.index(index) unless index.is_a?(Integer)
|
60
|
+
stack.insert(index, [middleware, args, block])
|
61
|
+
end
|
62
|
+
|
63
|
+
alias_method :insert_before, :insert
|
64
|
+
|
65
|
+
# Inserts a middleware after the given index or middleware object.
|
66
|
+
def insert_after(index, middleware, *args, &block)
|
67
|
+
index = self.index(index) unless index.is_a?(Integer)
|
68
|
+
raise "no such middleware to insert after: #{index.inspect}" unless index
|
69
|
+
insert(index + 1, middleware, *args, &block)
|
70
|
+
end
|
71
|
+
|
72
|
+
# Replaces the given middlware object or index with the new
|
73
|
+
# middleware.
|
74
|
+
def replace(index, middleware, *args, &block)
|
75
|
+
if index.is_a?(Integer)
|
76
|
+
delete(index)
|
77
|
+
insert(index, middleware, *args, &block)
|
78
|
+
else
|
79
|
+
insert_before(index, middleware, *args, &block)
|
80
|
+
delete(index)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
# Deletes the given middleware object or index
|
85
|
+
def delete(index)
|
86
|
+
index = self.index(index) unless index.is_a?(Integer)
|
87
|
+
stack.delete_at(index)
|
88
|
+
end
|
89
|
+
|
90
|
+
# Runs the builder stack with the given environment.
|
91
|
+
def call(env)
|
92
|
+
to_app(env).call(env)
|
93
|
+
end
|
94
|
+
|
95
|
+
protected
|
96
|
+
|
97
|
+
# Returns the numeric index for the given middleware object.
|
98
|
+
#
|
99
|
+
# @param [Object] object The item to find the index for
|
100
|
+
# @return [Integer]
|
101
|
+
def index(object)
|
102
|
+
stack.each_with_index do |item, i|
|
103
|
+
return i if item[0] == object
|
104
|
+
end
|
105
|
+
|
106
|
+
nil
|
107
|
+
end
|
108
|
+
|
109
|
+
# Returns the current stack of middlewares. You probably won't
|
110
|
+
# need to use this directly, and it's recommended that you don't.
|
111
|
+
#
|
112
|
+
# @return [Array]
|
113
|
+
def stack
|
114
|
+
@stack ||= []
|
115
|
+
end
|
116
|
+
|
117
|
+
# Converts the builder stack to a runnable action sequence.
|
118
|
+
#
|
119
|
+
# @param [Vagrant::Action::Environment] env The action environment
|
120
|
+
# @return [Object] A callable object
|
121
|
+
def to_app(env)
|
122
|
+
# Wrap the middleware stack with the Warden to provide a consistent
|
123
|
+
# and predictable behavior upon exceptions.
|
124
|
+
Warden.new(stack.dup, env)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
@@ -0,0 +1,171 @@
|
|
1
|
+
module Vagrant
|
2
|
+
module Action
|
3
|
+
# A registry object containing the built-in middleware stacks.
|
4
|
+
class Builtin < Registry
|
5
|
+
def initialize
|
6
|
+
# Properly initialize the registry object
|
7
|
+
super
|
8
|
+
|
9
|
+
# Register all the built-in stacks
|
10
|
+
register_builtin!
|
11
|
+
end
|
12
|
+
|
13
|
+
protected
|
14
|
+
|
15
|
+
def register_builtin!
|
16
|
+
# We do this so that the blocks below have a variable to access the
|
17
|
+
# outer registry.
|
18
|
+
registry = self
|
19
|
+
|
20
|
+
# provision - Provisions a running VM
|
21
|
+
register(:provision) do
|
22
|
+
Builder.new do
|
23
|
+
use General::CheckVirtualbox
|
24
|
+
use General::Validate
|
25
|
+
use VM::CheckAccessible
|
26
|
+
use VM::Provision
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# start - Starts a VM, assuming it already exists on the
|
31
|
+
# environment.
|
32
|
+
register(:start) do
|
33
|
+
Builder.new do
|
34
|
+
use General::CheckVirtualbox
|
35
|
+
use General::Validate
|
36
|
+
use VM::CheckAccessible
|
37
|
+
use VM::CleanMachineFolder
|
38
|
+
use VM::ClearForwardedPorts
|
39
|
+
use VM::CheckPortCollisions, :port_collision_handler => :correct
|
40
|
+
use VM::ForwardPorts
|
41
|
+
use VM::Provision
|
42
|
+
use VM::PruneNFSExports
|
43
|
+
use VM::NFS
|
44
|
+
use VM::ClearSharedFolders
|
45
|
+
use VM::ShareFolders
|
46
|
+
use VM::HostName
|
47
|
+
use VM::ClearNetworkInterfaces
|
48
|
+
use VM::Network
|
49
|
+
use VM::SaneDefaults
|
50
|
+
use VM::Customize
|
51
|
+
use VM::Boot
|
52
|
+
use VM::CheckGuestAdditions
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# halt - Halts the VM, attempting gracefully but then forcing
|
57
|
+
# a restart if fails.
|
58
|
+
register(:halt) do
|
59
|
+
Builder.new do
|
60
|
+
use General::CheckVirtualbox
|
61
|
+
use General::Validate
|
62
|
+
use VM::CheckAccessible
|
63
|
+
use VM::DiscardState
|
64
|
+
use VM::Halt
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# suspend - Suspends the VM
|
69
|
+
register(:suspend) do
|
70
|
+
Builder.new do
|
71
|
+
use General::CheckVirtualbox
|
72
|
+
use General::Validate
|
73
|
+
use VM::CheckAccessible
|
74
|
+
use VM::Suspend
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
# resume - Resume a VM
|
79
|
+
register(:resume) do
|
80
|
+
Builder.new do
|
81
|
+
use General::CheckVirtualbox
|
82
|
+
use General::Validate
|
83
|
+
use VM::CheckAccessible
|
84
|
+
use VM::CheckPortCollisions
|
85
|
+
use VM::Resume
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
# reload - Halts then restarts the VM
|
90
|
+
register(:reload) do
|
91
|
+
Builder.new do
|
92
|
+
use General::CheckVirtualbox
|
93
|
+
use General::Validate
|
94
|
+
use VM::CheckAccessible
|
95
|
+
use registry.get(:halt)
|
96
|
+
use registry.get(:start)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
# up - Imports, prepares, then starts a fresh VM.
|
101
|
+
register(:up) do
|
102
|
+
Builder.new do
|
103
|
+
use General::CheckVirtualbox
|
104
|
+
use General::Validate
|
105
|
+
use VM::CheckAccessible
|
106
|
+
use VM::CheckBox
|
107
|
+
use VM::Import
|
108
|
+
use VM::DefaultName
|
109
|
+
use VM::MatchMACAddress
|
110
|
+
use registry.get(:start)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
# destroy - Halts, cleans up, and destroys an existing VM
|
115
|
+
register(:destroy) do
|
116
|
+
Builder.new do
|
117
|
+
use General::CheckVirtualbox
|
118
|
+
use General::Validate
|
119
|
+
use VM::CheckAccessible
|
120
|
+
use registry.get(:halt), :force => true
|
121
|
+
use VM::ProvisionerCleanup
|
122
|
+
use VM::PruneNFSExports
|
123
|
+
use VM::Destroy
|
124
|
+
use VM::CleanMachineFolder
|
125
|
+
use VM::DestroyUnusedNetworkInterfaces
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
# package - Export and package the VM
|
130
|
+
register(:package) do
|
131
|
+
Builder.new do
|
132
|
+
use General::CheckVirtualbox
|
133
|
+
use General::Validate
|
134
|
+
use VM::SetupPackageFiles
|
135
|
+
use VM::CheckAccessible
|
136
|
+
use registry.get(:halt)
|
137
|
+
use VM::ClearForwardedPorts
|
138
|
+
use VM::ClearSharedFolders
|
139
|
+
use VM::Export
|
140
|
+
use VM::PackageVagrantfile
|
141
|
+
use VM::Package
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
# box_add - Download and add a box.
|
146
|
+
register(:box_add) do
|
147
|
+
Builder.new do
|
148
|
+
use General::CheckVirtualbox
|
149
|
+
use Box::Download
|
150
|
+
use Box::Unpackage
|
151
|
+
use Box::Verify
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
# box_remove - Removes/deletes a box.
|
156
|
+
register(:box_remove) do
|
157
|
+
Builder.new do
|
158
|
+
use Box::Destroy
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
# box_repackage - Repackages a box.
|
163
|
+
register(:box_repackage) do
|
164
|
+
Builder.new do
|
165
|
+
use Box::Package
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|