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
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
require 'digest/md5'
|
|
2
|
-
require 'fileutils'
|
|
3
|
-
require 'pathname'
|
|
4
|
-
|
|
5
|
-
require 'log4r'
|
|
6
|
-
|
|
7
|
-
module Vagrant
|
|
8
|
-
module Action
|
|
9
|
-
module VM
|
|
10
|
-
# Enables NFS based shared folders. `nfsd` must already be installed
|
|
11
|
-
# on the host machine, and NFS client must already be installed on
|
|
12
|
-
# the guest machine.
|
|
13
|
-
#
|
|
14
|
-
# This is a two part process:
|
|
15
|
-
#
|
|
16
|
-
# 1. Adds an entry to `/etc/exports` on the host machine using
|
|
17
|
-
# the host class to export the proper folder to the proper
|
|
18
|
-
# machine.
|
|
19
|
-
# 2. After boot, runs `mount` on the guest to mount the shared
|
|
20
|
-
# folder.
|
|
21
|
-
#
|
|
22
|
-
class NFS
|
|
23
|
-
def initialize(app,env)
|
|
24
|
-
@logger = Log4r::Logger.new("vagrant::action::vm::nfs")
|
|
25
|
-
@app = app
|
|
26
|
-
@env = env
|
|
27
|
-
|
|
28
|
-
verify_settings if nfs_enabled?
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def call(env)
|
|
32
|
-
@env = env
|
|
33
|
-
|
|
34
|
-
extract_folders
|
|
35
|
-
|
|
36
|
-
if !folders.empty?
|
|
37
|
-
prepare_folders
|
|
38
|
-
export_folders
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
@app.call(env)
|
|
42
|
-
|
|
43
|
-
mount_folders if !folders.empty?
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
# Returns the folders which are to be synced via NFS.
|
|
47
|
-
def folders
|
|
48
|
-
@folders ||= {}
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# Removes the NFS enabled shared folders from the configuration,
|
|
52
|
-
# so they will no longer be mounted by the actual shared folder
|
|
53
|
-
# task.
|
|
54
|
-
def extract_folders
|
|
55
|
-
# Load the NFS enabled shared folders
|
|
56
|
-
@folders = {}
|
|
57
|
-
@env[:vm].config.vm.shared_folders.each do |key, opts|
|
|
58
|
-
if opts[:nfs]
|
|
59
|
-
# Duplicate the options, set the hostpath, and set disabled on the original
|
|
60
|
-
# options so the ShareFolders middleware doesn't try to mount it.
|
|
61
|
-
folder = opts.dup
|
|
62
|
-
hostpath = Pathname.new(opts[:hostpath]).expand_path(@env[:root_path])
|
|
63
|
-
|
|
64
|
-
if !hostpath.directory? && opts[:create]
|
|
65
|
-
# Host path doesn't exist, so let's create it.
|
|
66
|
-
@logger.debug("Host path doesn't exist, creating: #{hostpath}")
|
|
67
|
-
|
|
68
|
-
begin
|
|
69
|
-
FileUtils.mkpath(hostpath)
|
|
70
|
-
rescue Errno::EACCES
|
|
71
|
-
raise Errors::SharedFolderCreateFailed, :path => hostpath.to_s
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
# Set the hostpath now that it exists.
|
|
76
|
-
folder[:hostpath] = hostpath.to_s
|
|
77
|
-
|
|
78
|
-
# Assign the folder to our instance variable for later use
|
|
79
|
-
@folders[key] = folder
|
|
80
|
-
|
|
81
|
-
# Disable the folder so that regular shared folders don't try to
|
|
82
|
-
# mount it.
|
|
83
|
-
opts[:disabled] = true
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
# Prepares the settings for the NFS folders, such as setting the
|
|
89
|
-
# options on the NFS folders.
|
|
90
|
-
def prepare_folders
|
|
91
|
-
@folders = @folders.inject({}) do |acc, data|
|
|
92
|
-
key, opts = data
|
|
93
|
-
opts[:map_uid] = prepare_permission(:uid, opts)
|
|
94
|
-
opts[:map_gid] = prepare_permission(:gid, opts)
|
|
95
|
-
opts[:nfs_version] ||= 3
|
|
96
|
-
|
|
97
|
-
# The poor man's UUID. An MD5 hash here is sufficient since
|
|
98
|
-
# we need a 32 character "uuid" to represent the filesystem
|
|
99
|
-
# of an export. Hashing the host path is safe because two of
|
|
100
|
-
# the same host path will hash to the same fsid.
|
|
101
|
-
opts[:uuid] = Digest::MD5.hexdigest(opts[:hostpath])
|
|
102
|
-
|
|
103
|
-
acc[key] = opts
|
|
104
|
-
acc
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
# Prepares the UID/GID settings for a single folder.
|
|
109
|
-
def prepare_permission(perm, opts)
|
|
110
|
-
key = "map_#{perm}".to_sym
|
|
111
|
-
return nil if opts.has_key?(key) && opts[key].nil?
|
|
112
|
-
|
|
113
|
-
# The options on the hash get priority, then the default
|
|
114
|
-
# values
|
|
115
|
-
value = opts.has_key?(key) ? opts[key] : @env[:vm].config.nfs.send(key)
|
|
116
|
-
return value if value != :auto
|
|
117
|
-
|
|
118
|
-
# Get UID/GID from folder if we've made it this far
|
|
119
|
-
# (value == :auto)
|
|
120
|
-
stat = File.stat(opts[:hostpath])
|
|
121
|
-
return stat.send(perm)
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
# Uses the host class to export the folders via NFS. This typically
|
|
125
|
-
# involves adding a line to `/etc/exports` for this VM, but it is
|
|
126
|
-
# up to the host class to define the specific behavior.
|
|
127
|
-
def export_folders
|
|
128
|
-
@env[:ui].info I18n.t("vagrant.actions.vm.nfs.exporting")
|
|
129
|
-
@env[:host].nfs_export(@env[:vm].uuid, guest_ip, folders)
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
# Uses the system class to mount the NFS folders.
|
|
133
|
-
def mount_folders
|
|
134
|
-
@env[:ui].info I18n.t("vagrant.actions.vm.nfs.mounting")
|
|
135
|
-
|
|
136
|
-
# Only mount the folders which have a guest path specified
|
|
137
|
-
mount_folders = {}
|
|
138
|
-
folders.each do |name, opts|
|
|
139
|
-
if opts[:guestpath]
|
|
140
|
-
mount_folders[name] = opts.dup
|
|
141
|
-
end
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
@env[:vm].guest.mount_nfs(host_ip, mount_folders)
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
# Returns the IP address of the first host only network adapter
|
|
148
|
-
#
|
|
149
|
-
# @return [String]
|
|
150
|
-
def host_ip
|
|
151
|
-
@env[:vm].driver.read_network_interfaces.each do |adapter, opts|
|
|
152
|
-
if opts[:type] == :hostonly
|
|
153
|
-
@env[:vm].driver.read_host_only_interfaces.each do |interface|
|
|
154
|
-
if interface[:name] == opts[:hostonly]
|
|
155
|
-
return interface[:ip]
|
|
156
|
-
end
|
|
157
|
-
end
|
|
158
|
-
end
|
|
159
|
-
end
|
|
160
|
-
|
|
161
|
-
nil
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
# Returns the IP address of the guest by looking at the first
|
|
165
|
-
# enabled host only network.
|
|
166
|
-
#
|
|
167
|
-
# @return [String]
|
|
168
|
-
def guest_ip
|
|
169
|
-
@env[:vm].config.vm.networks.each do |type, args|
|
|
170
|
-
if type == :hostonly && args[0].is_a?(String)
|
|
171
|
-
return args[0]
|
|
172
|
-
end
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
nil
|
|
176
|
-
end
|
|
177
|
-
|
|
178
|
-
# Checks if there are any NFS enabled shared folders.
|
|
179
|
-
def nfs_enabled?
|
|
180
|
-
@env[:vm].config.vm.shared_folders.each do |key, opts|
|
|
181
|
-
return true if opts[:nfs]
|
|
182
|
-
end
|
|
183
|
-
|
|
184
|
-
false
|
|
185
|
-
end
|
|
186
|
-
|
|
187
|
-
# Verifies that the host is set and supports NFS.
|
|
188
|
-
def verify_settings
|
|
189
|
-
raise Errors::NFSHostRequired if @env[:host].nil?
|
|
190
|
-
raise Errors::NFSNotSupported if !@env[:host].nfs?
|
|
191
|
-
raise Errors::NFSNoHostNetwork if !guest_ip
|
|
192
|
-
end
|
|
193
|
-
end
|
|
194
|
-
end
|
|
195
|
-
end
|
|
196
|
-
end
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
require "log4r"
|
|
2
|
-
|
|
3
|
-
module Vagrant
|
|
4
|
-
module Action
|
|
5
|
-
module VM
|
|
6
|
-
class Provision
|
|
7
|
-
def initialize(app, env)
|
|
8
|
-
@logger = Log4r::Logger.new("vagrant::action::vm::provision")
|
|
9
|
-
@app = app
|
|
10
|
-
|
|
11
|
-
env["provision.enabled"] = true if !env.has_key?("provision.enabled")
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def call(env)
|
|
15
|
-
@env = env
|
|
16
|
-
|
|
17
|
-
provisioners = nil
|
|
18
|
-
|
|
19
|
-
# We set this here so that even if this value is changed in the future,
|
|
20
|
-
# it stays constant to what we expect here in this moment.
|
|
21
|
-
enabled = env["provision.enabled"]
|
|
22
|
-
# Instantiate and prepare the provisioners. Preparation must happen here
|
|
23
|
-
# so that shared folders and such can properly take effect.
|
|
24
|
-
provisioners = enabled_provisioners
|
|
25
|
-
provisioners.map { |p| p.prepare }
|
|
26
|
-
|
|
27
|
-
@app.call(env)
|
|
28
|
-
|
|
29
|
-
if enabled
|
|
30
|
-
# Take prepared provisioners and run the provisioning
|
|
31
|
-
provisioners.each do |instance|
|
|
32
|
-
@env[:ui].info I18n.t("vagrant.actions.vm.provision.beginning",
|
|
33
|
-
:provisioner => instance.class)
|
|
34
|
-
instance.provision!
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def enabled_provisioners
|
|
40
|
-
enabled = []
|
|
41
|
-
@env[:vm].config.vm.provisioners.each do |provisioner|
|
|
42
|
-
if @env["provision.types"]
|
|
43
|
-
# If we've specified types of provisioners to enable, then we
|
|
44
|
-
# only use those provisioners, and skip any that we haven't
|
|
45
|
-
# specified.
|
|
46
|
-
if !@env["provision.types"].include?(provisioner.shortcut.to_s)
|
|
47
|
-
@logger.debug("Skipping provisioner: #{provisioner.shortcut}")
|
|
48
|
-
next
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
enabled << provisioner.provisioner.new(@env, provisioner.config)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# Return the enable provisioners
|
|
56
|
-
enabled
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
module Vagrant
|
|
2
|
-
module Action
|
|
3
|
-
module VM
|
|
4
|
-
class ProvisionerCleanup
|
|
5
|
-
def initialize(app, env)
|
|
6
|
-
@app = app
|
|
7
|
-
@env = env
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def call(env)
|
|
11
|
-
enabled_provisioners.each do |instance|
|
|
12
|
-
instance.cleanup
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
@app.call(env)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def enabled_provisioners
|
|
19
|
-
@env[:vm].config.vm.provisioners.map do |provisioner|
|
|
20
|
-
provisioner.provisioner.new(@env, provisioner.config)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
module Vagrant
|
|
2
|
-
module Action
|
|
3
|
-
module VM
|
|
4
|
-
class Resume
|
|
5
|
-
def initialize(app, env)
|
|
6
|
-
@app = app
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def call(env)
|
|
10
|
-
if env[:vm].state == :saved
|
|
11
|
-
env[:ui].info I18n.t("vagrant.actions.vm.resume.resuming")
|
|
12
|
-
env[:action_runner].run(Boot, env)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
@app.call(env)
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
data/lib/vagrant/command.rb
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
module Vagrant
|
|
2
|
-
module Command
|
|
3
|
-
autoload :Base, 'vagrant/command/base'
|
|
4
|
-
|
|
5
|
-
autoload :Box, 'vagrant/command/box'
|
|
6
|
-
autoload :BoxAdd, 'vagrant/command/box_add'
|
|
7
|
-
autoload :BoxRemove, 'vagrant/command/box_remove'
|
|
8
|
-
autoload :BoxRepackage, 'vagrant/command/box_repackage'
|
|
9
|
-
autoload :BoxList, 'vagrant/command/box_list'
|
|
10
|
-
autoload :Destroy, 'vagrant/command/destroy'
|
|
11
|
-
autoload :Gem, 'vagrant/command/gem'
|
|
12
|
-
autoload :Halt, 'vagrant/command/halt'
|
|
13
|
-
autoload :Init, 'vagrant/command/init'
|
|
14
|
-
autoload :Package, 'vagrant/command/package'
|
|
15
|
-
autoload :Provision, 'vagrant/command/provision'
|
|
16
|
-
autoload :Reload, 'vagrant/command/reload'
|
|
17
|
-
autoload :Resume, 'vagrant/command/resume'
|
|
18
|
-
autoload :SSH, 'vagrant/command/ssh'
|
|
19
|
-
autoload :SSHConfig, 'vagrant/command/ssh_config'
|
|
20
|
-
autoload :Status, 'vagrant/command/status'
|
|
21
|
-
autoload :Suspend, 'vagrant/command/suspend'
|
|
22
|
-
autoload :Up, 'vagrant/command/up'
|
|
23
|
-
end
|
|
24
|
-
end
|
data/lib/vagrant/command/base.rb
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
require 'log4r'
|
|
2
|
-
|
|
3
|
-
require "vagrant/util/safe_puts"
|
|
4
|
-
|
|
5
|
-
module Vagrant
|
|
6
|
-
module Command
|
|
7
|
-
# Base class for any CLI commands.
|
|
8
|
-
#
|
|
9
|
-
# This class provides documentation on the interface as well as helper
|
|
10
|
-
# functions that a command has.
|
|
11
|
-
class Base
|
|
12
|
-
include Util::SafePuts
|
|
13
|
-
|
|
14
|
-
def initialize(argv, env)
|
|
15
|
-
@argv = argv
|
|
16
|
-
@env = env
|
|
17
|
-
@logger = Log4r::Logger.new("vagrant::command::#{self.class.to_s.downcase}")
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
# This is what is called on the class to actually execute it. Any
|
|
21
|
-
# subclasses should implement this method and do any option parsing
|
|
22
|
-
# and validation here.
|
|
23
|
-
def execute; end
|
|
24
|
-
|
|
25
|
-
protected
|
|
26
|
-
|
|
27
|
-
# Parses the options given an OptionParser instance.
|
|
28
|
-
#
|
|
29
|
-
# This is a convenience method that properly handles duping the
|
|
30
|
-
# originally argv array so that it is not destroyed.
|
|
31
|
-
#
|
|
32
|
-
# This method will also automatically detect "-h" and "--help"
|
|
33
|
-
# and print help. And if any invalid options are detected, the help
|
|
34
|
-
# will be printed, as well.
|
|
35
|
-
#
|
|
36
|
-
# If this method returns `nil`, then you should assume that help
|
|
37
|
-
# was printed and parsing failed.
|
|
38
|
-
def parse_options(opts=nil)
|
|
39
|
-
# Creating a shallow copy of the arguments so the OptionParser
|
|
40
|
-
# doesn't destroy the originals.
|
|
41
|
-
argv = @argv.dup
|
|
42
|
-
|
|
43
|
-
# Default opts to a blank optionparser if none is given
|
|
44
|
-
opts ||= OptionParser.new
|
|
45
|
-
|
|
46
|
-
# Add the help option, which must be on every command.
|
|
47
|
-
opts.on_tail("-h", "--help", "Print this help") do
|
|
48
|
-
safe_puts(opts.help)
|
|
49
|
-
return nil
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
opts.parse!(argv)
|
|
53
|
-
return argv
|
|
54
|
-
rescue OptionParser::InvalidOption
|
|
55
|
-
raise Errors::CLIInvalidOptions, :help => opts.help.chomp
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
# Yields a VM for each target VM for the command.
|
|
59
|
-
#
|
|
60
|
-
# This is a convenience method for easily implementing methods that
|
|
61
|
-
# take a target VM (in the case of multi-VM) or every VM if no
|
|
62
|
-
# specific VM name is specified.
|
|
63
|
-
#
|
|
64
|
-
# @param [String] name The name of the VM. Nil if every VM.
|
|
65
|
-
# @param [Boolean] single_target If true, then an exception will be
|
|
66
|
-
# raised if more than one target is found.
|
|
67
|
-
def with_target_vms(names=nil, options=nil)
|
|
68
|
-
# Using VMs requires a Vagrant environment to be properly setup
|
|
69
|
-
raise Errors::NoEnvironmentError if !@env.root_path
|
|
70
|
-
|
|
71
|
-
# Setup the options hash
|
|
72
|
-
options ||= {}
|
|
73
|
-
|
|
74
|
-
# Require that names be an array
|
|
75
|
-
names ||= []
|
|
76
|
-
names = [names] if !names.is_a?(Array)
|
|
77
|
-
|
|
78
|
-
# First determine the proper array of VMs.
|
|
79
|
-
vms = []
|
|
80
|
-
if names.length > 0
|
|
81
|
-
names.each do |name|
|
|
82
|
-
raise Errors::MultiVMEnvironmentRequired if !@env.multivm?
|
|
83
|
-
|
|
84
|
-
if name =~ /^\/(.+?)\/$/
|
|
85
|
-
# This is a regular expression name, so we convert to a regular
|
|
86
|
-
# expression and allow that sort of matching.
|
|
87
|
-
regex = Regexp.new($1.to_s)
|
|
88
|
-
|
|
89
|
-
@env.vms.each do |name, vm|
|
|
90
|
-
vms << vm if name =~ regex
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
raise Errors::VMNoMatchError if vms.empty?
|
|
94
|
-
else
|
|
95
|
-
# String name, just look for a specific VM
|
|
96
|
-
vms << @env.vms[name.to_sym]
|
|
97
|
-
raise Errors::VMNotFoundError, :name => name if !vms[0]
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
else
|
|
101
|
-
vms = @env.vms_ordered
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
# Make sure we're only working with one VM if single target
|
|
105
|
-
raise Errors::MultiVMTargetRequired if options[:single_target] && vms.length != 1
|
|
106
|
-
|
|
107
|
-
# If we asked for reversed ordering, then reverse it
|
|
108
|
-
vms.reverse! if options[:reverse]
|
|
109
|
-
|
|
110
|
-
# Go through each VM and yield it!
|
|
111
|
-
vms.each do |old_vm|
|
|
112
|
-
# We get a new VM from the environment here to avoid potentially
|
|
113
|
-
# stale VMs (if there was a config reload on the environment
|
|
114
|
-
# or something).
|
|
115
|
-
vm = @env.vms[old_vm.name]
|
|
116
|
-
yield vm
|
|
117
|
-
end
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
# This method will split the argv given into three parts: the
|
|
121
|
-
# flags to this command, the subcommand, and the flags to the
|
|
122
|
-
# subcommand. For example:
|
|
123
|
-
#
|
|
124
|
-
# -v status -h -v
|
|
125
|
-
#
|
|
126
|
-
# The above would yield 3 parts:
|
|
127
|
-
#
|
|
128
|
-
# ["-v"]
|
|
129
|
-
# "status"
|
|
130
|
-
# ["-h", "-v"]
|
|
131
|
-
#
|
|
132
|
-
# These parts are useful because the first is a list of arguments
|
|
133
|
-
# given to the current command, the second is a subcommand, and the
|
|
134
|
-
# third are the commands given to the subcommand.
|
|
135
|
-
#
|
|
136
|
-
# @return [Array] The three parts.
|
|
137
|
-
def split_main_and_subcommand(argv)
|
|
138
|
-
# Initialize return variables
|
|
139
|
-
main_args = nil
|
|
140
|
-
sub_command = nil
|
|
141
|
-
sub_args = []
|
|
142
|
-
|
|
143
|
-
# We split the arguments into two: One set containing any
|
|
144
|
-
# flags before a word, and then the rest. The rest are what
|
|
145
|
-
# get actually sent on to the subcommand.
|
|
146
|
-
argv.each_index do |i|
|
|
147
|
-
if !argv[i].start_with?("-")
|
|
148
|
-
# We found the beginning of the sub command. Split the
|
|
149
|
-
# args up.
|
|
150
|
-
main_args = argv[0, i]
|
|
151
|
-
sub_command = argv[i]
|
|
152
|
-
sub_args = argv[i + 1, argv.length - i + 1]
|
|
153
|
-
|
|
154
|
-
# Break so we don't find the next non flag and shift our
|
|
155
|
-
# main args.
|
|
156
|
-
break
|
|
157
|
-
end
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
# Handle the case that argv was empty or didn't contain any subcommand
|
|
161
|
-
main_args = argv.dup if main_args.nil?
|
|
162
|
-
|
|
163
|
-
return [main_args, sub_command, sub_args]
|
|
164
|
-
end
|
|
165
|
-
end
|
|
166
|
-
end
|
|
167
|
-
end
|