tnargav 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +31 -0
- data/.gitsetup.yml +5 -0
- data/.travis.yml +7 -0
- data/.yardopts +1 -0
- data/CHANGELOG.md +1067 -0
- data/Gemfile +3 -0
- data/LICENSE +21 -0
- data/README.md +89 -0
- data/Rakefile +18 -0
- data/bin/vagrant +106 -0
- data/config/default.rb +36 -0
- data/contrib/README.md +12 -0
- data/contrib/bash/completion.sh +3 -0
- data/contrib/emacs/vagrant.el +8 -0
- data/contrib/vim/vagrantfile.vim +9 -0
- data/keys/README.md +17 -0
- data/keys/vagrant +27 -0
- data/keys/vagrant.pub +1 -0
- data/lib/vagrant/action/builder.rb +174 -0
- data/lib/vagrant/action/builtin/box_add.rb +81 -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/destroy_confirm.rb +21 -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 +77 -0
- data/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb +134 -0
- data/lib/vagrant/action/builtin/lock.rb +57 -0
- data/lib/vagrant/action/builtin/nfs.rb +118 -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 +103 -0
- data/lib/vagrant/action/hook.rb +107 -0
- data/lib/vagrant/action/runner.rb +69 -0
- data/lib/vagrant/action/warden.rb +103 -0
- data/lib/vagrant/action.rb +43 -0
- data/lib/vagrant/batch_action.rb +113 -0
- data/lib/vagrant/box.rb +97 -0
- data/lib/vagrant/box_collection.rb +375 -0
- data/lib/vagrant/cli.rb +82 -0
- data/lib/vagrant/config/loader.rb +222 -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/v1.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/v2.rb +9 -0
- data/lib/vagrant/config/version_base.rb +80 -0
- data/lib/vagrant/config.rb +61 -0
- data/lib/vagrant/environment.rb +843 -0
- data/lib/vagrant/errors.rb +570 -0
- data/lib/vagrant/guest.rb +163 -0
- data/lib/vagrant/hosts.rb +28 -0
- data/lib/vagrant/machine.rb +325 -0
- data/lib/vagrant/machine_state.rb +45 -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/v1.rb +19 -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 +47 -0
- data/lib/vagrant/plugin/v2/config.rb +136 -0
- data/lib/vagrant/plugin/v2/errors.rb +15 -0
- data/lib/vagrant/plugin/v2/guest.rb +78 -0
- data/lib/vagrant/plugin/v2/host.rb +66 -0
- data/lib/vagrant/plugin/v2/manager.rb +173 -0
- data/lib/vagrant/plugin/v2/plugin.rb +226 -0
- data/lib/vagrant/plugin/v2/provider.rb +69 -0
- data/lib/vagrant/plugin/v2/provisioner.rb +47 -0
- data/lib/vagrant/plugin/v2.rb +22 -0
- data/lib/vagrant/plugin.rb +6 -0
- data/lib/vagrant/registry.rb +78 -0
- data/lib/vagrant/ui.rb +215 -0
- data/lib/vagrant/util/ansi_escape_code_remover.rb +34 -0
- data/lib/vagrant/util/busy.rb +59 -0
- data/lib/vagrant/util/counter.rb +24 -0
- data/lib/vagrant/util/downloader.rb +146 -0
- data/lib/vagrant/util/file_checksum.rb +38 -0
- data/lib/vagrant/util/file_mode.rb +12 -0
- data/lib/vagrant/util/hash_with_indifferent_access.rb +63 -0
- data/lib/vagrant/util/is_port_open.rb +38 -0
- data/lib/vagrant/util/line_ending_helpers.rb +14 -0
- data/lib/vagrant/util/network_ip.rb +28 -0
- data/lib/vagrant/util/platform.rb +58 -0
- data/lib/vagrant/util/retryable.rb +31 -0
- data/lib/vagrant/util/safe_chdir.rb +33 -0
- data/lib/vagrant/util/safe_exec.rb +36 -0
- data/lib/vagrant/util/safe_puts.rb +31 -0
- data/lib/vagrant/util/scoped_hash_override.rb +45 -0
- data/lib/vagrant/util/ssh.rb +150 -0
- data/lib/vagrant/util/stacked_proc_runner.rb +35 -0
- data/lib/vagrant/util/string_block_editor.rb +77 -0
- data/lib/vagrant/util/subprocess.rb +273 -0
- data/lib/vagrant/util/template_renderer.rb +83 -0
- data/lib/vagrant/util/which.rb +43 -0
- data/lib/vagrant/util.rb +12 -0
- data/lib/vagrant/version.rb +6 -0
- data/lib/vagrant.rb +258 -0
- data/plugins/README.md +5 -0
- data/plugins/commands/box/command/add.rb +51 -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/plugins/commands/init/command.rb +40 -0
- 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/bundler_check.rb +25 -0
- data/plugins/commands/plugin/action/install_gem.rb +81 -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/action.rb +52 -0
- data/plugins/commands/plugin/command/base.rb +22 -0
- data/plugins/commands/plugin/command/install.rb +58 -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/plugins/commands/ssh/command.rb +63 -0
- data/plugins/commands/ssh/plugin.rb +17 -0
- data/plugins/commands/ssh_config/command.rb +49 -0
- 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 +57 -0
- data/plugins/commands/up/plugin.rb +17 -0
- data/plugins/commands/up/start_mixins.rb +26 -0
- data/plugins/communicators/ssh/communicator.rb +342 -0
- data/plugins/communicators/ssh/plugin.rb +19 -0
- data/plugins/guests/arch/cap/change_host_name.rb +18 -0
- data/plugins/guests/arch/cap/configure_networks.rb +23 -0
- data/plugins/guests/arch/guest.rb +11 -0
- data/plugins/guests/arch/plugin.rb +25 -0
- data/plugins/guests/debian/cap/change_host_name.rb +18 -0
- data/plugins/guests/debian/cap/configure_networks.rb +61 -0
- data/plugins/guests/debian/guest.rb +9 -0
- data/plugins/guests/debian/plugin.rb +25 -0
- data/plugins/guests/fedora/cap/configure_networks.rb +59 -0
- data/plugins/guests/fedora/cap/network_scripts_dir.rb +15 -0
- data/plugins/guests/fedora/guest.rb +11 -0
- data/plugins/guests/fedora/plugin.rb +25 -0
- data/plugins/guests/freebsd/cap/change_host_name.rb +14 -0
- data/plugins/guests/freebsd/cap/configure_networks.rb +39 -0
- data/plugins/guests/freebsd/cap/halt.rb +16 -0
- data/plugins/guests/freebsd/cap/mount_nfs_folder.rb +14 -0
- data/plugins/guests/freebsd/guest.rb +14 -0
- data/plugins/guests/freebsd/plugin.rb +35 -0
- data/plugins/guests/gentoo/cap/change_host_name.rb +17 -0
- data/plugins/guests/gentoo/cap/configure_networks.rb +43 -0
- data/plugins/guests/gentoo/guest.rb +9 -0
- data/plugins/guests/gentoo/plugin.rb +25 -0
- data/plugins/guests/linux/cap/halt.rb +16 -0
- data/plugins/guests/linux/cap/mount_nfs.rb +30 -0
- data/plugins/guests/linux/cap/mount_virtualbox_shared_folder.rb +40 -0
- data/plugins/guests/linux/cap/read_ip_address.rb +17 -0
- data/plugins/guests/linux/cap/shell_expand_guest_path.rb +26 -0
- data/plugins/guests/linux/guest.rb +11 -0
- data/plugins/guests/linux/plugin.rb +40 -0
- data/plugins/guests/openbsd/cap/halt.rb +16 -0
- data/plugins/guests/openbsd/guest.rb +11 -0
- data/plugins/guests/openbsd/plugin.rb +20 -0
- data/plugins/guests/pld/cap/network_scripts_dir.rb +11 -0
- data/plugins/guests/pld/guest.rb +11 -0
- data/plugins/guests/pld/plugin.rb +20 -0
- data/plugins/guests/redhat/cap/change_host_name.rb +18 -0
- data/plugins/guests/redhat/cap/configure_networks.rb +60 -0
- data/plugins/guests/redhat/cap/network_scripts_dir.rb +11 -0
- data/plugins/guests/redhat/guest.rb +11 -0
- data/plugins/guests/redhat/plugin.rb +30 -0
- data/plugins/guests/solaris/cap/change_host_name.rb +17 -0
- data/plugins/guests/solaris/cap/configure_networks.rb +25 -0
- data/plugins/guests/solaris/cap/halt.rb +21 -0
- data/plugins/guests/solaris/cap/mount_virtualbox_shared_folder.rb +28 -0
- data/plugins/guests/solaris/config.rb +18 -0
- data/plugins/guests/solaris/guest.rb +14 -0
- data/plugins/guests/solaris/plugin.rb +40 -0
- data/plugins/guests/suse/cap/change_host_name.rb +18 -0
- data/plugins/guests/suse/cap/network_scripts_dir.rb +11 -0
- data/plugins/guests/suse/guest.rb +11 -0
- data/plugins/guests/suse/plugin.rb +25 -0
- data/plugins/guests/ubuntu/cap/change_host_name.rb +23 -0
- data/plugins/guests/ubuntu/guest.rb +32 -0
- data/plugins/guests/ubuntu/plugin.rb +20 -0
- data/plugins/hosts/arch/host.rb +68 -0
- data/plugins/hosts/arch/plugin.rb +15 -0
- data/plugins/hosts/bsd/host.rb +102 -0
- data/plugins/hosts/bsd/plugin.rb +15 -0
- data/plugins/hosts/fedora/host.rb +51 -0
- data/plugins/hosts/fedora/plugin.rb +15 -0
- data/plugins/hosts/freebsd/host.rb +43 -0
- data/plugins/hosts/freebsd/plugin.rb +15 -0
- data/plugins/hosts/gentoo/host.rb +24 -0
- data/plugins/hosts/gentoo/plugin.rb +15 -0
- data/plugins/hosts/linux/host.rb +95 -0
- data/plugins/hosts/linux/plugin.rb +15 -0
- data/plugins/hosts/opensuse/host.rb +34 -0
- data/plugins/hosts/opensuse/plugin.rb +15 -0
- data/plugins/hosts/windows/host.rb +17 -0
- 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 +14 -0
- data/plugins/kernel_v2/config/package.rb +13 -0
- data/plugins/kernel_v2/config/ssh.rb +76 -0
- data/plugins/kernel_v2/config/ssh_connect.rb +40 -0
- data/plugins/kernel_v2/config/vagrant.rb +13 -0
- data/plugins/kernel_v2/config/vm.rb +416 -0
- data/plugins/kernel_v2/config/vm_provisioner.rb +55 -0
- data/plugins/kernel_v2/config/vm_subvm.rb +30 -0
- data/plugins/kernel_v2/plugin.rb +44 -0
- data/plugins/providers/virtualbox/action/boot.rb +49 -0
- data/plugins/providers/virtualbox/action/check_accessible.rb +23 -0
- data/plugins/providers/virtualbox/action/check_created.rb +21 -0
- data/plugins/providers/virtualbox/action/check_guest_additions.rb +45 -0
- data/plugins/providers/virtualbox/action/check_running.rb +21 -0
- data/plugins/providers/virtualbox/action/check_virtualbox.rb +22 -0
- data/plugins/providers/virtualbox/action/clean_machine_folder.rb +43 -0
- data/plugins/providers/virtualbox/action/clear_forwarded_ports.rb +18 -0
- data/plugins/providers/virtualbox/action/clear_network_interfaces.rb +31 -0
- data/plugins/providers/virtualbox/action/clear_shared_folders.rb +17 -0
- data/plugins/providers/virtualbox/action/created.rb +20 -0
- data/plugins/providers/virtualbox/action/customize.rb +36 -0
- data/plugins/providers/virtualbox/action/destroy.rb +19 -0
- data/plugins/providers/virtualbox/action/destroy_unused_network_interfaces.rb +16 -0
- data/plugins/providers/virtualbox/action/discard_state.rb +20 -0
- data/plugins/providers/virtualbox/action/export.rb +57 -0
- data/plugins/providers/virtualbox/action/forced_halt.rb +25 -0
- data/plugins/providers/virtualbox/action/forward_ports.rb +87 -0
- data/plugins/providers/virtualbox/action/import.rb +51 -0
- 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/plugins/providers/virtualbox/action/match_mac_address.rb +21 -0
- data/plugins/providers/virtualbox/action/message_already_running.rb +16 -0
- 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 +410 -0
- data/plugins/providers/virtualbox/action/package.rb +20 -0
- data/plugins/providers/virtualbox/action/package_vagrantfile.rb +33 -0
- data/plugins/providers/virtualbox/action/prepare_forwarded_port_collision_params.rb +35 -0
- data/plugins/providers/virtualbox/action/prepare_nfs_settings.rb +64 -0
- data/plugins/providers/virtualbox/action/prune_nfs_exports.rb +20 -0
- data/plugins/providers/virtualbox/action/resume.rb +25 -0
- data/plugins/providers/virtualbox/action/sane_defaults.rb +91 -0
- data/plugins/providers/virtualbox/action/set_name.rb +40 -0
- data/plugins/providers/virtualbox/action/setup_package_files.rb +51 -0
- data/plugins/providers/virtualbox/action/share_folders.rb +128 -0
- data/plugins/providers/virtualbox/action/suspend.rb +20 -0
- data/plugins/providers/virtualbox/action.rb +311 -0
- data/plugins/providers/virtualbox/config.rb +86 -0
- data/plugins/providers/virtualbox/driver/base.rb +360 -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 +482 -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/ansible/config.rb +72 -0
- data/plugins/provisioners/ansible/plugin.rb +23 -0
- data/plugins/provisioners/ansible/provisioner.rb +45 -0
- data/plugins/provisioners/cfengine/cap/debian/cfengine_install.rb +19 -0
- data/plugins/provisioners/cfengine/cap/linux/cfengine_installed.rb +14 -0
- data/plugins/provisioners/cfengine/cap/linux/cfengine_needs_bootstrap.rb +34 -0
- data/plugins/provisioners/cfengine/cap/redhat/cfengine_install.rb +24 -0
- data/plugins/provisioners/cfengine/config.rb +120 -0
- data/plugins/provisioners/cfengine/plugin.rb +42 -0
- data/plugins/provisioners/cfengine/provisioner.rb +136 -0
- data/plugins/provisioners/chef/config/base.rb +85 -0
- data/plugins/provisioners/chef/config/chef_client.rb +57 -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 +93 -0
- data/plugins/provisioners/chef/provisioner/chef_client.rb +107 -0
- data/plugins/provisioners/chef/provisioner/chef_solo.rb +192 -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 +117 -0
- data/plugins/provisioners/puppet/provisioner/puppet_server.rb +67 -0
- data/plugins/provisioners/shell/config.rb +56 -0
- data/plugins/provisioners/shell/plugin.rb +23 -0
- data/plugins/provisioners/shell/provisioner.rb +86 -0
- data/tasks/acceptance.rake +113 -0
- data/tasks/bundler.rake +3 -0
- data/tasks/test.rake +20 -0
- data/templates/commands/init/Vagrantfile.erb +111 -0
- data/templates/commands/ssh_config/config.erb +16 -0
- data/templates/config/messages.erb +14 -0
- data/templates/config/validation_failed.erb +7 -0
- data/templates/guests/arch/network_dhcp.erb +4 -0
- data/templates/guests/arch/network_static.erb +6 -0
- data/templates/guests/debian/network_dhcp.erb +11 -0
- data/templates/guests/debian/network_static.erb +7 -0
- data/templates/guests/fedora/network_dhcp.erb +6 -0
- data/templates/guests/fedora/network_static.erb +13 -0
- data/templates/guests/freebsd/network_dhcp.erb +3 -0
- data/templates/guests/freebsd/network_static.erb +3 -0
- data/templates/guests/gentoo/network_dhcp.erb +4 -0
- data/templates/guests/gentoo/network_static.erb +4 -0
- data/templates/guests/redhat/network_dhcp.erb +6 -0
- data/templates/guests/redhat/network_static.erb +8 -0
- data/templates/locales/en.yml +1126 -0
- data/templates/nfs/exports.erb +5 -0
- data/templates/nfs/exports_freebsd.erb +5 -0
- data/templates/nfs/exports_linux.erb +5 -0
- data/templates/package_Vagrantfile.erb +11 -0
- data/templates/provisioners/chef_client/client.erb +32 -0
- data/templates/provisioners/chef_solo/solo.erb +25 -0
- data/templates/rgloader.rb +9 -0
- data/test/acceptance/base.rb +48 -0
- data/test/acceptance/box_test.rb +99 -0
- data/test/acceptance/destroy_test.rb +37 -0
- data/test/acceptance/halt_test.rb +72 -0
- data/test/acceptance/init_test.rb +33 -0
- data/test/acceptance/networking/host_only_test.rb +37 -0
- data/test/acceptance/networking/port_forward_test.rb +125 -0
- data/test/acceptance/package_test.rb +46 -0
- data/test/acceptance/provisioning/basic_test.rb +61 -0
- data/test/acceptance/provisioning/chef_solo_test.rb +37 -0
- data/test/acceptance/provisioning/shell_test.rb +53 -0
- data/test/acceptance/resume_test.rb +17 -0
- data/test/acceptance/shared_folders_test.rb +84 -0
- data/test/acceptance/skeletons/chef_solo_basic/README.md +3 -0
- data/test/acceptance/skeletons/chef_solo_basic/cookbooks/basic/recipes/default.rb +5 -0
- data/test/acceptance/skeletons/chef_solo_json/README.md +3 -0
- data/test/acceptance/skeletons/chef_solo_json/cookbooks/basic/recipes/default.rb +6 -0
- data/test/acceptance/skeletons/provisioner_multi/README.md +3 -0
- data/test/acceptance/skeletons/provisioner_multi/cookbooks/basic/recipes/default.rb +5 -0
- data/test/acceptance/ssh_test.rb +46 -0
- data/test/acceptance/support/config.rb +42 -0
- data/test/acceptance/support/isolated_environment.rb +118 -0
- data/test/acceptance/support/matchers/have_color.rb +9 -0
- data/test/acceptance/support/matchers/match_output.rb +14 -0
- data/test/acceptance/support/matchers/succeed.rb +14 -0
- data/test/acceptance/support/network_tests.rb +29 -0
- data/test/acceptance/support/output.rb +95 -0
- data/test/acceptance/support/shared/base_context.rb +72 -0
- data/test/acceptance/support/shared/command_examples.rb +33 -0
- data/test/acceptance/support/virtualbox.rb +36 -0
- data/test/acceptance/suspend_test.rb +56 -0
- data/test/acceptance/up_basic_test.rb +33 -0
- data/test/acceptance/up_with_box_url.rb +40 -0
- data/test/acceptance/vagrant_test.rb +47 -0
- data/test/acceptance/version_test.rb +15 -0
- data/test/config/acceptance_boxes.yml +7 -0
- data/test/support/isolated_environment.rb +46 -0
- data/test/support/tempdir.rb +43 -0
- data/test/unit/base.rb +27 -0
- data/test/unit/support/dummy_provider.rb +16 -0
- data/test/unit/support/isolated_environment.rb +179 -0
- data/test/unit/support/shared/base_context.rb +104 -0
- data/test/unit/vagrant/action/builder_test.rb +242 -0
- 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 +120 -0
- data/test/unit/vagrant/action/runner_test.rb +71 -0
- data/test/unit/vagrant/action/warden_test.rb +92 -0
- data/test/unit/vagrant/batch_action_test.rb +36 -0
- data/test/unit/vagrant/box_collection_test.rb +237 -0
- data/test/unit/vagrant/box_test.rb +122 -0
- data/test/unit/vagrant/cli_test.rb +27 -0
- data/test/unit/vagrant/config/loader_test.rb +184 -0
- 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 +66 -0
- data/test/unit/vagrant/environment_test.rb +721 -0
- data/test/unit/vagrant/guest_test.rb +166 -0
- data/test/unit/vagrant/hosts_test.rb +37 -0
- data/test/unit/vagrant/machine_state_test.rb +26 -0
- data/test/unit/vagrant/machine_test.rb +384 -0
- data/test/unit/vagrant/plugin/v1/command_test.rb +143 -0
- 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 +174 -0
- data/test/unit/vagrant/plugin/v2/plugin_test.rb +305 -0
- data/test/unit/vagrant/plugin/v2/provider_test.rb +18 -0
- data/test/unit/vagrant/registry_test.rb +128 -0
- data/test/unit/vagrant/util/ansi_escape_code_remover_test.rb +16 -0
- data/test/unit/vagrant/util/downloader_test.rb +57 -0
- data/test/unit/vagrant/util/file_checksum_test.rb +23 -0
- data/test/unit/vagrant/util/hash_with_indifferent_access_test.rb +38 -0
- data/test/unit/vagrant/util/is_port_open_test.rb +53 -0
- data/test/unit/vagrant/util/line_endings_helper_test.rb +16 -0
- data/test/unit/vagrant/util/network_ip_test.rb +17 -0
- data/test/unit/vagrant/util/retryable_test.rb +106 -0
- data/test/unit/vagrant/util/safe_chdir_test.rb +43 -0
- 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 +106 -0
- data/test/unit/vagrant/util/which_test.rb +43 -0
- data/test/unit/vagrant_test.rb +56 -0
- data/tnargav.gemspec +69 -0
- data/vagrant.gemspec +69 -0
- metadata +730 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
require "pathname"
|
|
2
|
+
|
|
3
|
+
require "vagrant"
|
|
4
|
+
|
|
5
|
+
require Vagrant.source_root.join("plugins/hosts/linux/host")
|
|
6
|
+
|
|
7
|
+
module VagrantPlugins
|
|
8
|
+
module HostFedora
|
|
9
|
+
class Host < VagrantPlugins::HostLinux::Host
|
|
10
|
+
def self.match?
|
|
11
|
+
release_file = Pathname.new("/etc/redhat-release")
|
|
12
|
+
|
|
13
|
+
if release_file.exist?
|
|
14
|
+
release_file.open("r") do |f|
|
|
15
|
+
return true if f.gets =~ /^Fedora/
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
false
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Normal, mid-range precedence.
|
|
23
|
+
def self.precedence
|
|
24
|
+
5
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def initialize(*args)
|
|
28
|
+
super
|
|
29
|
+
|
|
30
|
+
@nfs_server_binary = "/etc/init.d/nfs"
|
|
31
|
+
|
|
32
|
+
# On Fedora 16+, systemd replaced init.d, so we have to use the
|
|
33
|
+
# proper NFS binary. This checks to see if we need to do that.
|
|
34
|
+
release_file = Pathname.new("/etc/redhat-release")
|
|
35
|
+
begin
|
|
36
|
+
release_file.open("r") do |f|
|
|
37
|
+
version_number = /Fedora release ([0-9]+)/.match(f.gets)[1].to_i
|
|
38
|
+
if version_number >= 16
|
|
39
|
+
# "service nfs-server" will redirect properly to systemctl
|
|
40
|
+
# when "service nfs-server restart" is called.
|
|
41
|
+
@nfs_server_binary = "/usr/sbin/service nfs-server"
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
rescue Errno::ENOENT
|
|
45
|
+
# File doesn't exist, not a big deal, assume we're on a
|
|
46
|
+
# lower version.
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module HostFedora
|
|
5
|
+
class Plugin < Vagrant.plugin("2")
|
|
6
|
+
name "Fedora host"
|
|
7
|
+
description "Fedora host support."
|
|
8
|
+
|
|
9
|
+
host("fedora") do
|
|
10
|
+
require File.expand_path("../host", __FILE__)
|
|
11
|
+
Host
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
require 'vagrant/util/platform'
|
|
3
|
+
|
|
4
|
+
require Vagrant.source_root.join("plugins/hosts/bsd/host")
|
|
5
|
+
|
|
6
|
+
module VagrantPlugins
|
|
7
|
+
module HostFreeBSD
|
|
8
|
+
class Host < VagrantPlugins::HostBSD::Host
|
|
9
|
+
class FreeBSDHostError < Vagrant::Errors::VagrantError
|
|
10
|
+
error_namespace("vagrant.hosts.freebsd")
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
include Vagrant::Util
|
|
14
|
+
include Vagrant::Util::Retryable
|
|
15
|
+
|
|
16
|
+
def self.match?
|
|
17
|
+
Vagrant::Util::Platform.freebsd?
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Normal, mid-range precedence.
|
|
21
|
+
def self.precedence
|
|
22
|
+
5
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def nfs_export(id, ip, folders)
|
|
26
|
+
folders.each do |folder_name, folder_values|
|
|
27
|
+
if folder_values[:hostpath] =~ /\s+/
|
|
28
|
+
raise FreeBSDHostError, :_key => :nfs_whitespace
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
super
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def initialize(*args)
|
|
36
|
+
super
|
|
37
|
+
|
|
38
|
+
@nfs_restart_command = "sudo /etc/rc.d/mountd onereload"
|
|
39
|
+
@nfs_exports_template = "nfs/exports_freebsd"
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module HostFreeBSD
|
|
5
|
+
class Plugin < Vagrant.plugin("2")
|
|
6
|
+
name "FreeBSD host"
|
|
7
|
+
description "FreeBSD host support."
|
|
8
|
+
|
|
9
|
+
host("freebsd") do
|
|
10
|
+
require File.expand_path("../host", __FILE__)
|
|
11
|
+
Host
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
require Vagrant.source_root.join("plugins/hosts/linux/host")
|
|
4
|
+
|
|
5
|
+
module VagrantPlugins
|
|
6
|
+
module HostGentoo
|
|
7
|
+
class Host < VagrantPlugins::HostLinux::Host
|
|
8
|
+
def self.match?
|
|
9
|
+
return File.exists?("/etc/gentoo-release")
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Normal, mid-range precedence.
|
|
13
|
+
def self.precedence
|
|
14
|
+
5
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def initialize(*args)
|
|
18
|
+
super
|
|
19
|
+
|
|
20
|
+
@nfs_server_binary = "/etc/init.d/nfs"
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module HostGentoo
|
|
5
|
+
class Plugin < Vagrant.plugin("2")
|
|
6
|
+
name "Gentoo host"
|
|
7
|
+
description "Gentoo host support."
|
|
8
|
+
|
|
9
|
+
host("gentoo") do
|
|
10
|
+
require File.expand_path("../host", __FILE__)
|
|
11
|
+
Host
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
require 'log4r'
|
|
2
|
+
|
|
3
|
+
require "vagrant"
|
|
4
|
+
require 'vagrant/util/platform'
|
|
5
|
+
|
|
6
|
+
module VagrantPlugins
|
|
7
|
+
module HostLinux
|
|
8
|
+
# Represents a Linux based host, such as Ubuntu.
|
|
9
|
+
class Host < Vagrant.plugin("2", :host)
|
|
10
|
+
include Vagrant::Util
|
|
11
|
+
include Vagrant::Util::Retryable
|
|
12
|
+
|
|
13
|
+
def self.match?
|
|
14
|
+
Vagrant::Util::Platform.linux?
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.precedence
|
|
18
|
+
# Set a lower precedence because this is a generic OS. We
|
|
19
|
+
# want specific distros to match first.
|
|
20
|
+
2
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def initialize(*args)
|
|
24
|
+
super
|
|
25
|
+
|
|
26
|
+
@logger = Log4r::Logger.new("vagrant::hosts::linux")
|
|
27
|
+
@nfs_server_binary = "/etc/init.d/nfs-kernel-server"
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def nfs?
|
|
31
|
+
retryable(:tries => 10, :on => TypeError) do
|
|
32
|
+
# Check procfs to see if NFSd is a supported filesystem
|
|
33
|
+
system("cat /proc/filesystems | grep nfsd > /dev/null 2>&1")
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def nfs_export(id, ip, folders)
|
|
38
|
+
output = TemplateRenderer.render('nfs/exports_linux',
|
|
39
|
+
:uuid => id,
|
|
40
|
+
:ip => ip,
|
|
41
|
+
:folders => folders)
|
|
42
|
+
|
|
43
|
+
@ui.info I18n.t("vagrant.hosts.linux.nfs_export")
|
|
44
|
+
sleep 0.5
|
|
45
|
+
|
|
46
|
+
nfs_cleanup(id)
|
|
47
|
+
|
|
48
|
+
output.split("\n").each do |line|
|
|
49
|
+
# This should only ask for administrative permission once, even
|
|
50
|
+
# though its executed in multiple subshells.
|
|
51
|
+
system(%Q[sudo su root -c "echo '#{line}' >> /etc/exports"])
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# We run restart here instead of "update" just in case nfsd
|
|
55
|
+
# is not starting
|
|
56
|
+
system("sudo #{@nfs_server_binary} restart")
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def nfs_prune(valid_ids)
|
|
60
|
+
return if !File.exist?("/etc/exports")
|
|
61
|
+
|
|
62
|
+
@logger.info("Pruning invalid NFS entries...")
|
|
63
|
+
|
|
64
|
+
output = false
|
|
65
|
+
|
|
66
|
+
File.read("/etc/exports").lines.each do |line|
|
|
67
|
+
if id = line[/^# VAGRANT-BEGIN: (.+?)$/, 1]
|
|
68
|
+
if valid_ids.include?(id)
|
|
69
|
+
@logger.debug("Valid ID: #{id}")
|
|
70
|
+
else
|
|
71
|
+
if !output
|
|
72
|
+
# We want to warn the user but we only want to output once
|
|
73
|
+
@ui.info I18n.t("vagrant.hosts.linux.nfs_prune")
|
|
74
|
+
output = true
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
@logger.info("Invalid ID, pruning: #{id}")
|
|
78
|
+
nfs_cleanup(id)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
protected
|
|
85
|
+
|
|
86
|
+
def nfs_cleanup(id)
|
|
87
|
+
return if !File.exist?("/etc/exports")
|
|
88
|
+
|
|
89
|
+
# Use sed to just strip out the block of code which was inserted
|
|
90
|
+
# by Vagrant
|
|
91
|
+
system("sudo sed -e '/^# VAGRANT-BEGIN: #{id}/,/^# VAGRANT-END: #{id}/ d' -ibak /etc/exports")
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module HostLinux
|
|
5
|
+
class Plugin < Vagrant.plugin("2")
|
|
6
|
+
name "Linux host"
|
|
7
|
+
description "Linux host support."
|
|
8
|
+
|
|
9
|
+
host("linux") do
|
|
10
|
+
require File.expand_path("../host", __FILE__)
|
|
11
|
+
Host
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require "pathname"
|
|
2
|
+
|
|
3
|
+
require "vagrant"
|
|
4
|
+
|
|
5
|
+
require Vagrant.source_root.join("plugins/hosts/linux/host")
|
|
6
|
+
|
|
7
|
+
module VagrantPlugins
|
|
8
|
+
module HostOpenSUSE
|
|
9
|
+
class Host < VagrantPlugins::HostLinux::Host
|
|
10
|
+
def self.match?
|
|
11
|
+
release_file = Pathname.new("/etc/SuSE-release")
|
|
12
|
+
|
|
13
|
+
if release_file.exist?
|
|
14
|
+
release_file.open("r") do |f|
|
|
15
|
+
return true if f.gets =~ /^openSUSE/
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
false
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Normal, mid-range precedence.
|
|
23
|
+
def self.precedence
|
|
24
|
+
5
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def initialize(*args)
|
|
28
|
+
super
|
|
29
|
+
|
|
30
|
+
@nfs_server_binary = "/etc/init.d/nfsserver"
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module HostOpenSUSE
|
|
5
|
+
class Plugin < Vagrant.plugin("2")
|
|
6
|
+
name "OpenSUSE host"
|
|
7
|
+
description "OpenSUSE host support."
|
|
8
|
+
|
|
9
|
+
host("opensuse") do
|
|
10
|
+
require File.expand_path("../host", __FILE__)
|
|
11
|
+
Host
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
require 'vagrant/util/platform'
|
|
3
|
+
|
|
4
|
+
module VagrantPlugins
|
|
5
|
+
module HostWindows
|
|
6
|
+
class Host < Vagrant.plugin("2", :host)
|
|
7
|
+
def self.match?
|
|
8
|
+
Vagrant::Util::Platform.windows?
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Windows does not support NFS
|
|
12
|
+
def nfs?
|
|
13
|
+
false
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module HostWindows
|
|
5
|
+
class Plugin < Vagrant.plugin("2")
|
|
6
|
+
name "Windows host"
|
|
7
|
+
description "Windows host support."
|
|
8
|
+
|
|
9
|
+
host("windows") do
|
|
10
|
+
require File.expand_path("../host", __FILE__)
|
|
11
|
+
Host
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module Kernel_V1
|
|
5
|
+
class NFSConfig < Vagrant.plugin("1", :config)
|
|
6
|
+
attr_accessor :map_uid
|
|
7
|
+
attr_accessor :map_gid
|
|
8
|
+
|
|
9
|
+
def initialize
|
|
10
|
+
@map_uid = UNSET_VALUE
|
|
11
|
+
@map_gid = UNSET_VALUE
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def upgrade(new)
|
|
15
|
+
new.nfs.map_uid = @map_uid if @map_uid != UNSET_VALUE
|
|
16
|
+
new.nfs.map_gid = @map_gid if @map_gid != UNSET_VALUE
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module Kernel_V1
|
|
5
|
+
class PackageConfig < Vagrant.plugin("1", :config)
|
|
6
|
+
attr_accessor :name
|
|
7
|
+
|
|
8
|
+
def initialize
|
|
9
|
+
@name = UNSET_VALUE
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def upgrade(new)
|
|
13
|
+
new.package.name = @name if @name != UNSET_VALUE
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module Kernel_V1
|
|
5
|
+
class SSHConfig < Vagrant.plugin("1", :config)
|
|
6
|
+
attr_accessor :username
|
|
7
|
+
attr_accessor :password
|
|
8
|
+
attr_accessor :host
|
|
9
|
+
attr_accessor :port
|
|
10
|
+
attr_accessor :guest_port
|
|
11
|
+
attr_accessor :max_tries
|
|
12
|
+
attr_accessor :timeout
|
|
13
|
+
attr_accessor :private_key_path
|
|
14
|
+
attr_accessor :forward_agent
|
|
15
|
+
attr_accessor :forward_x11
|
|
16
|
+
attr_accessor :shell
|
|
17
|
+
|
|
18
|
+
def initialize
|
|
19
|
+
@username = UNSET_VALUE
|
|
20
|
+
@password = UNSET_VALUE
|
|
21
|
+
@host = UNSET_VALUE
|
|
22
|
+
@port = UNSET_VALUE
|
|
23
|
+
@guest_port = UNSET_VALUE
|
|
24
|
+
@max_tries = UNSET_VALUE
|
|
25
|
+
@timeout = UNSET_VALUE
|
|
26
|
+
@private_key_path = UNSET_VALUE
|
|
27
|
+
@forward_agent = UNSET_VALUE
|
|
28
|
+
@forward_x11 = UNSET_VALUE
|
|
29
|
+
@shell = UNSET_VALUE
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def upgrade(new)
|
|
33
|
+
new.ssh.username = @username if @username != UNSET_VALUE
|
|
34
|
+
new.ssh.host = @host if @host != UNSET_VALUE
|
|
35
|
+
new.ssh.port = @port if @port != UNSET_VALUE
|
|
36
|
+
new.ssh.guest_port = @guest_port if @guest_port != UNSET_VALUE
|
|
37
|
+
new.ssh.max_tries = @max_tries if @max_tries != UNSET_VALUE
|
|
38
|
+
new.ssh.timeout = @timeout if @timeout != UNSET_VALUE
|
|
39
|
+
new.ssh.private_key_path = @private_key_path if @private_key_path != UNSET_VALUE
|
|
40
|
+
new.ssh.forward_agent = @forward_agent if @forward_agent != UNSET_VALUE
|
|
41
|
+
new.ssh.forward_x11 = @forward_x11 if @forward_x11 != UNSET_VALUE
|
|
42
|
+
new.ssh.shell = @shell if @shell != UNSET_VALUE
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require "vagrant"
|
|
2
|
+
|
|
3
|
+
module VagrantPlugins
|
|
4
|
+
module Kernel_V1
|
|
5
|
+
class VagrantConfig < Vagrant.plugin("1", :config)
|
|
6
|
+
attr_accessor :dotfile_name
|
|
7
|
+
attr_accessor :host
|
|
8
|
+
|
|
9
|
+
def initialize
|
|
10
|
+
@dotfile_name = UNSET_VALUE
|
|
11
|
+
@host = UNSET_VALUE
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def finalize!
|
|
15
|
+
@dotfile_name = nil if @dotfile_name == UNSET_VALUE
|
|
16
|
+
@host = nil if @host == UNSET_VALUE
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def upgrade(new)
|
|
20
|
+
new.vagrant.host = @host if @host.nil?
|
|
21
|
+
|
|
22
|
+
warnings = []
|
|
23
|
+
if @dotfile_name
|
|
24
|
+
warnings << "`config.vm.dotfile_name` has no effect anymore."
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
[warnings, []]
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
module VagrantPlugins
|
|
2
|
+
module Kernel_V1
|
|
3
|
+
# This is the Version 1.0.x Vagrant VM configuration. This is
|
|
4
|
+
# _outdated_ and exists purely to be upgraded over to the new V2
|
|
5
|
+
# format.
|
|
6
|
+
class VMConfig < Vagrant.plugin("1", :config)
|
|
7
|
+
DEFAULT_VM_NAME = :default
|
|
8
|
+
|
|
9
|
+
attr_accessor :name
|
|
10
|
+
attr_accessor :auto_port_range
|
|
11
|
+
attr_accessor :base_mac
|
|
12
|
+
attr_accessor :boot_mode
|
|
13
|
+
attr_accessor :box
|
|
14
|
+
attr_accessor :box_url
|
|
15
|
+
attr_accessor :guest
|
|
16
|
+
attr_accessor :host_name
|
|
17
|
+
attr_reader :customizations
|
|
18
|
+
attr_reader :networks
|
|
19
|
+
attr_reader :provisioners
|
|
20
|
+
attr_reader :shared_folders
|
|
21
|
+
|
|
22
|
+
def initialize
|
|
23
|
+
@shared_folders = {}
|
|
24
|
+
@networks = []
|
|
25
|
+
@provisioners = []
|
|
26
|
+
@customizations = []
|
|
27
|
+
@define_calls = []
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def forward_port(guestport, hostport, options=nil)
|
|
31
|
+
options ||= {}
|
|
32
|
+
|
|
33
|
+
# Build up the network options for V2
|
|
34
|
+
network_options = {}
|
|
35
|
+
network_options[:virtualbox__adapter] = options[:adapter]
|
|
36
|
+
network_options[:virtualbox__protocol] = options[:protocol]
|
|
37
|
+
|
|
38
|
+
# Just append the forwarded port to the networks
|
|
39
|
+
@networks << [:forwarded_port, [guestport, hostport, network_options]]
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def share_folder(name, guestpath, hostpath, opts=nil)
|
|
43
|
+
@shared_folders[name] = {
|
|
44
|
+
:guestpath => guestpath.to_s,
|
|
45
|
+
:hostpath => hostpath.to_s,
|
|
46
|
+
:create => false,
|
|
47
|
+
:owner => nil,
|
|
48
|
+
:group => nil,
|
|
49
|
+
:nfs => false,
|
|
50
|
+
:transient => false,
|
|
51
|
+
:extra => nil
|
|
52
|
+
}.merge(opts || {})
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def network(type, *args)
|
|
56
|
+
if type == :hostonly
|
|
57
|
+
@networks << [:private_network, args]
|
|
58
|
+
elsif type == :bridged
|
|
59
|
+
@networks << [:public_network, args]
|
|
60
|
+
else
|
|
61
|
+
@networks << [:unknown, type]
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def provision(name, options=nil, &block)
|
|
66
|
+
@provisioners << [name, options, block]
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# This argument is nil only because the old style was deprecated and
|
|
70
|
+
# we didn't want to break Vagrantfiles. This was never removed and
|
|
71
|
+
# since we've moved onto V2 configuration, we might as well keep this
|
|
72
|
+
# around forever.
|
|
73
|
+
def customize(command=nil)
|
|
74
|
+
@customizations << command if command
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def define(name, options=nil, &block)
|
|
78
|
+
# Force the V1 config on these calls
|
|
79
|
+
options ||= {}
|
|
80
|
+
options[:config_version] = "1"
|
|
81
|
+
|
|
82
|
+
@define_calls << [name, options, block]
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def finalize!
|
|
86
|
+
# If we haven't defined a single VM, then we need to define a
|
|
87
|
+
# default VM which just inherits the rest of the configuration.
|
|
88
|
+
define(DEFAULT_VM_NAME) if defined_vm_keys.empty?
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# Upgrade to a V2 configuration
|
|
92
|
+
def upgrade(new)
|
|
93
|
+
warnings = []
|
|
94
|
+
|
|
95
|
+
new.vm.base_mac = self.base_mac if self.base_mac
|
|
96
|
+
new.vm.box = self.box if self.box
|
|
97
|
+
new.vm.box_url = self.box_url if self.box_url
|
|
98
|
+
new.vm.guest = self.guest if self.guest
|
|
99
|
+
new.vm.hostname = self.host_name if self.host_name
|
|
100
|
+
new.vm.usable_port_range = self.auto_port_range if self.auto_port_range
|
|
101
|
+
|
|
102
|
+
if self.boot_mode
|
|
103
|
+
new.vm.provider :virtualbox do |vb|
|
|
104
|
+
# Enable the GUI if the boot mode is GUI.
|
|
105
|
+
vb.gui = (self.boot_mode.to_s == "gui")
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# If we have VM customizations, then we enable them on the
|
|
110
|
+
# VirtualBox provider on the new VM.
|
|
111
|
+
if !self.customizations.empty?
|
|
112
|
+
warnings << "`config.vm.customize` calls are VirtualBox-specific. If you're\n" +
|
|
113
|
+
"using any other provider, you'll have to use config.vm.provider in a\n" +
|
|
114
|
+
"v2 configuration block."
|
|
115
|
+
|
|
116
|
+
new.vm.provider :virtualbox do |vb|
|
|
117
|
+
self.customizations.each do |customization|
|
|
118
|
+
vb.customize(customization)
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# Re-define all networks.
|
|
124
|
+
self.networks.each do |type, args|
|
|
125
|
+
if type == :unknown
|
|
126
|
+
warnings << "Unknown network type '#{args}' will be ignored."
|
|
127
|
+
next
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
options = {}
|
|
131
|
+
options = args.pop.dup if args.last.is_a?(Hash)
|
|
132
|
+
|
|
133
|
+
# Determine the extra options we need to set for each type
|
|
134
|
+
if type == :forwarded_port
|
|
135
|
+
options[:guest] = args[0]
|
|
136
|
+
options[:host] = args[1]
|
|
137
|
+
elsif type == :private_network
|
|
138
|
+
options[:ip] = args[0]
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
new.vm.network(type, options)
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# Provisioners
|
|
145
|
+
self.provisioners.each do |name, options, block|
|
|
146
|
+
new.vm.provision(name, options, &block)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# Shared folders
|
|
150
|
+
self.shared_folders.each do |name, sf|
|
|
151
|
+
options = sf.dup
|
|
152
|
+
options[:id] = name
|
|
153
|
+
guestpath = options.delete(:guestpath)
|
|
154
|
+
hostpath = options.delete(:hostpath)
|
|
155
|
+
|
|
156
|
+
# This was the name of the old default /vagrant shared folder.
|
|
157
|
+
# We warn the use that this changed, but also silently change
|
|
158
|
+
# it to try to make things work properly.
|
|
159
|
+
if options[:id] == "v-root"
|
|
160
|
+
warnings << "The 'v-root' shared folders have been renamed to 'vagrant-root'.\n" +
|
|
161
|
+
"Assuming you meant 'vagrant-root'..."
|
|
162
|
+
|
|
163
|
+
options[:id] = "vagrant-root"
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
new.vm.synced_folder(hostpath, guestpath, options)
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# Defined sub-VMs
|
|
170
|
+
@define_calls.each do |name, options, block|
|
|
171
|
+
new.vm.define(name, options, &block)
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# If name is used, warn that it has no effect anymore
|
|
175
|
+
if @name
|
|
176
|
+
warnings << "`config.vm.name` has no effect anymore. Names are derived\n" +
|
|
177
|
+
"directly from any `config.vm.define` calls."
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
[warnings, []]
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
end
|