tnargav 1.2.3 → 1.3.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +19 -3
- data/CHANGELOG.md +311 -0
- data/bin/vagrant +12 -0
- data/config/default.rb +2 -4
- data/keys/README.md +0 -7
- data/lib/vagrant.rb +7 -0
- data/lib/vagrant/action.rb +2 -0
- data/lib/vagrant/action/builtin/box_add.rb +12 -1
- data/lib/vagrant/action/builtin/confirm.rb +1 -0
- data/lib/vagrant/action/builtin/graceful_halt.rb +9 -5
- data/lib/vagrant/action/builtin/handle_box_url.rb +16 -7
- data/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb +1 -1
- data/lib/vagrant/action/builtin/mixin_provisioners.rb +43 -0
- data/lib/vagrant/action/builtin/nfs.rb +18 -8
- data/lib/vagrant/action/builtin/provision.rb +30 -21
- data/lib/vagrant/action/builtin/provisioner_cleanup.rb +35 -0
- data/lib/vagrant/action/builtin/wait_for_communicator.rb +84 -0
- data/lib/vagrant/action/warden.rb +2 -1
- data/lib/vagrant/box_collection.rb +62 -44
- data/lib/vagrant/cli.rb +1 -9
- data/lib/vagrant/config/v2/root.rb +6 -0
- data/lib/vagrant/environment.rb +27 -51
- data/lib/vagrant/errors.rb +33 -1
- data/lib/vagrant/guest.rb +2 -2
- data/lib/vagrant/machine.rb +14 -22
- data/lib/vagrant/plugin/v2/command.rb +4 -1
- data/lib/vagrant/plugin/v2/communicator.rb +21 -0
- data/lib/vagrant/plugin/v2/guest.rb +1 -56
- data/lib/vagrant/plugin/v2/provisioner.rb +6 -0
- data/lib/vagrant/util/downloader.rb +7 -2
- data/lib/vagrant/util/platform.rb +43 -0
- data/lib/vagrant/util/ssh.rb +5 -0
- data/lib/vagrant/util/subprocess.rb +16 -2
- data/lib/vagrant/version.rb +1 -1
- data/plugins/commands/box/command/remove.rb +22 -2
- data/plugins/commands/box/command/repackage.rb +1 -1
- data/plugins/commands/destroy/command.rb +8 -3
- data/plugins/commands/help/command.rb +12 -0
- data/plugins/commands/help/plugin.rb +17 -0
- data/plugins/commands/plugin/action.rb +11 -0
- data/plugins/commands/plugin/action/install_gem.rb +26 -1
- data/plugins/commands/plugin/action/plugin_exists_check.rb +26 -0
- data/plugins/commands/plugin/command/install.rb +4 -21
- data/plugins/commands/plugin/command/mixin_install_opts.rb +30 -0
- data/plugins/commands/plugin/command/root.rb +5 -0
- data/plugins/commands/plugin/command/update.rb +41 -0
- data/plugins/commands/reload/command.rb +4 -0
- data/plugins/commands/status/command.rb +6 -1
- data/plugins/commands/up/command.rb +10 -0
- data/plugins/commands/up/start_mixins.rb +12 -1
- data/plugins/communicators/ssh/communicator.rb +61 -6
- data/plugins/guests/arch/cap/change_host_name.rb +1 -2
- data/plugins/guests/arch/cap/configure_networks.rb +6 -0
- data/plugins/guests/coreos/cap/change_host_name.rb +15 -0
- data/plugins/guests/coreos/cap/configure_networks.rb +72 -0
- data/plugins/guests/coreos/guest.rb +9 -0
- data/plugins/guests/coreos/plugin.rb +25 -0
- data/plugins/guests/darwin/cap/change_host_name.rb +14 -0
- data/plugins/guests/darwin/cap/configure_networks.rb +52 -0
- data/plugins/guests/darwin/cap/halt.rb +16 -0
- data/plugins/guests/darwin/cap/mount_nfs_folder.rb +25 -0
- data/plugins/guests/darwin/cap/mount_vmware_shared_folder.rb +36 -0
- data/plugins/guests/darwin/cap/shell_expand_guest_path.rb +26 -0
- data/plugins/guests/darwin/cap/verify_vmware_hgfs.rb +12 -0
- data/plugins/guests/darwin/guest.rb +15 -0
- data/plugins/guests/darwin/plugin.rb +50 -0
- data/plugins/guests/debian/cap/change_host_name.rb +1 -0
- data/plugins/guests/gentoo/guest.rb +1 -1
- data/plugins/guests/linux/cap/mount_nfs.rb +9 -1
- data/plugins/guests/linux/cap/mount_virtualbox_shared_folder.rb +26 -7
- data/plugins/guests/linux/cap/shell_expand_guest_path.rb +4 -1
- data/plugins/guests/openbsd/cap/change_host_name.rb +14 -0
- data/plugins/guests/openbsd/cap/configure_networks.rb +40 -0
- data/plugins/guests/openbsd/cap/mount_nfs_folder.rb +14 -0
- data/plugins/guests/openbsd/plugin.rb +15 -0
- data/plugins/guests/solaris/cap/halt.rb +2 -1
- data/plugins/guests/solaris/cap/mount_virtualbox_shared_folder.rb +4 -1
- data/plugins/guests/solaris11/cap/change_host_name.rb +25 -0
- data/plugins/guests/solaris11/cap/configure_networks.rb +32 -0
- data/plugins/guests/solaris11/cap/halt.rb +26 -0
- data/plugins/guests/solaris11/cap/mount_virtualbox_shared_folder.rb +35 -0
- data/plugins/guests/solaris11/config.rb +22 -0
- data/plugins/guests/solaris11/guest.rb +15 -0
- data/plugins/guests/solaris11/plugin.rb +44 -0
- data/plugins/guests/suse/cap/configure_networks.rb +60 -0
- data/plugins/guests/suse/plugin.rb +5 -0
- data/plugins/guests/ubuntu/cap/change_host_name.rb +1 -0
- data/plugins/guests/ubuntu/cap/mount_nfs.rb +19 -0
- data/plugins/guests/ubuntu/cap/mount_virtualbox_shared_folder.rb +14 -0
- data/plugins/guests/ubuntu/guest.rb +0 -19
- data/plugins/guests/ubuntu/plugin.rb +10 -0
- data/plugins/hosts/arch/host.rb +5 -28
- data/plugins/hosts/bsd/host.rb +83 -7
- data/plugins/hosts/fedora/host.rb +12 -6
- data/plugins/hosts/gentoo/host.rb +3 -1
- data/plugins/hosts/linux/host.rb +42 -9
- data/plugins/hosts/opensuse/host.rb +3 -1
- data/plugins/hosts/slackware/host.rb +26 -0
- data/plugins/hosts/slackware/plugin.rb +15 -0
- data/plugins/kernel_v1/config/ssh.rb +2 -2
- data/plugins/kernel_v2/config/ssh.rb +8 -16
- data/plugins/kernel_v2/config/vm.rb +68 -11
- data/plugins/providers/virtualbox/action.rb +15 -2
- data/plugins/providers/virtualbox/action/boot.rb +0 -26
- data/plugins/providers/virtualbox/action/clear_network_interfaces.rb +1 -1
- data/plugins/providers/virtualbox/action/customize.rb +10 -3
- data/plugins/providers/virtualbox/action/destroy_unused_network_interfaces.rb +8 -1
- data/plugins/providers/virtualbox/action/forward_ports.rb +1 -0
- data/plugins/providers/virtualbox/action/import.rb +3 -0
- data/plugins/providers/virtualbox/action/network.rb +14 -2
- data/plugins/providers/virtualbox/action/prepare_nfs_settings.rb +7 -2
- data/plugins/providers/virtualbox/action/set_name.rb +13 -1
- data/plugins/providers/virtualbox/config.rb +39 -2
- data/plugins/providers/virtualbox/driver/base.rb +5 -0
- data/plugins/providers/virtualbox/driver/meta.rb +7 -1
- data/plugins/providers/virtualbox/driver/version_4_0.rb +2 -2
- data/plugins/providers/virtualbox/driver/version_4_1.rb +2 -2
- data/plugins/providers/virtualbox/driver/version_4_2.rb +17 -0
- data/plugins/providers/virtualbox/model/forwarded_port.rb +7 -1
- data/plugins/providers/virtualbox/util/compile_forwarded_ports.rb +5 -1
- data/plugins/provisioners/ansible/config.rb +40 -23
- data/plugins/provisioners/ansible/provisioner.rb +68 -13
- data/plugins/provisioners/cfengine/cap/debian/cfengine_install.rb +1 -1
- data/plugins/provisioners/cfengine/cap/redhat/cfengine_install.rb +1 -1
- data/plugins/provisioners/cfengine/config.rb +7 -1
- data/plugins/provisioners/cfengine/provisioner.rb +4 -5
- data/plugins/provisioners/chef/config/base.rb +31 -0
- data/plugins/provisioners/chef/config/chef_client.rb +15 -6
- data/plugins/provisioners/chef/config/chef_solo.rb +18 -11
- data/plugins/provisioners/chef/provisioner/base.rb +23 -3
- data/plugins/provisioners/chef/provisioner/chef_client.rb +25 -6
- data/plugins/provisioners/chef/provisioner/chef_solo.rb +16 -13
- data/plugins/provisioners/file/config.rb +29 -0
- data/plugins/provisioners/file/plugin.rb +23 -0
- data/plugins/provisioners/file/provisioner.rb +16 -0
- data/plugins/provisioners/puppet/config/puppet.rb +4 -1
- data/plugins/provisioners/puppet/provisioner/puppet.rb +15 -9
- data/plugins/provisioners/puppet/provisioner/puppet_server.rb +9 -2
- data/plugins/provisioners/salt/bootstrap-salt.sh +6 -0
- data/plugins/provisioners/salt/config.rb +105 -0
- data/plugins/provisioners/salt/errors.rb +11 -0
- data/plugins/provisioners/salt/plugin.rb +22 -0
- data/plugins/provisioners/salt/provisioner.rb +249 -0
- data/plugins/provisioners/shell/config.rb +11 -2
- data/plugins/provisioners/shell/provisioner.rb +15 -3
- data/scripts/website_push_docs.sh +12 -0
- data/scripts/website_push_www.sh +12 -0
- data/templates/commands/init/Vagrantfile.erb +5 -2
- data/templates/commands/ssh_config/config.erb +4 -0
- data/templates/guests/coreos/etcd.service.erb +10 -0
- data/templates/guests/fedora/network_static.erb +2 -3
- data/templates/guests/openbsd/network_dhcp.erb +1 -0
- data/templates/guests/openbsd/network_static.erb +1 -0
- data/templates/guests/suse/network_dhcp.erb +6 -0
- data/templates/guests/suse/network_static.erb +10 -0
- data/templates/locales/en.yml +123 -13
- data/templates/nfs/exports.erb +4 -4
- data/templates/nfs/exports_freebsd.erb +4 -4
- data/templates/nfs/exports_linux.erb +5 -3
- data/templates/provisioners/chef_client/client.erb +9 -0
- data/templates/provisioners/chef_solo/solo.erb +19 -1
- data/test/unit/vagrant/action/builtin/graceful_halt_test.rb +1 -2
- data/test/unit/vagrant/cli_test.rb +1 -0
- data/test/unit/vagrant/config/v2/root_test.rb +18 -0
- data/test/unit/vagrant/environment_test.rb +25 -0
- data/test/unit/vagrant/util/downloader_test.rb +4 -4
- data/test/unit/vagrant_test.rb +18 -0
- data/website/docs/.buildpacks +2 -0
- data/website/docs/Gemfile +13 -0
- data/website/docs/Gemfile.lock +141 -0
- data/website/docs/Procfile +1 -0
- data/website/docs/README.md +26 -0
- data/website/docs/config.rb +78 -0
- data/website/docs/config.ru +44 -0
- data/website/docs/helpers/sidebar_helpers.rb +19 -0
- data/website/docs/lib/redirect_to_latest.rb +25 -0
- data/website/docs/lib/redirect_v1_docs.rb +26 -0
- data/website/docs/source/404.html.erb +7 -0
- data/website/docs/source/images/bullet_1.png +0 -0
- data/website/docs/source/images/bullet_2.png +0 -0
- data/website/docs/source/images/bullet_3.png +0 -0
- data/website/docs/source/images/customers.png +0 -0
- data/website/docs/source/images/customers_small.png +0 -0
- data/website/docs/source/images/footer_background.png +0 -0
- data/website/docs/source/images/footer_hashi_logo.png +0 -0
- data/website/docs/source/images/footer_vagrant_logo.png +0 -0
- data/website/docs/source/images/get_started_background.png +0 -0
- data/website/docs/source/images/icon_caution.png +0 -0
- data/website/docs/source/images/logo_docs.png +0 -0
- data/website/docs/source/images/logo_docs_small.png +0 -0
- data/website/docs/source/images/logo_small.png +0 -0
- data/website/docs/source/images/logo_vagrant.png +0 -0
- data/website/docs/source/images/open_close.png +0 -0
- data/website/docs/source/images/search_icon.png +0 -0
- data/website/docs/source/images/sidebar_background_docs.png +0 -0
- data/website/docs/source/images/sidebar_background_inner.png +0 -0
- data/website/docs/source/images/steps_background.png +0 -0
- data/website/docs/source/images/vagrant_header_background.png +0 -0
- data/website/docs/source/index.html.erb +0 -0
- data/website/docs/source/javascripts/backstretch.js +4 -0
- data/website/docs/source/javascripts/bootstrap.min.js +7 -0
- data/website/docs/source/javascripts/fittext.js +43 -0
- data/website/docs/source/javascripts/grid-overlay.js +161 -0
- data/website/docs/source/javascripts/jquery.js +2 -0
- data/website/docs/source/javascripts/less-1.3.0.min.js +9 -0
- data/website/docs/source/javascripts/modernizr.js +1384 -0
- data/website/docs/source/javascripts/vagrantup.js +15 -0
- data/website/docs/source/layouts/layout.erb +266 -0
- data/website/docs/source/stylesheets/_base.less +317 -0
- data/website/docs/source/stylesheets/_components.less +74 -0
- data/website/docs/source/stylesheets/_footer.less +101 -0
- data/website/docs/source/stylesheets/_media-queries.less +452 -0
- data/website/docs/source/stylesheets/_mixins.less +174 -0
- data/website/docs/source/stylesheets/_nav.less +71 -0
- data/website/docs/source/stylesheets/_pages.less +276 -0
- data/website/docs/source/stylesheets/_sidebar.less +136 -0
- data/website/docs/source/stylesheets/_type.less +36 -0
- data/website/docs/source/stylesheets/_variables.less +39 -0
- data/website/docs/source/stylesheets/bootstrap.css +5946 -0
- data/website/docs/source/stylesheets/vagrantup.less +16 -0
- data/website/docs/source/v2/boxes.html.md +78 -0
- data/website/docs/source/v2/boxes/format.html.md +32 -0
- data/website/docs/source/v2/cli/box.html.md +62 -0
- data/website/docs/source/v2/cli/destroy.html.md +20 -0
- data/website/docs/source/v2/cli/halt.html.md +19 -0
- data/website/docs/source/v2/cli/index.html.md +24 -0
- data/website/docs/source/v2/cli/init.html.md +18 -0
- data/website/docs/source/v2/cli/package.html.md +43 -0
- data/website/docs/source/v2/cli/plugin.html.md +56 -0
- data/website/docs/source/v2/cli/provision.html.md +24 -0
- data/website/docs/source/v2/cli/reload.html.md +27 -0
- data/website/docs/source/v2/cli/resume.html.md +11 -0
- data/website/docs/source/v2/cli/ssh.html.md +24 -0
- data/website/docs/source/v2/cli/ssh_config.html.md +16 -0
- data/website/docs/source/v2/cli/status.html.md +14 -0
- data/website/docs/source/v2/cli/suspend.html.md +19 -0
- data/website/docs/source/v2/cli/up.html.md +34 -0
- data/website/docs/source/v2/debugging.html.md +42 -0
- data/website/docs/source/v2/getting-started/boxes.html.md +56 -0
- data/website/docs/source/v2/getting-started/index.html.md +43 -0
- data/website/docs/source/v2/getting-started/networking.html.md +45 -0
- data/website/docs/source/v2/getting-started/project_setup.html.md +38 -0
- data/website/docs/source/v2/getting-started/providers.html.md +37 -0
- data/website/docs/source/v2/getting-started/provisioning.html.md +75 -0
- data/website/docs/source/v2/getting-started/rebuild.html.md +17 -0
- data/website/docs/source/v2/getting-started/synced_folders.html.md +42 -0
- data/website/docs/source/v2/getting-started/teardown.html.md +41 -0
- data/website/docs/source/v2/getting-started/up.html.md +35 -0
- data/website/docs/source/v2/index.html.md +10 -0
- data/website/docs/source/v2/installation/backwards-compatibility.html.md +35 -0
- data/website/docs/source/v2/installation/index.html.md +28 -0
- data/website/docs/source/v2/installation/uninstallation.html.md +39 -0
- data/website/docs/source/v2/installation/upgrading-from-1-0.html.md +26 -0
- data/website/docs/source/v2/installation/upgrading.html.md +20 -0
- data/website/docs/source/v2/multi-machine/index.html.md +105 -0
- data/website/docs/source/v2/networking/basic_usage.html.md +43 -0
- data/website/docs/source/v2/networking/forwarded_ports.html.md +57 -0
- data/website/docs/source/v2/networking/index.html.md +40 -0
- data/website/docs/source/v2/networking/private_network.html.md +48 -0
- data/website/docs/source/v2/networking/public_network.html.md +53 -0
- data/website/docs/source/v2/plugins/commands.html.md +116 -0
- data/website/docs/source/v2/plugins/configuration.html.md +166 -0
- data/website/docs/source/v2/plugins/development-basics.html.md +139 -0
- data/website/docs/source/v2/plugins/guest-capabilities.html.md +100 -0
- data/website/docs/source/v2/plugins/guests.html.md +99 -0
- data/website/docs/source/v2/plugins/hosts.html.md +46 -0
- data/website/docs/source/v2/plugins/index.html.md +21 -0
- data/website/docs/source/v2/plugins/packaging.html.md +102 -0
- data/website/docs/source/v2/plugins/providers.html.md +234 -0
- data/website/docs/source/v2/plugins/provisioners.html.md +64 -0
- data/website/docs/source/v2/plugins/usage.html.md +58 -0
- data/website/docs/source/v2/providers/basic_usage.html.md +67 -0
- data/website/docs/source/v2/providers/configuration.html.md +89 -0
- data/website/docs/source/v2/providers/custom.html.md +9 -0
- data/website/docs/source/v2/providers/default.html.md +22 -0
- data/website/docs/source/v2/providers/index.html.md +23 -0
- data/website/docs/source/v2/providers/installation.html.md +11 -0
- data/website/docs/source/v2/provisioning/ansible.html.md +144 -0
- data/website/docs/source/v2/provisioning/basic_usage.html.md +67 -0
- data/website/docs/source/v2/provisioning/chef_client.html.md +109 -0
- data/website/docs/source/v2/provisioning/chef_solo.html.md +156 -0
- data/website/docs/source/v2/provisioning/index.html.md +28 -0
- data/website/docs/source/v2/provisioning/puppet_agent.html.md +70 -0
- data/website/docs/source/v2/provisioning/puppet_apply.html.md +114 -0
- data/website/docs/source/v2/provisioning/shell.html.md +88 -0
- data/website/docs/source/v2/synced-folders/basic_usage.html.md +53 -0
- data/website/docs/source/v2/synced-folders/index.html.md +17 -0
- data/website/docs/source/v2/synced-folders/nfs.html.md +53 -0
- data/website/docs/source/v2/vagrantfile/index.html.md +75 -0
- data/website/docs/source/v2/vagrantfile/machine_settings.html.md +84 -0
- data/website/docs/source/v2/vagrantfile/ssh_settings.html.md +61 -0
- data/website/docs/source/v2/vagrantfile/vagrant_settings.html.md +19 -0
- data/website/docs/source/v2/vagrantfile/version.html.md +64 -0
- data/website/docs/source/v2/virtualbox/boxes.html.md +71 -0
- data/website/docs/source/v2/virtualbox/configuration.html.md +63 -0
- data/website/docs/source/v2/virtualbox/index.html.md +21 -0
- data/website/docs/source/v2/virtualbox/usage.html.md +12 -0
- data/website/docs/source/v2/vmware/boxes.html.md +107 -0
- data/website/docs/source/v2/vmware/configuration.html.md +91 -0
- data/website/docs/source/v2/vmware/index.html.md +30 -0
- data/website/docs/source/v2/vmware/installation.html.md +40 -0
- data/website/docs/source/v2/vmware/known-issues.html.md +21 -0
- data/website/docs/source/v2/vmware/usage.html.md +27 -0
- data/website/docs/source/v2/why-vagrant/index.html.md +46 -0
- data/website/www/.buildpacks +2 -0
- data/website/www/Gemfile +15 -0
- data/website/www/Gemfile.lock +123 -0
- data/website/www/Procfile +1 -0
- data/website/www/README.md +26 -0
- data/website/www/config.rb +88 -0
- data/website/www/config.ru +39 -0
- data/website/www/helpers/sidebar_helpers.rb +12 -0
- data/website/www/lib/legacy_redirect.rb +32 -0
- data/website/www/source/404.html.erb +11 -0
- data/website/www/source/_sidebar_about.erb +5 -0
- data/website/www/source/_sidebar_blog.erb +11 -0
- data/website/www/source/_sidebar_support.html.erb +6 -0
- data/website/www/source/about.html.markdown +16 -0
- data/website/www/source/blog.html.erb +34 -0
- data/website/www/source/blog/2013-09-16-test.html.markdown +26 -0
- data/website/www/source/blog_feed.xml.builder +23 -0
- data/website/www/source/images/bullet_1.png +0 -0
- data/website/www/source/images/bullet_2.png +0 -0
- data/website/www/source/images/bullet_3.png +0 -0
- data/website/www/source/images/customers.png +0 -0
- data/website/www/source/images/customers_small.png +0 -0
- data/website/www/source/images/footer_background.png +0 -0
- data/website/www/source/images/footer_hashi_logo.png +0 -0
- data/website/www/source/images/footer_vagrant_logo.png +0 -0
- data/website/www/source/images/get_started_background.png +0 -0
- data/website/www/source/images/icon_caution.png +0 -0
- data/website/www/source/images/logo_docs.png +0 -0
- data/website/www/source/images/logo_docs_small.png +0 -0
- data/website/www/source/images/logo_small.png +0 -0
- data/website/www/source/images/logo_vagrant.png +0 -0
- data/website/www/source/images/open_close.png +0 -0
- data/website/www/source/images/search_icon.png +0 -0
- data/website/www/source/images/sidebar_background_docs.png +0 -0
- data/website/www/source/images/sidebar_background_inner.png +0 -0
- data/website/www/source/images/sponsors/fastly.png +0 -0
- data/website/www/source/images/sponsors/kiip.png +0 -0
- data/website/www/source/images/sponsors/softlayer.jpg +0 -0
- data/website/www/source/images/sponsors/typekit.png +0 -0
- data/website/www/source/images/steps_background.png +0 -0
- data/website/www/source/images/vagrant_header_background.png +0 -0
- data/website/www/source/images/vagrant_vmware_background.png +0 -0
- data/website/www/source/index.html.erb +109 -0
- data/website/www/source/javascripts/backstretch.js +4 -0
- data/website/www/source/javascripts/bootstrap.min.js +7 -0
- data/website/www/source/javascripts/fittext.js +43 -0
- data/website/www/source/javascripts/grid-overlay.js +161 -0
- data/website/www/source/javascripts/jquery.js +2 -0
- data/website/www/source/javascripts/less-1.3.0.min.js +9 -0
- data/website/www/source/javascripts/modernizr.js +1384 -0
- data/website/www/source/javascripts/vagrantup.js +58 -0
- data/website/www/source/layouts/blog_post.erb +42 -0
- data/website/www/source/layouts/inner.erb +34 -0
- data/website/www/source/layouts/layout.erb +107 -0
- data/website/www/source/sponsors.html.erb +23 -0
- data/website/www/source/stylesheets/_base.less +326 -0
- data/website/www/source/stylesheets/_components.less +74 -0
- data/website/www/source/stylesheets/_footer.less +101 -0
- data/website/www/source/stylesheets/_media-queries.less +549 -0
- data/website/www/source/stylesheets/_mixins.less +175 -0
- data/website/www/source/stylesheets/_modules.less +37 -0
- data/website/www/source/stylesheets/_nav.less +74 -0
- data/website/www/source/stylesheets/_pages.less +467 -0
- data/website/www/source/stylesheets/_sidebar.less +137 -0
- data/website/www/source/stylesheets/_type.less +36 -0
- data/website/www/source/stylesheets/_variables.less +39 -0
- data/website/www/source/stylesheets/bootstrap.css +5946 -0
- data/website/www/source/stylesheets/vagrantup.less +17 -0
- data/website/www/source/support.html.erb +25 -0
- data/website/www/source/support/community.html.erb +28 -0
- data/website/www/source/support/professional.html.erb +17 -0
- data/website/www/source/vmware/eula.html.md +21 -0
- data/website/www/source/vmware/index.html.erb +185 -0
- data/website/www/source/vmware/privacy-policy.html.md +71 -0
- data/website/www/source/vmware/terms-of-service.html.md +50 -0
- metadata +436 -186
@@ -0,0 +1,32 @@
|
|
1
|
+
# A general Vagrant system implementation for "solaris 11".
|
2
|
+
#
|
3
|
+
# Contributed by Jan Thomas Moldung <janth@moldung.no>
|
4
|
+
|
5
|
+
module VagrantPlugins
|
6
|
+
module GuestSolaris11
|
7
|
+
module Cap
|
8
|
+
class ConfigureNetworks
|
9
|
+
def self.configure_networks(machine, networks)
|
10
|
+
networks.each do |network|
|
11
|
+
device = "#{machine.config.solaris11.device}#{network[:interface]}"
|
12
|
+
su_cmd = machine.config.solaris11.suexec_cmd
|
13
|
+
mask = "#{network[:netmask]}"
|
14
|
+
cidr = mask.split(".").map { |e| e.to_i.to_s(2).rjust(8, "0") }.join.count("1").to_s
|
15
|
+
#ifconfig_cmd = "#{su_cmd} /sbin/ifconfig #{device}"
|
16
|
+
#machine.communicate.execute("#{ifconfig_cmd} plumb")
|
17
|
+
if network[:type].to_sym == :static
|
18
|
+
#machine.communicate.execute("#{ifconfig_cmd} inet #{network[:ip]} netmask #{network[:netmask]}")
|
19
|
+
#machine.communicate.execute("#{ifconfig_cmd} up")
|
20
|
+
#machine.communicate.execute("#{su_cmd} sh -c \"echo '#{network[:ip]}' > /etc/hostname.#{device}\"")
|
21
|
+
# ipadm create-addr -T static -a local=172.16.10.15/24 net2/v4
|
22
|
+
machine.communicate.execute("#{su_cmd} ipadm create-addr -T static -a #{network[:ip]}/#{cidr} #{device}/v4")
|
23
|
+
elsif network[:type].to_sym == :dhcp
|
24
|
+
#machine.communicate.execute("#{ifconfig_cmd} dhcp start")
|
25
|
+
machine.communicate.execute("#{su_cmd} ipadm create-addr -T addrconf #{device}/v4")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# A general Vagrant system implementation for "solaris 11".
|
2
|
+
#
|
3
|
+
# Contributed by Jan Thomas Moldung <janth@moldung.no>
|
4
|
+
|
5
|
+
module VagrantPlugins
|
6
|
+
module GuestSolaris11
|
7
|
+
module Cap
|
8
|
+
class Halt
|
9
|
+
def self.halt(machine)
|
10
|
+
# There should be an exception raised if the line
|
11
|
+
#
|
12
|
+
# vagrant::::profiles=Primary Administrator
|
13
|
+
#
|
14
|
+
# does not exist in /etc/user_attr. TODO
|
15
|
+
begin
|
16
|
+
machine.communicate.execute(
|
17
|
+
"#{machine.config.solaris11.suexec_cmd} /usr/sbin/shutdown -y -i5 -g0")
|
18
|
+
rescue IOError
|
19
|
+
# Ignore, this probably means connection closed because it
|
20
|
+
# shut down.
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# A general Vagrant system implementation for "solaris 11".
|
2
|
+
#
|
3
|
+
# Contributed by Jan Thomas Moldung <janth@moldung.no>
|
4
|
+
|
5
|
+
module VagrantPlugins
|
6
|
+
module GuestSolaris11
|
7
|
+
module Cap
|
8
|
+
class MountVirtualBoxSharedFolder
|
9
|
+
def self.mount_virtualbox_shared_folder(machine, name, guestpath, options)
|
10
|
+
# These are just far easier to use than the full options syntax
|
11
|
+
owner = options[:owner]
|
12
|
+
group = options[:group]
|
13
|
+
|
14
|
+
# Create the shared folder
|
15
|
+
machine.communicate.execute("#{machine.config.solaris11.suexec_cmd} mkdir -p #{guestpath}")
|
16
|
+
|
17
|
+
# We have to use this `id` command instead of `/usr/bin/id` since this
|
18
|
+
# one accepts the "-u" and "-g" flags.
|
19
|
+
id_cmd = "/usr/xpg4/bin/id"
|
20
|
+
|
21
|
+
# Mount the folder with the proper owner/group
|
22
|
+
mount_options = "-o uid=`#{id_cmd} -u #{owner}`,gid=`#{id_cmd} -g #{group}`"
|
23
|
+
if options[:mount_options]
|
24
|
+
mount_options += ",#{options[:mount_options].join(",")}"
|
25
|
+
end
|
26
|
+
|
27
|
+
machine.communicate.execute("#{machine.config.solaris11.suexec_cmd} /sbin/mount -F vboxfs #{mount_options} #{name} #{guestpath}")
|
28
|
+
|
29
|
+
# chown the folder to the proper owner/group
|
30
|
+
machine.communicate.execute("#{machine.config.solaris11.suexec_cmd} chown `#{id_cmd} -u #{owner}`:`#{id_cmd} -g #{group}` #{guestpath}")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# A general Vagrant system implementation for "solaris 11".
|
2
|
+
#
|
3
|
+
# Contributed by Jan Thomas Moldung <janth@moldung.no>
|
4
|
+
|
5
|
+
module VagrantPlugins
|
6
|
+
module GuestSolaris11
|
7
|
+
class Config < Vagrant.plugin("2", :config)
|
8
|
+
attr_accessor :halt_timeout
|
9
|
+
attr_accessor :halt_check_interval
|
10
|
+
# This sets the command to use to execute items as a superuser. sudo is default
|
11
|
+
attr_accessor :suexec_cmd
|
12
|
+
attr_accessor :device
|
13
|
+
|
14
|
+
def initialize
|
15
|
+
@halt_timeout = 30
|
16
|
+
@halt_check_interval = 1
|
17
|
+
@suexec_cmd = 'sudo'
|
18
|
+
@device = "net"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# A general Vagrant system implementation for "solaris 11".
|
2
|
+
#
|
3
|
+
# Contributed by Jan Thomas Moldung <janth@moldung.no>
|
4
|
+
|
5
|
+
require "vagrant"
|
6
|
+
|
7
|
+
module VagrantPlugins
|
8
|
+
module GuestSolaris11
|
9
|
+
class Guest < Vagrant.plugin("2", :guest)
|
10
|
+
def detect?(machine)
|
11
|
+
machine.communicate.test("uname -s | grep SunOS")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# A general Vagrant system implementation for "solaris 11".
|
2
|
+
#
|
3
|
+
# Contributed by Jan Thomas Moldung <janth@moldung.no>
|
4
|
+
|
5
|
+
require "vagrant"
|
6
|
+
|
7
|
+
module VagrantPlugins
|
8
|
+
module GuestSolaris11
|
9
|
+
class Plugin < Vagrant.plugin("2")
|
10
|
+
name "Solaris 11 guest."
|
11
|
+
description "Solaris 11 guest support."
|
12
|
+
|
13
|
+
config("solaris11") do
|
14
|
+
require File.expand_path("../config", __FILE__)
|
15
|
+
Config
|
16
|
+
end
|
17
|
+
|
18
|
+
guest("solaris11") do
|
19
|
+
require File.expand_path("../guest", __FILE__)
|
20
|
+
Guest
|
21
|
+
end
|
22
|
+
|
23
|
+
guest_capability("solaris11", "change_host_name") do
|
24
|
+
require_relative "cap/change_host_name"
|
25
|
+
Cap::ChangeHostName
|
26
|
+
end
|
27
|
+
|
28
|
+
guest_capability("solaris11", "configure_networks") do
|
29
|
+
require_relative "cap/configure_networks"
|
30
|
+
Cap::ConfigureNetworks
|
31
|
+
end
|
32
|
+
|
33
|
+
guest_capability("solaris11", "halt") do
|
34
|
+
require_relative "cap/halt"
|
35
|
+
Cap::Halt
|
36
|
+
end
|
37
|
+
|
38
|
+
guest_capability("solaris11", "mount_virtualbox_shared_folder") do
|
39
|
+
require_relative "cap/mount_virtualbox_shared_folder"
|
40
|
+
Cap::MountVirtualBoxSharedFolder
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require "set"
|
2
|
+
require "tempfile"
|
3
|
+
|
4
|
+
require "vagrant/util/retryable"
|
5
|
+
require "vagrant/util/template_renderer"
|
6
|
+
|
7
|
+
module VagrantPlugins
|
8
|
+
module GuestSuse
|
9
|
+
module Cap
|
10
|
+
class ConfigureNetworks
|
11
|
+
extend Vagrant::Util::Retryable
|
12
|
+
include Vagrant::Util
|
13
|
+
|
14
|
+
def self.configure_networks(machine, networks)
|
15
|
+
network_scripts_dir = machine.guest.capability("network_scripts_dir")
|
16
|
+
|
17
|
+
# Accumulate the configurations to add to the interfaces file as
|
18
|
+
# well as what interfaces we're actually configuring since we use that
|
19
|
+
# later.
|
20
|
+
interfaces = Set.new
|
21
|
+
networks.each do |network|
|
22
|
+
interfaces.add(network[:interface])
|
23
|
+
|
24
|
+
# Remove any previous vagrant configuration in this network interface's
|
25
|
+
# configuration files.
|
26
|
+
machine.communicate.sudo("touch #{network_scripts_dir}/ifcfg-eth#{network[:interface]}")
|
27
|
+
machine.communicate.sudo("sed -e '/^#VAGRANT-BEGIN/,/^#VAGRANT-END/ d' #{network_scripts_dir}/ifcfg-eth#{network[:interface]} > /tmp/vagrant-ifcfg-eth#{network[:interface]}")
|
28
|
+
machine.communicate.sudo("cat /tmp/vagrant-ifcfg-eth#{network[:interface]} > #{network_scripts_dir}/ifcfg-eth#{network[:interface]}")
|
29
|
+
machine.communicate.sudo("rm /tmp/vagrant-ifcfg-eth#{network[:interface]}")
|
30
|
+
|
31
|
+
# Render and upload the network entry file to a deterministic
|
32
|
+
# temporary location.
|
33
|
+
entry = TemplateRenderer.render("guests/suse/network_#{network[:type]}",
|
34
|
+
:options => network)
|
35
|
+
|
36
|
+
temp = Tempfile.new("vagrant")
|
37
|
+
temp.binmode
|
38
|
+
temp.write(entry)
|
39
|
+
temp.close
|
40
|
+
|
41
|
+
machine.communicate.upload(temp.path, "/tmp/vagrant-network-entry_#{network[:interface]}")
|
42
|
+
end
|
43
|
+
|
44
|
+
# Bring down all the interfaces we're reconfiguring. By bringing down
|
45
|
+
# each specifically, we avoid reconfiguring eth0 (the NAT interface) so
|
46
|
+
# SSH never dies.
|
47
|
+
interfaces.each do |interface|
|
48
|
+
retryable(:on => Vagrant::Errors::VagrantError, :tries => 3, :sleep => 2) do
|
49
|
+
machine.communicate.sudo("/sbin/ifdown eth#{interface} 2> /dev/null", :error_check => false)
|
50
|
+
machine.communicate.sudo("cat /tmp/vagrant-network-entry_#{interface} >> #{network_scripts_dir}/ifcfg-eth#{interface}")
|
51
|
+
machine.communicate.sudo("/sbin/ifup eth#{interface} 2> /dev/null")
|
52
|
+
end
|
53
|
+
|
54
|
+
machine.communicate.sudo("rm /tmp/vagrant-network-entry_#{interface}")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -16,6 +16,11 @@ module VagrantPlugins
|
|
16
16
|
Cap::ChangeHostName
|
17
17
|
end
|
18
18
|
|
19
|
+
guest_capability("suse", "configure_networks") do
|
20
|
+
require_relative "cap/configure_networks"
|
21
|
+
Cap::ConfigureNetworks
|
22
|
+
end
|
23
|
+
|
19
24
|
guest_capability("suse", "network_scripts_dir") do
|
20
25
|
require_relative "cap/network_scripts_dir"
|
21
26
|
Cap::NetworkScriptsDir
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require Vagrant.source_root.join("plugins/guests/linux/cap/mount_nfs")
|
2
|
+
|
3
|
+
module VagrantPlugins
|
4
|
+
module GuestUbuntu
|
5
|
+
module Cap
|
6
|
+
class MountNFS < GuestLinux::Cap::MountNFS
|
7
|
+
def self.mount_nfs_folder(machine, ip, folders)
|
8
|
+
super
|
9
|
+
|
10
|
+
# Emit an upstart events if upstart is available
|
11
|
+
folders.each do |name, opts|
|
12
|
+
real_guestpath = machine.guest.capability(:shell_expand_guest_path, opts[:guestpath])
|
13
|
+
machine.communicate.sudo("[ -x /sbin/initctl ] && /sbin/initctl emit vagrant-mounted MOUNTPOINT=#{real_guestpath}")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require Vagrant.source_root.join("plugins/guests/linux/cap/mount_virtualbox_shared_folder")
|
2
|
+
|
3
|
+
module VagrantPlugins
|
4
|
+
module GuestUbuntu
|
5
|
+
module Cap
|
6
|
+
class MountVirtualBoxSharedFolder < GuestLinux::Cap::MountVirtualBoxSharedFolder
|
7
|
+
def self.mount_virtualbox_shared_folder(machine, name, guestpath, options)
|
8
|
+
super
|
9
|
+
machine.communicate.sudo("[ -x /sbin/initctl ] && /sbin/initctl emit vagrant-mounted MOUNTPOINT=#{guestpath}")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -8,25 +8,6 @@ module VagrantPlugins
|
|
8
8
|
def detect?(machine)
|
9
9
|
machine.communicate.test("cat /etc/issue | grep 'Ubuntu'")
|
10
10
|
end
|
11
|
-
|
12
|
-
def mount_shared_folder(name, guestpath, options)
|
13
|
-
# Mount it like normal
|
14
|
-
super
|
15
|
-
|
16
|
-
# Emit an upstart event if upstart is available
|
17
|
-
vm.communicate.sudo("[ -x /sbin/initctl ] && /sbin/initctl emit vagrant-mounted MOUNTPOINT=#{guestpath}")
|
18
|
-
end
|
19
|
-
|
20
|
-
def mount_nfs(ip, folders)
|
21
|
-
# Mount it like normal
|
22
|
-
super
|
23
|
-
|
24
|
-
# Emit an upstart events if upstart is available
|
25
|
-
folders.each do |name, opts|
|
26
|
-
real_guestpath = expanded_guest_path(opts[:guestpath])
|
27
|
-
vm.communicate.sudo("[ -x /sbin/initctl ] && /sbin/initctl emit vagrant-mounted MOUNTPOINT=#{real_guestpath}")
|
28
|
-
end
|
29
|
-
end
|
30
11
|
end
|
31
12
|
end
|
32
13
|
end
|
@@ -15,6 +15,16 @@ module VagrantPlugins
|
|
15
15
|
require_relative "cap/change_host_name"
|
16
16
|
Cap::ChangeHostName
|
17
17
|
end
|
18
|
+
|
19
|
+
guest_capability("ubuntu", "mount_nfs_folder") do
|
20
|
+
require_relative "cap/mount_nfs"
|
21
|
+
Cap::MountNFS
|
22
|
+
end
|
23
|
+
|
24
|
+
guest_capability("ubuntu", "mount_virtualbox_shared_folder") do
|
25
|
+
require_relative "cap/mount_virtualbox_shared_folder"
|
26
|
+
Cap::MountVirtualBoxSharedFolder
|
27
|
+
end
|
18
28
|
end
|
19
29
|
end
|
20
30
|
end
|
data/plugins/hosts/arch/host.rb
CHANGED
@@ -23,36 +23,13 @@ module VagrantPlugins
|
|
23
23
|
5
|
24
24
|
end
|
25
25
|
|
26
|
-
def
|
27
|
-
output = TemplateRenderer.render('nfs/exports_linux',
|
28
|
-
:uuid => id,
|
29
|
-
:ip => ip,
|
30
|
-
:folders => folders)
|
31
|
-
|
32
|
-
@ui.info I18n.t("vagrant.hosts.arch.nfs_export.prepare")
|
33
|
-
sleep 0.5
|
34
|
-
|
35
|
-
nfs_cleanup(id)
|
36
|
-
|
37
|
-
output.split("\n").each do |line|
|
38
|
-
# This should only ask for administrative permission once, even
|
39
|
-
# though its executed in multiple subshells.
|
40
|
-
system(%Q[sudo su root -c "echo '#{line}' >> /etc/exports"])
|
41
|
-
end
|
42
|
-
|
26
|
+
def initialize
|
43
27
|
if systemd?
|
44
|
-
|
45
|
-
|
46
|
-
# just made.
|
47
|
-
system("sudo systemctl start nfsd.service rpc-idmapd.service rpc-mountd.service rpcbind.service")
|
48
|
-
system("sudo exportfs -r")
|
28
|
+
@nfs_check_command = "/usr/sbin/systemctl status nfsd"
|
29
|
+
@nfs_start_command = "/usr/sbin/systemctl start nfsd rpc-idmapd rpc-mountd rpcbind"
|
49
30
|
else
|
50
|
-
|
51
|
-
|
52
|
-
# enough anyway.
|
53
|
-
system("sudo /etc/rc.d/rpcbind restart")
|
54
|
-
system("sudo /etc/rc.d/nfs-common restart")
|
55
|
-
system("sudo /etc/rc.d/nfs-server restart")
|
31
|
+
@nfs_check_command = "/etc/rc.d/nfs-server status"
|
32
|
+
@nfs_start_command = "sh -c 'for s in {rpcbind,nfs-common,nfs-server}; do /etc/rc.d/$s start; done'"
|
56
33
|
end
|
57
34
|
end
|
58
35
|
|
data/plugins/hosts/bsd/host.rb
CHANGED
@@ -34,11 +34,81 @@ module VagrantPlugins
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
-
def nfs_export(id,
|
37
|
+
def nfs_export(id, ips, folders)
|
38
|
+
# We need to build up mapping of directories that are enclosed
|
39
|
+
# within each other because the exports file has to have subdirectories
|
40
|
+
# of an exported directory on the same line. e.g.:
|
41
|
+
#
|
42
|
+
# "/foo" "/foo/bar" ...
|
43
|
+
# "/bar"
|
44
|
+
#
|
45
|
+
# We build up this mapping within the following hash.
|
46
|
+
@logger.debug("Compiling map of sub-directories for NFS exports...")
|
47
|
+
dirmap = {}
|
48
|
+
folders.each do |_, opts|
|
49
|
+
hostpath = opts[:hostpath].dup
|
50
|
+
hostpath.gsub!('"', '\"')
|
51
|
+
|
52
|
+
found = false
|
53
|
+
dirmap.each do |dirs, diropts|
|
54
|
+
dirs.each do |dir|
|
55
|
+
if dir.start_with?(hostpath) || hostpath.start_with?(dir)
|
56
|
+
# TODO: verify opts and diropts are _identical_, raise an error
|
57
|
+
# if not. NFS mandates subdirectories have identical options.
|
58
|
+
dirs << hostpath
|
59
|
+
found = true
|
60
|
+
break
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
break if found
|
65
|
+
end
|
66
|
+
|
67
|
+
if !found
|
68
|
+
dirmap[[hostpath]] = opts.dup
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
# Sort all the keys by length so that the directory closest to
|
73
|
+
# the root is exported first.
|
74
|
+
dirmap.each do |dirs, _|
|
75
|
+
dirs.sort_by! { |d| d.length }
|
76
|
+
end
|
77
|
+
|
78
|
+
# Setup the NFS options
|
79
|
+
dirmap.each do |dirs, opts|
|
80
|
+
if !opts[:bsd__nfs_options]
|
81
|
+
opts[:bsd__nfs_options] = ["alldirs"]
|
82
|
+
end
|
83
|
+
|
84
|
+
hasmapall = false
|
85
|
+
opts[:bsd__nfs_options].each do |opt|
|
86
|
+
if opt =~ /^mapall=/
|
87
|
+
hasmapall = true
|
88
|
+
break
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
if !hasmapall
|
93
|
+
opts[:bsd__nfs_options] << "mapall=#{opts[:map_uid]}:#{opts[:map_gid]}"
|
94
|
+
end
|
95
|
+
|
96
|
+
opts[:bsd__compiled_nfs_options] = opts[:bsd__nfs_options].map do |opt|
|
97
|
+
"-#{opt}"
|
98
|
+
end.join(" ")
|
99
|
+
end
|
100
|
+
|
101
|
+
@logger.info("Exporting the following for NFS...")
|
102
|
+
dirmap.each do |dirs, opts|
|
103
|
+
@logger.info("NFS DIR: #{dirs.inspect}")
|
104
|
+
@logger.info("NFS OPTS: #{opts.inspect}")
|
105
|
+
end
|
106
|
+
|
38
107
|
output = TemplateRenderer.render(@nfs_exports_template,
|
39
108
|
:uuid => id,
|
40
|
-
:
|
41
|
-
:folders =>
|
109
|
+
:ips => ips,
|
110
|
+
:folders => dirmap,
|
111
|
+
:user => Process.uid)
|
42
112
|
|
43
113
|
# The sleep ensures that the output is truly flushed before any `sudo`
|
44
114
|
# commands are issued.
|
@@ -50,8 +120,9 @@ module VagrantPlugins
|
|
50
120
|
|
51
121
|
# Output the rendered template into the exports
|
52
122
|
output.split("\n").each do |line|
|
53
|
-
line
|
54
|
-
|
123
|
+
line.gsub!('"', '\"')
|
124
|
+
line.gsub!("'", "'\\\\''")
|
125
|
+
system(%Q[sudo -s -- "echo '#{line}' >> /etc/exports"])
|
55
126
|
end
|
56
127
|
|
57
128
|
# We run restart here instead of "update" just in case nfsd
|
@@ -65,9 +136,10 @@ module VagrantPlugins
|
|
65
136
|
@logger.info("Pruning invalid NFS entries...")
|
66
137
|
|
67
138
|
output = false
|
139
|
+
user = Process.uid
|
68
140
|
|
69
141
|
File.read("/etc/exports").lines.each do |line|
|
70
|
-
if id = line[/^# VAGRANT-BEGIN: (
|
142
|
+
if id = line[/^# VAGRANT-BEGIN:( #{user})? ([A-Za-z0-9-]+?)$/, 2]
|
71
143
|
if valid_ids.include?(id)
|
72
144
|
@logger.debug("Valid ID: #{id}")
|
73
145
|
else
|
@@ -82,6 +154,8 @@ module VagrantPlugins
|
|
82
154
|
end
|
83
155
|
end
|
84
156
|
end
|
157
|
+
rescue Errno::EACCES
|
158
|
+
raise Vagrant::Errors::NFSCantReadExports
|
85
159
|
end
|
86
160
|
|
87
161
|
protected
|
@@ -93,9 +167,11 @@ module VagrantPlugins
|
|
93
167
|
id = id.gsub("/", "\\/")
|
94
168
|
id = id.gsub(".", "\\.")
|
95
169
|
|
170
|
+
user = Process.uid
|
171
|
+
|
96
172
|
# Use sed to just strip out the block of code which was inserted
|
97
173
|
# by Vagrant, and restart NFS.
|
98
|
-
system("sudo sed -e '/^# VAGRANT-BEGIN: #{id}/,/^# VAGRANT-END: #{id}/ d' -ibak /etc/exports")
|
174
|
+
system("sudo sed -E -e '/^# VAGRANT-BEGIN:( #{user})? #{id}/,/^# VAGRANT-END:( #{user})? #{id}/ d' -ibak /etc/exports")
|
99
175
|
end
|
100
176
|
end
|
101
177
|
end
|