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
data/lib/vagrant/action.rb
CHANGED
|
@@ -2,62 +2,41 @@ require 'vagrant/action/builder'
|
|
|
2
2
|
|
|
3
3
|
module Vagrant
|
|
4
4
|
module Action
|
|
5
|
-
autoload :Builtin, 'vagrant/action/builtin'
|
|
6
|
-
autoload :Environment, 'vagrant/action/environment'
|
|
7
5
|
autoload :Runner, 'vagrant/action/runner'
|
|
8
6
|
autoload :Warden, 'vagrant/action/warden'
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
autoload :
|
|
14
|
-
autoload :
|
|
15
|
-
autoload :
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
autoload :
|
|
8
|
+
# Builtin contains middleware classes that are shipped with Vagrant-core
|
|
9
|
+
# and are thus available to all plugins as a "standard library" of sorts.
|
|
10
|
+
module Builtin
|
|
11
|
+
autoload :BoxAdd, "vagrant/action/builtin/box_add"
|
|
12
|
+
autoload :Call, "vagrant/action/builtin/call"
|
|
13
|
+
autoload :Confirm, "vagrant/action/builtin/confirm"
|
|
14
|
+
autoload :ConfigValidate, "vagrant/action/builtin/config_validate"
|
|
15
|
+
autoload :EnvSet, "vagrant/action/builtin/env_set"
|
|
16
|
+
autoload :GracefulHalt, "vagrant/action/builtin/graceful_halt"
|
|
17
|
+
autoload :HandleBoxUrl, "vagrant/action/builtin/handle_box_url"
|
|
18
|
+
autoload :HandleForwardedPortCollisions, "vagrant/action/builtin/handle_forwarded_port_collisions"
|
|
19
|
+
autoload :Lock, "vagrant/action/builtin/lock"
|
|
20
|
+
autoload :NFS, "vagrant/action/builtin/nfs"
|
|
21
|
+
autoload :Provision, "vagrant/action/builtin/provision"
|
|
22
|
+
autoload :SetHostname, "vagrant/action/builtin/set_hostname"
|
|
23
|
+
autoload :SSHExec, "vagrant/action/builtin/ssh_exec"
|
|
24
|
+
autoload :SSHRun, "vagrant/action/builtin/ssh_run"
|
|
20
25
|
end
|
|
21
26
|
|
|
22
27
|
module General
|
|
23
|
-
autoload :CheckVirtualbox, 'vagrant/action/general/check_virtualbox'
|
|
24
28
|
autoload :Package, 'vagrant/action/general/package'
|
|
25
|
-
autoload :Validate, 'vagrant/action/general/validate'
|
|
26
29
|
end
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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'
|
|
31
|
+
# This is the action that will add a box from a URL. This middleware
|
|
32
|
+
# sequence is built-in to Vagrant. Plugins can hook into this like any
|
|
33
|
+
# other middleware sequence. This is particularly useful for provider
|
|
34
|
+
# plugins, which can hook in to do things like verification of boxes
|
|
35
|
+
# that are downloaded.
|
|
36
|
+
def self.action_box_add
|
|
37
|
+
Builder.new.tap do |b|
|
|
38
|
+
b.use Builtin::BoxAdd
|
|
39
|
+
end
|
|
61
40
|
end
|
|
62
41
|
end
|
|
63
42
|
end
|
|
@@ -9,18 +9,39 @@ module Vagrant
|
|
|
9
9
|
#
|
|
10
10
|
# Building an action sequence is very easy:
|
|
11
11
|
#
|
|
12
|
-
# app = Vagrant::Action::Builder.new do
|
|
13
|
-
# use MiddlewareA
|
|
14
|
-
# use MiddlewareB
|
|
12
|
+
# app = Vagrant::Action::Builder.new.tap do |b|
|
|
13
|
+
# b.use MiddlewareA
|
|
14
|
+
# b.use MiddlewareB
|
|
15
15
|
# end
|
|
16
16
|
#
|
|
17
17
|
# Vagrant::Action.run(app)
|
|
18
18
|
#
|
|
19
19
|
class Builder
|
|
20
|
-
#
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
# This is the stack of middlewares added. This should NOT be used
|
|
21
|
+
# directly.
|
|
22
|
+
#
|
|
23
|
+
# @return [Array]
|
|
24
|
+
attr_reader :stack
|
|
25
|
+
|
|
26
|
+
# This is a shortcut for a middleware sequence with only one item
|
|
27
|
+
# in it. For a description of the arguments and the documentation, please
|
|
28
|
+
# see {#use} instead.
|
|
29
|
+
#
|
|
30
|
+
# @return [Builder]
|
|
31
|
+
def self.build(middleware, *args, &block)
|
|
32
|
+
new.use(middleware, *args, &block)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def initialize
|
|
36
|
+
@stack = []
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Implement a custom copy that copies the stack variable over so that
|
|
40
|
+
# we don't clobber that.
|
|
41
|
+
def initialize_copy(original)
|
|
42
|
+
super
|
|
43
|
+
|
|
44
|
+
@stack = original.stack.dup
|
|
24
45
|
end
|
|
25
46
|
|
|
26
47
|
# Returns a mergeable version of the builder. If `use` is called with
|
|
@@ -38,11 +59,6 @@ module Vagrant
|
|
|
38
59
|
#
|
|
39
60
|
# @param [Class] middleware The middleware class
|
|
40
61
|
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
62
|
if middleware.kind_of?(Builder)
|
|
47
63
|
# Merge in the other builder's stack into our own
|
|
48
64
|
self.stack.concat(middleware.stack)
|
|
@@ -57,6 +73,7 @@ module Vagrant
|
|
|
57
73
|
# given middleware object.
|
|
58
74
|
def insert(index, middleware, *args, &block)
|
|
59
75
|
index = self.index(index) unless index.is_a?(Integer)
|
|
76
|
+
raise "no such middleware to insert before: #{index.inspect}" unless index
|
|
60
77
|
stack.insert(index, [middleware, args, block])
|
|
61
78
|
end
|
|
62
79
|
|
|
@@ -92,8 +109,6 @@ module Vagrant
|
|
|
92
109
|
to_app(env).call(env)
|
|
93
110
|
end
|
|
94
111
|
|
|
95
|
-
protected
|
|
96
|
-
|
|
97
112
|
# Returns the numeric index for the given middleware object.
|
|
98
113
|
#
|
|
99
114
|
# @param [Object] object The item to find the index for
|
|
@@ -101,27 +116,38 @@ module Vagrant
|
|
|
101
116
|
def index(object)
|
|
102
117
|
stack.each_with_index do |item, i|
|
|
103
118
|
return i if item[0] == object
|
|
119
|
+
return i if item[0].respond_to?(:name) && item[0].name == object
|
|
104
120
|
end
|
|
105
121
|
|
|
106
122
|
nil
|
|
107
123
|
end
|
|
108
124
|
|
|
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
125
|
# Converts the builder stack to a runnable action sequence.
|
|
118
126
|
#
|
|
119
127
|
# @param [Vagrant::Action::Environment] env The action environment
|
|
120
128
|
# @return [Object] A callable object
|
|
121
129
|
def to_app(env)
|
|
130
|
+
app_stack = nil
|
|
131
|
+
|
|
132
|
+
# If we have action hooks, then we apply them
|
|
133
|
+
if env[:action_hooks]
|
|
134
|
+
builder = self.dup
|
|
135
|
+
|
|
136
|
+
# Apply all the hooks to the new builder instance
|
|
137
|
+
env[:action_hooks].each do |hook|
|
|
138
|
+
hook.apply(builder)
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# The stack is now the result of the new builder
|
|
142
|
+
app_stack = builder.stack.dup
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
# If we don't have a stack then default to using our own
|
|
146
|
+
app_stack ||= stack.dup
|
|
147
|
+
|
|
122
148
|
# Wrap the middleware stack with the Warden to provide a consistent
|
|
123
149
|
# and predictable behavior upon exceptions.
|
|
124
|
-
Warden.new(
|
|
150
|
+
Warden.new(app_stack, env)
|
|
125
151
|
end
|
|
126
152
|
end
|
|
127
153
|
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
require "log4r"
|
|
2
|
+
|
|
3
|
+
require "vagrant/util/platform"
|
|
4
|
+
|
|
5
|
+
module Vagrant
|
|
6
|
+
module Action
|
|
7
|
+
module Builtin
|
|
8
|
+
# This middleware will download a remote box and add it to the
|
|
9
|
+
# given box collection.
|
|
10
|
+
class BoxAdd
|
|
11
|
+
def initialize(app, env)
|
|
12
|
+
@app = app
|
|
13
|
+
@logger = Log4r::Logger.new("vagrant::action::builtin::box_add")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def call(env)
|
|
17
|
+
# Instantiate the downloader
|
|
18
|
+
downloader = download_klass(env[:box_url]).new(env[:ui])
|
|
19
|
+
env[:ui].info I18n.t("vagrant.actions.box.download.with",
|
|
20
|
+
:class => downloader.class.to_s)
|
|
21
|
+
|
|
22
|
+
# Download the box to a temporary path. We store the temporary
|
|
23
|
+
# path as an instance variable so that the `#recover` method can
|
|
24
|
+
# access it.
|
|
25
|
+
@temp_path = env[:tmp_path].join("box" + Time.now.to_i.to_s)
|
|
26
|
+
@logger.info("Downloading box to: #{@temp_path}")
|
|
27
|
+
File.open(@temp_path, Vagrant::Util::Platform.tar_file_options) do |f|
|
|
28
|
+
downloader.download!(env[:box_url], f)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Add the box
|
|
32
|
+
env[:ui].info I18n.t("vagrant.actions.box.add.adding", :name => env[:box_name])
|
|
33
|
+
added_box = nil
|
|
34
|
+
begin
|
|
35
|
+
added_box = env[:box_collection].add(
|
|
36
|
+
@temp_path, env[:box_name], env[:box_provider], env[:box_force])
|
|
37
|
+
rescue Vagrant::Errors::BoxUpgradeRequired
|
|
38
|
+
# Upgrade the box
|
|
39
|
+
env[:box_collection].upgrade(env[:box_name])
|
|
40
|
+
|
|
41
|
+
# Try adding it again
|
|
42
|
+
retry
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Call the 'recover' method in all cases to clean up the
|
|
46
|
+
# downloaded temporary file.
|
|
47
|
+
recover(env)
|
|
48
|
+
|
|
49
|
+
# Success, we added a box!
|
|
50
|
+
env[:ui].success(
|
|
51
|
+
I18n.t("vagrant.actions.box.add.added", name: added_box.name, provider: added_box.provider))
|
|
52
|
+
|
|
53
|
+
# Carry on!
|
|
54
|
+
@app.call(env)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def download_klass(url)
|
|
58
|
+
# This is hardcoded for now. In the future I'd like to make this
|
|
59
|
+
# pluginnable as well.
|
|
60
|
+
classes = [Downloaders::HTTP, Downloaders::File]
|
|
61
|
+
|
|
62
|
+
# Find the class to use.
|
|
63
|
+
classes.each_index do |i|
|
|
64
|
+
klass = classes[i]
|
|
65
|
+
|
|
66
|
+
# Use the class if it matches the given URI or if this
|
|
67
|
+
# is the last class...
|
|
68
|
+
return klass if classes.length == (i + 1) || klass.match?(url)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# If no downloader knows how to download this file, then we
|
|
72
|
+
# raise an exception.
|
|
73
|
+
raise Errors::BoxDownloadUnknownType
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def recover(env)
|
|
77
|
+
if @temp_path && File.exist?(@temp_path)
|
|
78
|
+
env[:ui].info I18n.t("vagrant.actions.box.download.cleaning")
|
|
79
|
+
File.unlink(@temp_path)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
module Vagrant
|
|
2
|
+
module Action
|
|
3
|
+
module Builtin
|
|
4
|
+
# This middleware class allows a sort of "conditional" run within
|
|
5
|
+
# a single middlware sequence. It takes another middleware runnable,
|
|
6
|
+
# runs it with the same environment, then yields the resulting env to a block,
|
|
7
|
+
# allowing that block to determine the next course of action in the
|
|
8
|
+
# middleware sequence.
|
|
9
|
+
#
|
|
10
|
+
# The first argument to this middleware sequence is anywhere middleware
|
|
11
|
+
# runnable, whether it be a class, lambda, or something else that
|
|
12
|
+
# responds to `call`. This middleware runnable is run with the same
|
|
13
|
+
# environment as this class.
|
|
14
|
+
#
|
|
15
|
+
# After running, {Call} takes the environment and yields it to a block
|
|
16
|
+
# given to initialize the class, along with an instance of {Builder}.
|
|
17
|
+
# The result is used to build up a new sequence on the given builder.
|
|
18
|
+
# This builder is then run.
|
|
19
|
+
class Call
|
|
20
|
+
# For documentation, read the description of the {Call} class.
|
|
21
|
+
#
|
|
22
|
+
# @param [Object] callable A valid middleware runnable object. This
|
|
23
|
+
# can be a class, a lambda, or an object that responds to `call`.
|
|
24
|
+
# @yield [result, builder] This block is expected to build on `builder`
|
|
25
|
+
# which is the next middleware sequence that will be run.
|
|
26
|
+
def initialize(app, env, callable, *callable_args, &block)
|
|
27
|
+
raise ArgumentError, "A block must be given to Call" if !block
|
|
28
|
+
|
|
29
|
+
@app = app
|
|
30
|
+
@callable = callable
|
|
31
|
+
@callable_args = callable_args
|
|
32
|
+
@block = block
|
|
33
|
+
@child_app = nil
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def call(env)
|
|
37
|
+
runner = Runner.new
|
|
38
|
+
|
|
39
|
+
# Build the callable that we'll run
|
|
40
|
+
callable = Builder.build(@callable, *@callable_args)
|
|
41
|
+
|
|
42
|
+
# Run our callable with our environment
|
|
43
|
+
new_env = runner.run(callable, env)
|
|
44
|
+
|
|
45
|
+
# Build our new builder based on the result
|
|
46
|
+
builder = Builder.new
|
|
47
|
+
@block.call(new_env, builder)
|
|
48
|
+
|
|
49
|
+
# Run the result with our new environment
|
|
50
|
+
@child_app = builder.to_app(new_env)
|
|
51
|
+
final_env = runner.run(@child_app, new_env)
|
|
52
|
+
|
|
53
|
+
# Merge the environment into our original environment
|
|
54
|
+
env.merge!(final_env)
|
|
55
|
+
|
|
56
|
+
# Call the next step using our final environment
|
|
57
|
+
@app.call(env)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def recover(env)
|
|
61
|
+
# Call back into our compiled application and recover it.
|
|
62
|
+
@child_app.recover(env) if @child_app
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require "vagrant/util/template_renderer"
|
|
2
|
+
|
|
3
|
+
module Vagrant
|
|
4
|
+
module Action
|
|
5
|
+
module Builtin
|
|
6
|
+
# This class validates the configuration and raises an exception
|
|
7
|
+
# if there are any validation errors.
|
|
8
|
+
class ConfigValidate
|
|
9
|
+
def initialize(app, env)
|
|
10
|
+
@app = app
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def call(env)
|
|
14
|
+
if !env.has_key?(:config_validate) || env[:config_validate]
|
|
15
|
+
errors = env[:machine].config.validate(env[:machine])
|
|
16
|
+
|
|
17
|
+
if errors && !errors.empty?
|
|
18
|
+
raise Errors::ConfigInvalid,
|
|
19
|
+
:errors => Util::TemplateRenderer.render(
|
|
20
|
+
"config/validation_failed",
|
|
21
|
+
:errors => errors)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
@app.call(env)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module Vagrant
|
|
2
|
+
module Action
|
|
3
|
+
module Builtin
|
|
4
|
+
# This class asks the user to confirm some sort of question with
|
|
5
|
+
# a "Y/N" question. The only parameter is the text to ask the user.
|
|
6
|
+
# The result is placed in `env[:result]` so that it can be used
|
|
7
|
+
# with the {Call} class.
|
|
8
|
+
class Confirm
|
|
9
|
+
# For documentation, read the description of the {Confirm} class.
|
|
10
|
+
#
|
|
11
|
+
# @param [String] message The message to ask the user.
|
|
12
|
+
# @param [Symbol] force_key The key that if present and true in
|
|
13
|
+
# the environment hash will skip the confirmation question.
|
|
14
|
+
def initialize(app, env, message, force_key=nil)
|
|
15
|
+
@app = app
|
|
16
|
+
@message = message
|
|
17
|
+
@force_key = force_key
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def call(env)
|
|
21
|
+
choice = nil
|
|
22
|
+
|
|
23
|
+
# If we have a force key set and we're forcing, then set
|
|
24
|
+
# the result to "Y"
|
|
25
|
+
choice = "Y" if @force_key && env[@force_key]
|
|
26
|
+
|
|
27
|
+
# If we haven't chosen yes, then ask the user via TTY
|
|
28
|
+
choice = env[:ui].ask(@message) if !choice
|
|
29
|
+
|
|
30
|
+
# The result is only true if the user said "Y"
|
|
31
|
+
env[:result] = choice && choice.upcase == "Y"
|
|
32
|
+
|
|
33
|
+
@app.call(env)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Vagrant
|
|
2
|
+
module Action
|
|
3
|
+
module Builtin
|
|
4
|
+
# This middleware class allows you to modify the environment hash
|
|
5
|
+
# in the middle of a middleware sequence. The new environmental data
|
|
6
|
+
# will take affect at this stage in the middleware and will persist
|
|
7
|
+
# through.
|
|
8
|
+
class EnvSet
|
|
9
|
+
def initialize(app, env, new_env=nil)
|
|
10
|
+
@app = app
|
|
11
|
+
@new_env = new_env || {}
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def call(env)
|
|
15
|
+
# Merge in the new data
|
|
16
|
+
env.merge!(@new_env)
|
|
17
|
+
|
|
18
|
+
# Carry on
|
|
19
|
+
@app.call(env)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|