vagrantup 1.0.7 → 1.1.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +91 -0
- data/LICENSE +2 -2
- data/README.md +11 -13
- data/bin/vagrant +29 -5
- data/config/default.rb +14 -9
- data/contrib/bash/completion.sh +3 -0
- data/keys/README.md +3 -3
- data/lib/vagrant.rb +156 -102
- data/lib/vagrant/action.rb +26 -47
- data/lib/vagrant/action/builder.rb +49 -23
- data/lib/vagrant/action/builtin/box_add.rb +85 -0
- data/lib/vagrant/action/builtin/call.rb +67 -0
- data/lib/vagrant/action/builtin/config_validate.rb +30 -0
- data/lib/vagrant/action/builtin/confirm.rb +38 -0
- data/lib/vagrant/action/builtin/env_set.rb +24 -0
- data/lib/vagrant/action/builtin/graceful_halt.rb +73 -0
- data/lib/vagrant/action/builtin/handle_box_url.rb +43 -0
- data/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb +117 -0
- data/lib/vagrant/action/builtin/lock.rb +57 -0
- data/lib/vagrant/action/builtin/nfs.rb +117 -0
- data/lib/vagrant/action/builtin/provision.rb +70 -0
- data/lib/vagrant/action/builtin/set_hostname.rb +27 -0
- data/lib/vagrant/action/builtin/ssh_exec.rb +42 -0
- data/lib/vagrant/action/builtin/ssh_run.rb +43 -0
- data/lib/vagrant/action/general/package.rb +19 -18
- data/lib/vagrant/action/hook.rb +103 -0
- data/lib/vagrant/action/runner.rb +21 -5
- data/lib/vagrant/action/warden.rb +20 -9
- data/lib/vagrant/box.rb +75 -26
- data/lib/vagrant/box_collection.rb +301 -35
- data/lib/vagrant/cli.rb +20 -14
- data/lib/vagrant/config.rb +23 -9
- data/lib/vagrant/config/loader.rb +131 -36
- data/lib/vagrant/config/v1.rb +9 -0
- data/lib/vagrant/config/v1/dummy_config.rb +13 -0
- data/lib/vagrant/config/v1/loader.rb +105 -0
- data/lib/vagrant/config/v1/root.rb +60 -0
- data/lib/vagrant/config/v2.rb +9 -0
- data/lib/vagrant/config/v2/dummy_config.rb +13 -0
- data/lib/vagrant/config/v2/loader.rb +141 -0
- data/lib/vagrant/config/v2/root.rb +105 -0
- data/lib/vagrant/config/v2/util.rb +21 -0
- data/lib/vagrant/config/version_base.rb +80 -0
- data/lib/vagrant/downloaders/base.rb +0 -3
- data/lib/vagrant/downloaders/file.rb +10 -4
- data/lib/vagrant/downloaders/http.rb +29 -10
- data/lib/vagrant/environment.rb +447 -240
- data/lib/vagrant/errors.rb +138 -97
- data/lib/vagrant/hosts.rb +3 -12
- data/lib/vagrant/machine.rb +325 -0
- data/lib/vagrant/machine_state.rb +45 -0
- data/lib/vagrant/plugin.rb +3 -78
- data/lib/vagrant/plugin/v1.rb +19 -0
- data/lib/vagrant/plugin/v1/command.rb +169 -0
- data/lib/vagrant/plugin/v1/communicator.rb +98 -0
- data/lib/vagrant/plugin/v1/config.rb +112 -0
- data/lib/vagrant/plugin/v1/errors.rb +15 -0
- data/lib/vagrant/plugin/v1/guest.rb +92 -0
- data/lib/vagrant/plugin/v1/host.rb +66 -0
- data/lib/vagrant/plugin/v1/manager.rb +131 -0
- data/lib/vagrant/plugin/v1/plugin.rb +229 -0
- data/lib/vagrant/plugin/v1/provider.rb +68 -0
- data/lib/vagrant/plugin/v1/provisioner.rb +50 -0
- data/lib/vagrant/plugin/v2.rb +22 -0
- data/lib/vagrant/plugin/v2/command.rb +234 -0
- data/lib/vagrant/plugin/v2/communicator.rb +98 -0
- data/lib/vagrant/plugin/v2/components.rb +29 -0
- data/lib/vagrant/plugin/v2/config.rb +101 -0
- data/lib/vagrant/plugin/v2/errors.rb +15 -0
- data/lib/vagrant/plugin/v2/guest.rb +92 -0
- data/lib/vagrant/plugin/v2/host.rb +66 -0
- data/lib/vagrant/plugin/v2/manager.rb +158 -0
- data/lib/vagrant/plugin/v2/plugin.rb +217 -0
- data/lib/vagrant/plugin/v2/provider.rb +69 -0
- data/lib/vagrant/plugin/v2/provisioner.rb +47 -0
- data/lib/vagrant/registry.rb +43 -17
- data/lib/vagrant/ssh.rb +15 -9
- data/lib/vagrant/ui.rb +7 -5
- data/lib/vagrant/util/is_port_open.rb +1 -1
- data/lib/vagrant/util/platform.rb +19 -0
- data/lib/vagrant/util/retryable.rb +8 -2
- data/lib/vagrant/util/safe_exec.rb +2 -2
- data/lib/vagrant/util/scoped_hash_override.rb +45 -0
- data/lib/vagrant/util/ssh.rb +126 -0
- data/lib/vagrant/util/string_block_editor.rb +75 -0
- data/lib/vagrant/util/subprocess.rb +33 -10
- data/lib/vagrant/util/which.rb +43 -0
- data/lib/vagrant/version.rb +1 -1
- data/plugins/README.md +5 -0
- data/plugins/commands/box/command/add.rb +46 -0
- data/plugins/commands/box/command/list.rb +41 -0
- data/plugins/commands/box/command/remove.rb +37 -0
- data/plugins/commands/box/command/repackage.rb +43 -0
- data/plugins/commands/box/command/root.rb +75 -0
- data/plugins/commands/box/plugin.rb +15 -0
- data/plugins/commands/destroy/command.rb +31 -0
- data/plugins/commands/destroy/plugin.rb +18 -0
- data/plugins/commands/halt/command.rb +33 -0
- data/plugins/commands/halt/plugin.rb +18 -0
- data/{lib/vagrant/command/init.rb → plugins/commands/init/command.rb} +4 -4
- data/plugins/commands/init/plugin.rb +18 -0
- data/plugins/commands/package/command.rb +83 -0
- data/plugins/commands/package/plugin.rb +18 -0
- data/plugins/commands/plugin/action.rb +52 -0
- data/plugins/commands/plugin/action/bundler_check.rb +25 -0
- data/plugins/commands/plugin/action/install_gem.rb +70 -0
- data/plugins/commands/plugin/action/license_plugin.rb +54 -0
- data/plugins/commands/plugin/action/list_plugins.rb +54 -0
- data/plugins/commands/plugin/action/prune_gems.rb +149 -0
- data/plugins/commands/plugin/action/uninstall_plugin.rb +23 -0
- data/plugins/commands/plugin/command/base.rb +22 -0
- data/plugins/commands/plugin/command/install.rb +39 -0
- data/plugins/commands/plugin/command/license.rb +31 -0
- data/plugins/commands/plugin/command/list.rb +28 -0
- data/plugins/commands/plugin/command/root.rb +75 -0
- data/plugins/commands/plugin/command/uninstall.rb +28 -0
- data/plugins/commands/plugin/gem_helper.rb +74 -0
- data/plugins/commands/plugin/plugin.rb +22 -0
- data/plugins/commands/plugin/state_file.rb +57 -0
- data/plugins/commands/provision/command.rb +34 -0
- data/plugins/commands/provision/plugin.rb +18 -0
- data/plugins/commands/reload/command.rb +37 -0
- data/plugins/commands/reload/plugin.rb +18 -0
- data/plugins/commands/resume/command.rb +25 -0
- data/plugins/commands/resume/plugin.rb +17 -0
- data/{lib/vagrant/command/ssh.rb → plugins/commands/ssh/command.rb} +17 -41
- data/plugins/commands/ssh/plugin.rb +17 -0
- data/{lib/vagrant/command/ssh_config.rb → plugins/commands/ssh_config/command.rb} +14 -16
- data/plugins/commands/ssh_config/plugin.rb +18 -0
- data/plugins/commands/status/command.rb +39 -0
- data/plugins/commands/status/plugin.rb +18 -0
- data/plugins/commands/suspend/command.rb +25 -0
- data/plugins/commands/suspend/plugin.rb +18 -0
- data/plugins/commands/up/command.rb +45 -0
- data/plugins/commands/up/plugin.rb +17 -0
- data/{lib/vagrant/command → plugins/commands/up}/start_mixins.rb +6 -6
- data/{lib/vagrant/communication/ssh.rb → plugins/communicators/ssh/communicator.rb} +139 -52
- data/plugins/communicators/ssh/plugin.rb +19 -0
- data/plugins/guests/arch/guest.rb +41 -0
- data/plugins/guests/arch/plugin.rb +15 -0
- data/{lib/vagrant/guest/debian.rb → plugins/guests/debian/guest.rb} +21 -13
- data/plugins/guests/debian/plugin.rb +15 -0
- data/{lib/vagrant/guest/fedora.rb → plugins/guests/fedora/guest.rb} +19 -14
- data/plugins/guests/fedora/plugin.rb +15 -0
- data/plugins/guests/freebsd/config.rb +13 -0
- data/plugins/guests/freebsd/guest.rb +70 -0
- data/plugins/guests/freebsd/plugin.rb +20 -0
- data/plugins/guests/gentoo/guest.rb +51 -0
- data/plugins/guests/gentoo/plugin.rb +15 -0
- data/plugins/guests/linux/config.rb +13 -0
- data/{lib/vagrant/guest/linux.rb → plugins/guests/linux/guest.rb} +35 -34
- data/plugins/guests/linux/plugin.rb +20 -0
- data/plugins/guests/openbsd/guest.rb +13 -0
- data/plugins/guests/openbsd/plugin.rb +15 -0
- data/{lib/vagrant/guest/redhat.rb → plugins/guests/redhat/guest.rb} +22 -15
- data/plugins/guests/redhat/plugin.rb +15 -0
- data/plugins/guests/solaris/config.rb +18 -0
- data/plugins/guests/solaris/guest.rb +73 -0
- data/plugins/guests/solaris/plugin.rb +20 -0
- data/plugins/guests/suse/guest.rb +24 -0
- data/plugins/guests/suse/plugin.rb +15 -0
- data/plugins/guests/ubuntu/guest.rb +44 -0
- data/plugins/guests/ubuntu/plugin.rb +15 -0
- data/{lib/vagrant/hosts/arch.rb → plugins/hosts/arch/host.rb} +18 -5
- data/plugins/hosts/arch/plugin.rb +15 -0
- data/{lib/vagrant/hosts/bsd.rb → plugins/hosts/bsd/host.rb} +16 -11
- data/plugins/hosts/bsd/plugin.rb +15 -0
- data/{lib/vagrant/hosts/fedora.rb → plugins/hosts/fedora/host.rb} +8 -4
- data/plugins/hosts/fedora/plugin.rb +15 -0
- data/{lib/vagrant/hosts/freebsd.rb → plugins/hosts/freebsd/host.rb} +10 -8
- data/plugins/hosts/freebsd/plugin.rb +15 -0
- data/{lib/vagrant/hosts/gentoo.rb → plugins/hosts/gentoo/host.rb} +7 -3
- data/plugins/hosts/gentoo/plugin.rb +15 -0
- data/{lib/vagrant/hosts/linux.rb → plugins/hosts/linux/host.rb} +12 -11
- data/plugins/hosts/linux/plugin.rb +15 -0
- data/{lib/vagrant/hosts/opensuse.rb → plugins/hosts/opensuse/host.rb} +8 -4
- data/plugins/hosts/opensuse/plugin.rb +15 -0
- data/{lib/vagrant/hosts/windows.rb → plugins/hosts/windows/host.rb} +5 -4
- data/plugins/hosts/windows/plugin.rb +15 -0
- data/plugins/kernel_v1/config/nfs.rb +20 -0
- data/plugins/kernel_v1/config/package.rb +17 -0
- data/plugins/kernel_v1/config/ssh.rb +46 -0
- data/plugins/kernel_v1/config/vagrant.rb +31 -0
- data/plugins/kernel_v1/config/vm.rb +184 -0
- data/plugins/kernel_v1/plugin.rb +44 -0
- data/plugins/kernel_v2/config/nfs.rb +10 -0
- data/plugins/kernel_v2/config/package.rb +9 -0
- data/plugins/kernel_v2/config/ssh.rb +35 -0
- data/plugins/kernel_v2/config/vagrant.rb +9 -0
- data/plugins/kernel_v2/config/vm.rb +314 -0
- data/plugins/kernel_v2/config/vm_provisioner.rb +40 -0
- data/plugins/kernel_v2/config/vm_subvm.rb +30 -0
- data/plugins/kernel_v2/plugin.rb +44 -0
- data/plugins/providers/virtualbox/action.rb +308 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/boot.rb +12 -16
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/check_accessible.rb +5 -5
- data/plugins/providers/virtualbox/action/check_created.rb +21 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/check_guest_additions.rb +18 -11
- data/plugins/providers/virtualbox/action/check_running.rb +21 -0
- data/plugins/providers/virtualbox/action/check_virtualbox.rb +22 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/clean_machine_folder.rb +5 -5
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/clear_forwarded_ports.rb +4 -4
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/clear_network_interfaces.rb +4 -4
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/clear_shared_folders.rb +4 -5
- data/plugins/providers/virtualbox/action/created.rb +20 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/customize.rb +7 -7
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/destroy.rb +5 -5
- data/plugins/providers/virtualbox/action/destroy_confirm.rb +17 -0
- data/plugins/providers/virtualbox/action/destroy_unused_network_interfaces.rb +16 -0
- data/plugins/providers/virtualbox/action/discard_state.rb +20 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/export.rb +7 -7
- data/plugins/providers/virtualbox/action/forced_halt.rb +25 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/forward_ports.rb +29 -42
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/import.rb +15 -12
- data/plugins/providers/virtualbox/action/is_paused.rb +20 -0
- data/plugins/providers/virtualbox/action/is_running.rb +20 -0
- data/plugins/providers/virtualbox/action/is_saved.rb +20 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/match_mac_address.rb +5 -5
- data/plugins/providers/virtualbox/action/message_not_created.rb +16 -0
- data/plugins/providers/virtualbox/action/message_not_running.rb +16 -0
- data/plugins/providers/virtualbox/action/message_will_not_destroy.rb +17 -0
- data/plugins/providers/virtualbox/action/network.rb +366 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/package.rb +4 -7
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/package_vagrantfile.rb +5 -8
- data/plugins/providers/virtualbox/action/prepare_forwarded_port_collision_params.rb +35 -0
- data/plugins/providers/virtualbox/action/prepare_nfs_settings.rb +51 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/prune_nfs_exports.rb +5 -5
- data/plugins/providers/virtualbox/action/resume.rb +25 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/sane_defaults.rb +41 -32
- data/plugins/providers/virtualbox/action/set_name.rb +40 -0
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/setup_package_files.rb +5 -8
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/share_folders.rb +24 -25
- data/{lib/vagrant/action/vm → plugins/providers/virtualbox/action}/suspend.rb +5 -5
- data/plugins/providers/virtualbox/config.rb +82 -0
- data/plugins/providers/virtualbox/driver/base.rb +344 -0
- data/plugins/providers/virtualbox/driver/meta.rb +142 -0
- data/plugins/providers/virtualbox/driver/version_4_0.rb +485 -0
- data/plugins/providers/virtualbox/driver/version_4_1.rb +485 -0
- data/plugins/providers/virtualbox/driver/version_4_2.rb +475 -0
- data/plugins/providers/virtualbox/model/forwarded_port.rb +58 -0
- data/plugins/providers/virtualbox/plugin.rb +42 -0
- data/plugins/providers/virtualbox/provider.rb +92 -0
- data/plugins/providers/virtualbox/util/compile_forwarded_ports.rb +31 -0
- data/plugins/provisioners/chef/config/base.rb +65 -0
- data/plugins/provisioners/chef/config/chef_client.rb +39 -0
- data/plugins/provisioners/chef/config/chef_solo.rb +87 -0
- data/plugins/provisioners/chef/plugin.rb +33 -0
- data/plugins/provisioners/chef/provisioner/base.rb +91 -0
- data/plugins/provisioners/chef/provisioner/chef_client.rb +103 -0
- data/plugins/provisioners/chef/provisioner/chef_solo.rb +182 -0
- data/plugins/provisioners/puppet/config/puppet.rb +70 -0
- data/plugins/provisioners/puppet/config/puppet_server.rb +16 -0
- data/plugins/provisioners/puppet/plugin.rb +33 -0
- data/plugins/provisioners/puppet/provisioner/puppet.rb +110 -0
- data/plugins/provisioners/puppet/provisioner/puppet_server.rb +67 -0
- data/plugins/provisioners/shell/config.rb +46 -0
- data/plugins/provisioners/shell/plugin.rb +23 -0
- data/plugins/provisioners/shell/provisioner.rb +66 -0
- data/templates/commands/init/Vagrantfile.erb +33 -21
- data/templates/commands/ssh_config/config.erb +1 -0
- data/templates/config/messages.erb +14 -0
- data/templates/config/validation_failed.erb +3 -3
- data/templates/guests/arch/network_dhcp.erb +4 -7
- data/templates/guests/arch/network_static.erb +6 -7
- data/templates/guests/debian/network_dhcp.erb +5 -0
- data/templates/locales/en.yml +336 -100
- data/templates/rgloader.rb +9 -0
- data/test/acceptance/support/isolated_environment.rb +3 -2
- data/test/support/tempdir.rb +13 -4
- data/test/unit/base.rb +6 -0
- data/test/unit/support/dummy_provider.rb +16 -0
- data/test/unit/support/isolated_environment.rb +132 -0
- data/test/unit/support/shared/base_context.rb +74 -0
- data/test/unit/vagrant/action/builder_test.rb +88 -48
- data/test/unit/vagrant/action/builtin/call_test.rb +145 -0
- data/test/unit/vagrant/action/builtin/confirm_test.rb +36 -0
- data/test/unit/vagrant/action/builtin/env_set_test.rb +20 -0
- data/test/unit/vagrant/action/builtin/graceful_halt_test.rb +61 -0
- data/test/unit/vagrant/action/builtin/lock_test.rb +98 -0
- data/test/unit/vagrant/action/builtin/ssh_exec_test.rb +57 -0
- data/test/unit/vagrant/action/hook_test.rb +101 -0
- data/test/unit/vagrant/action/runner_test.rb +15 -9
- data/test/unit/vagrant/box_collection_test.rb +219 -38
- data/test/unit/vagrant/box_test.rb +94 -19
- data/test/unit/vagrant/cli_test.rb +27 -0
- data/test/unit/vagrant/config/loader_test.rb +154 -49
- data/test/unit/vagrant/config/v1/dummy_config_test.rb +24 -0
- data/test/unit/vagrant/config/v1/loader_test.rb +145 -0
- data/test/unit/vagrant/config/v1/root_test.rb +40 -0
- data/test/unit/vagrant/config/v2/dummy_config_test.rb +24 -0
- data/test/unit/vagrant/config/v2/loader_test.rb +151 -0
- data/test/unit/vagrant/config/v2/root_test.rb +97 -0
- data/test/unit/vagrant/config/v2/util_test.rb +21 -0
- data/test/unit/vagrant/config_test.rb +40 -1
- data/test/unit/vagrant/downloaders/base_test.rb +0 -4
- data/test/unit/vagrant/downloaders/file_test.rb +21 -9
- data/test/unit/vagrant/downloaders/http_test.rb +4 -0
- data/test/unit/vagrant/environment_test.rb +414 -63
- data/test/unit/vagrant/hosts_test.rb +10 -9
- data/test/unit/vagrant/machine_state_test.rb +26 -0
- data/test/unit/vagrant/machine_test.rb +418 -0
- data/test/unit/vagrant/{command/base_test.rb → plugin/v1/command_test.rb} +2 -9
- data/test/unit/vagrant/plugin/v1/communicator_test.rb +9 -0
- data/test/unit/vagrant/plugin/v1/config_test.rb +50 -0
- data/test/unit/vagrant/plugin/v1/host_test.rb +5 -0
- data/test/unit/vagrant/plugin/v1/manager_test.rb +114 -0
- data/test/unit/vagrant/plugin/v1/plugin_test.rb +267 -0
- data/test/unit/vagrant/plugin/v1/provider_test.rb +18 -0
- data/test/unit/vagrant/plugin/v2/command_test.rb +238 -0
- data/test/unit/vagrant/plugin/v2/communicator_test.rb +9 -0
- data/test/unit/vagrant/plugin/v2/components_test.rb +17 -0
- data/test/unit/vagrant/plugin/v2/config_test.rb +60 -0
- data/test/unit/vagrant/plugin/v2/host_test.rb +5 -0
- data/test/unit/vagrant/plugin/v2/manager_test.rb +157 -0
- data/test/unit/vagrant/plugin/v2/plugin_test.rb +287 -0
- data/test/unit/vagrant/plugin/v2/provider_test.rb +18 -0
- data/test/unit/vagrant/registry_test.rb +59 -5
- data/test/unit/vagrant/util/scoped_hash_override_test.rb +48 -0
- data/test/unit/vagrant/util/ssh_test.rb +30 -0
- data/test/unit/vagrant/util/string_block_editor_test.rb +98 -0
- data/test/unit/vagrant/util/which_test.rb +43 -0
- data/test/unit/vagrant_test.rb +42 -13
- data/vagrant.gemspec +6 -7
- data/vagrant.gemspecbak +6 -7
- metadata +273 -358
- data/lib/vagrant/action/box/destroy.rb +0 -25
- data/lib/vagrant/action/box/download.rb +0 -84
- data/lib/vagrant/action/box/package.rb +0 -19
- data/lib/vagrant/action/box/unpackage.rb +0 -61
- data/lib/vagrant/action/box/verify.rb +0 -23
- data/lib/vagrant/action/builtin.rb +0 -171
- data/lib/vagrant/action/env/set.rb +0 -21
- data/lib/vagrant/action/environment.rb +0 -12
- data/lib/vagrant/action/general/check_virtualbox.rb +0 -28
- data/lib/vagrant/action/general/validate.rb +0 -18
- data/lib/vagrant/action/vm/check_box.rb +0 -33
- data/lib/vagrant/action/vm/check_port_collisions.rb +0 -89
- data/lib/vagrant/action/vm/default_name.rb +0 -22
- data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +0 -20
- data/lib/vagrant/action/vm/discard_state.rb +0 -22
- data/lib/vagrant/action/vm/halt.rb +0 -32
- data/lib/vagrant/action/vm/host_name.rb +0 -21
- data/lib/vagrant/action/vm/network.rb +0 -403
- data/lib/vagrant/action/vm/nfs.rb +0 -196
- data/lib/vagrant/action/vm/provision.rb +0 -61
- data/lib/vagrant/action/vm/provisioner_cleanup.rb +0 -26
- data/lib/vagrant/action/vm/resume.rb +0 -20
- data/lib/vagrant/command.rb +0 -24
- data/lib/vagrant/command/base.rb +0 -167
- data/lib/vagrant/command/box.rb +0 -58
- data/lib/vagrant/command/box_add.rb +0 -37
- data/lib/vagrant/command/box_list.rb +0 -28
- data/lib/vagrant/command/box_remove.rb +0 -27
- data/lib/vagrant/command/box_repackage.rb +0 -27
- data/lib/vagrant/command/destroy.rb +0 -64
- data/lib/vagrant/command/gem.rb +0 -39
- data/lib/vagrant/command/halt.rb +0 -39
- data/lib/vagrant/command/package.rb +0 -75
- data/lib/vagrant/command/provision.rb +0 -40
- data/lib/vagrant/command/reload.rb +0 -39
- data/lib/vagrant/command/resume.rb +0 -33
- data/lib/vagrant/command/status.rb +0 -36
- data/lib/vagrant/command/suspend.rb +0 -33
- data/lib/vagrant/command/up.rb +0 -40
- data/lib/vagrant/communication.rb +0 -7
- data/lib/vagrant/communication/base.rb +0 -56
- data/lib/vagrant/config/base.rb +0 -82
- data/lib/vagrant/config/error_recorder.rb +0 -19
- data/lib/vagrant/config/nfs.rb +0 -8
- data/lib/vagrant/config/package.rb +0 -7
- data/lib/vagrant/config/ssh.rb +0 -27
- data/lib/vagrant/config/top.rb +0 -72
- data/lib/vagrant/config/vagrant.rb +0 -14
- data/lib/vagrant/config/vm.rb +0 -168
- data/lib/vagrant/config/vm/provisioner.rb +0 -52
- data/lib/vagrant/config/vm/sub_vm.rb +0 -17
- data/lib/vagrant/data_store.rb +0 -92
- data/lib/vagrant/driver.rb +0 -8
- data/lib/vagrant/driver/virtualbox.rb +0 -134
- data/lib/vagrant/driver/virtualbox_4_0.rb +0 -459
- data/lib/vagrant/driver/virtualbox_4_1.rb +0 -459
- data/lib/vagrant/driver/virtualbox_4_2.rb +0 -606
- data/lib/vagrant/driver/virtualbox_base.rb +0 -326
- data/lib/vagrant/guest.rb +0 -18
- data/lib/vagrant/guest/arch.rb +0 -56
- data/lib/vagrant/guest/base.rb +0 -99
- data/lib/vagrant/guest/freebsd.rb +0 -86
- data/lib/vagrant/guest/gentoo.rb +0 -46
- data/lib/vagrant/guest/linux/config.rb +0 -19
- data/lib/vagrant/guest/linux/error.rb +0 -9
- data/lib/vagrant/guest/openbsd.rb +0 -20
- data/lib/vagrant/guest/solaris.rb +0 -118
- data/lib/vagrant/guest/suse.rb +0 -17
- data/lib/vagrant/guest/ubuntu.rb +0 -23
- data/lib/vagrant/hosts/base.rb +0 -66
- data/lib/vagrant/provisioners.rb +0 -12
- data/lib/vagrant/provisioners/base.rb +0 -44
- data/lib/vagrant/provisioners/chef.rb +0 -168
- data/lib/vagrant/provisioners/chef_client.rb +0 -132
- data/lib/vagrant/provisioners/chef_solo.rb +0 -234
- data/lib/vagrant/provisioners/puppet.rb +0 -176
- data/lib/vagrant/provisioners/puppet_server.rb +0 -78
- data/lib/vagrant/provisioners/shell.rb +0 -103
- data/lib/vagrant/vm.rb +0 -195
- data/test/buildbot/README.md +0 -72
- 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 +0 -24
- data/test/buildbot/buildbot_config/config/master.py +0 -24
- data/test/buildbot/buildbot_config/config/slave.py +0 -22
- data/test/buildbot/buildbot_config/master/__init__.py +0 -6
- data/test/buildbot/buildbot_config/master/builders.py +0 -78
- data/test/buildbot/buildbot_config/master/buildsteps.py +0 -100
- data/test/buildbot/buildbot_config/master/change_sources.py +0 -8
- data/test/buildbot/buildbot_config/master/schedulers.py +0 -32
- data/test/buildbot/buildbot_config/master/slaves.py +0 -60
- data/test/buildbot/buildbot_config/master/status.py +0 -52
- data/test/buildbot/master/Makefile.sample +0 -28
- data/test/buildbot/master/buildbot.tac +0 -36
- data/test/buildbot/master/master.cfg +0 -67
- data/test/buildbot/master/public_html/bg_gradient.jpg +0 -0
- data/test/buildbot/master/public_html/default.css +0 -545
- data/test/buildbot/master/public_html/favicon.ico +0 -0
- data/test/buildbot/master/public_html/robots.txt +0 -10
- data/test/buildbot/master/public_html/static/css/bootstrap-1.4.0.min.css +0 -356
- data/test/buildbot/master/public_html/static/css/prettify.css +0 -97
- data/test/buildbot/master/public_html/static/css/syntax.css +0 -60
- data/test/buildbot/master/public_html/static/css/vagrant.base.css +0 -205
- 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 +0 -80
- data/test/buildbot/master/public_html/static/js/jquery-1.7.min.js +0 -4
- data/test/buildbot/master/templates/authfail.html +0 -9
- data/test/buildbot/master/templates/build.html +0 -205
- data/test/buildbot/master/templates/builder.html +0 -118
- data/test/buildbot/master/templates/builders.html +0 -33
- data/test/buildbot/master/templates/buildslave.html +0 -72
- data/test/buildbot/master/templates/buildslaves.html +0 -70
- data/test/buildbot/master/templates/change.html +0 -15
- data/test/buildbot/master/templates/layouts/base.html +0 -58
- data/test/buildbot/master/templates/macros/box.html +0 -37
- data/test/buildbot/master/templates/macros/build_line.html +0 -50
- data/test/buildbot/master/templates/macros/change.html +0 -81
- data/test/buildbot/master/templates/macros/forms.html +0 -300
- data/test/buildbot/master/templates/root.html +0 -42
- data/test/buildbot/master/templates/waterfall.html +0 -53
- data/test/buildbot/requirements.txt +0 -4
- data/test/buildbot/scripts/deploy.sh +0 -38
- data/test/buildbot/scripts/setup.sh +0 -107
- data/test/buildbot/slave/buildbot.tac +0 -43
- data/test/buildbot/slave/info/admin +0 -1
- data/test/buildbot/slave/info/host +0 -1
- 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 +0 -41
- data/test/buildbot/vendor/choices-0.4.0.tar.gz +0 -0
- data/test/unit/vagrant/action/environment_test.rb +0 -16
- data/test/unit/vagrant/config/base_test.rb +0 -48
- data/test/unit/vagrant/config/ssh_test.rb +0 -17
- data/test/unit/vagrant/config/top_test.rb +0 -69
- data/test/unit/vagrant/config/vm_test.rb +0 -71
- data/test/unit/vagrant/data_store_test.rb +0 -79
- data/test/unit_legacy/locales/en.yml +0 -8
- data/test/unit_legacy/test_helper.rb +0 -32
- data/test/unit_legacy/vagrant/action/box/destroy_test.rb +0 -18
- data/test/unit_legacy/vagrant/action/box/download_test.rb +0 -125
- data/test/unit_legacy/vagrant/action/box/package_test.rb +0 -25
- data/test/unit_legacy/vagrant/action/box/unpackage_test.rb +0 -84
- data/test/unit_legacy/vagrant/action/box/verify_test.rb +0 -30
- data/test/unit_legacy/vagrant/action/env/set_test.rb +0 -24
- data/test/unit_legacy/vagrant/action/general/package_test.rb +0 -268
- data/test/unit_legacy/vagrant/action/general/validate_test.rb +0 -31
- data/test/unit_legacy/vagrant/action/vm/boot_test.rb +0 -66
- data/test/unit_legacy/vagrant/action/vm/check_accessible_test.rb +0 -61
- data/test/unit_legacy/vagrant/action/vm/check_box_test.rb +0 -61
- data/test/unit_legacy/vagrant/action/vm/check_guest_additions_test.rb +0 -9
- data/test/unit_legacy/vagrant/action/vm/clean_machine_folder_test.rb +0 -84
- data/test/unit_legacy/vagrant/action/vm/clear_forwarded_ports_test.rb +0 -52
- data/test/unit_legacy/vagrant/action/vm/clear_nfs_exports_test.rb +0 -22
- data/test/unit_legacy/vagrant/action/vm/clear_shared_folders_test.rb +0 -40
- data/test/unit_legacy/vagrant/action/vm/customize_test.rb +0 -37
- data/test/unit_legacy/vagrant/action/vm/destroy_test.rb +0 -25
- data/test/unit_legacy/vagrant/action/vm/destroy_unused_network_interfaces_test.rb +0 -49
- data/test/unit_legacy/vagrant/action/vm/discard_state_test.rb +0 -45
- data/test/unit_legacy/vagrant/action/vm/export_test.rb +0 -107
- data/test/unit_legacy/vagrant/action/vm/forward_ports_helpers_test.rb +0 -77
- data/test/unit_legacy/vagrant/action/vm/forward_ports_test.rb +0 -197
- data/test/unit_legacy/vagrant/action/vm/halt_test.rb +0 -79
- data/test/unit_legacy/vagrant/action/vm/host_name_test.rb +0 -36
- data/test/unit_legacy/vagrant/action/vm/import_test.rb +0 -66
- data/test/unit_legacy/vagrant/action/vm/match_mac_address_test.rb +0 -40
- data/test/unit_legacy/vagrant/action/vm/modify_test.rb +0 -38
- data/test/unit_legacy/vagrant/action/vm/network_test.rb +0 -286
- data/test/unit_legacy/vagrant/action/vm/nfs_helpers_test.rb +0 -26
- data/test/unit_legacy/vagrant/action/vm/nfs_test.rb +0 -260
- data/test/unit_legacy/vagrant/action/vm/package_test.rb +0 -25
- data/test/unit_legacy/vagrant/action/vm/package_vagrantfile_test.rb +0 -46
- data/test/unit_legacy/vagrant/action/vm/provision_test.rb +0 -65
- data/test/unit_legacy/vagrant/action/vm/provisioner_cleanup_test.rb +0 -56
- data/test/unit_legacy/vagrant/action/vm/resume_test.rb +0 -35
- data/test/unit_legacy/vagrant/action/vm/share_folders_test.rb +0 -144
- data/test/unit_legacy/vagrant/action/vm/suspend_test.rb +0 -35
- data/test/unit_legacy/vagrant/action_test.rb +0 -89
- data/test/unit_legacy/vagrant/box_collection_test.rb +0 -45
- data/test/unit_legacy/vagrant/box_test.rb +0 -74
- data/test/unit_legacy/vagrant/cli_test.rb +0 -35
- data/test/unit_legacy/vagrant/command/base_test.rb +0 -23
- data/test/unit_legacy/vagrant/command/group_base_test.rb +0 -15
- data/test/unit_legacy/vagrant/command/helpers_test.rb +0 -88
- data/test/unit_legacy/vagrant/command/init_test.rb +0 -10
- data/test/unit_legacy/vagrant/command/package_test.rb +0 -27
- data/test/unit_legacy/vagrant/config/base_test.rb +0 -52
- data/test/unit_legacy/vagrant/config/error_recorder_test.rb +0 -18
- data/test/unit_legacy/vagrant/config/ssh_test.rb +0 -12
- data/test/unit_legacy/vagrant/config/vagrant_test.rb +0 -35
- data/test/unit_legacy/vagrant/config/vm/provisioner_test.rb +0 -92
- data/test/unit_legacy/vagrant/config/vm_test.rb +0 -47
- data/test/unit_legacy/vagrant/config_test.rb +0 -148
- data/test/unit_legacy/vagrant/downloaders/http_test.rb +0 -93
- data/test/unit_legacy/vagrant/environment_test.rb +0 -539
- data/test/unit_legacy/vagrant/errors_test.rb +0 -42
- data/test/unit_legacy/vagrant/hosts/base_test.rb +0 -46
- data/test/unit_legacy/vagrant/hosts/bsd_test.rb +0 -53
- data/test/unit_legacy/vagrant/hosts/linux_test.rb +0 -54
- data/test/unit_legacy/vagrant/plugin_test.rb +0 -9
- data/test/unit_legacy/vagrant/provisioners/base_test.rb +0 -63
- data/test/unit_legacy/vagrant/provisioners/chef_client_test.rb +0 -190
- data/test/unit_legacy/vagrant/provisioners/chef_solo_test.rb +0 -115
- data/test/unit_legacy/vagrant/provisioners/chef_test.rb +0 -209
- data/test/unit_legacy/vagrant/provisioners/puppet_server_test.rb +0 -68
- data/test/unit_legacy/vagrant/provisioners/puppet_test.rb +0 -182
- data/test/unit_legacy/vagrant/provisioners/shell_test.rb +0 -79
- data/test/unit_legacy/vagrant/ssh/session_test.rb +0 -40
- data/test/unit_legacy/vagrant/ssh_test.rb +0 -304
- data/test/unit_legacy/vagrant/systems/base_test.rb +0 -18
- data/test/unit_legacy/vagrant/systems/linux_test.rb +0 -104
- data/test/unit_legacy/vagrant/util/busy_test.rb +0 -106
- data/test/unit_legacy/vagrant/util/counter_test.rb +0 -29
- data/test/unit_legacy/vagrant/util/platform_test.rb +0 -18
- data/test/unit_legacy/vagrant/util/stacked_proc_runner_test.rb +0 -43
- data/test/unit_legacy/vagrant/util/template_renderer_test.rb +0 -145
- data/test/unit_legacy/vagrant/vm_test.rb +0 -300
- data/vagrant-1.1.4.gem +0 -0
- data/vagrantup-0.1.0.gem +0 -0
- data/vagrantup-0.1.1.gem +0 -0
- data/vagrantup-0.1.2.gem +0 -0
- data/vagrantup-0.1.3.gem +0 -0
- data/vagrantup-0.1.4.gem +0 -0
- data/vagrantup-0.2.0.gem +0 -0
- data/vagrantup-0.3.0.gem +0 -0
- data/vagrantup-0.3.1.gem +0 -0
- data/vagrantup-0.3.2.gem +0 -0
- data/vagrantup-0.3.3.gem +0 -0
- data/vagrantup-0.3.4.gem +0 -0
- data/vagrantup-0.4.0.gem +0 -0
- data/vagrantup-0.4.1.gem +0 -0
- data/vagrantup-0.4.3.dev.gem +0 -0
- data/vagrantup-0.5.0.gem +0 -0
- data/vagrantup-0.5.1.gem +0 -0
- data/vagrantup-0.5.2.gem +0 -0
- data/vagrantup-0.5.3.gem +0 -0
- data/vagrantup-0.5.4.gem +0 -0
- data/vagrantup-0.6.0.gem +0 -0
- data/vagrantup-0.6.1.gem +0 -0
- data/vagrantup-0.6.2.gem +0 -0
- data/vagrantup-0.6.3.gem +0 -0
- data/vagrantup-0.6.4.gem +0 -0
- data/vagrantup-0.6.5.gem +0 -0
- data/vagrantup-0.6.6.gem +0 -0
- data/vagrantup-0.6.7.gem +0 -0
- data/vagrantup-0.6.8.gem +0 -0
- data/vagrantup-0.6.9.gem +0 -0
- data/vagrantup-0.7.0.gem +0 -0
- data/vagrantup-0.7.1.gem +0 -0
- data/vagrantup-0.7.2.gem +0 -0
- data/vagrantup-0.7.3.gem +0 -0
- data/vagrantup-0.7.4.gem +0 -0
- data/vagrantup-0.7.5.gem +0 -0
- data/vagrantup-0.7.6.gem +0 -0
- data/vagrantup-0.7.7.gem +0 -0
- data/vagrantup-0.7.8.gem +0 -0
- data/vagrantup-0.8.0.gem +0 -0
- data/vagrantup-0.8.1.gem +0 -0
- data/vagrantup-0.8.10.gem +0 -0
- data/vagrantup-0.8.2.gem +0 -0
- data/vagrantup-0.8.3.gem +0 -0
- data/vagrantup-0.8.4.gem +0 -0
- data/vagrantup-0.8.5.gem +0 -0
- data/vagrantup-0.8.6.gem +0 -0
- data/vagrantup-0.8.7.gem +0 -0
- data/vagrantup-0.8.8.gem +0 -0
- data/vagrantup-0.8.9.gem +0 -0
- data/vagrantup-0.9.0.gem +0 -0
- data/vagrantup-0.9.1.gem +0 -0
- data/vagrantup-0.9.2.gem +0 -0
- data/vagrantup-0.9.3.gem +0 -0
- data/vagrantup-0.9.4.gem +0 -0
- data/vagrantup-0.9.5.gem +0 -0
- data/vagrantup-0.9.6.gem +0 -0
- data/vagrantup-0.9.7.gem +0 -0
- data/vagrantup-0.9.99.1.gem +0 -0
- data/vagrantup-0.9.99.2.gem +0 -0
- data/vagrantup-1.0.0.gem +0 -0
- data/vagrantup-1.0.1.gem +0 -0
- data/vagrantup-1.0.2.gem +0 -0
- data/vagrantup-1.0.3.gem +0 -0
- data/vagrantup-1.0.4.gem +0 -0
- data/vagrantup-1.0.5.gem +0 -0
- data/vagrantup-1.0.6.gem +0 -0
- data/vagrantup-1.1.4.gem +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module CommandSSHConfig
|
|
5
|
+
class Plugin < Vagrant.plugin("2")
|
|
6
|
+
name "ssh-config command"
|
|
7
|
+
description <<-DESC
|
|
8
|
+
The `ssh-config` command dumps an OpenSSH compatible configuration
|
|
9
|
+
that can be used to quickly SSH into your virtual machine.
|
|
10
|
+
DESC
|
|
11
|
+
|
|
12
|
+
command("ssh-config") do
|
|
13
|
+
require File.expand_path("../command", __FILE__)
|
|
14
|
+
Command
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require 'optparse'
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module CommandStatus
|
|
5
|
+
class Command < Vagrant.plugin("2", :command)
|
|
6
|
+
def execute
|
|
7
|
+
opts = OptionParser.new do |o|
|
|
8
|
+
o.banner = "Usage: vagrant status [machine-name]"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Parse the options
|
|
12
|
+
argv = parse_options(opts)
|
|
13
|
+
return if !argv
|
|
14
|
+
|
|
15
|
+
state = nil
|
|
16
|
+
results = []
|
|
17
|
+
with_target_vms(argv) do |machine|
|
|
18
|
+
state = machine.state if !state
|
|
19
|
+
results << "#{machine.name.to_s.ljust(25)}#{machine.state.short_description} (#{machine.provider_name})"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
message = nil
|
|
23
|
+
if results.length == 1
|
|
24
|
+
message = state.long_description
|
|
25
|
+
else
|
|
26
|
+
message = I18n.t("vagrant.commands.status.listing")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
@env.ui.info(I18n.t("vagrant.commands.status.output",
|
|
30
|
+
:states => results.join("\n"),
|
|
31
|
+
:message => message),
|
|
32
|
+
:prefix => false)
|
|
33
|
+
|
|
34
|
+
# Success, exit status 0
|
|
35
|
+
0
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module CommandStatus
|
|
5
|
+
class Plugin < Vagrant.plugin("2")
|
|
6
|
+
name "status command"
|
|
7
|
+
description <<-DESC
|
|
8
|
+
The `status` command shows what the running state (running/saved/..)
|
|
9
|
+
is of all your virtual machines in this environment.
|
|
10
|
+
DESC
|
|
11
|
+
|
|
12
|
+
command("status") do
|
|
13
|
+
require File.expand_path("../command", __FILE__)
|
|
14
|
+
Command
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'optparse'
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module CommandSuspend
|
|
5
|
+
class Command < Vagrant.plugin("2", :command)
|
|
6
|
+
def execute
|
|
7
|
+
opts = OptionParser.new do |o|
|
|
8
|
+
o.banner = "Usage: vagrant suspend [vm-name]"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Parse the options
|
|
12
|
+
argv = parse_options(opts)
|
|
13
|
+
return if !argv
|
|
14
|
+
|
|
15
|
+
@logger.debug("'suspend' each target VM...")
|
|
16
|
+
with_target_vms(argv) do |vm|
|
|
17
|
+
vm.action(:suspend)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Success, exit status 0
|
|
21
|
+
0
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module CommandSuspend
|
|
5
|
+
class Plugin < Vagrant.plugin("2")
|
|
6
|
+
name "suspend command"
|
|
7
|
+
description <<-DESC
|
|
8
|
+
The `suspend` command suspends execution and puts it to sleep.
|
|
9
|
+
The command `resume` returns it to running status.
|
|
10
|
+
DESC
|
|
11
|
+
|
|
12
|
+
command("suspend") do
|
|
13
|
+
require File.expand_path("../command", __FILE__)
|
|
14
|
+
Command
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require 'optparse'
|
|
2
|
+
|
|
3
|
+
require "vagrant"
|
|
4
|
+
|
|
5
|
+
require File.expand_path("../start_mixins", __FILE__)
|
|
6
|
+
|
|
7
|
+
module VagrantPlugins
|
|
8
|
+
module CommandUp
|
|
9
|
+
class Command < Vagrant.plugin("2", :command)
|
|
10
|
+
include StartMixins
|
|
11
|
+
|
|
12
|
+
def execute
|
|
13
|
+
options = {}
|
|
14
|
+
opts = OptionParser.new do |o|
|
|
15
|
+
o.banner = "Usage: vagrant up [vm-name] [--[no-]provision] [--provider provider] [-h]"
|
|
16
|
+
o.separator ""
|
|
17
|
+
|
|
18
|
+
build_start_options(o, options)
|
|
19
|
+
|
|
20
|
+
o.on("--provider provider", String,
|
|
21
|
+
"Back the machine with a specific provider.") do |provider|
|
|
22
|
+
options[:provider] = provider
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Parse the options
|
|
27
|
+
argv = parse_options(opts)
|
|
28
|
+
return if !argv
|
|
29
|
+
|
|
30
|
+
# Go over each VM and bring it up
|
|
31
|
+
@logger.debug("'Up' each target VM...")
|
|
32
|
+
with_target_vms(argv, :provider => options[:provider]) do |machine|
|
|
33
|
+
@env.ui.info(I18n.t(
|
|
34
|
+
"vagrant.commands.up.upping",
|
|
35
|
+
:name => machine.name,
|
|
36
|
+
:provider => machine.provider_name))
|
|
37
|
+
machine.action(:up, options)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Success, exit status 0
|
|
41
|
+
0
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module CommandUp
|
|
5
|
+
class Plugin < Vagrant.plugin("2")
|
|
6
|
+
name "up command"
|
|
7
|
+
description <<-DESC
|
|
8
|
+
The `up` command brings the virtual environment up and running.
|
|
9
|
+
DESC
|
|
10
|
+
|
|
11
|
+
command("up") do
|
|
12
|
+
require File.expand_path("../command", __FILE__)
|
|
13
|
+
Command
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
module
|
|
2
|
-
module
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module CommandUp
|
|
3
3
|
module StartMixins
|
|
4
4
|
# This adds the standard `start` command line flags to the given
|
|
5
5
|
# OptionParser, storing the result in the `options` dictionary.
|
|
@@ -8,17 +8,17 @@ module Vagrant
|
|
|
8
8
|
# @param [Hash] options
|
|
9
9
|
def build_start_options(parser, options)
|
|
10
10
|
# Setup the defaults
|
|
11
|
-
options[
|
|
12
|
-
options[
|
|
11
|
+
options[:provision_enabled] = true
|
|
12
|
+
options[:provision_types] = nil
|
|
13
13
|
|
|
14
14
|
# Add the options
|
|
15
15
|
parser.on("--[no-]provision", "Enable or disable provisioning") do |p|
|
|
16
|
-
options[
|
|
16
|
+
options[:provision_enabled] = p
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
parser.on("--provision-with x,y,z", Array,
|
|
20
20
|
"Enable only certain provisioners, by type.") do |list|
|
|
21
|
-
options[
|
|
21
|
+
options[:provision_types] = list.map { |type| type.to_sym }
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
24
|
end
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
require 'logger'
|
|
2
|
+
require 'pathname'
|
|
3
|
+
require 'stringio'
|
|
1
4
|
require 'timeout'
|
|
2
5
|
|
|
3
6
|
require 'log4r'
|
|
@@ -8,33 +11,38 @@ require 'vagrant/util/ansi_escape_code_remover'
|
|
|
8
11
|
require 'vagrant/util/file_mode'
|
|
9
12
|
require 'vagrant/util/platform'
|
|
10
13
|
require 'vagrant/util/retryable'
|
|
14
|
+
require 'vagrant/util/ssh'
|
|
11
15
|
|
|
12
|
-
module
|
|
13
|
-
module
|
|
14
|
-
#
|
|
15
|
-
class
|
|
16
|
-
include Util::ANSIEscapeCodeRemover
|
|
17
|
-
include Util::Retryable
|
|
16
|
+
module VagrantPlugins
|
|
17
|
+
module CommunicatorSSH
|
|
18
|
+
# This class provides communication with the VM via SSH.
|
|
19
|
+
class Communicator < Vagrant.plugin("2", :communicator)
|
|
20
|
+
include Vagrant::Util::ANSIEscapeCodeRemover
|
|
21
|
+
include Vagrant::Util::Retryable
|
|
18
22
|
|
|
19
|
-
def
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
def self.match?(machine)
|
|
24
|
+
# All machines are currently expected to have SSH.
|
|
25
|
+
true
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def initialize(machine)
|
|
29
|
+
@machine = machine
|
|
30
|
+
@logger = Log4r::Logger.new("vagrant::communication::ssh")
|
|
22
31
|
@connection = nil
|
|
23
32
|
end
|
|
24
33
|
|
|
25
34
|
def ready?
|
|
26
35
|
@logger.debug("Checking whether SSH is ready...")
|
|
27
36
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
end
|
|
37
|
+
# Attempt to connect. This will raise an exception if it fails.
|
|
38
|
+
connect
|
|
31
39
|
|
|
32
40
|
# If we reached this point then we successfully connected
|
|
33
41
|
@logger.info("SSH is ready!")
|
|
34
42
|
true
|
|
35
|
-
rescue
|
|
36
|
-
#
|
|
37
|
-
#
|
|
43
|
+
rescue Vagrant::Errors::VagrantError => e
|
|
44
|
+
# We catch a `VagrantError` which would signal that something went
|
|
45
|
+
# wrong expectedly in the `connect`, which means we didn't connect.
|
|
38
46
|
@logger.info("SSH not up: #{e.inspect}")
|
|
39
47
|
return false
|
|
40
48
|
end
|
|
@@ -42,7 +50,7 @@ module Vagrant
|
|
|
42
50
|
def execute(command, opts=nil, &block)
|
|
43
51
|
opts = {
|
|
44
52
|
:error_check => true,
|
|
45
|
-
:error_class => Errors::VagrantError,
|
|
53
|
+
:error_class => Vagrant::Errors::VagrantError,
|
|
46
54
|
:error_key => :ssh_bad_exit_status,
|
|
47
55
|
:command => command,
|
|
48
56
|
:sudo => false
|
|
@@ -72,21 +80,40 @@ module Vagrant
|
|
|
72
80
|
execute(command, opts, &block)
|
|
73
81
|
end
|
|
74
82
|
|
|
83
|
+
def download(from, to=nil)
|
|
84
|
+
@logger.debug("Downloading: #{from} to #{to}")
|
|
85
|
+
|
|
86
|
+
scp_connect do |scp|
|
|
87
|
+
scp.download!(from, to)
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def test(command, opts=nil)
|
|
92
|
+
opts = { :error_check => false }.merge(opts || {})
|
|
93
|
+
execute(command, opts) == 0
|
|
94
|
+
end
|
|
95
|
+
|
|
75
96
|
def upload(from, to)
|
|
76
97
|
@logger.debug("Uploading: #{from} to #{to}")
|
|
77
98
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
99
|
+
scp_connect do |scp|
|
|
100
|
+
if File.directory?(from)
|
|
101
|
+
# Recurisvely upload directories
|
|
102
|
+
scp.upload!(from, to, :recursive => true)
|
|
103
|
+
else
|
|
104
|
+
# Open file read only to fix issue [GH-1036]
|
|
105
|
+
scp.upload!(File.open(from, "r"), to)
|
|
106
|
+
end
|
|
83
107
|
end
|
|
84
|
-
rescue
|
|
85
|
-
#
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
108
|
+
rescue RuntimeError => e
|
|
109
|
+
# Net::SCP raises a runtime error for this so the only way we have
|
|
110
|
+
# to really catch this exception is to check the message to see if
|
|
111
|
+
# it is something we care about. If it isn't, we re-raise.
|
|
112
|
+
raise if e.message !~ /Permission denied/
|
|
113
|
+
|
|
114
|
+
# Otherwise, it is a permission denied, so let's raise a proper
|
|
115
|
+
# exception
|
|
116
|
+
raise Vagrant::Errors::SCPPermissionDenied, :path => from.to_s
|
|
90
117
|
end
|
|
91
118
|
|
|
92
119
|
protected
|
|
@@ -113,21 +140,25 @@ module Vagrant
|
|
|
113
140
|
end
|
|
114
141
|
end
|
|
115
142
|
|
|
116
|
-
|
|
143
|
+
# Get the SSH info for the machine, raise an exception if the
|
|
144
|
+
# provider is saying that SSH is not ready.
|
|
145
|
+
ssh_info = @machine.ssh_info
|
|
146
|
+
raise Vagrant::Errors::SSHNotReady if ssh_info.nil?
|
|
117
147
|
|
|
118
148
|
# Build the options we'll use to initiate the connection via Net::SSH
|
|
119
149
|
opts = {
|
|
120
|
-
:
|
|
150
|
+
:auth_methods => ["none", "publickey", "hostbased", "password"],
|
|
151
|
+
:config => false,
|
|
152
|
+
:forward_agent => ssh_info[:forward_agent],
|
|
121
153
|
:keys => [ssh_info[:private_key_path]],
|
|
122
154
|
:keys_only => true,
|
|
123
|
-
:user_known_hosts_file => [],
|
|
124
155
|
:paranoid => false,
|
|
125
|
-
:
|
|
126
|
-
:
|
|
156
|
+
:port => ssh_info[:port],
|
|
157
|
+
:user_known_hosts_file => []
|
|
127
158
|
}
|
|
128
159
|
|
|
129
160
|
# Check that the private key permissions are valid
|
|
130
|
-
|
|
161
|
+
Vagrant::Util::SSH.check_key_permissions(Pathname.new(ssh_info[:private_key_path]))
|
|
131
162
|
|
|
132
163
|
# Connect to SSH, giving it a few tries
|
|
133
164
|
connection = nil
|
|
@@ -136,27 +167,68 @@ module Vagrant
|
|
|
136
167
|
# errors that are generally fixed from a retry and don't
|
|
137
168
|
# necessarily represent immediate failure cases.
|
|
138
169
|
exceptions = [
|
|
170
|
+
Errno::EADDRINUSE,
|
|
139
171
|
Errno::ECONNREFUSED,
|
|
172
|
+
Errno::ECONNRESET,
|
|
140
173
|
Errno::EHOSTUNREACH,
|
|
141
174
|
Net::SSH::Disconnect,
|
|
142
175
|
Timeout::Error
|
|
143
176
|
]
|
|
144
177
|
|
|
145
|
-
@
|
|
146
|
-
|
|
147
|
-
|
|
178
|
+
retries = @machine.config.ssh.max_tries
|
|
179
|
+
timeout = @machine.config.ssh.timeout
|
|
180
|
+
|
|
181
|
+
@logger.info("Attempting SSH. Retries: #{retries}. Timeout: #{timeout}")
|
|
182
|
+
connection = retryable(:tries => retries, :on => exceptions) do
|
|
183
|
+
Timeout.timeout(timeout) do
|
|
184
|
+
begin
|
|
185
|
+
# This logger will get the Net-SSH log data for us.
|
|
186
|
+
ssh_logger_io = StringIO.new
|
|
187
|
+
ssh_logger = Logger.new(ssh_logger_io)
|
|
188
|
+
|
|
189
|
+
# Setup logging for connections
|
|
190
|
+
connect_opts = opts.merge({
|
|
191
|
+
:logger => ssh_logger,
|
|
192
|
+
:verbose => :debug
|
|
193
|
+
})
|
|
194
|
+
|
|
195
|
+
@logger.info("Attempting to connect to SSH: #{ssh_info[:host]}:#{ssh_info[:port]}")
|
|
196
|
+
Net::SSH.start(ssh_info[:host], ssh_info[:username], connect_opts)
|
|
197
|
+
ensure
|
|
198
|
+
# Make sure we output the connection log
|
|
199
|
+
@logger.debug("== Net-SSH connection debug-level log START ==")
|
|
200
|
+
@logger.debug(ssh_logger_io.string)
|
|
201
|
+
@logger.debug("== Net-SSH connection debug-level log END ==")
|
|
202
|
+
end
|
|
203
|
+
end
|
|
148
204
|
end
|
|
205
|
+
rescue Errno::ETIMEDOUT, Timeout::Error
|
|
206
|
+
# This happens if we continued to timeout when attempting to connect.
|
|
207
|
+
raise Vagrant::Errors::SSHConnectionTimeout
|
|
149
208
|
rescue Net::SSH::AuthenticationFailed
|
|
150
209
|
# This happens if authentication failed. We wrap the error in our
|
|
151
210
|
# own exception.
|
|
152
|
-
raise Errors::SSHAuthenticationFailed
|
|
211
|
+
raise Vagrant::Errors::SSHAuthenticationFailed
|
|
212
|
+
rescue Net::SSH::Disconnect
|
|
213
|
+
# This happens if the remote server unexpectedly closes the
|
|
214
|
+
# connection. This is usually raised when SSH is running on the
|
|
215
|
+
# other side but can't properly setup a connection. This is
|
|
216
|
+
# usually a server-side issue.
|
|
217
|
+
raise Vagrant::Errors::SSHDisconnected
|
|
153
218
|
rescue Errno::ECONNREFUSED
|
|
154
219
|
# This is raised if we failed to connect the max amount of times
|
|
155
|
-
raise Errors::SSHConnectionRefused
|
|
220
|
+
raise Vagrant::Errors::SSHConnectionRefused
|
|
221
|
+
rescue Errno::ECONNRESET
|
|
222
|
+
# This is raised if we failed to connect the max number of times
|
|
223
|
+
# due to an ECONNRESET.
|
|
224
|
+
raise Vagrant::Errors::SSHConnectionReset
|
|
225
|
+
rescue Errno::EHOSTDOWN
|
|
226
|
+
# This is raised if we get an ICMP DestinationUnknown error.
|
|
227
|
+
raise Vagrant::Errors::SSHHostDown
|
|
156
228
|
rescue NotImplementedError
|
|
157
229
|
# This is raised if a private key type that Net-SSH doesn't support
|
|
158
230
|
# is used. Show a nicer error.
|
|
159
|
-
raise Errors::SSHKeyTypeNotSupported
|
|
231
|
+
raise Vagrant::Errors::SSHKeyTypeNotSupported
|
|
160
232
|
end
|
|
161
233
|
|
|
162
234
|
@connection = connection
|
|
@@ -178,7 +250,7 @@ module Vagrant
|
|
|
178
250
|
|
|
179
251
|
# Determine the shell to execute. If we are using `sudo` then we
|
|
180
252
|
# need to wrap the shell in a `sudo` call.
|
|
181
|
-
shell =
|
|
253
|
+
shell = @machine.config.ssh.shell
|
|
182
254
|
shell = "sudo -H #{shell}" if sudo
|
|
183
255
|
|
|
184
256
|
# Open the channel so we can execute or command
|
|
@@ -186,21 +258,17 @@ module Vagrant
|
|
|
186
258
|
ch.exec(shell) do |ch2, _|
|
|
187
259
|
# Setup the channel callbacks so we can get data and exit status
|
|
188
260
|
ch2.on_data do |ch3, data|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
yield :stdout, data
|
|
194
|
-
end
|
|
261
|
+
# Filter out the clear screen command
|
|
262
|
+
data = remove_ansi_escape_codes(data)
|
|
263
|
+
@logger.debug("stdout: #{data}")
|
|
264
|
+
yield :stdout, data if block_given?
|
|
195
265
|
end
|
|
196
266
|
|
|
197
267
|
ch2.on_extended_data do |ch3, type, data|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
yield :stderr, data
|
|
203
|
-
end
|
|
268
|
+
# Filter out the clear screen command
|
|
269
|
+
data = remove_ansi_escape_codes(data)
|
|
270
|
+
@logger.debug("stderr: #{data}")
|
|
271
|
+
yield :stderr, data if block_given?
|
|
204
272
|
end
|
|
205
273
|
|
|
206
274
|
ch2.on_request("exit-status") do |ch3, data|
|
|
@@ -216,6 +284,9 @@ module Vagrant
|
|
|
216
284
|
|
|
217
285
|
# Remember to exit or this channel will hang open
|
|
218
286
|
ch2.send_data "exit\n"
|
|
287
|
+
|
|
288
|
+
# Send eof to let server know we're done
|
|
289
|
+
ch2.eof!
|
|
219
290
|
end
|
|
220
291
|
end
|
|
221
292
|
|
|
@@ -225,6 +296,22 @@ module Vagrant
|
|
|
225
296
|
# Return the final exit status
|
|
226
297
|
return exit_status
|
|
227
298
|
end
|
|
299
|
+
|
|
300
|
+
# Opens an SCP connection and yields it so that you can download
|
|
301
|
+
# and upload files.
|
|
302
|
+
def scp_connect
|
|
303
|
+
# Connect to SCP and yield the SCP object
|
|
304
|
+
connect do |connection|
|
|
305
|
+
scp = Net::SCP.new(connection)
|
|
306
|
+
return yield scp
|
|
307
|
+
end
|
|
308
|
+
rescue Net::SCP::Error => e
|
|
309
|
+
# If we get the exit code of 127, then this means SCP is unavailable.
|
|
310
|
+
raise Vagrant::Errors::SCPUnavailable if e.message =~ /\(127\)/
|
|
311
|
+
|
|
312
|
+
# Otherwise, just raise the error up
|
|
313
|
+
raise
|
|
314
|
+
end
|
|
228
315
|
end
|
|
229
316
|
end
|
|
230
317
|
end
|