vagrant 1.5.0 → 2.4.4
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 +5 -5
- data/.copywrite.hcl +15 -0
- data/.gitignore +79 -14
- data/.gitmodules +0 -0
- data/.vimrc +5 -0
- data/.yardopts +1 -0
- data/CHANGELOG.md +4512 -0
- data/Gemfile +10 -2
- data/LICENSE +92 -0
- data/README.md +55 -3
- data/RELEASE.md +11 -0
- data/Rakefile +22 -1
- data/Vagrantfile +31 -0
- data/bin/vagrant +268 -2
- data/contrib/README.md +17 -0
- data/contrib/bash/completion.sh +190 -0
- data/contrib/emacs/vagrant.el +11 -0
- data/contrib/st/Ruby.sublime-settings +6 -0
- data/contrib/sudoers/linux-fedora +7 -0
- data/contrib/sudoers/linux-suse +6 -0
- data/contrib/sudoers/linux-ubuntu +8 -0
- data/contrib/sudoers/osx +10 -0
- data/contrib/vim/vagrantfile.vim +9 -0
- data/contrib/zsh/_vagrant +738 -0
- data/contrib/zsh/generate_zsh_completion.rb +168 -0
- data/ext/vagrant/vagrant_ssl/extconf.rb +24 -0
- data/ext/vagrant/vagrant_ssl/vagrant_ssl.c +37 -0
- data/ext/vagrant/vagrant_ssl/vagrant_ssl.h +19 -0
- data/keys/README.md +23 -0
- data/keys/vagrant +27 -0
- data/keys/vagrant.key.ed25519 +7 -0
- data/keys/vagrant.key.rsa +27 -0
- data/keys/vagrant.pub +2 -0
- data/keys/vagrant.pub.ed25519 +1 -0
- data/keys/vagrant.pub.rsa +1 -0
- data/lib/vagrant/action/builder.rb +356 -0
- data/lib/vagrant/action/builtin/box_add.rb +638 -0
- data/lib/vagrant/action/builtin/box_check_outdated.rb +116 -0
- data/lib/vagrant/action/builtin/box_remove.rb +181 -0
- data/lib/vagrant/action/builtin/box_update.rb +23 -0
- data/lib/vagrant/action/builtin/call.rb +69 -0
- data/lib/vagrant/action/builtin/cleanup_disks.rb +59 -0
- data/lib/vagrant/action/builtin/cloud_init_setup.rb +125 -0
- data/lib/vagrant/action/builtin/cloud_init_wait.rb +35 -0
- data/lib/vagrant/action/builtin/config_validate.rb +33 -0
- data/lib/vagrant/action/builtin/confirm.rb +51 -0
- data/lib/vagrant/action/builtin/delayed.rb +29 -0
- data/lib/vagrant/action/builtin/destroy_confirm.rb +24 -0
- data/lib/vagrant/action/builtin/disk.rb +55 -0
- data/lib/vagrant/action/builtin/env_set.rb +27 -0
- data/lib/vagrant/action/builtin/graceful_halt.rb +88 -0
- data/lib/vagrant/action/builtin/handle_box.rb +111 -0
- data/lib/vagrant/action/builtin/handle_box_url.rb +17 -0
- data/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb +300 -0
- data/lib/vagrant/action/builtin/has_provisioner.rb +39 -0
- data/lib/vagrant/action/builtin/is_env_set.rb +25 -0
- data/lib/vagrant/action/builtin/is_state.rb +35 -0
- data/lib/vagrant/action/builtin/lock.rb +60 -0
- data/lib/vagrant/action/builtin/message.rb +29 -0
- data/lib/vagrant/action/builtin/mixin_provisioners.rb +159 -0
- data/lib/vagrant/action/builtin/mixin_synced_folders.rb +267 -0
- data/lib/vagrant/action/builtin/prepare_clone.rb +41 -0
- data/lib/vagrant/action/builtin/provision.rb +146 -0
- data/lib/vagrant/action/builtin/provisioner_cleanup.rb +57 -0
- data/lib/vagrant/action/builtin/set_hostname.rb +34 -0
- data/lib/vagrant/action/builtin/ssh_exec.rb +47 -0
- data/lib/vagrant/action/builtin/ssh_run.rb +88 -0
- data/lib/vagrant/action/builtin/synced_folder_cleanup.rb +36 -0
- data/lib/vagrant/action/builtin/synced_folders.rb +154 -0
- data/lib/vagrant/action/builtin/trigger.rb +40 -0
- data/lib/vagrant/action/builtin/wait_for_communicator.rb +82 -0
- data/lib/vagrant/action/general/package.rb +248 -0
- data/lib/vagrant/action/general/package_setup_files.rb +54 -0
- data/lib/vagrant/action/general/package_setup_folders.rb +40 -0
- data/lib/vagrant/action/hook.rb +163 -0
- data/lib/vagrant/action/primary_runner.rb +18 -0
- data/lib/vagrant/action/runner.rb +112 -0
- data/lib/vagrant/action/warden.rb +126 -0
- data/lib/vagrant/action.rb +88 -0
- data/lib/vagrant/alias.rb +59 -0
- data/lib/vagrant/batch_action.rb +181 -0
- data/lib/vagrant/box.rb +260 -0
- data/lib/vagrant/box_collection.rb +563 -0
- data/lib/vagrant/box_metadata.rb +275 -0
- data/lib/vagrant/bundler.rb +936 -0
- data/lib/vagrant/capability_host.rb +180 -0
- data/lib/vagrant/cli.rb +122 -0
- data/lib/vagrant/config/loader.rb +323 -0
- data/lib/vagrant/config/v1/dummy_config.rb +16 -0
- data/lib/vagrant/config/v1/loader.rb +108 -0
- data/lib/vagrant/config/v1/root.rb +63 -0
- data/lib/vagrant/config/v1.rb +12 -0
- data/lib/vagrant/config/v2/dummy_config.rb +60 -0
- data/lib/vagrant/config/v2/loader.rb +154 -0
- data/lib/vagrant/config/v2/root.rb +122 -0
- data/lib/vagrant/config/v2/util.rb +24 -0
- data/lib/vagrant/config/v2.rb +13 -0
- data/lib/vagrant/config/version_base.rb +83 -0
- data/lib/vagrant/config.rb +64 -0
- data/lib/vagrant/environment.rb +1230 -0
- data/lib/vagrant/errors.rb +1158 -0
- data/lib/vagrant/guest.rb +72 -0
- data/lib/vagrant/host.rb +19 -0
- data/lib/vagrant/machine.rb +672 -0
- data/lib/vagrant/machine_index.rb +527 -0
- data/lib/vagrant/machine_state.rb +54 -0
- data/lib/vagrant/patches/builder/mkmf.rb +116 -0
- data/lib/vagrant/patches/fake_ftp.rb +28 -0
- data/lib/vagrant/patches/log4r.rb +54 -0
- data/lib/vagrant/patches/net-ssh.rb +76 -0
- data/lib/vagrant/patches/rubygems.rb +23 -0
- data/lib/vagrant/patches/timeout_error.rb +5 -0
- data/lib/vagrant/plugin/manager.rb +406 -0
- data/lib/vagrant/plugin/state_file.rb +136 -0
- data/lib/vagrant/plugin/v1/command.rb +171 -0
- data/lib/vagrant/plugin/v1/communicator.rb +101 -0
- data/lib/vagrant/plugin/v1/config.rb +115 -0
- data/lib/vagrant/plugin/v1/errors.rb +18 -0
- data/lib/vagrant/plugin/v1/guest.rb +95 -0
- data/lib/vagrant/plugin/v1/host.rb +69 -0
- data/lib/vagrant/plugin/v1/manager.rb +134 -0
- data/lib/vagrant/plugin/v1/plugin.rb +231 -0
- data/lib/vagrant/plugin/v1/provider.rb +71 -0
- data/lib/vagrant/plugin/v1/provisioner.rb +53 -0
- data/lib/vagrant/plugin/v1.rb +25 -0
- data/lib/vagrant/plugin/v2/command.rb +309 -0
- data/lib/vagrant/plugin/v2/communicator.rb +133 -0
- data/lib/vagrant/plugin/v2/components.rb +94 -0
- data/lib/vagrant/plugin/v2/config.rb +167 -0
- data/lib/vagrant/plugin/v2/errors.rb +18 -0
- data/lib/vagrant/plugin/v2/guest.rb +26 -0
- data/lib/vagrant/plugin/v2/host.rb +22 -0
- data/lib/vagrant/plugin/v2/manager.rb +306 -0
- data/lib/vagrant/plugin/v2/plugin.rb +296 -0
- data/lib/vagrant/plugin/v2/provider.rb +118 -0
- data/lib/vagrant/plugin/v2/provisioner.rb +56 -0
- data/lib/vagrant/plugin/v2/push.rb +30 -0
- data/lib/vagrant/plugin/v2/synced_folder.rb +113 -0
- data/lib/vagrant/plugin/v2/trigger.rb +367 -0
- data/lib/vagrant/plugin/v2.rb +33 -0
- data/lib/vagrant/plugin.rb +11 -0
- data/lib/vagrant/registry.rb +113 -0
- data/lib/vagrant/shared_helpers.rb +238 -0
- data/lib/vagrant/ui.rb +449 -0
- data/lib/vagrant/util/ansi_escape_code_remover.rb +37 -0
- data/lib/vagrant/util/busy.rb +62 -0
- data/lib/vagrant/util/caps.rb +51 -0
- data/lib/vagrant/util/checkpoint_client.rb +186 -0
- data/lib/vagrant/util/command_deprecation.rb +59 -0
- data/lib/vagrant/util/counter.rb +27 -0
- data/lib/vagrant/util/credential_scrubber.rb +74 -0
- data/lib/vagrant/util/curl_helper.rb +104 -0
- data/lib/vagrant/util/deep_merge.rb +23 -0
- data/lib/vagrant/util/directory.rb +22 -0
- data/lib/vagrant/util/downloader.rb +278 -0
- data/lib/vagrant/util/env.rb +56 -0
- data/lib/vagrant/util/experimental.rb +79 -0
- data/lib/vagrant/util/file_checksum.rb +77 -0
- data/lib/vagrant/util/file_mode.rb +15 -0
- data/lib/vagrant/util/file_mutex.rb +50 -0
- data/lib/vagrant/util/guest_hosts.rb +71 -0
- data/lib/vagrant/util/guest_inspection.rb +118 -0
- data/lib/vagrant/util/guest_networks.rb +107 -0
- data/lib/vagrant/util/hash_with_indifferent_access.rb +66 -0
- data/lib/vagrant/util/install_cli_autocomplete.rb +121 -0
- data/lib/vagrant/util/io.rb +53 -0
- data/lib/vagrant/util/ipv4_interfaces.rb +18 -0
- data/lib/vagrant/util/is_port_open.rb +31 -0
- data/lib/vagrant/util/keypair.rb +293 -0
- data/lib/vagrant/util/line_buffer.rb +63 -0
- data/lib/vagrant/util/line_ending_helpers.rb +17 -0
- data/lib/vagrant/util/logging_formatter.rb +70 -0
- data/lib/vagrant/util/map_command_options.rb +36 -0
- data/lib/vagrant/util/mime.rb +95 -0
- data/lib/vagrant/util/network_ip.rb +27 -0
- data/lib/vagrant/util/numeric.rb +92 -0
- data/lib/vagrant/util/platform.rb +737 -0
- data/lib/vagrant/util/powershell.rb +316 -0
- data/lib/vagrant/util/presence.rb +48 -0
- data/lib/vagrant/util/retryable.rb +34 -0
- data/lib/vagrant/util/safe_chdir.rb +36 -0
- data/lib/vagrant/util/safe_env.rb +17 -0
- data/lib/vagrant/util/safe_exec.rb +78 -0
- data/lib/vagrant/util/safe_puts.rb +34 -0
- data/lib/vagrant/util/scoped_hash_override.rb +47 -0
- data/lib/vagrant/util/shell_quote.rb +18 -0
- data/lib/vagrant/util/silence_warnings.rb +17 -0
- data/lib/vagrant/util/ssh.rb +267 -0
- data/lib/vagrant/util/stacked_proc_runner.rb +38 -0
- data/lib/vagrant/util/string_block_editor.rb +80 -0
- data/lib/vagrant/util/subprocess.rb +365 -0
- data/lib/vagrant/util/template_renderer.rb +91 -0
- data/lib/vagrant/util/uploader.rb +109 -0
- data/lib/vagrant/util/which.rb +56 -0
- data/lib/vagrant/util/windows_path.rb +41 -0
- data/lib/vagrant/util.rb +63 -0
- data/lib/vagrant/vagrantfile.rb +320 -0
- data/lib/vagrant/version.rb +10 -0
- data/lib/vagrant.rb +380 -0
- data/plugins/README.md +11 -0
- data/plugins/commands/autocomplete/command/install.rb +52 -0
- data/plugins/commands/autocomplete/command/root.rb +69 -0
- data/plugins/commands/autocomplete/plugin.rb +21 -0
- data/plugins/commands/box/command/add.rb +111 -0
- data/plugins/commands/box/command/download_mixins.rb +32 -0
- data/plugins/commands/box/command/list.rb +82 -0
- data/plugins/commands/box/command/outdated.rb +109 -0
- data/plugins/commands/box/command/prune.rb +136 -0
- data/plugins/commands/box/command/remove.rb +83 -0
- data/plugins/commands/box/command/repackage.rb +46 -0
- data/plugins/commands/box/command/root.rb +98 -0
- data/plugins/commands/box/command/update.rb +206 -0
- data/plugins/commands/box/plugin.rb +18 -0
- data/plugins/commands/cap/command.rb +83 -0
- data/plugins/commands/cap/plugin.rb +20 -0
- data/plugins/commands/cloud/auth/login.rb +90 -0
- data/plugins/commands/cloud/auth/logout.rb +37 -0
- data/plugins/commands/cloud/auth/middleware/add_authentication.rb +116 -0
- data/plugins/commands/cloud/auth/middleware/add_downloader_authentication.rb +68 -0
- data/plugins/commands/cloud/auth/plugin.rb +23 -0
- data/plugins/commands/cloud/auth/root.rb +77 -0
- data/plugins/commands/cloud/auth/whoami.rb +63 -0
- data/plugins/commands/cloud/box/create.rb +82 -0
- data/plugins/commands/cloud/box/delete.rb +74 -0
- data/plugins/commands/cloud/box/plugin.rb +22 -0
- data/plugins/commands/cloud/box/root.rb +81 -0
- data/plugins/commands/cloud/box/show.rb +133 -0
- data/plugins/commands/cloud/box/update.rb +82 -0
- data/plugins/commands/cloud/client/client.rb +257 -0
- data/plugins/commands/cloud/errors.rb +31 -0
- data/plugins/commands/cloud/list.rb +54 -0
- data/plugins/commands/cloud/locales/en.yml +197 -0
- data/plugins/commands/cloud/plugin.rb +48 -0
- data/plugins/commands/cloud/provider/create.rb +105 -0
- data/plugins/commands/cloud/provider/delete.rb +109 -0
- data/plugins/commands/cloud/provider/plugin.rb +22 -0
- data/plugins/commands/cloud/provider/root.rb +81 -0
- data/plugins/commands/cloud/provider/update.rb +102 -0
- data/plugins/commands/cloud/provider/upload.rb +100 -0
- data/plugins/commands/cloud/publish.rb +297 -0
- data/plugins/commands/cloud/root.rb +108 -0
- data/plugins/commands/cloud/search.rb +102 -0
- data/plugins/commands/cloud/util.rb +371 -0
- data/plugins/commands/cloud/version/create.rb +77 -0
- data/plugins/commands/cloud/version/delete.rb +78 -0
- data/plugins/commands/cloud/version/plugin.rb +22 -0
- data/plugins/commands/cloud/version/release.rb +78 -0
- data/plugins/commands/cloud/version/revoke.rb +79 -0
- data/plugins/commands/cloud/version/root.rb +85 -0
- data/plugins/commands/cloud/version/update.rb +76 -0
- data/plugins/commands/destroy/command.rb +79 -0
- data/plugins/commands/destroy/plugin.rb +21 -0
- data/plugins/commands/global-status/command.rb +114 -0
- data/plugins/commands/global-status/plugin.rb +21 -0
- data/plugins/commands/halt/command.rb +42 -0
- data/plugins/commands/halt/plugin.rb +21 -0
- data/plugins/commands/help/command.rb +19 -0
- data/plugins/commands/help/plugin.rb +20 -0
- data/plugins/commands/init/command.rb +110 -0
- data/plugins/commands/init/plugin.rb +21 -0
- data/plugins/commands/list-commands/command.rb +46 -0
- data/plugins/commands/list-commands/plugin.rb +21 -0
- data/plugins/commands/login/plugin.rb +20 -0
- data/plugins/commands/package/command.rb +104 -0
- data/plugins/commands/package/plugin.rb +21 -0
- data/plugins/commands/plugin/action/expunge_plugins.rb +77 -0
- data/plugins/commands/plugin/action/install_gem.rb +80 -0
- data/plugins/commands/plugin/action/license_plugin.rb +48 -0
- data/plugins/commands/plugin/action/list_plugins.rb +79 -0
- data/plugins/commands/plugin/action/plugin_exists_check.rb +28 -0
- data/plugins/commands/plugin/action/repair_plugins.rb +67 -0
- data/plugins/commands/plugin/action/uninstall_plugin.rb +28 -0
- data/plugins/commands/plugin/action/update_gems.rb +52 -0
- data/plugins/commands/plugin/action.rb +82 -0
- data/plugins/commands/plugin/command/base.rb +22 -0
- data/plugins/commands/plugin/command/expunge.rb +95 -0
- data/plugins/commands/plugin/command/install.rb +90 -0
- data/plugins/commands/plugin/command/license.rb +34 -0
- data/plugins/commands/plugin/command/list.rb +34 -0
- data/plugins/commands/plugin/command/mixin_install_opts.rb +34 -0
- data/plugins/commands/plugin/command/repair.rb +41 -0
- data/plugins/commands/plugin/command/root.rb +98 -0
- data/plugins/commands/plugin/command/uninstall.rb +38 -0
- data/plugins/commands/plugin/command/update.rb +42 -0
- data/plugins/commands/plugin/gem_helper.rb +89 -0
- data/plugins/commands/plugin/plugin.rb +23 -0
- data/plugins/commands/port/command.rb +91 -0
- data/plugins/commands/port/locales/en.yml +23 -0
- data/plugins/commands/port/plugin.rb +30 -0
- data/plugins/commands/powershell/command.rb +132 -0
- data/plugins/commands/powershell/errors.rb +29 -0
- data/plugins/commands/powershell/plugin.rb +34 -0
- data/plugins/commands/powershell/scripts/enable_psremoting.ps1 +63 -0
- data/plugins/commands/powershell/scripts/reset_trustedhosts.ps1 +15 -0
- data/plugins/commands/provider/command.rb +77 -0
- data/plugins/commands/provider/plugin.rb +21 -0
- data/plugins/commands/provision/command.rb +41 -0
- data/plugins/commands/provision/plugin.rb +21 -0
- data/plugins/commands/push/command.rb +78 -0
- data/plugins/commands/push/plugin.rb +20 -0
- data/plugins/commands/rdp/command.rb +114 -0
- data/plugins/commands/rdp/config.rb +29 -0
- data/plugins/commands/rdp/errors.rb +21 -0
- data/plugins/commands/rdp/plugin.rb +39 -0
- data/plugins/commands/reload/command.rb +67 -0
- data/plugins/commands/reload/plugin.rb +21 -0
- data/plugins/commands/resume/command.rb +46 -0
- data/plugins/commands/resume/plugin.rb +20 -0
- data/plugins/commands/snapshot/command/delete.rb +50 -0
- data/plugins/commands/snapshot/command/list.rb +50 -0
- data/plugins/commands/snapshot/command/pop.rb +52 -0
- data/plugins/commands/snapshot/command/push.rb +36 -0
- data/plugins/commands/snapshot/command/push_shared.rb +58 -0
- data/plugins/commands/snapshot/command/restore.rb +67 -0
- data/plugins/commands/snapshot/command/root.rb +95 -0
- data/plugins/commands/snapshot/command/save.rb +75 -0
- data/plugins/commands/snapshot/plugin.rb +18 -0
- data/plugins/commands/ssh/command.rb +80 -0
- data/plugins/commands/ssh/plugin.rb +20 -0
- data/plugins/commands/ssh_config/command.rb +78 -0
- data/plugins/commands/ssh_config/plugin.rb +21 -0
- data/plugins/commands/status/command.rb +59 -0
- data/plugins/commands/status/plugin.rb +21 -0
- data/plugins/commands/suspend/command.rb +49 -0
- data/plugins/commands/suspend/plugin.rb +21 -0
- data/plugins/commands/up/command.rb +194 -0
- data/plugins/commands/up/middleware/store_box_metadata.rb +40 -0
- data/plugins/commands/up/plugin.rb +25 -0
- data/plugins/commands/up/start_mixins.rb +58 -0
- data/plugins/commands/upload/command.rb +239 -0
- data/plugins/commands/upload/plugin.rb +20 -0
- data/plugins/commands/validate/command.rb +107 -0
- data/plugins/commands/validate/plugin.rb +20 -0
- data/plugins/commands/version/command.rb +60 -0
- data/plugins/commands/version/plugin.rb +21 -0
- data/plugins/commands/winrm/command.rb +71 -0
- data/plugins/commands/winrm/plugin.rb +20 -0
- data/plugins/commands/winrm_config/command.rb +129 -0
- data/plugins/commands/winrm_config/plugin.rb +20 -0
- data/plugins/communicators/ssh/communicator.rb +898 -0
- data/plugins/communicators/ssh/plugin.rb +22 -0
- data/plugins/communicators/winrm/command_filter.rb +49 -0
- data/plugins/communicators/winrm/command_filters/cat.rb +26 -0
- data/plugins/communicators/winrm/command_filters/chmod.rb +20 -0
- data/plugins/communicators/winrm/command_filters/chown.rb +20 -0
- data/plugins/communicators/winrm/command_filters/grep.rb +26 -0
- data/plugins/communicators/winrm/command_filters/mkdir.rb +30 -0
- data/plugins/communicators/winrm/command_filters/rm.rb +50 -0
- data/plugins/communicators/winrm/command_filters/test.rb +68 -0
- data/plugins/communicators/winrm/command_filters/uname.rb +30 -0
- data/plugins/communicators/winrm/command_filters/which.rb +27 -0
- data/plugins/communicators/winrm/communicator.rb +230 -0
- data/plugins/communicators/winrm/config.rb +76 -0
- data/plugins/communicators/winrm/errors.rb +72 -0
- data/plugins/communicators/winrm/helper.rb +91 -0
- data/plugins/communicators/winrm/plugin.rb +69 -0
- data/plugins/communicators/winrm/shell.rb +267 -0
- data/plugins/communicators/winssh/communicator.rb +252 -0
- data/plugins/communicators/winssh/config.rb +37 -0
- data/plugins/communicators/winssh/plugin.rb +24 -0
- data/plugins/guests/alma/cap/flavor.rb +26 -0
- data/plugins/guests/alma/guest.rb +13 -0
- data/plugins/guests/alma/plugin.rb +23 -0
- data/plugins/guests/alpine/cap/change_host_name.rb +85 -0
- data/plugins/guests/alpine/cap/configure_networks.rb +67 -0
- data/plugins/guests/alpine/cap/halt.rb +24 -0
- data/plugins/guests/alpine/cap/nfs_client.rb +17 -0
- data/plugins/guests/alpine/cap/rsync.rb +20 -0
- data/plugins/guests/alpine/cap/smb.rb +16 -0
- data/plugins/guests/alpine/guest.rb +14 -0
- data/plugins/guests/alpine/plugin.rb +69 -0
- data/plugins/guests/alt/cap/change_host_name.rb +55 -0
- data/plugins/guests/alt/cap/configure_networks.rb +132 -0
- data/plugins/guests/alt/cap/flavor.rb +66 -0
- data/plugins/guests/alt/cap/network_scripts_dir.rb +14 -0
- data/plugins/guests/alt/cap/rsync.rb +16 -0
- data/plugins/guests/alt/guest.rb +12 -0
- data/plugins/guests/alt/plugin.rb +43 -0
- data/plugins/guests/amazon/cap/configure_networks.rb +26 -0
- data/plugins/guests/amazon/cap/flavor.rb +17 -0
- data/plugins/guests/amazon/guest.rb +12 -0
- data/plugins/guests/amazon/plugin.rb +28 -0
- data/plugins/guests/arch/cap/change_host_name.rb +18 -0
- data/plugins/guests/arch/cap/configure_networks.rb +81 -0
- data/plugins/guests/arch/cap/nfs.rb +36 -0
- data/plugins/guests/arch/cap/rsync.rb +19 -0
- data/plugins/guests/arch/cap/smb.rb +20 -0
- data/plugins/guests/arch/guest.rb +14 -0
- data/plugins/guests/arch/plugin.rb +53 -0
- data/plugins/guests/atomic/cap/change_host_name.rb +18 -0
- data/plugins/guests/atomic/cap/docker.rb +14 -0
- data/plugins/guests/atomic/guest.rb +14 -0
- data/plugins/guests/atomic/plugin.rb +28 -0
- data/plugins/guests/bsd/cap/file_system.rb +80 -0
- data/plugins/guests/bsd/cap/halt.rb +19 -0
- data/plugins/guests/bsd/cap/mount_virtualbox_shared_folder.rb +19 -0
- data/plugins/guests/bsd/cap/nfs.rb +50 -0
- data/plugins/guests/bsd/cap/public_key.rb +69 -0
- data/plugins/guests/bsd/guest.rb +12 -0
- data/plugins/guests/bsd/plugin.rb +58 -0
- data/plugins/guests/centos/cap/flavor.rb +32 -0
- data/plugins/guests/centos/guest.rb +14 -0
- data/plugins/guests/centos/plugin.rb +23 -0
- data/plugins/guests/coreos/cap/change_host_name.rb +41 -0
- data/plugins/guests/coreos/cap/configure_networks.rb +138 -0
- data/plugins/guests/coreos/cap/docker.rb +14 -0
- data/plugins/guests/coreos/guest.rb +14 -0
- data/plugins/guests/coreos/plugin.rb +33 -0
- data/plugins/guests/darwin/cap/change_host_name.rb +43 -0
- data/plugins/guests/darwin/cap/choose_addressable_ip_addr.rb +23 -0
- data/plugins/guests/darwin/cap/configure_networks.rb +126 -0
- data/plugins/guests/darwin/cap/darwin_version.rb +43 -0
- data/plugins/guests/darwin/cap/halt.rb +21 -0
- data/plugins/guests/darwin/cap/mount_smb_shared_folder.rb +46 -0
- data/plugins/guests/darwin/cap/mount_vmware_shared_folder.rb +135 -0
- data/plugins/guests/darwin/cap/rsync.rb +14 -0
- data/plugins/guests/darwin/cap/shell_expand_guest_path.rb +30 -0
- data/plugins/guests/darwin/cap/verify_vmware_hgfs.rb +15 -0
- data/plugins/guests/darwin/guest.rb +18 -0
- data/plugins/guests/darwin/plugin.rb +93 -0
- data/plugins/guests/debian/cap/change_host_name.rb +110 -0
- data/plugins/guests/debian/cap/configure_networks.rb +205 -0
- data/plugins/guests/debian/cap/nfs.rb +19 -0
- data/plugins/guests/debian/cap/rsync.rb +18 -0
- data/plugins/guests/debian/cap/smb.rb +20 -0
- data/plugins/guests/debian/guest.rb +13 -0
- data/plugins/guests/debian/plugin.rb +43 -0
- data/plugins/guests/dragonflybsd/guest.rb +12 -0
- data/plugins/guests/dragonflybsd/plugin.rb +18 -0
- data/plugins/guests/elementary/guest.rb +13 -0
- data/plugins/guests/elementary/plugin.rb +18 -0
- data/plugins/guests/esxi/cap/change_host_name.rb +16 -0
- data/plugins/guests/esxi/cap/configure_networks.rb +41 -0
- data/plugins/guests/esxi/cap/halt.rb +19 -0
- data/plugins/guests/esxi/cap/mount_nfs_folder.rb +43 -0
- data/plugins/guests/esxi/cap/public_key.rb +68 -0
- data/plugins/guests/esxi/guest.rb +14 -0
- data/plugins/guests/esxi/plugin.rb +49 -0
- data/plugins/guests/fedora/cap/flavor.rb +26 -0
- data/plugins/guests/fedora/guest.rb +14 -0
- data/plugins/guests/fedora/plugin.rb +23 -0
- data/plugins/guests/freebsd/cap/change_host_name.rb +34 -0
- data/plugins/guests/freebsd/cap/configure_networks.rb +70 -0
- data/plugins/guests/freebsd/cap/mount_virtualbox_shared_folder.rb +79 -0
- data/plugins/guests/freebsd/cap/rsync.rb +18 -0
- data/plugins/guests/freebsd/cap/shell_expand_guest_path.rb +31 -0
- data/plugins/guests/freebsd/guest.rb +17 -0
- data/plugins/guests/freebsd/plugin.rb +68 -0
- data/plugins/guests/funtoo/cap/configure_networks.rb +50 -0
- data/plugins/guests/funtoo/guest.rb +12 -0
- data/plugins/guests/funtoo/plugin.rb +23 -0
- data/plugins/guests/gentoo/cap/change_host_name.rb +27 -0
- data/plugins/guests/gentoo/cap/configure_networks.rb +92 -0
- data/plugins/guests/gentoo/guest.rb +12 -0
- data/plugins/guests/gentoo/plugin.rb +28 -0
- data/plugins/guests/haiku/cap/change_host_name.rb +36 -0
- data/plugins/guests/haiku/cap/halt.rb +19 -0
- data/plugins/guests/haiku/cap/insert_public_key.rb +24 -0
- data/plugins/guests/haiku/cap/remove_public_key.rb +24 -0
- data/plugins/guests/haiku/cap/rsync.rb +22 -0
- data/plugins/guests/haiku/guest.rb +14 -0
- data/plugins/guests/haiku/plugin.rb +53 -0
- data/plugins/guests/kali/guest.rb +13 -0
- data/plugins/guests/kali/plugin.rb +18 -0
- data/plugins/guests/linux/cap/change_host_name.rb +49 -0
- data/plugins/guests/linux/cap/choose_addressable_ip_addr.rb +22 -0
- data/plugins/guests/linux/cap/file_system.rb +82 -0
- data/plugins/guests/linux/cap/halt.rb +27 -0
- data/plugins/guests/linux/cap/mount_smb_shared_folder.rb +95 -0
- data/plugins/guests/linux/cap/mount_virtualbox_shared_folder.rb +78 -0
- data/plugins/guests/linux/cap/network_interfaces.rb +89 -0
- data/plugins/guests/linux/cap/nfs.rb +51 -0
- data/plugins/guests/linux/cap/persist_mount_shared_folder.rb +77 -0
- data/plugins/guests/linux/cap/port.rb +14 -0
- data/plugins/guests/linux/cap/public_key.rb +65 -0
- data/plugins/guests/linux/cap/read_ip_address.rb +28 -0
- data/plugins/guests/linux/cap/reboot.rb +74 -0
- data/plugins/guests/linux/cap/rsync.rb +14 -0
- data/plugins/guests/linux/cap/shell_expand_guest_path.rb +35 -0
- data/plugins/guests/linux/guest.rb +26 -0
- data/plugins/guests/linux/plugin.rb +139 -0
- data/plugins/guests/mint/guest.rb +13 -0
- data/plugins/guests/mint/plugin.rb +18 -0
- data/plugins/guests/netbsd/cap/change_host_name.rb +20 -0
- data/plugins/guests/netbsd/cap/configure_networks.rb +56 -0
- data/plugins/guests/netbsd/cap/rsync.rb +23 -0
- data/plugins/guests/netbsd/cap/shell_expand_guest_path.rb +30 -0
- data/plugins/guests/netbsd/guest.rb +14 -0
- data/plugins/guests/netbsd/plugin.rb +58 -0
- data/plugins/guests/nixos/cap/change_host_name.rb +47 -0
- data/plugins/guests/nixos/cap/configure_networks.rb +135 -0
- data/plugins/guests/nixos/cap/nfs_client.rb +14 -0
- data/plugins/guests/nixos/guest.rb +20 -0
- data/plugins/guests/nixos/plugin.rb +33 -0
- data/plugins/guests/omnios/cap/change_host_name.rb +23 -0
- data/plugins/guests/omnios/cap/mount_nfs_folder.rb +24 -0
- data/plugins/guests/omnios/cap/rsync.rb +14 -0
- data/plugins/guests/omnios/guest.rb +12 -0
- data/plugins/guests/omnios/plugin.rb +33 -0
- data/plugins/guests/openbsd/cap/change_host_name.rb +35 -0
- data/plugins/guests/openbsd/cap/configure_networks.rb +49 -0
- data/plugins/guests/openbsd/cap/halt.rb +22 -0
- data/plugins/guests/openbsd/cap/rsync.rb +32 -0
- data/plugins/guests/openbsd/cap/shell_expand_guest_path.rb +30 -0
- data/plugins/guests/openbsd/guest.rb +14 -0
- data/plugins/guests/openbsd/plugin.rb +63 -0
- data/plugins/guests/openwrt/cap/change_host_name.rb +22 -0
- data/plugins/guests/openwrt/cap/halt.rb +19 -0
- data/plugins/guests/openwrt/cap/insert_public_key.rb +23 -0
- data/plugins/guests/openwrt/cap/remove_public_key.rb +25 -0
- data/plugins/guests/openwrt/cap/rsync.rb +38 -0
- data/plugins/guests/openwrt/guest.rb +26 -0
- data/plugins/guests/openwrt/plugin.rb +64 -0
- data/plugins/guests/photon/cap/change_host_name.rb +22 -0
- data/plugins/guests/photon/cap/configure_networks.rb +33 -0
- data/plugins/guests/photon/cap/docker.rb +14 -0
- data/plugins/guests/photon/guest.rb +12 -0
- data/plugins/guests/photon/plugin.rb +33 -0
- data/plugins/guests/pld/cap/change_host_name.rb +26 -0
- data/plugins/guests/pld/cap/flavor.rb +14 -0
- data/plugins/guests/pld/cap/network_scripts_dir.rb +14 -0
- data/plugins/guests/pld/guest.rb +12 -0
- data/plugins/guests/pld/plugin.rb +33 -0
- data/plugins/guests/redhat/cap/change_host_name.rb +59 -0
- data/plugins/guests/redhat/cap/configure_networks.rb +113 -0
- data/plugins/guests/redhat/cap/flavor.rb +32 -0
- data/plugins/guests/redhat/cap/network_scripts_dir.rb +18 -0
- data/plugins/guests/redhat/cap/nfs_client.rb +33 -0
- data/plugins/guests/redhat/cap/rsync.rb +20 -0
- data/plugins/guests/redhat/cap/smb.rb +23 -0
- data/plugins/guests/redhat/guest.rb +12 -0
- data/plugins/guests/redhat/plugin.rb +53 -0
- data/plugins/guests/rocky/cap/flavor.rb +26 -0
- data/plugins/guests/rocky/guest.rb +13 -0
- data/plugins/guests/rocky/plugin.rb +23 -0
- data/plugins/guests/slackware/cap/change_host_name.rb +24 -0
- data/plugins/guests/slackware/cap/configure_networks.rb +51 -0
- data/plugins/guests/slackware/guest.rb +12 -0
- data/plugins/guests/slackware/plugin.rb +28 -0
- data/plugins/guests/smartos/cap/change_host_name.rb +29 -0
- data/plugins/guests/smartos/cap/configure_networks.rb +30 -0
- data/plugins/guests/smartos/cap/halt.rb +25 -0
- data/plugins/guests/smartos/cap/insert_public_key.rb +31 -0
- data/plugins/guests/smartos/cap/mount_nfs.rb +31 -0
- data/plugins/guests/smartos/cap/remove_public_key.rb +28 -0
- data/plugins/guests/smartos/cap/rsync.rb +36 -0
- data/plugins/guests/smartos/config.rb +18 -0
- data/plugins/guests/smartos/guest.rb +14 -0
- data/plugins/guests/smartos/plugin.rb +74 -0
- data/plugins/guests/solaris/cap/change_host_name.rb +20 -0
- data/plugins/guests/solaris/cap/configure_networks.rb +28 -0
- data/plugins/guests/solaris/cap/file_system.rb +80 -0
- data/plugins/guests/solaris/cap/halt.rb +25 -0
- data/plugins/guests/solaris/cap/insert_public_key.rb +25 -0
- data/plugins/guests/solaris/cap/mount_virtualbox_shared_folder.rb +44 -0
- data/plugins/guests/solaris/cap/remove_public_key.rb +25 -0
- data/plugins/guests/solaris/cap/rsync.rb +36 -0
- data/plugins/guests/solaris/config.rb +34 -0
- data/plugins/guests/solaris/guest.rb +17 -0
- data/plugins/guests/solaris/plugin.rb +88 -0
- data/plugins/guests/solaris11/cap/change_host_name.rb +26 -0
- data/plugins/guests/solaris11/cap/configure_networks.rb +37 -0
- data/plugins/guests/solaris11/config.rb +37 -0
- data/plugins/guests/solaris11/guest.rb +22 -0
- data/plugins/guests/solaris11/plugin.rb +42 -0
- data/plugins/guests/suse/cap/change_host_name.rb +48 -0
- data/plugins/guests/suse/cap/configure_networks.rb +53 -0
- data/plugins/guests/suse/cap/halt.rb +23 -0
- data/plugins/guests/suse/cap/network_scripts_dir.rb +14 -0
- data/plugins/guests/suse/cap/nfs_client.rb +18 -0
- data/plugins/guests/suse/cap/rsync.rb +18 -0
- data/plugins/guests/suse/guest.rb +12 -0
- data/plugins/guests/suse/plugin.rb +53 -0
- data/plugins/guests/tinycore/cap/change_host_name.rb +16 -0
- data/plugins/guests/tinycore/cap/configure_networks.rb +29 -0
- data/plugins/guests/tinycore/cap/halt.rb +19 -0
- data/plugins/guests/tinycore/cap/mount_nfs.rb +44 -0
- data/plugins/guests/tinycore/cap/rsync.rb +20 -0
- data/plugins/guests/tinycore/guest.rb +13 -0
- data/plugins/guests/tinycore/plugin.rb +43 -0
- data/plugins/guests/trisquel/guest.rb +12 -0
- data/plugins/guests/trisquel/plugin.rb +18 -0
- data/plugins/guests/ubuntu/guest.rb +13 -0
- data/plugins/guests/ubuntu/plugin.rb +18 -0
- data/plugins/guests/windows/cap/change_host_name.rb +36 -0
- data/plugins/guests/windows/cap/choose_addressable_ip_addr.rb +23 -0
- data/plugins/guests/windows/cap/configure_networks.rb +83 -0
- data/plugins/guests/windows/cap/file_system.rb +68 -0
- data/plugins/guests/windows/cap/halt.rb +19 -0
- data/plugins/guests/windows/cap/mount_shared_folder.rb +60 -0
- data/plugins/guests/windows/cap/public_key.rb +87 -0
- data/plugins/guests/windows/cap/reboot.rb +63 -0
- data/plugins/guests/windows/cap/rsync.rb +29 -0
- data/plugins/guests/windows/config.rb +26 -0
- data/plugins/guests/windows/errors.rb +25 -0
- data/plugins/guests/windows/guest.rb +13 -0
- data/plugins/guests/windows/guest_network.rb +128 -0
- data/plugins/guests/windows/plugin.rb +116 -0
- data/plugins/guests/windows/scripts/mount_volume.ps1.erb +48 -0
- data/plugins/guests/windows/scripts/reboot_detect.ps1 +50 -0
- data/plugins/guests/windows/scripts/set_work_network.ps1 +9 -0
- data/plugins/guests/windows/scripts/winrs_v3_get_adapters.ps1 +14 -0
- data/plugins/hosts/alt/cap/nfs.rb +46 -0
- data/plugins/hosts/alt/host.rb +14 -0
- data/plugins/hosts/alt/plugin.rb +35 -0
- data/plugins/hosts/arch/cap/nfs.rb +22 -0
- data/plugins/hosts/arch/host.rb +14 -0
- data/plugins/hosts/arch/plugin.rb +35 -0
- data/plugins/hosts/bsd/cap/nfs.rb +218 -0
- data/plugins/hosts/bsd/cap/path.rb +14 -0
- data/plugins/hosts/bsd/cap/ssh.rb +19 -0
- data/plugins/hosts/bsd/host.rb +15 -0
- data/plugins/hosts/bsd/plugin.rb +63 -0
- data/plugins/hosts/darwin/cap/configured_ip_addresses.rb +21 -0
- data/plugins/hosts/darwin/cap/fs_iso.rb +52 -0
- data/plugins/hosts/darwin/cap/nfs.rb +14 -0
- data/plugins/hosts/darwin/cap/path.rb +66 -0
- data/plugins/hosts/darwin/cap/provider_install_virtualbox.rb +64 -0
- data/plugins/hosts/darwin/cap/rdp.rb +64 -0
- data/plugins/hosts/darwin/cap/smb.rb +128 -0
- data/plugins/hosts/darwin/cap/version.rb +26 -0
- data/plugins/hosts/darwin/host.rb +14 -0
- data/plugins/hosts/darwin/plugin.rb +83 -0
- data/plugins/hosts/darwin/scripts/install_virtualbox.sh +18 -0
- data/plugins/hosts/freebsd/cap/nfs.rb +34 -0
- data/plugins/hosts/freebsd/host.rb +15 -0
- data/plugins/hosts/freebsd/plugin.rb +34 -0
- data/plugins/hosts/gentoo/cap/nfs.rb +42 -0
- data/plugins/hosts/gentoo/host.rb +14 -0
- data/plugins/hosts/gentoo/plugin.rb +31 -0
- data/plugins/hosts/linux/cap/fs_iso.rb +52 -0
- data/plugins/hosts/linux/cap/nfs.rb +296 -0
- data/plugins/hosts/linux/cap/rdp.rb +59 -0
- data/plugins/hosts/linux/cap/ssh.rb +19 -0
- data/plugins/hosts/linux/host.rb +15 -0
- data/plugins/hosts/linux/plugin.rb +70 -0
- data/plugins/hosts/null/host.rb +15 -0
- data/plugins/hosts/null/plugin.rb +18 -0
- data/plugins/hosts/redhat/cap/nfs.rb +58 -0
- data/plugins/hosts/redhat/host.rb +31 -0
- data/plugins/hosts/redhat/plugin.rb +30 -0
- data/plugins/hosts/slackware/cap/nfs.rb +18 -0
- data/plugins/hosts/slackware/host.rb +15 -0
- data/plugins/hosts/slackware/plugin.rb +30 -0
- data/plugins/hosts/suse/cap/nfs.rb +22 -0
- data/plugins/hosts/suse/host.rb +30 -0
- data/plugins/hosts/suse/plugin.rb +33 -0
- data/plugins/hosts/void/cap/nfs.rb +27 -0
- data/plugins/hosts/void/host.rb +23 -0
- data/plugins/hosts/void/plugin.rb +33 -0
- data/plugins/hosts/windows/cap/configured_ip_addresses.rb +32 -0
- data/plugins/hosts/windows/cap/fs_iso.rb +51 -0
- data/plugins/hosts/windows/cap/nfs.rb +14 -0
- data/plugins/hosts/windows/cap/provider_install_virtualbox.rb +65 -0
- data/plugins/hosts/windows/cap/ps.rb +50 -0
- data/plugins/hosts/windows/cap/rdp.rb +33 -0
- data/plugins/hosts/windows/cap/smb.rb +203 -0
- data/plugins/hosts/windows/cap/ssh.rb +29 -0
- data/plugins/hosts/windows/host.rb +26 -0
- data/plugins/hosts/windows/plugin.rb +83 -0
- data/plugins/hosts/windows/scripts/check_credentials.ps1 +37 -0
- data/plugins/hosts/windows/scripts/host_info.ps1 +24 -0
- data/plugins/hosts/windows/scripts/install_virtualbox.ps1 +40 -0
- data/plugins/hosts/windows/scripts/set_share.ps1 +40 -0
- data/plugins/hosts/windows/scripts/set_ssh_key_permissions.ps1 +20 -0
- data/plugins/hosts/windows/scripts/unset_share.ps1 +13 -0
- data/plugins/hosts/windows/scripts/utils/VagrantSSH/VagrantSSH.psm1 +29 -0
- data/plugins/kernel_v1/config/nfs.rb +23 -0
- data/plugins/kernel_v1/config/package.rb +20 -0
- data/plugins/kernel_v1/config/ssh.rb +50 -0
- data/plugins/kernel_v1/config/vagrant.rb +34 -0
- data/plugins/kernel_v1/config/vm.rb +191 -0
- data/plugins/kernel_v1/plugin.rb +47 -0
- data/plugins/kernel_v2/config/cloud_init.rb +136 -0
- data/plugins/kernel_v2/config/disk.rb +224 -0
- data/plugins/kernel_v2/config/package.rb +24 -0
- data/plugins/kernel_v2/config/push.rb +155 -0
- data/plugins/kernel_v2/config/ssh.rb +93 -0
- data/plugins/kernel_v2/config/ssh_connect.rb +194 -0
- data/plugins/kernel_v2/config/trigger.rb +214 -0
- data/plugins/kernel_v2/config/vagrant.rb +99 -0
- data/plugins/kernel_v2/config/vm.rb +1062 -0
- data/plugins/kernel_v2/config/vm_provisioner.rb +202 -0
- data/plugins/kernel_v2/config/vm_subvm.rb +33 -0
- data/plugins/kernel_v2/config/vm_trigger.rb +297 -0
- data/plugins/kernel_v2/plugin.rb +71 -0
- data/plugins/providers/docker/action/build.rb +99 -0
- data/plugins/providers/docker/action/compare_synced_folders.rb +65 -0
- data/plugins/providers/docker/action/connect_networks.rb +80 -0
- data/plugins/providers/docker/action/create.rb +162 -0
- data/plugins/providers/docker/action/destroy.rb +34 -0
- data/plugins/providers/docker/action/destroy_build_image.rb +51 -0
- data/plugins/providers/docker/action/destroy_network.rb +53 -0
- data/plugins/providers/docker/action/forwarded_ports.rb +36 -0
- data/plugins/providers/docker/action/has_ssh.rb +21 -0
- data/plugins/providers/docker/action/host_machine.rb +75 -0
- data/plugins/providers/docker/action/host_machine_build_dir.rb +48 -0
- data/plugins/providers/docker/action/host_machine_port_checker.rb +34 -0
- data/plugins/providers/docker/action/host_machine_port_warning.rb +40 -0
- data/plugins/providers/docker/action/host_machine_required.rb +20 -0
- data/plugins/providers/docker/action/host_machine_sync_folders.rb +175 -0
- data/plugins/providers/docker/action/host_machine_sync_folders_disable.rb +91 -0
- data/plugins/providers/docker/action/init_state.rb +23 -0
- data/plugins/providers/docker/action/is_build.rb +19 -0
- data/plugins/providers/docker/action/is_host_machine_created.rb +32 -0
- data/plugins/providers/docker/action/login.rb +51 -0
- data/plugins/providers/docker/action/prepare_forwarded_port_collision_params.rb +64 -0
- data/plugins/providers/docker/action/prepare_networks.rb +372 -0
- data/plugins/providers/docker/action/prepare_nfs_settings.rb +60 -0
- data/plugins/providers/docker/action/prepare_nfs_valid_ids.rb +22 -0
- data/plugins/providers/docker/action/prepare_ssh.rb +48 -0
- data/plugins/providers/docker/action/pull.rb +30 -0
- data/plugins/providers/docker/action/start.rb +24 -0
- data/plugins/providers/docker/action/stop.rb +24 -0
- data/plugins/providers/docker/action/wait_for_running.rb +70 -0
- data/plugins/providers/docker/action.rb +319 -0
- data/plugins/providers/docker/cap/has_communicator.rb +14 -0
- data/plugins/providers/docker/cap/proxy_machine.rb +15 -0
- data/plugins/providers/docker/cap/public_address.rb +26 -0
- data/plugins/providers/docker/command/exec.rb +112 -0
- data/plugins/providers/docker/command/logs.rb +111 -0
- data/plugins/providers/docker/command/run.rb +76 -0
- data/plugins/providers/docker/communicator.rb +199 -0
- data/plugins/providers/docker/config.rb +362 -0
- data/plugins/providers/docker/driver/compose.rb +315 -0
- data/plugins/providers/docker/driver.rb +416 -0
- data/plugins/providers/docker/errors.rb +108 -0
- data/plugins/providers/docker/executor/local.rb +48 -0
- data/plugins/providers/docker/executor/vagrant.rb +88 -0
- data/plugins/providers/docker/hostmachine/Vagrantfile +3 -0
- data/plugins/providers/docker/plugin.rb +89 -0
- data/plugins/providers/docker/provider.rb +215 -0
- data/plugins/providers/docker/synced_folder.rb +35 -0
- data/plugins/providers/hyperv/action/check_access.rb +27 -0
- data/plugins/providers/hyperv/action/check_enabled.rb +25 -0
- data/plugins/providers/hyperv/action/configure.rb +115 -0
- data/plugins/providers/hyperv/action/delete_vm.rb +28 -0
- data/plugins/providers/hyperv/action/export.rb +45 -0
- data/plugins/providers/hyperv/action/import.rb +86 -0
- data/plugins/providers/hyperv/action/is_windows.rb +19 -0
- data/plugins/providers/hyperv/action/message_will_not_destroy.rb +20 -0
- data/plugins/providers/hyperv/action/net_set_mac.rb +23 -0
- data/plugins/providers/hyperv/action/net_set_vlan.rb +23 -0
- data/plugins/providers/hyperv/action/package.rb +19 -0
- data/plugins/providers/hyperv/action/package_metadata_json.rb +37 -0
- data/plugins/providers/hyperv/action/package_setup_files.rb +19 -0
- data/plugins/providers/hyperv/action/package_setup_folders.rb +21 -0
- data/plugins/providers/hyperv/action/package_vagrantfile.rb +37 -0
- data/plugins/providers/hyperv/action/read_guest_ip.rb +45 -0
- data/plugins/providers/hyperv/action/read_state.rb +33 -0
- data/plugins/providers/hyperv/action/resume_vm.rb +20 -0
- data/plugins/providers/hyperv/action/set_name.rb +46 -0
- data/plugins/providers/hyperv/action/snapshot_delete.rb +30 -0
- data/plugins/providers/hyperv/action/snapshot_restore.rb +26 -0
- data/plugins/providers/hyperv/action/snapshot_save.rb +30 -0
- data/plugins/providers/hyperv/action/start_instance.rb +20 -0
- data/plugins/providers/hyperv/action/stop_instance.rb +20 -0
- data/plugins/providers/hyperv/action/suspend_vm.rb +20 -0
- data/plugins/providers/hyperv/action/wait_for_ip_address.rb +62 -0
- data/plugins/providers/hyperv/action.rb +326 -0
- data/plugins/providers/hyperv/cap/cleanup_disks.rb +92 -0
- data/plugins/providers/hyperv/cap/configure_disks.rb +248 -0
- data/plugins/providers/hyperv/cap/public_address.rb +18 -0
- data/plugins/providers/hyperv/cap/snapshot_list.rb +14 -0
- data/plugins/providers/hyperv/cap/validate_disk_ext.rb +37 -0
- data/plugins/providers/hyperv/config.rb +148 -0
- data/plugins/providers/hyperv/driver.rb +368 -0
- data/plugins/providers/hyperv/errors.rb +49 -0
- data/plugins/providers/hyperv/plugin.rb +74 -0
- data/plugins/providers/hyperv/provider.rb +116 -0
- data/plugins/providers/hyperv/scripts/add_dvd.ps1 +18 -0
- data/plugins/providers/hyperv/scripts/attach_disk_drive.ps1 +31 -0
- data/plugins/providers/hyperv/scripts/check_hyperv.ps1 +11 -0
- data/plugins/providers/hyperv/scripts/check_hyperv_access.ps1 +17 -0
- data/plugins/providers/hyperv/scripts/clone_vhd.ps1 +21 -0
- data/plugins/providers/hyperv/scripts/configure_vm.ps1 +130 -0
- data/plugins/providers/hyperv/scripts/create_snapshot.ps1 +27 -0
- data/plugins/providers/hyperv/scripts/delete_snapshot.ps1 +19 -0
- data/plugins/providers/hyperv/scripts/delete_vm.ps1 +22 -0
- data/plugins/providers/hyperv/scripts/dismount_vhd.ps1 +16 -0
- data/plugins/providers/hyperv/scripts/export_vm.ps1 +32 -0
- data/plugins/providers/hyperv/scripts/file_sync.ps1 +123 -0
- data/plugins/providers/hyperv/scripts/get_network_config.ps1 +68 -0
- data/plugins/providers/hyperv/scripts/get_network_mac.ps1 +35 -0
- data/plugins/providers/hyperv/scripts/get_scsi_controller.ps1 +19 -0
- data/plugins/providers/hyperv/scripts/get_switches.ps1 +13 -0
- data/plugins/providers/hyperv/scripts/get_vhd.ps1 +19 -0
- data/plugins/providers/hyperv/scripts/get_vm_status.ps1 +52 -0
- data/plugins/providers/hyperv/scripts/has_vmcx_support.ps1 +12 -0
- data/plugins/providers/hyperv/scripts/import_vm.ps1 +40 -0
- data/plugins/providers/hyperv/scripts/list_hdds.ps1 +20 -0
- data/plugins/providers/hyperv/scripts/list_snapshots.ps1 +22 -0
- data/plugins/providers/hyperv/scripts/new_vhd.ps1 +34 -0
- data/plugins/providers/hyperv/scripts/remove_disk_drive.ps1 +28 -0
- data/plugins/providers/hyperv/scripts/remove_dvd.ps1 +21 -0
- data/plugins/providers/hyperv/scripts/resize_disk_drive.ps1 +21 -0
- data/plugins/providers/hyperv/scripts/restore_snapshot.ps1 +20 -0
- data/plugins/providers/hyperv/scripts/resume_vm.ps1 +19 -0
- data/plugins/providers/hyperv/scripts/set_enhanced_session_transport_type.ps1 +36 -0
- data/plugins/providers/hyperv/scripts/set_name.ps1 +27 -0
- data/plugins/providers/hyperv/scripts/set_network_mac.ps1 +21 -0
- data/plugins/providers/hyperv/scripts/set_network_vlan.ps1 +19 -0
- data/plugins/providers/hyperv/scripts/set_vm_integration_services.ps1 +30 -0
- data/plugins/providers/hyperv/scripts/start_vm.ps1 +29 -0
- data/plugins/providers/hyperv/scripts/stop_vm.ps1 +20 -0
- data/plugins/providers/hyperv/scripts/suspend_vm.ps1 +19 -0
- data/plugins/providers/hyperv/scripts/utils/VagrantMessages/VagrantMessages.psm1 +27 -0
- data/plugins/providers/hyperv/scripts/utils/VagrantVM/VagrantVM.psm1 +776 -0
- data/plugins/providers/virtualbox/action/boot.rb +26 -0
- data/plugins/providers/virtualbox/action/check_accessible.rb +26 -0
- data/plugins/providers/virtualbox/action/check_created.rb +24 -0
- data/plugins/providers/virtualbox/action/check_guest_additions.rb +58 -0
- data/plugins/providers/virtualbox/action/check_running.rb +24 -0
- data/plugins/providers/virtualbox/action/check_virtualbox.rb +28 -0
- data/plugins/providers/virtualbox/action/clean_machine_folder.rb +55 -0
- data/plugins/providers/virtualbox/action/clear_forwarded_ports.rb +23 -0
- data/plugins/providers/virtualbox/action/clear_network_interfaces.rb +34 -0
- data/plugins/providers/virtualbox/action/created.rb +23 -0
- data/plugins/providers/virtualbox/action/customize.rb +48 -0
- data/plugins/providers/virtualbox/action/destroy.rb +22 -0
- data/plugins/providers/virtualbox/action/destroy_unused_network_interfaces.rb +26 -0
- data/plugins/providers/virtualbox/action/discard_state.rb +23 -0
- data/plugins/providers/virtualbox/action/export.rb +54 -0
- data/plugins/providers/virtualbox/action/forced_halt.rb +28 -0
- data/plugins/providers/virtualbox/action/forward_ports.rb +92 -0
- data/plugins/providers/virtualbox/action/import.rb +110 -0
- data/plugins/providers/virtualbox/action/import_master.rb +83 -0
- data/plugins/providers/virtualbox/action/is_paused.rb +23 -0
- data/plugins/providers/virtualbox/action/is_running.rb +23 -0
- data/plugins/providers/virtualbox/action/is_saved.rb +23 -0
- data/plugins/providers/virtualbox/action/match_mac_address.rb +30 -0
- data/plugins/providers/virtualbox/action/message_already_running.rb +19 -0
- data/plugins/providers/virtualbox/action/message_not_created.rb +19 -0
- data/plugins/providers/virtualbox/action/message_not_running.rb +19 -0
- data/plugins/providers/virtualbox/action/message_will_not_destroy.rb +20 -0
- data/plugins/providers/virtualbox/action/network.rb +638 -0
- data/plugins/providers/virtualbox/action/network_fix_ipv6.rb +87 -0
- data/plugins/providers/virtualbox/action/package.rb +19 -0
- data/plugins/providers/virtualbox/action/package_setup_files.rb +19 -0
- data/plugins/providers/virtualbox/action/package_setup_folders.rb +21 -0
- data/plugins/providers/virtualbox/action/package_vagrantfile.rb +36 -0
- data/plugins/providers/virtualbox/action/prepare_clone_snapshot.rb +69 -0
- data/plugins/providers/virtualbox/action/prepare_forwarded_port_collision_params.rb +38 -0
- data/plugins/providers/virtualbox/action/prepare_nfs_settings.rb +162 -0
- data/plugins/providers/virtualbox/action/prepare_nfs_valid_ids.rb +20 -0
- data/plugins/providers/virtualbox/action/resume.rb +28 -0
- data/plugins/providers/virtualbox/action/sane_defaults.rb +92 -0
- data/plugins/providers/virtualbox/action/set_default_nic_type.rb +72 -0
- data/plugins/providers/virtualbox/action/set_name.rb +58 -0
- data/plugins/providers/virtualbox/action/setup_package_files.rb +20 -0
- data/plugins/providers/virtualbox/action/snapshot_delete.rb +37 -0
- data/plugins/providers/virtualbox/action/snapshot_restore.rb +33 -0
- data/plugins/providers/virtualbox/action/snapshot_save.rb +28 -0
- data/plugins/providers/virtualbox/action/suspend.rb +23 -0
- data/plugins/providers/virtualbox/action.rb +433 -0
- data/plugins/providers/virtualbox/cap/cleanup_disks.rb +86 -0
- data/plugins/providers/virtualbox/cap/configure_disks.rb +441 -0
- data/plugins/providers/virtualbox/cap/mount_options.rb +43 -0
- data/plugins/providers/virtualbox/cap/public_address.rb +18 -0
- data/plugins/providers/virtualbox/cap/validate_disk_ext.rb +37 -0
- data/plugins/providers/virtualbox/cap.rb +40 -0
- data/plugins/providers/virtualbox/config.rb +211 -0
- data/plugins/providers/virtualbox/driver/base.rb +530 -0
- data/plugins/providers/virtualbox/driver/meta.rb +212 -0
- data/plugins/providers/virtualbox/driver/version_4_0.rb +574 -0
- data/plugins/providers/virtualbox/driver/version_4_1.rb +699 -0
- data/plugins/providers/virtualbox/driver/version_4_2.rb +713 -0
- data/plugins/providers/virtualbox/driver/version_4_3.rb +757 -0
- data/plugins/providers/virtualbox/driver/version_5_0.rb +1022 -0
- data/plugins/providers/virtualbox/driver/version_5_1.rb +19 -0
- data/plugins/providers/virtualbox/driver/version_5_2.rb +19 -0
- data/plugins/providers/virtualbox/driver/version_6_0.rb +105 -0
- data/plugins/providers/virtualbox/driver/version_6_1.rb +42 -0
- data/plugins/providers/virtualbox/driver/version_7_0.rb +306 -0
- data/plugins/providers/virtualbox/driver/version_7_1.rb +19 -0
- data/plugins/providers/virtualbox/model/forwarded_port.rb +73 -0
- data/plugins/providers/virtualbox/model/storage_controller.rb +138 -0
- data/plugins/providers/virtualbox/model/storage_controller_array.rb +101 -0
- data/plugins/providers/virtualbox/plugin.rb +120 -0
- data/plugins/providers/virtualbox/provider.rb +133 -0
- data/plugins/providers/virtualbox/synced_folder.rb +153 -0
- data/plugins/providers/virtualbox/util/compile_forwarded_ports.rb +40 -0
- data/plugins/provisioners/ansible/cap/guest/alpine/ansible_install.rb +47 -0
- data/plugins/provisioners/ansible/cap/guest/arch/ansible_install.rb +44 -0
- data/plugins/provisioners/ansible/cap/guest/debian/ansible_install.rb +56 -0
- data/plugins/provisioners/ansible/cap/guest/facts.rb +27 -0
- data/plugins/provisioners/ansible/cap/guest/fedora/ansible_install.rb +43 -0
- data/plugins/provisioners/ansible/cap/guest/freebsd/ansible_install.rb +26 -0
- data/plugins/provisioners/ansible/cap/guest/pip/pip.rb +49 -0
- data/plugins/provisioners/ansible/cap/guest/posix/ansible_installed.rb +28 -0
- data/plugins/provisioners/ansible/cap/guest/redhat/ansible_install.rb +75 -0
- data/plugins/provisioners/ansible/cap/guest/suse/ansible_install.rb +26 -0
- data/plugins/provisioners/ansible/cap/guest/ubuntu/ansible_install.rb +42 -0
- data/plugins/provisioners/ansible/config/base.rb +157 -0
- data/plugins/provisioners/ansible/config/guest.rb +59 -0
- data/plugins/provisioners/ansible/config/host.rb +66 -0
- data/plugins/provisioners/ansible/constants.rb +17 -0
- data/plugins/provisioners/ansible/errors.rb +43 -0
- data/plugins/provisioners/ansible/helpers.rb +20 -0
- data/plugins/provisioners/ansible/plugin.rb +88 -0
- data/plugins/provisioners/ansible/provisioner/base.rb +405 -0
- data/plugins/provisioners/ansible/provisioner/guest.rb +197 -0
- data/plugins/provisioners/ansible/provisioner/host.rb +352 -0
- data/plugins/provisioners/cfengine/cap/debian/cfengine_install.rb +24 -0
- data/plugins/provisioners/cfengine/cap/linux/cfengine_installed.rb +17 -0
- data/plugins/provisioners/cfengine/cap/linux/cfengine_needs_bootstrap.rb +37 -0
- data/plugins/provisioners/cfengine/cap/redhat/cfengine_install.rb +37 -0
- data/plugins/provisioners/cfengine/cap/suse/cfengine_install.rb +21 -0
- data/plugins/provisioners/cfengine/config.rb +127 -0
- data/plugins/provisioners/cfengine/plugin.rb +50 -0
- data/plugins/provisioners/cfengine/provisioner.rb +142 -0
- data/plugins/provisioners/chef/cap/debian/chef_install.rb +22 -0
- data/plugins/provisioners/chef/cap/freebsd/chef_install.rb +21 -0
- data/plugins/provisioners/chef/cap/freebsd/chef_installed.rb +27 -0
- data/plugins/provisioners/chef/cap/linux/chef_installed.rb +27 -0
- data/plugins/provisioners/chef/cap/omnios/chef_install.rb +23 -0
- data/plugins/provisioners/chef/cap/omnios/chef_installed.rb +28 -0
- data/plugins/provisioners/chef/cap/redhat/chef_install.rb +27 -0
- data/plugins/provisioners/chef/cap/suse/chef_install.rb +30 -0
- data/plugins/provisioners/chef/cap/windows/chef_install.rb +19 -0
- data/plugins/provisioners/chef/cap/windows/chef_installed.rb +24 -0
- data/plugins/provisioners/chef/command_builder.rb +87 -0
- data/plugins/provisioners/chef/config/base.rb +139 -0
- data/plugins/provisioners/chef/config/base_runner.rb +131 -0
- data/plugins/provisioners/chef/config/chef_apply.rb +53 -0
- data/plugins/provisioners/chef/config/chef_client.rb +77 -0
- data/plugins/provisioners/chef/config/chef_solo.rb +141 -0
- data/plugins/provisioners/chef/config/chef_zero.rb +133 -0
- data/plugins/provisioners/chef/installer.rb +51 -0
- data/plugins/provisioners/chef/omnibus.rb +40 -0
- data/plugins/provisioners/chef/plugin.rb +108 -0
- data/plugins/provisioners/chef/provisioner/base.rb +258 -0
- data/plugins/provisioners/chef/provisioner/chef_apply.rb +74 -0
- data/plugins/provisioners/chef/provisioner/chef_client.rb +179 -0
- data/plugins/provisioners/chef/provisioner/chef_solo.rb +244 -0
- data/plugins/provisioners/chef/provisioner/chef_zero.rb +123 -0
- data/plugins/provisioners/container/client.rb +206 -0
- data/plugins/provisioners/container/config.rb +86 -0
- data/plugins/provisioners/container/installer.rb +16 -0
- data/plugins/provisioners/container/plugin.rb +26 -0
- data/plugins/provisioners/container/provisioner.rb +31 -0
- data/plugins/provisioners/docker/cap/centos/docker_install.rb +44 -0
- data/plugins/provisioners/docker/cap/centos/docker_start_service.rb +27 -0
- data/plugins/provisioners/docker/cap/debian/docker_install.rb +21 -0
- data/plugins/provisioners/docker/cap/debian/docker_start_service.rb +16 -0
- data/plugins/provisioners/docker/cap/fedora/docker_install.rb +30 -0
- data/plugins/provisioners/docker/cap/linux/docker_configure_vagrant_user.rb +23 -0
- data/plugins/provisioners/docker/cap/linux/docker_daemon_running.rb +16 -0
- data/plugins/provisioners/docker/cap/linux/docker_installed.rb +29 -0
- data/plugins/provisioners/docker/cap/windows/docker_daemon_running.rb +16 -0
- data/plugins/provisioners/docker/client.rb +26 -0
- data/plugins/provisioners/docker/config.rb +19 -0
- data/plugins/provisioners/docker/installer.rb +37 -0
- data/plugins/provisioners/docker/plugin.rb +71 -0
- data/plugins/provisioners/docker/provisioner.rb +59 -0
- data/plugins/provisioners/file/config.rb +32 -0
- data/plugins/provisioners/file/plugin.rb +26 -0
- data/plugins/provisioners/file/provisioner.rb +46 -0
- data/plugins/provisioners/podman/cap/centos/podman_install.rb +38 -0
- data/plugins/provisioners/podman/cap/linux/podman_installed.rb +16 -0
- data/plugins/provisioners/podman/cap/redhat/podman_install.rb +29 -0
- data/plugins/provisioners/podman/client.rb +15 -0
- data/plugins/provisioners/podman/config.rb +31 -0
- data/plugins/provisioners/podman/installer.rb +36 -0
- data/plugins/provisioners/podman/plugin.rb +41 -0
- data/plugins/provisioners/podman/provisioner.rb +55 -0
- data/plugins/provisioners/puppet/config/puppet.rb +178 -0
- data/plugins/provisioners/puppet/config/puppet_server.rb +84 -0
- data/plugins/provisioners/puppet/plugin.rb +36 -0
- data/plugins/provisioners/puppet/provisioner/puppet.rb +336 -0
- data/plugins/provisioners/puppet/provisioner/puppet_server.rb +114 -0
- data/plugins/provisioners/salt/bootstrap_downloader.rb +62 -0
- data/plugins/provisioners/salt/config.rb +194 -0
- data/plugins/provisioners/salt/errors.rb +18 -0
- data/plugins/provisioners/salt/plugin.rb +25 -0
- data/plugins/provisioners/salt/provisioner.rb +499 -0
- data/plugins/provisioners/shell/config.rb +146 -0
- data/plugins/provisioners/shell/plugin.rb +26 -0
- data/plugins/provisioners/shell/provisioner.rb +368 -0
- data/plugins/pushes/atlas/config.rb +151 -0
- data/plugins/pushes/atlas/errors.rb +16 -0
- data/plugins/pushes/atlas/locales/en.yml +25 -0
- data/plugins/pushes/atlas/plugin.rb +38 -0
- data/plugins/pushes/atlas/push.rb +87 -0
- data/plugins/pushes/ftp/adapter.rb +147 -0
- data/plugins/pushes/ftp/config.rb +133 -0
- data/plugins/pushes/ftp/errors.rb +16 -0
- data/plugins/pushes/ftp/locales/en.yml +19 -0
- data/plugins/pushes/ftp/plugin.rb +36 -0
- data/plugins/pushes/ftp/push.rb +137 -0
- data/plugins/pushes/heroku/config.rb +77 -0
- data/plugins/pushes/heroku/errors.rb +24 -0
- data/plugins/pushes/heroku/locales/en.yml +33 -0
- data/plugins/pushes/heroku/plugin.rb +36 -0
- data/plugins/pushes/heroku/push.rb +147 -0
- data/plugins/pushes/local-exec/config.rb +80 -0
- data/plugins/pushes/local-exec/errors.rb +16 -0
- data/plugins/pushes/local-exec/locales/en.yml +26 -0
- data/plugins/pushes/local-exec/plugin.rb +36 -0
- data/plugins/pushes/local-exec/push.rb +91 -0
- data/plugins/pushes/noop/config.rb +19 -0
- data/plugins/pushes/noop/plugin.rb +25 -0
- data/plugins/pushes/noop/push.rb +12 -0
- data/plugins/synced_folders/nfs/action_cleanup.rb +32 -0
- data/plugins/synced_folders/nfs/config.rb +35 -0
- data/plugins/synced_folders/nfs/plugin.rb +49 -0
- data/plugins/synced_folders/nfs/synced_folder.rb +171 -0
- data/plugins/synced_folders/rsync/command/rsync.rb +81 -0
- data/plugins/synced_folders/rsync/command/rsync_auto.rb +244 -0
- data/plugins/synced_folders/rsync/default_unix_cap.rb +49 -0
- data/plugins/synced_folders/rsync/helper.rb +296 -0
- data/plugins/synced_folders/rsync/plugin.rb +31 -0
- data/plugins/synced_folders/rsync/synced_folder.rb +62 -0
- data/plugins/synced_folders/smb/cap/default_fstab_modification.rb +14 -0
- data/plugins/synced_folders/smb/cap/mount_options.rb +59 -0
- data/plugins/synced_folders/smb/config.rb +26 -0
- data/plugins/synced_folders/smb/errors.rb +65 -0
- data/plugins/synced_folders/smb/plugin.rb +60 -0
- data/plugins/synced_folders/smb/synced_folder.rb +189 -0
- data/plugins/synced_folders/unix_mount_helpers.rb +122 -0
- data/scripts/install_rvm +19 -0
- data/scripts/setup_tests +49 -0
- data/scripts/sign.sh +29 -0
- data/scripts/website_push_www.sh +43 -0
- data/tasks/acceptance.rake +22 -0
- data/tasks/bundler.rake +3 -0
- data/tasks/test.rake +8 -0
- data/templates/commands/init/Vagrantfile.erb +86 -0
- data/templates/commands/init/Vagrantfile.min.erb +12 -0
- data/templates/commands/ssh_config/config.erb +42 -0
- data/templates/commands/winrm_config/config.erb +11 -0
- data/templates/config/messages.erb +14 -0
- data/templates/config/validation_failed.erb +7 -0
- data/templates/guests/alpine/network_dhcp.erb +13 -0
- data/templates/guests/alpine/network_static.erb +7 -0
- data/templates/guests/alt/network_dhcp.erb +7 -0
- data/templates/guests/alt/network_ipv4address.erb +3 -0
- data/templates/guests/alt/network_ipv4route.erb +5 -0
- data/templates/guests/alt/network_static.erb +7 -0
- data/templates/guests/arch/default_network/network_dhcp.erb +4 -0
- data/templates/guests/arch/default_network/network_static.erb +8 -0
- data/templates/guests/arch/default_network/network_static6.erb +8 -0
- data/templates/guests/arch/systemd_networkd/network_dhcp.erb +6 -0
- data/templates/guests/arch/systemd_networkd/network_static.erb +9 -0
- data/templates/guests/arch/systemd_networkd/network_static6.erb +9 -0
- data/templates/guests/coreos/etcd.service.erb +10 -0
- data/templates/guests/debian/network_dhcp.erb +13 -0
- data/templates/guests/debian/network_static.erb +10 -0
- data/templates/guests/debian/network_static6.erb +10 -0
- data/templates/guests/freebsd/network_dhcp.erb +4 -0
- data/templates/guests/freebsd/network_static.erb +6 -0
- data/templates/guests/freebsd/network_static6.erb +6 -0
- data/templates/guests/funtoo/network_dhcp.erb +4 -0
- data/templates/guests/funtoo/network_static.erb +10 -0
- data/templates/guests/funtoo/network_static6.erb +9 -0
- data/templates/guests/gentoo/network_dhcp.erb +4 -0
- data/templates/guests/gentoo/network_static.erb +8 -0
- data/templates/guests/gentoo/network_static6.erb +8 -0
- data/templates/guests/gentoo/network_systemd.erb +16 -0
- data/templates/guests/linux/etc_fstab.erb +6 -0
- data/templates/guests/netbsd/network_dhcp.erb +3 -0
- data/templates/guests/netbsd/network_static.erb +3 -0
- data/templates/guests/nixos/hostname.erb +6 -0
- data/templates/guests/nixos/network.erb +15 -0
- data/templates/guests/openbsd/network_dhcp.erb +1 -0
- data/templates/guests/openbsd/network_static.erb +1 -0
- data/templates/guests/openbsd/network_static6.erb +1 -0
- data/templates/guests/redhat/network_dhcp.erb +7 -0
- data/templates/guests/redhat/network_static.erb +16 -0
- data/templates/guests/redhat/network_static6.erb +12 -0
- data/templates/guests/slackware/network_dhcp.erb +11 -0
- data/templates/guests/slackware/network_static.erb +13 -0
- data/templates/guests/suse/network_dhcp.erb +6 -0
- data/templates/guests/suse/network_static.erb +13 -0
- data/templates/guests/suse/network_static6.erb +16 -0
- data/templates/license/license.html.tmpl +127 -0
- data/templates/license/license.rtf.tmpl +0 -0
- data/templates/license/license.tmpl +92 -0
- data/templates/locales/comm_winrm.yml +85 -0
- data/templates/locales/command_ps.yml +35 -0
- data/templates/locales/command_rdp.yml +28 -0
- data/templates/locales/en.yml +3149 -0
- data/templates/locales/guest_windows.yml +26 -0
- data/templates/locales/providers_docker.yml +321 -0
- data/templates/locales/providers_hyperv.yml +111 -0
- data/templates/locales/synced_folder_smb.yml +98 -0
- data/templates/networking/network_manager/network_manager_device.erb +41 -0
- data/templates/nfs/exports_bsd.erb +5 -0
- data/templates/nfs/exports_darwin.erb +7 -0
- data/templates/nfs/exports_linux.erb +7 -0
- data/templates/package_Vagrantfile.erb +11 -0
- data/templates/provisioners/chef_client/client.erb +41 -0
- data/templates/provisioners/chef_solo/solo.erb +52 -0
- data/templates/provisioners/chef_zero/zero.erb +45 -0
- data/templates/rgloader.rb +12 -0
- data/vagrant-spec.config.example.rb +13 -0
- data/vagrant.gemspec +113 -20
- data/version.txt +1 -0
- metadata +1621 -43
- data/LICENSE.txt +0 -22
- data/message.txt +0 -17
@@ -0,0 +1,672 @@
|
|
1
|
+
# Copyright (c) HashiCorp, Inc.
|
2
|
+
# SPDX-License-Identifier: BUSL-1.1
|
3
|
+
|
4
|
+
require_relative "./util/ssh"
|
5
|
+
require_relative "./action/builtin/mixin_synced_folders"
|
6
|
+
|
7
|
+
require "digest/md5"
|
8
|
+
require "thread"
|
9
|
+
require "log4r"
|
10
|
+
|
11
|
+
module Vagrant
|
12
|
+
# This represents a machine that Vagrant manages. This provides a singular
|
13
|
+
# API for querying the state and making state changes to the machine, which
|
14
|
+
# is backed by any sort of provider (VirtualBox, VMware, etc.).
|
15
|
+
class Machine
|
16
|
+
extend Vagrant::Action::Builtin::MixinSyncedFolders
|
17
|
+
|
18
|
+
# The box that is backing this machine.
|
19
|
+
#
|
20
|
+
# @return [Box]
|
21
|
+
attr_accessor :box
|
22
|
+
|
23
|
+
# Configuration for the machine.
|
24
|
+
#
|
25
|
+
# @return [Object]
|
26
|
+
attr_accessor :config
|
27
|
+
|
28
|
+
# Directory where machine-specific data can be stored.
|
29
|
+
#
|
30
|
+
# @return [Pathname]
|
31
|
+
attr_reader :data_dir
|
32
|
+
|
33
|
+
# The environment that this machine is a part of.
|
34
|
+
#
|
35
|
+
# @return [Environment]
|
36
|
+
attr_reader :env
|
37
|
+
|
38
|
+
# ID of the machine. This ID comes from the provider and is not
|
39
|
+
# guaranteed to be of any particular format except that it is
|
40
|
+
# a string.
|
41
|
+
#
|
42
|
+
# @return [String]
|
43
|
+
attr_reader :id
|
44
|
+
|
45
|
+
# Name of the machine. This is assigned by the Vagrantfile.
|
46
|
+
#
|
47
|
+
# @return [Symbol]
|
48
|
+
attr_reader :name
|
49
|
+
|
50
|
+
# The provider backing this machine.
|
51
|
+
#
|
52
|
+
# @return [Object]
|
53
|
+
attr_reader :provider
|
54
|
+
|
55
|
+
# The provider-specific configuration for this machine.
|
56
|
+
#
|
57
|
+
# @return [Object]
|
58
|
+
attr_accessor :provider_config
|
59
|
+
|
60
|
+
# The name of the provider.
|
61
|
+
#
|
62
|
+
# @return [Symbol]
|
63
|
+
attr_reader :provider_name
|
64
|
+
|
65
|
+
# The options given to the provider when registering the plugin.
|
66
|
+
#
|
67
|
+
# @return [Hash]
|
68
|
+
attr_reader :provider_options
|
69
|
+
|
70
|
+
# The triggers with machine specific configuration applied
|
71
|
+
#
|
72
|
+
# @return [Vagrant::Plugin::V2::Trigger]
|
73
|
+
attr_reader :triggers
|
74
|
+
|
75
|
+
# The UI for outputting in the scope of this machine.
|
76
|
+
#
|
77
|
+
# @return [UI]
|
78
|
+
attr_reader :ui
|
79
|
+
|
80
|
+
# The Vagrantfile that this machine is attached to.
|
81
|
+
#
|
82
|
+
# @return [Vagrantfile]
|
83
|
+
attr_reader :vagrantfile
|
84
|
+
|
85
|
+
# Initialize a new machine.
|
86
|
+
#
|
87
|
+
# @param [String] name Name of the virtual machine.
|
88
|
+
# @param [Class] provider The provider backing this machine. This is
|
89
|
+
# currently expected to be a V1 `provider` plugin.
|
90
|
+
# @param [Object] provider_config The provider-specific configuration for
|
91
|
+
# this machine.
|
92
|
+
# @param [Hash] provider_options The provider-specific options from the
|
93
|
+
# plugin definition.
|
94
|
+
# @param [Object] config The configuration for this machine.
|
95
|
+
# @param [Pathname] data_dir The directory where machine-specific data
|
96
|
+
# can be stored. This directory is ensured to exist.
|
97
|
+
# @param [Box] box The box that is backing this virtual machine.
|
98
|
+
# @param [Environment] env The environment that this machine is a
|
99
|
+
# part of.
|
100
|
+
def initialize(name, provider_name, provider_cls, provider_config, provider_options, config, data_dir, box, env, vagrantfile, base=false)
|
101
|
+
@logger = Log4r::Logger.new("vagrant::machine")
|
102
|
+
@logger.info("Initializing machine: #{name}")
|
103
|
+
@logger.info(" - Provider: #{provider_cls}")
|
104
|
+
@logger.info(" - Box: #{box}")
|
105
|
+
@logger.info(" - Data dir: #{data_dir}")
|
106
|
+
|
107
|
+
@box = box
|
108
|
+
@config = config
|
109
|
+
@data_dir = data_dir
|
110
|
+
@env = env
|
111
|
+
@vagrantfile = vagrantfile
|
112
|
+
@guest = Guest.new(
|
113
|
+
self,
|
114
|
+
Vagrant.plugin("2").manager.guests,
|
115
|
+
Vagrant.plugin("2").manager.guest_capabilities)
|
116
|
+
@name = name
|
117
|
+
@provider_config = provider_config
|
118
|
+
@provider_name = provider_name
|
119
|
+
@provider_options = provider_options
|
120
|
+
@ui = Vagrant::UI::Prefixed.new(@env.ui, @name)
|
121
|
+
@ui_mutex = Mutex.new
|
122
|
+
@state_mutex = Mutex.new
|
123
|
+
@triggers = Vagrant::Plugin::V2::Trigger.new(@env, @config.trigger, self, @ui)
|
124
|
+
|
125
|
+
# Read the ID, which is usually in local storage
|
126
|
+
@id = nil
|
127
|
+
|
128
|
+
# XXX: This is temporary. This will be removed very soon.
|
129
|
+
if base
|
130
|
+
@id = name
|
131
|
+
|
132
|
+
# For base setups, we don't want to insert the key
|
133
|
+
@config.ssh.insert_key = false
|
134
|
+
else
|
135
|
+
reload
|
136
|
+
end
|
137
|
+
|
138
|
+
# Keep track of where our UUID should be placed
|
139
|
+
@index_uuid_file = nil
|
140
|
+
@index_uuid_file = @data_dir.join("index_uuid") if @data_dir
|
141
|
+
|
142
|
+
# Initializes the provider last so that it has access to all the
|
143
|
+
# state we setup on this machine.
|
144
|
+
@provider = provider_cls.new(self)
|
145
|
+
@provider._initialize(@provider_name, self)
|
146
|
+
|
147
|
+
# If we're using WinRM, we eager load the plugin because of
|
148
|
+
# GH-3390
|
149
|
+
if @config.vm.communicator == :winrm
|
150
|
+
@logger.debug("Eager loading WinRM communicator to avoid GH-3390")
|
151
|
+
communicate
|
152
|
+
end
|
153
|
+
|
154
|
+
# If the ID is the special not created ID, then set our ID to
|
155
|
+
# nil so that we destroy all our data.
|
156
|
+
if state.id == MachineState::NOT_CREATED_ID
|
157
|
+
self.id = nil
|
158
|
+
end
|
159
|
+
|
160
|
+
# Output a bunch of information about this machine in
|
161
|
+
# machine-readable format in case someone is listening.
|
162
|
+
@ui.machine("metadata", "provider", provider_name)
|
163
|
+
end
|
164
|
+
|
165
|
+
# This calls an action on the provider. The provider may or may not
|
166
|
+
# actually implement the action.
|
167
|
+
#
|
168
|
+
# @param [Symbol] name Name of the action to run.
|
169
|
+
# @param [Hash] extra_env This data will be passed into the action runner
|
170
|
+
# as extra data set on the environment hash for the middleware
|
171
|
+
# runner.
|
172
|
+
def action(name, opts=nil)
|
173
|
+
@logger.info("Calling action: #{name} on provider #{@provider}")
|
174
|
+
|
175
|
+
opts ||= {}
|
176
|
+
|
177
|
+
# Determine whether we lock or not
|
178
|
+
lock = true
|
179
|
+
lock = opts.delete(:lock) if opts.key?(:lock)
|
180
|
+
|
181
|
+
# Extra env keys are the remaining opts
|
182
|
+
extra_env = opts.dup
|
183
|
+
|
184
|
+
check_cwd # Warns the UI if the machine was last used on a different dir
|
185
|
+
|
186
|
+
# Create a deterministic ID for this machine
|
187
|
+
vf = nil
|
188
|
+
vf = @env.vagrantfile_name[0] if @env.vagrantfile_name
|
189
|
+
id = Digest::MD5.hexdigest(
|
190
|
+
"#{@env.root_path}#{vf}#{@env.local_data_path}#{@name}")
|
191
|
+
|
192
|
+
# We only lock if we're not executing an SSH action. In the future
|
193
|
+
# we will want to do more fine-grained unlocking in actions themselves
|
194
|
+
# but for a 1.6.2 release this will work.
|
195
|
+
locker = Proc.new { |*args, &block| block.call }
|
196
|
+
locker = @env.method(:lock) if lock && !name.to_s.start_with?("ssh")
|
197
|
+
|
198
|
+
# Lock this machine for the duration of this action
|
199
|
+
return_env = locker.call("machine-action-#{id}") do
|
200
|
+
# Get the callable from the provider.
|
201
|
+
callable = @provider.action(name)
|
202
|
+
|
203
|
+
# If this action doesn't exist on the provider, then an exception
|
204
|
+
# must be raised.
|
205
|
+
if callable.nil?
|
206
|
+
raise Errors::UnimplementedProviderAction,
|
207
|
+
action: name,
|
208
|
+
provider: @provider.to_s
|
209
|
+
end
|
210
|
+
|
211
|
+
# Call the action
|
212
|
+
ui.machine("action", name.to_s, "start")
|
213
|
+
action_result = action_raw(name, callable, extra_env)
|
214
|
+
ui.machine("action", name.to_s, "end")
|
215
|
+
action_result
|
216
|
+
end
|
217
|
+
# preserve returning environment after machine action runs
|
218
|
+
return return_env
|
219
|
+
rescue Errors::EnvironmentLockedError
|
220
|
+
raise Errors::MachineActionLockedError,
|
221
|
+
action: name,
|
222
|
+
name: @name
|
223
|
+
end
|
224
|
+
|
225
|
+
# This calls a raw callable in the proper context of the machine using
|
226
|
+
# the middleware stack.
|
227
|
+
#
|
228
|
+
# @param [Symbol] name Name of the action
|
229
|
+
# @param [Proc] callable
|
230
|
+
# @param [Hash] extra_env Extra env for the action env.
|
231
|
+
# @return [Hash] The resulting env
|
232
|
+
def action_raw(name, callable, extra_env={})
|
233
|
+
if !extra_env.is_a?(Hash)
|
234
|
+
extra_env = {}
|
235
|
+
end
|
236
|
+
|
237
|
+
# Run the action with the action runner on the environment
|
238
|
+
env = {ui: @ui}.merge(extra_env).merge(
|
239
|
+
raw_action_name: name,
|
240
|
+
action_name: "machine_action_#{name}".to_sym,
|
241
|
+
machine: self,
|
242
|
+
machine_action: name
|
243
|
+
)
|
244
|
+
@env.action_runner.run(callable, env)
|
245
|
+
end
|
246
|
+
|
247
|
+
# Returns a communication object for executing commands on the remote
|
248
|
+
# machine. Note that the _exact_ semantics of this are up to the
|
249
|
+
# communication provider itself. Despite this, the semantics are expected
|
250
|
+
# to be consistent across operating systems. For example, all linux-based
|
251
|
+
# systems should have similar communication (usually a shell). All
|
252
|
+
# Windows systems should have similar communication as well. Therefore,
|
253
|
+
# prior to communicating with the machine, users of this method are
|
254
|
+
# expected to check the guest OS to determine their behavior.
|
255
|
+
#
|
256
|
+
# This method will _always_ return some valid communication object.
|
257
|
+
# The `ready?` API can be used on the object to check if communication
|
258
|
+
# is actually ready.
|
259
|
+
#
|
260
|
+
# @return [Object]
|
261
|
+
def communicate
|
262
|
+
if !@communicator
|
263
|
+
requested = @config.vm.communicator
|
264
|
+
requested ||= :ssh
|
265
|
+
klass = Vagrant.plugin("2").manager.communicators[requested]
|
266
|
+
raise Errors::CommunicatorNotFound, comm: requested.to_s if !klass
|
267
|
+
@communicator = klass.new(self)
|
268
|
+
end
|
269
|
+
|
270
|
+
@communicator
|
271
|
+
end
|
272
|
+
|
273
|
+
# Returns a guest implementation for this machine. The guest implementation
|
274
|
+
# knows how to do guest-OS specific tasks, such as configuring networks,
|
275
|
+
# mounting folders, etc.
|
276
|
+
#
|
277
|
+
# @return [Guest]
|
278
|
+
def guest
|
279
|
+
raise Errors::MachineGuestNotReady if !communicate.ready?
|
280
|
+
@guest.detect! if !@guest.ready?
|
281
|
+
@guest
|
282
|
+
end
|
283
|
+
|
284
|
+
# This sets the unique ID associated with this machine. This will
|
285
|
+
# persist this ID so that in the future Vagrant will be able to find
|
286
|
+
# this machine again. The unique ID must be absolutely unique to the
|
287
|
+
# virtual machine, and can be used by providers for finding the
|
288
|
+
# actual machine associated with this instance.
|
289
|
+
#
|
290
|
+
# **WARNING:** Only providers should ever use this method.
|
291
|
+
#
|
292
|
+
# @param [String] value The ID.
|
293
|
+
def id=(value)
|
294
|
+
@logger.info("New machine ID: #{value.inspect}")
|
295
|
+
|
296
|
+
id_file = nil
|
297
|
+
if @data_dir
|
298
|
+
# The file that will store the id if we have one. This allows the
|
299
|
+
# ID to persist across Vagrant runs. Also, store the UUID for the
|
300
|
+
# machine index.
|
301
|
+
id_file = @data_dir.join("id")
|
302
|
+
end
|
303
|
+
|
304
|
+
if value
|
305
|
+
if id_file
|
306
|
+
# Write the "id" file with the id given.
|
307
|
+
id_file.open("w+") do |f|
|
308
|
+
f.write(value)
|
309
|
+
end
|
310
|
+
end
|
311
|
+
|
312
|
+
if uid_file
|
313
|
+
# Write the user id that created this machine
|
314
|
+
uid_file.open("w+") do |f|
|
315
|
+
f.write(Process.uid.to_s)
|
316
|
+
end
|
317
|
+
end
|
318
|
+
|
319
|
+
# If we don't have a UUID, then create one
|
320
|
+
if index_uuid.nil?
|
321
|
+
# Create the index entry and save it
|
322
|
+
entry = MachineIndex::Entry.new
|
323
|
+
entry.local_data_path = @env.local_data_path
|
324
|
+
entry.name = @name.to_s
|
325
|
+
entry.provider = @provider_name.to_s
|
326
|
+
entry.architecture = @architecture
|
327
|
+
entry.state = "preparing"
|
328
|
+
entry.vagrantfile_path = @env.root_path
|
329
|
+
entry.vagrantfile_name = @env.vagrantfile_name
|
330
|
+
|
331
|
+
if @box
|
332
|
+
entry.extra_data["box"] = {
|
333
|
+
"name" => @box.name,
|
334
|
+
"provider" => @box.provider.to_s,
|
335
|
+
"architecture" => @box.architecture,
|
336
|
+
"version" => @box.version.to_s,
|
337
|
+
}
|
338
|
+
end
|
339
|
+
|
340
|
+
entry = @env.machine_index.set(entry)
|
341
|
+
@env.machine_index.release(entry)
|
342
|
+
|
343
|
+
# Store our UUID so we can access it later
|
344
|
+
if @index_uuid_file
|
345
|
+
@index_uuid_file.open("w+") do |f|
|
346
|
+
f.write(entry.id)
|
347
|
+
end
|
348
|
+
end
|
349
|
+
end
|
350
|
+
else
|
351
|
+
@logger.debug("machine ID has been unset, deregistering machine and removing data directory")
|
352
|
+
# Delete the file, since the machine is now destroyed
|
353
|
+
id_file.delete if id_file && id_file.file?
|
354
|
+
uid_file.delete if uid_file && uid_file.file?
|
355
|
+
|
356
|
+
# If we have a UUID associated with the index, remove it
|
357
|
+
uuid = index_uuid
|
358
|
+
if uuid
|
359
|
+
entry = @env.machine_index.get(uuid)
|
360
|
+
@env.machine_index.delete(entry) if entry
|
361
|
+
end
|
362
|
+
|
363
|
+
if @data_dir
|
364
|
+
# Delete the entire data directory contents since all state
|
365
|
+
# associated with the VM is now gone.
|
366
|
+
@data_dir.children.each do |child|
|
367
|
+
begin
|
368
|
+
child.rmtree
|
369
|
+
rescue Errno::EACCES
|
370
|
+
@logger.info("EACCESS deleting file: #{child}")
|
371
|
+
end
|
372
|
+
end
|
373
|
+
end
|
374
|
+
end
|
375
|
+
|
376
|
+
# Store the ID locally
|
377
|
+
@id = value.nil? ? nil : value.to_s
|
378
|
+
|
379
|
+
# Notify the provider that the ID changed in case it needs to do
|
380
|
+
# any accounting from it.
|
381
|
+
@provider.machine_id_changed
|
382
|
+
end
|
383
|
+
|
384
|
+
# Returns the UUID associated with this machine in the machine
|
385
|
+
# index. We only have a UUID if an ID has been set.
|
386
|
+
#
|
387
|
+
# @return [String] UUID or nil if we don't have one yet.
|
388
|
+
def index_uuid
|
389
|
+
return nil if !@index_uuid_file
|
390
|
+
return @index_uuid_file.read.chomp if @index_uuid_file.file?
|
391
|
+
return nil
|
392
|
+
end
|
393
|
+
|
394
|
+
# This returns a clean inspect value so that printing the value via
|
395
|
+
# a pretty print (`p`) results in a readable value.
|
396
|
+
#
|
397
|
+
# @return [String]
|
398
|
+
def inspect
|
399
|
+
"#<#{self.class}: #{@name} (#{@provider.class})>"
|
400
|
+
end
|
401
|
+
|
402
|
+
# This reloads the ID of the underlying machine.
|
403
|
+
def reload
|
404
|
+
old_id = @id
|
405
|
+
@id = nil
|
406
|
+
|
407
|
+
if @data_dir
|
408
|
+
# Read the id file from the data directory if it exists as the
|
409
|
+
# ID for the pre-existing physical representation of this machine.
|
410
|
+
id_file = @data_dir.join("id")
|
411
|
+
id_content = id_file.read.strip if id_file.file?
|
412
|
+
if !id_content.to_s.empty?
|
413
|
+
@id = id_content
|
414
|
+
end
|
415
|
+
end
|
416
|
+
|
417
|
+
if @id != old_id && @provider
|
418
|
+
# It changed, notify the provider
|
419
|
+
@provider.machine_id_changed
|
420
|
+
end
|
421
|
+
|
422
|
+
@id
|
423
|
+
end
|
424
|
+
|
425
|
+
# This returns the SSH info for accessing this machine. This SSH info
|
426
|
+
# is queried from the underlying provider. This method returns `nil` if
|
427
|
+
# the machine is not ready for SSH communication.
|
428
|
+
#
|
429
|
+
# The structure of the resulting hash is guaranteed to contain the
|
430
|
+
# following structure, although it may return other keys as well
|
431
|
+
# not documented here:
|
432
|
+
#
|
433
|
+
# {
|
434
|
+
# host: "1.2.3.4",
|
435
|
+
# port: "22",
|
436
|
+
# username: "mitchellh",
|
437
|
+
# private_key_path: "/path/to/my/key"
|
438
|
+
# }
|
439
|
+
#
|
440
|
+
# Note that Vagrant makes no guarantee that this info works or is
|
441
|
+
# correct. This is simply the data that the provider gives us or that
|
442
|
+
# is configured via a Vagrantfile. It is still possible after this
|
443
|
+
# point when attempting to connect via SSH to get authentication
|
444
|
+
# errors.
|
445
|
+
#
|
446
|
+
# @return [Hash] SSH information.
|
447
|
+
def ssh_info
|
448
|
+
# First, ask the provider for their information. If the provider
|
449
|
+
# returns nil, then the machine is simply not ready for SSH, and
|
450
|
+
# we return nil as well.
|
451
|
+
info = @provider.ssh_info
|
452
|
+
return nil if info.nil?
|
453
|
+
|
454
|
+
# Delete out the nil entries.
|
455
|
+
info.dup.each do |key, value|
|
456
|
+
info.delete(key) if value.nil?
|
457
|
+
end
|
458
|
+
|
459
|
+
# We set the defaults
|
460
|
+
info[:host] ||= @config.ssh.default.host
|
461
|
+
info[:port] ||= @config.ssh.default.port
|
462
|
+
info[:private_key_path] ||= @config.ssh.default.private_key_path
|
463
|
+
info[:keys_only] ||= @config.ssh.default.keys_only
|
464
|
+
info[:verify_host_key] ||= @config.ssh.default.verify_host_key
|
465
|
+
info[:username] ||= @config.ssh.default.username
|
466
|
+
info[:remote_user] ||= @config.ssh.default.remote_user
|
467
|
+
info[:compression] ||= @config.ssh.default.compression
|
468
|
+
info[:dsa_authentication] ||= @config.ssh.default.dsa_authentication
|
469
|
+
info[:extra_args] ||= @config.ssh.default.extra_args
|
470
|
+
info[:config] ||= @config.ssh.default.config
|
471
|
+
|
472
|
+
# We set overrides if they are set. These take precedence over
|
473
|
+
# provider-returned data.
|
474
|
+
info[:host] = @config.ssh.host if @config.ssh.host
|
475
|
+
info[:port] = @config.ssh.port if @config.ssh.port
|
476
|
+
info[:keys_only] = @config.ssh.keys_only
|
477
|
+
info[:verify_host_key] = @config.ssh.verify_host_key
|
478
|
+
info[:compression] = @config.ssh.compression
|
479
|
+
info[:dsa_authentication] = @config.ssh.dsa_authentication
|
480
|
+
info[:username] = @config.ssh.username if @config.ssh.username
|
481
|
+
info[:password] = @config.ssh.password if @config.ssh.password
|
482
|
+
info[:remote_user] = @config.ssh.remote_user if @config.ssh.remote_user
|
483
|
+
info[:extra_args] = @config.ssh.extra_args if @config.ssh.extra_args
|
484
|
+
info[:config] = @config.ssh.config if @config.ssh.config
|
485
|
+
|
486
|
+
# We also set some fields that are purely controlled by Vagrant
|
487
|
+
info[:forward_agent] = @config.ssh.forward_agent
|
488
|
+
info[:forward_x11] = @config.ssh.forward_x11
|
489
|
+
info[:forward_env] = @config.ssh.forward_env
|
490
|
+
info[:connect_timeout] = @config.ssh.connect_timeout
|
491
|
+
info[:connect_retries] = @config.ssh.connect_retries
|
492
|
+
info[:connect_retry_delay] = @config.ssh.connect_retry_delay
|
493
|
+
|
494
|
+
info[:ssh_command] = @config.ssh.ssh_command if @config.ssh.ssh_command
|
495
|
+
|
496
|
+
# Add in provided proxy command config
|
497
|
+
info[:proxy_command] = @config.ssh.proxy_command if @config.ssh.proxy_command
|
498
|
+
|
499
|
+
# Set the private key path. If a specific private key is given in
|
500
|
+
# the Vagrantfile we set that. Otherwise, we use the default (insecure)
|
501
|
+
# private key, but only if the provider didn't give us one.
|
502
|
+
if !info[:private_key_path] && !info[:password]
|
503
|
+
if @config.ssh.private_key_path
|
504
|
+
info[:private_key_path] = @config.ssh.private_key_path
|
505
|
+
else
|
506
|
+
info[:private_key_path] = @env.default_private_key_paths
|
507
|
+
end
|
508
|
+
end
|
509
|
+
|
510
|
+
# If we have a private key in our data dir, then use that
|
511
|
+
if @data_dir && !@config.ssh.private_key_path
|
512
|
+
data_private_key = @data_dir.join("private_key")
|
513
|
+
if data_private_key.file?
|
514
|
+
info[:private_key_path] = [data_private_key.to_s]
|
515
|
+
end
|
516
|
+
end
|
517
|
+
|
518
|
+
# Setup the keys
|
519
|
+
info[:private_key_path] ||= []
|
520
|
+
info[:private_key_path] = Array(info[:private_key_path])
|
521
|
+
|
522
|
+
# Expand the private key path relative to the root path
|
523
|
+
info[:private_key_path].map! do |path|
|
524
|
+
File.expand_path(path, @env.root_path)
|
525
|
+
end
|
526
|
+
|
527
|
+
# Check that the private key permissions are valid
|
528
|
+
info[:private_key_path].each do |path|
|
529
|
+
key_path = Pathname.new(path)
|
530
|
+
if key_path.exist?
|
531
|
+
Vagrant::Util::SSH.check_key_permissions(key_path)
|
532
|
+
end
|
533
|
+
end
|
534
|
+
|
535
|
+
# Return the final compiled SSH info data
|
536
|
+
info
|
537
|
+
end
|
538
|
+
|
539
|
+
# Returns the state of this machine. The state is queried from the
|
540
|
+
# backing provider, so it can be any arbitrary symbol.
|
541
|
+
#
|
542
|
+
# @return [MachineState]
|
543
|
+
def state
|
544
|
+
result = @provider.state
|
545
|
+
raise Errors::MachineStateInvalid if !result.is_a?(MachineState)
|
546
|
+
|
547
|
+
# Update our state cache if we have a UUID and an entry in the
|
548
|
+
# master index.
|
549
|
+
uuid = index_uuid
|
550
|
+
if uuid
|
551
|
+
# active_machines provides access to query this info on each machine
|
552
|
+
# from a different thread, ensure multiple machines do not access
|
553
|
+
# the locked entry simultaneously as this triggers a locked machine
|
554
|
+
# exception.
|
555
|
+
@state_mutex.synchronize do
|
556
|
+
entry = @env.machine_index.get(uuid)
|
557
|
+
if entry
|
558
|
+
entry.state = result.short_description
|
559
|
+
@env.machine_index.set(entry)
|
560
|
+
@env.machine_index.release(entry)
|
561
|
+
end
|
562
|
+
end
|
563
|
+
end
|
564
|
+
|
565
|
+
result
|
566
|
+
end
|
567
|
+
|
568
|
+
# Returns the state of this machine. The state is queried from the
|
569
|
+
# backing provider, so it can be any arbitrary symbol.
|
570
|
+
#
|
571
|
+
# @param [Symbol] state of machine
|
572
|
+
# @return [Entry] entry of recovered machine
|
573
|
+
def recover_machine(state)
|
574
|
+
entry = @env.machine_index.get(index_uuid)
|
575
|
+
if entry
|
576
|
+
@env.machine_index.release(entry)
|
577
|
+
return entry
|
578
|
+
end
|
579
|
+
|
580
|
+
entry = MachineIndex::Entry.new(id=index_uuid, {})
|
581
|
+
entry.local_data_path = @env.local_data_path
|
582
|
+
entry.name = @name.to_s
|
583
|
+
entry.provider = @provider_name.to_s
|
584
|
+
entry.state = state
|
585
|
+
entry.vagrantfile_path = @env.root_path
|
586
|
+
entry.vagrantfile_name = @env.vagrantfile_name
|
587
|
+
|
588
|
+
if @box
|
589
|
+
entry.extra_data["box"] = {
|
590
|
+
"name" => @box.name,
|
591
|
+
"provider" => @box.provider.to_s,
|
592
|
+
"architecture" => @box.architecture,
|
593
|
+
"version" => @box.version.to_s,
|
594
|
+
}
|
595
|
+
end
|
596
|
+
|
597
|
+
@state_mutex.synchronize do
|
598
|
+
entry = @env.machine_index.recover(entry)
|
599
|
+
@env.machine_index.release(entry)
|
600
|
+
end
|
601
|
+
return entry
|
602
|
+
end
|
603
|
+
|
604
|
+
# Returns the user ID that created this machine. This is specific to
|
605
|
+
# the host machine that this was created on.
|
606
|
+
#
|
607
|
+
# @return [String]
|
608
|
+
def uid
|
609
|
+
path = uid_file
|
610
|
+
return nil if !path
|
611
|
+
return nil if !path.file?
|
612
|
+
return uid_file.read.chomp
|
613
|
+
end
|
614
|
+
|
615
|
+
# Temporarily changes the machine UI. This is useful if you want
|
616
|
+
# to execute an {#action} with a different UI.
|
617
|
+
def with_ui(ui)
|
618
|
+
@ui_mutex.synchronize do
|
619
|
+
begin
|
620
|
+
old_ui = @ui
|
621
|
+
@ui = ui
|
622
|
+
yield
|
623
|
+
ensure
|
624
|
+
@ui = old_ui
|
625
|
+
end
|
626
|
+
end
|
627
|
+
end
|
628
|
+
|
629
|
+
# This returns the set of shared folders that should be done for
|
630
|
+
# this machine. It returns the folders in a hash keyed by the
|
631
|
+
# implementation class for the synced folders.
|
632
|
+
#
|
633
|
+
# @return [Hash<Symbol, Hash<String, Hash>>]
|
634
|
+
def synced_folders
|
635
|
+
self.class.synced_folders(self)
|
636
|
+
end
|
637
|
+
|
638
|
+
protected
|
639
|
+
|
640
|
+
# Returns the path to the file that stores the UID.
|
641
|
+
def uid_file
|
642
|
+
return nil if !@data_dir
|
643
|
+
@data_dir.join("creator_uid")
|
644
|
+
end
|
645
|
+
|
646
|
+
# Checks the current directory for a given machine
|
647
|
+
# and displays a warning if that machine has moved
|
648
|
+
# from its previous location on disk. If the machine
|
649
|
+
# has moved, it prints a warning to the user.
|
650
|
+
def check_cwd
|
651
|
+
desired_encoding = @env.root_path.to_s.encoding
|
652
|
+
vagrant_cwd_filepath = @data_dir.join('vagrant_cwd')
|
653
|
+
vagrant_cwd = if File.exist?(vagrant_cwd_filepath)
|
654
|
+
File.read(vagrant_cwd_filepath,
|
655
|
+
external_encoding: desired_encoding
|
656
|
+
).chomp
|
657
|
+
end
|
658
|
+
|
659
|
+
if !File.identical?(vagrant_cwd.to_s, @env.root_path.to_s)
|
660
|
+
if vagrant_cwd
|
661
|
+
ui.warn(I18n.t(
|
662
|
+
'vagrant.moved_cwd',
|
663
|
+
old_wd: "#{vagrant_cwd}",
|
664
|
+
current_wd: "#{@env.root_path.to_s}"))
|
665
|
+
end
|
666
|
+
File.write(vagrant_cwd_filepath, @env.root_path.to_s,
|
667
|
+
external_encoding: desired_encoding
|
668
|
+
)
|
669
|
+
end
|
670
|
+
end
|
671
|
+
end
|
672
|
+
end
|