vagrant-unbundled 2.1.4.0 → 2.2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +58 -1
- data/Gemfile.lock +9 -5
- data/contrib/bash/completion.sh +16 -2
- data/contrib/sudoers/osx +1 -1
- data/lib/vagrant/environment.rb +16 -21
- data/lib/vagrant/errors.rb +28 -0
- data/lib/vagrant/machine.rb +1 -1
- data/lib/vagrant/plugin/manager.rb +35 -1
- data/lib/vagrant/plugin/v2/trigger.rb +23 -0
- data/lib/vagrant/util/curl_helper.rb +96 -0
- data/lib/vagrant/util/downloader.rb +2 -79
- data/lib/vagrant/util/guest_inspection.rb +18 -5
- data/lib/vagrant/util/platform.rb +33 -8
- data/lib/vagrant/util/uploader.rb +103 -0
- data/lib/vagrant/vagrantfile.rb +5 -1
- data/lib/vagrant.rb +39 -13
- data/plugins/commands/cloud/auth/login.rb +90 -0
- data/plugins/commands/cloud/auth/logout.rb +42 -0
- data/plugins/commands/cloud/auth/plugin.rb +20 -0
- data/plugins/commands/cloud/auth/root.rb +73 -0
- data/plugins/commands/cloud/auth/whoami.rb +62 -0
- data/plugins/commands/cloud/box/create.rb +75 -0
- data/plugins/commands/cloud/box/delete.rb +65 -0
- data/plugins/commands/cloud/box/plugin.rb +19 -0
- data/plugins/commands/cloud/box/root.rb +77 -0
- data/plugins/commands/cloud/box/show.rb +74 -0
- data/plugins/commands/cloud/box/update.rb +71 -0
- data/plugins/commands/cloud/client/client.rb +264 -0
- data/plugins/commands/cloud/errors.rb +28 -0
- data/plugins/commands/cloud/list.rb +52 -0
- data/plugins/commands/cloud/locales/en.yml +159 -0
- data/plugins/commands/cloud/plugin.rb +30 -0
- data/plugins/commands/cloud/provider/create.rb +73 -0
- data/plugins/commands/cloud/provider/delete.rb +70 -0
- data/plugins/commands/cloud/provider/plugin.rb +19 -0
- data/plugins/commands/cloud/provider/root.rb +77 -0
- data/plugins/commands/cloud/provider/update.rb +73 -0
- data/plugins/commands/cloud/provider/upload.rb +75 -0
- data/plugins/commands/cloud/publish.rb +165 -0
- data/plugins/commands/cloud/root.rb +104 -0
- data/plugins/commands/cloud/search.rb +83 -0
- data/plugins/commands/cloud/util.rb +206 -0
- data/plugins/commands/cloud/version/create.rb +69 -0
- data/plugins/commands/cloud/version/delete.rb +68 -0
- data/plugins/commands/cloud/version/plugin.rb +19 -0
- data/plugins/commands/cloud/version/release.rb +69 -0
- data/plugins/commands/cloud/version/revoke.rb +69 -0
- data/plugins/commands/cloud/version/root.rb +81 -0
- data/plugins/commands/cloud/version/update.rb +69 -0
- data/plugins/commands/init/command.rb +1 -1
- data/plugins/commands/login/plugin.rb +4 -3
- data/plugins/commands/powershell/command.rb +3 -0
- data/plugins/commands/powershell/plugin.rb +1 -0
- data/plugins/commands/upload/command.rb +236 -0
- data/plugins/commands/upload/plugin.rb +17 -0
- data/plugins/commands/winrm/command.rb +69 -0
- data/plugins/commands/winrm/plugin.rb +17 -0
- data/plugins/commands/winrm_config/command.rb +125 -0
- data/plugins/commands/winrm_config/plugin.rb +17 -0
- data/plugins/guests/bsd/cap/file_system.rb +77 -0
- data/plugins/guests/bsd/plugin.rb +15 -0
- data/plugins/guests/linux/cap/file_system.rb +79 -0
- data/plugins/guests/linux/cap/network_interfaces.rb +13 -2
- data/plugins/guests/linux/plugin.rb +15 -0
- data/plugins/guests/redhat/cap/change_host_name.rb +21 -13
- data/plugins/guests/solaris/cap/file_system.rb +77 -0
- data/plugins/guests/solaris/plugin.rb +15 -0
- data/plugins/guests/windows/cap/file_system.rb +65 -0
- data/plugins/guests/windows/cap/mount_shared_folder.rb +1 -1
- data/plugins/guests/windows/plugin.rb +10 -0
- data/plugins/kernel_v2/config/vm.rb +3 -0
- data/plugins/kernel_v2/config/vm_trigger.rb +49 -1
- data/plugins/providers/docker/action/build.rb +23 -8
- data/plugins/providers/docker/action/is_build.rb +1 -1
- data/plugins/providers/docker/config.rb +50 -10
- data/plugins/providers/hyperv/scripts/configure_vm.ps1 +16 -2
- data/plugins/providers/virtualbox/action/match_mac_address.rb +8 -5
- data/plugins/providers/virtualbox/driver/version_5_0.rb +1 -0
- data/plugins/provisioners/ansible/provisioner/guest.rb +2 -8
- data/plugins/provisioners/puppet/provisioner/puppet.rb +4 -2
- data/plugins/provisioners/salt/bootstrap-salt.sh +1 -1
- data/plugins/provisioners/salt/provisioner.rb +19 -4
- data/plugins/synced_folders/rsync/helper.rb +2 -1
- data/templates/commands/ssh_config/config.erb +1 -1
- data/templates/commands/winrm_config/config.erb +11 -0
- data/templates/guests/openbsd/network_static6.erb +1 -0
- data/templates/locales/en.yml +60 -1
- data/templates/locales/providers_docker.yml +11 -3
- data/vagrant.gemspec +3 -1
- data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-94a9d31ba18b/vagrant-spec.gemspec +1 -1
- data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.1/LICENSE +22 -0
- data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.1/README.md +67 -0
- data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.1/bin/vagrant_cloud +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.1/lib/vagrant_cloud/account.rb +190 -0
- data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.1/lib/vagrant_cloud/box.rb +185 -0
- data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.1/lib/vagrant_cloud/client.rb +73 -0
- data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.1/lib/vagrant_cloud/errors.rb +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.1/lib/vagrant_cloud/provider.rb +149 -0
- data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.1/lib/vagrant_cloud/search.rb +31 -0
- data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.1/lib/vagrant_cloud/version.rb +188 -0
- data/vendor/bundle/ruby/2.5.0/gems/vagrant_cloud-2.0.1/lib/vagrant_cloud.rb +11 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/.gitignore +10 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/.rubocop.yml +38 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/.travis.yml +10 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/Gemfile +2 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/LICENSE +202 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/README.md +276 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/Rakefile +33 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/Vagrantfile +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/WinrmAppveyor.psm1 +32 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/appveyor.yml +50 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/bin/rwinrm +90 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/changelog.md +133 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/connection.rb +84 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/connection_opts.rb +90 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/exceptions.rb +88 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/http/response_handler.rb +127 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/http/transport.rb +462 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/http/transport_factory.rb +64 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/output.rb +58 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/create_pipeline.xml.erb +167 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/fragment.rb +68 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/init_runspace_pool.xml.erb +224 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/message.rb +128 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/message_data/base.rb +47 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/message_data/error_record.rb +66 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/message_data/pipeline_host_call.rb +30 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/message_data/pipeline_output.rb +48 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/message_data/pipeline_state.rb +38 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/message_data/runspacepool_host_call.rb +30 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/message_data/runspacepool_state.rb +37 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/message_data/session_capability.rb +34 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/message_data.rb +40 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/message_defragmenter.rb +62 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/message_factory.rb +74 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/message_fragmenter.rb +58 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/powershell_output_decoder.rb +142 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/receive_response_reader.rb +95 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/session_capability.xml.erb +7 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/psrp/uuid.rb +39 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/shells/base.rb +187 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/shells/cmd.rb +63 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/shells/power_shell.rb +207 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/shells/retryable.rb +44 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/shells/shell_factory.rb +56 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/version.rb +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/base.rb +57 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/cleanup_command.rb +60 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/close_shell.rb +49 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/command.rb +100 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/command_output.rb +75 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/command_output_decoder.rb +54 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/configuration.rb +44 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/create_pipeline.rb +64 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/create_shell.rb +115 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/header.rb +213 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/init_runspace_pool.rb +96 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/iso8601_duration.rb +58 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/keep_alive.rb +66 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/receive_response_reader.rb +128 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/send_data.rb +66 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/soap.rb +49 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/wql_pull.rb +54 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/wql_query.rb +98 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm/wsmv/write_stdin.rb +86 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/lib/winrm.rb +37 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/preamble +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/integration/auth_timeout_spec.rb +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/integration/cmd_spec.rb +130 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/integration/config-example.yml +16 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/integration/issue_59_spec.rb +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/integration/powershell_spec.rb +164 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/integration/spec_helper.rb +62 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/integration/transport_spec.rb +98 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/integration/wql_spec.rb +33 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/matchers.rb +59 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/configuration_spec.rb +183 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/connection_spec.rb +37 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/exception_spec.rb +49 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/http/transport_factory_spec.rb +66 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/http/transport_spec.rb +43 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/output_spec.rb +128 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/fragment_spec.rb +60 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/message_data/base_spec.rb +11 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/message_data/error_record_spec.rb +39 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/message_data/pipeline_host_call_spec.rb +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/message_data/pipeline_output_spec.rb +30 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/message_data/pipeline_state_spec.rb +38 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/message_data/runspace_pool_host_call_spec.rb +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/message_data/runspacepool_state_spec.rb +14 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/message_data/session_capability_spec.rb +28 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/message_data_spec.rb +33 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/message_defragmenter_spec.rb +45 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/message_fragmenter_spec.rb +103 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/powershell_output_decoder_spec.rb +98 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/psrp_message_spec.rb +73 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/recieve_response_reader_spec.rb +170 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/psrp/uuid_spec.rb +28 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/response_handler_spec.rb +69 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/shells/base_spec.rb +227 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/shells/cmd_spec.rb +75 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/shells/powershell_spec.rb +221 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/spec_helper.rb +46 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/clixml/error_record.xml.erb +84 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/clixml/pipeline_state.xml.erb +88 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/get_command_output_response.xml.erb +13 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/get_command_output_response_not_done.xml.erb +10 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/get_omi_command_output_response.xml.erb +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/get_omi_command_output_response_not_done.xml.erb +24 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/get_omi_config_response.xml +45 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/get_omi_powershell_keepalive_response.xml.erb +33 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/get_powershell_keepalive_response.xml.erb +10 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/get_powershell_output_response.xml.erb +12 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/get_powershell_output_response_not_done.xml.erb +9 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/open_shell_omi.xml +43 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/open_shell_v1.xml +19 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/open_shell_v2.xml +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/soap_fault_omi.xml +31 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/soap_fault_v1.xml +36 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/soap_fault_v2.xml +42 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/stubs/responses/wmi_error_v2.xml +41 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/wsmv/cleanup_command_spec.rb +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/wsmv/close_shell_spec.rb +15 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/wsmv/command_output_decoder_spec.rb +35 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/wsmv/command_output_spec.rb +43 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/wsmv/command_spec.rb +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/wsmv/configuration_spec.rb +15 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/wsmv/create_pipeline_spec.rb +30 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/wsmv/create_shell_spec.rb +39 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/wsmv/init_runspace_pool_spec.rb +38 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/wsmv/keep_alive_spec.rb +21 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/wsmv/receive_response_reader_spec.rb +124 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/wsmv/send_data_spec.rb +30 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/wsmv/wql_query_spec.rb +11 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/tests/spec/wsmv/write_stdin_spec.rb +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-2.3.0/winrm.gemspec +46 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/.gitignore +11 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/.rspec +2 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/.rubocop.yml +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/.rubocop_todo.yml +65 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/.travis.yml +10 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/Gemfile +4 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/LICENSE +202 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/README.md +82 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/Rakefile +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/VERSION +1 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/Vagrantfile +8 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/appveyor.yml +38 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/bin/rwinrmcp +85 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/changelog.md +74 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/lib/winrm-fs/core/file_transporter.rb +566 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/lib/winrm-fs/core/tmp_zip.rb +176 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/lib/winrm-fs/exceptions.rb +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/lib/winrm-fs/file_manager.rb +156 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/lib/winrm-fs/scripts/check_files.ps1.erb +49 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/lib/winrm-fs/scripts/checksum.ps1.erb +13 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/lib/winrm-fs/scripts/create_dir.ps1.erb +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/lib/winrm-fs/scripts/delete.ps1.erb +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/lib/winrm-fs/scripts/download.ps1.erb +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/lib/winrm-fs/scripts/exists.ps1.erb +10 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/lib/winrm-fs/scripts/extract_files.ps1.erb +52 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/lib/winrm-fs/scripts/scripts.rb +31 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/lib/winrm-fs.rb +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/spec/config-example.yml +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/spec/integration/file_manager_spec.rb +303 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/spec/integration/tmp_zip_spec.rb +26 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/spec/matchers.rb +57 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/spec/spec_helper.rb +66 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/spec/unit/tmp_zip_spec.rb +78 -0
- data/vendor/bundle/ruby/2.5.0/gems/winrm-fs-1.3.1/winrm-fs.gemspec +36 -0
- data/vendor/bundle/ruby/2.5.0/specifications/vagrant_cloud-2.0.1.gemspec +45 -0
- data/vendor/bundle/ruby/2.5.0/specifications/winrm-2.3.0.gemspec +73 -0
- data/vendor/bundle/ruby/2.5.0/specifications/winrm-fs-1.3.1.gemspec +57 -0
- data/version.txt +1 -1
- metadata +268 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eca7fc517602ce921c69b2a141cc57079df7b2a0834dc306e5820ea2bb107bee
|
4
|
+
data.tar.gz: 41808cc7d78dfbb081da51f3eb544c797b672e3eecefb124c6e3c2d913281593
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c9588b9b89bb650b8973ab683c8b0ed011cde2b0078476dab14b9acfc121c7b409ce5dc4557330539177895bd04b0a237c9f348a80070e583a6453cd6f1621a
|
7
|
+
data.tar.gz: bf0449d3b45d3edbbe91dcbf70272cb830d65a7e35b200f5b461eebcced575e3438e2f73620bcdf4fd7ccc75b9b3ecfce928da6382b95c5ac3e584ea1fe87f04
|
data/CHANGELOG.md
CHANGED
@@ -1,10 +1,67 @@
|
|
1
|
-
##
|
1
|
+
## 2.2.0 (October 16, 2018)
|
2
|
+
|
3
|
+
FEATURES:
|
4
|
+
|
5
|
+
- command/cloud: Introduce `vagrant cloud` subcommand to Vagrant [GH-10148]
|
6
|
+
- command/upload: Add command for uploading files to guest [GH-10263]
|
7
|
+
- command/winrm: Add command for executing guest commands via WinRM [GH-10263]
|
8
|
+
- command/winrm-config: Add command for providing WinRM configuration [GH-10263]
|
9
|
+
|
10
|
+
IMPROVEMENTS:
|
11
|
+
|
12
|
+
- core: Ensure file paths are identical when checking for cwd [GH-10220]
|
13
|
+
- core: Add config option `ignore_box_vagrantfile` for ignoring vagrantfile inside box [GH-10242]
|
14
|
+
- core/triggers: Add abort option to core triggers [GH-10232]
|
15
|
+
- core/triggers: Introduce `ruby` option for trigger [GH-10267]
|
16
|
+
- contrib/bash: Add completion for snapshot names for vagrant snapshot restore|delete [GH-9054]
|
17
|
+
- providers/docker: Build docker from git repo [GH-10221]
|
18
|
+
- providers/hyperv: Update Hyper-V admin check and allow override via ENV variable [GH-10275]
|
19
|
+
- providers/virtualbox: Allow base_mac to be optional [GH-10255]
|
20
|
+
- provisioners/salt: bootstrap-salt.sh: use -s with curl [GH-9432]
|
21
|
+
- provisioners/salt: remove leading space with bootstrap_options [GH-9431]
|
22
|
+
|
23
|
+
BUG FIXES:
|
24
|
+
|
25
|
+
- core/environment: Provide rgloader for local plugin installations [GH-10279]
|
26
|
+
- contrib/sudoers/osx: Fix missing comma and add remove export alias [GH-10235]
|
27
|
+
- guest/redhat: Update restart logic in redhat change_host_name cap [GH-10223]
|
28
|
+
- guest/windows: Allow special characters in SMB password field [GH-10219]
|
29
|
+
- providers/hyperv: Only use AutomaticCheckpointsEnabled when available [GH-10264]
|
30
|
+
- providers/hyperv: Only use CheckpointType when available [GH-10265]
|
31
|
+
- provisioners/ansible: Fix remote directory creation [GH-10259, GH-10258]
|
32
|
+
- provisioners/puppet: Properly set env variables for puppet provisioner on windows [GH-10218]
|
33
|
+
- provisioners/salt: Properly set salt pillar variables for windows guests [GH-10215]
|
34
|
+
- synced_folders/rsync: Ensure unique tmp dirs for ControlPath with rsync [GH-10291]
|
35
|
+
|
36
|
+
## 2.1.5 (September 12, 2018)
|
37
|
+
|
38
|
+
IMPROVEMENTS:
|
39
|
+
|
40
|
+
- core: Add `Vagrant.version?` helper method [GH-10191]
|
41
|
+
- core: Scrub sensitive values from logger output [GH-10200]
|
42
|
+
- core: Prevent multiple evaluations of Vagrantfile [GH-10199]
|
43
|
+
- command/init: Support VAGRANT_DEFAULT_TEMPLATE env var [GH-10171]
|
44
|
+
- command/powershell: Improve doc help string and fix winrm locales error [GH-10189]
|
45
|
+
- contrib/bash: autocomplete running VM names for destroy subcommand [GH-10168]
|
46
|
+
- guest/debian: Use `sudo` to determine if systemd is in use for hardened systems [GH-10198]
|
47
|
+
- guest/openbsd: Add IPv6 network template for OpenBSD machines [GH-8912]
|
48
|
+
- provisioners/salt: Allow non-windows hosts to pass along version [GH-10194]
|
49
|
+
|
50
|
+
BUG FIXES:
|
51
|
+
|
52
|
+
- core: Fix Vagrant.has_plugin? behavior before plugins are initialized [GH-10165]
|
53
|
+
- core: Check verify_host_key for falsey or :never values when generating ssh config [GH-10182]
|
54
|
+
- guest/linux: Filter out empty strings and loopback interfaces when constructing list of network interfaces [GH-10092]
|
55
|
+
- provider/hyper-v: Check for automatic checkpoint support before configuring [GH-10181]
|
56
|
+
|
57
|
+
## 2.1.4 (August 30, 2018)
|
2
58
|
|
3
59
|
BUG FIXES:
|
4
60
|
|
5
61
|
- core: Fix local plugin installation prompt answer parsing [GH-10154]
|
6
62
|
- core: Reset internal environment after plugin loading [GH-10155]
|
7
63
|
- host/windows: Fix SMB list parsing when extra fields are included [GH-10156]
|
64
|
+
- provisioners/ansible_local: Fix umask setting permission bug [GH-10140]
|
8
65
|
|
9
66
|
## 2.1.3 (August 29, 2018)
|
10
67
|
|
data/Gemfile.lock
CHANGED
@@ -11,7 +11,7 @@ GIT
|
|
11
11
|
PATH
|
12
12
|
remote: .
|
13
13
|
specs:
|
14
|
-
vagrant-unbundled (2.
|
14
|
+
vagrant-unbundled (2.2.0.0)
|
15
15
|
childprocess (~> 0.6.0)
|
16
16
|
erubis (~> 2.7.0)
|
17
17
|
hashicorp-checkpoint (~> 0.1.5)
|
@@ -22,8 +22,10 @@ PATH
|
|
22
22
|
net-sftp (~> 2.1)
|
23
23
|
net-ssh (~> 5.0.0)
|
24
24
|
rb-kqueue (~> 0.2.0)
|
25
|
-
rest-client (
|
25
|
+
rest-client (>= 1.6.0, < 3.0)
|
26
26
|
ruby_dep (<= 1.3.1)
|
27
|
+
rubyzip (~> 1.2.2)
|
28
|
+
vagrant_cloud (~> 2.0.0)
|
27
29
|
wdm (~> 0.1.0)
|
28
30
|
winrm (~> 2.1)
|
29
31
|
winrm-elevated (~> 1.1)
|
@@ -110,12 +112,14 @@ GEM
|
|
110
112
|
unf (0.1.4)
|
111
113
|
unf_ext
|
112
114
|
unf_ext (0.0.7.5)
|
115
|
+
vagrant_cloud (2.0.1)
|
116
|
+
rest-client (~> 2.0.2)
|
113
117
|
wdm (0.1.1)
|
114
118
|
webmock (2.3.2)
|
115
119
|
addressable (>= 2.3.6)
|
116
120
|
crack (>= 0.3.2)
|
117
121
|
hashdiff
|
118
|
-
winrm (2.
|
122
|
+
winrm (2.3.0)
|
119
123
|
builder (>= 2.1.2)
|
120
124
|
erubis (~> 2.7)
|
121
125
|
gssapi (~> 1.2)
|
@@ -127,7 +131,7 @@ GEM
|
|
127
131
|
winrm-elevated (1.1.0)
|
128
132
|
winrm (~> 2.0)
|
129
133
|
winrm-fs (~> 1.0)
|
130
|
-
winrm-fs (1.3.
|
134
|
+
winrm-fs (1.3.1)
|
131
135
|
erubis (~> 2.7)
|
132
136
|
logging (>= 1.6.1, < 3.0)
|
133
137
|
rubyzip (~> 1.1)
|
@@ -146,4 +150,4 @@ DEPENDENCIES
|
|
146
150
|
webmock (~> 2.3.1)
|
147
151
|
|
148
152
|
BUNDLED WITH
|
149
|
-
1.
|
153
|
+
1.17.1
|
data/contrib/bash/completion.sh
CHANGED
@@ -53,7 +53,7 @@ __vagrantinvestigate() {
|
|
53
53
|
_vagrant() {
|
54
54
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
55
55
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
56
|
-
commands="box connect destroy docker-exec docker-logs docker-run global-status halt help init list-commands login package plugin provision push rdp reload resume rsync rsync-auto share snapshot ssh ssh-config status suspend up version"
|
56
|
+
commands="box cloud connect destroy docker-exec docker-logs docker-run global-status halt help init list-commands login package plugin provision push rdp reload resume rsync rsync-auto share snapshot ssh ssh-config status suspend up version"
|
57
57
|
|
58
58
|
if [ $COMP_CWORD == 1 ]
|
59
59
|
then
|
@@ -79,7 +79,7 @@ _vagrant() {
|
|
79
79
|
COMPREPLY=($(compgen -W "${up_commands} ${vm_list}" -- ${cur}))
|
80
80
|
return 0
|
81
81
|
;;
|
82
|
-
"ssh"|"provision"|"reload"|"halt"|"suspend"|"resume"|"ssh-config")
|
82
|
+
"destroy"|"ssh"|"provision"|"reload"|"halt"|"suspend"|"resume"|"ssh-config")
|
83
83
|
vagrant_state_file=$(__vagrantinvestigate) || return 1
|
84
84
|
if [[ -f "${vagrant_state_file}" ]]
|
85
85
|
then
|
@@ -95,6 +95,11 @@ _vagrant() {
|
|
95
95
|
COMPREPLY=($(compgen -W "${box_commands}" -- ${cur}))
|
96
96
|
return 0
|
97
97
|
;;
|
98
|
+
"cloud")
|
99
|
+
cloud_commands="auth box search provider publish version"
|
100
|
+
COMPREPLY=($(compgen -W "${cloud_commands}" -- ${cur}))
|
101
|
+
return 0
|
102
|
+
;;
|
98
103
|
"plugin")
|
99
104
|
plugin_commands="install license list uninstall update"
|
100
105
|
COMPREPLY=($(compgen -W "${plugin_commands}" -- ${cur}))
|
@@ -140,6 +145,15 @@ _vagrant() {
|
|
140
145
|
;;
|
141
146
|
esac
|
142
147
|
;;
|
148
|
+
"snapshot")
|
149
|
+
case "$prev" in
|
150
|
+
"restore"|"delete")
|
151
|
+
local snapshot_list=$(vagrant snapshot list)
|
152
|
+
COMPREPLY=($(compgen -W "${snapshot_list}" -- ${cur}))
|
153
|
+
return 0
|
154
|
+
;;
|
155
|
+
esac
|
156
|
+
;;
|
143
157
|
*)
|
144
158
|
;;
|
145
159
|
esac
|
data/contrib/sudoers/osx
CHANGED
@@ -7,4 +7,4 @@ Cmnd_Alias VAGRANT_SMB_LIST = /usr/sbin/sharing -l
|
|
7
7
|
Cmnd_Alias VAGRANT_SMB_PLOAD = /bin/launchctl load -w /System/Library/LaunchDaemons/com.apple.smb.preferences.plist
|
8
8
|
Cmnd_Alias VAGRANT_SMB_DLOAD = /bin/launchctl load -w /System/Library/LaunchDaemons/com.apple.smbd.plist
|
9
9
|
Cmnd_Alias VAGRANT_SMB_DSTART = /bin/launchctl start com.apple.smbd
|
10
|
-
%admin ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_SMB_ADD, VAGRANT_SMB_REMOVE, VAGRANT_SMB_LIST, VAGRANT_SMB_PLOAD, VAGRANT_SMB_DLOAD VAGRANT_SMB_DSTART
|
10
|
+
%admin ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE, VAGRANT_SMB_ADD, VAGRANT_SMB_REMOVE, VAGRANT_SMB_LIST, VAGRANT_SMB_PLOAD, VAGRANT_SMB_DLOAD, VAGRANT_SMB_DSTART
|
data/lib/vagrant/environment.rb
CHANGED
@@ -167,20 +167,17 @@ module Vagrant
|
|
167
167
|
|
168
168
|
# Initialize localized plugins
|
169
169
|
plugins = Vagrant::Plugin::Manager.instance.localize!(self)
|
170
|
-
|
171
|
-
if !vagrantfile.config.vagrant.plugins.empty?
|
172
|
-
plugins = process_configured_plugins
|
173
|
-
end
|
174
|
-
|
175
170
|
# Load any environment local plugins
|
176
171
|
Vagrant::Plugin::Manager.instance.load_plugins(plugins)
|
177
172
|
|
173
|
+
# Initialize globalize plugins
|
178
174
|
plugins = Vagrant::Plugin::Manager.instance.globalize!
|
175
|
+
# Load any global plugins
|
179
176
|
Vagrant::Plugin::Manager.instance.load_plugins(plugins)
|
180
177
|
|
181
|
-
|
182
|
-
|
183
|
-
|
178
|
+
if !vagrantfile.config.vagrant.plugins.empty?
|
179
|
+
plugins = process_configured_plugins
|
180
|
+
end
|
184
181
|
|
185
182
|
# Call the hooks that does not require configurations to be loaded
|
186
183
|
# by using a "clean" action runner
|
@@ -909,6 +906,13 @@ module Vagrant
|
|
909
906
|
begin
|
910
907
|
@logger.debug("Creating: #{@local_data_path}")
|
911
908
|
FileUtils.mkdir_p(@local_data_path)
|
909
|
+
# Create the rgloader/loader file so we can use encoded files.
|
910
|
+
loader_file = @local_data_path.join("rgloader", "loader.rb")
|
911
|
+
if !loader_file.file?
|
912
|
+
source_loader = Vagrant.source_root.join("templates/rgloader.rb")
|
913
|
+
FileUtils.mkdir_p(@local_data_path.join("rgloader").to_s)
|
914
|
+
FileUtils.cp(source_loader.to_s, loader_file.to_s)
|
915
|
+
end
|
912
916
|
rescue Errno::EACCES
|
913
917
|
raise Errors::LocalDataDirectoryNotAccessible,
|
914
918
|
local_data_path: @local_data_path.to_s
|
@@ -917,18 +921,6 @@ module Vagrant
|
|
917
921
|
|
918
922
|
protected
|
919
923
|
|
920
|
-
# Unsets the internal vagrantfile and config_loader
|
921
|
-
# to force them to be regenerated. This is used after
|
922
|
-
# plugins have been loaded so that newly discovered
|
923
|
-
# plugin configurations are properly available
|
924
|
-
#
|
925
|
-
# @return [nil]
|
926
|
-
def post_plugins_reset!
|
927
|
-
@vagrantfile = nil
|
928
|
-
@config_loader = nil
|
929
|
-
nil
|
930
|
-
end
|
931
|
-
|
932
924
|
# Check for any local plugins defined within the Vagrantfile. If
|
933
925
|
# found, validate they are available. If they are not available,
|
934
926
|
# request to install them, or raise an exception
|
@@ -982,7 +974,10 @@ module Vagrant
|
|
982
974
|
name: spec.name, version: spec.version.to_s))
|
983
975
|
end
|
984
976
|
ui.info("\n")
|
985
|
-
|
977
|
+
# Force halt after installation and require command to be run again. This
|
978
|
+
# will proper load any new locally installed plugins which are now available.
|
979
|
+
ui.warn(I18n.t("vagrant.plugins.local.install_rerun_command"))
|
980
|
+
exit(-1)
|
986
981
|
end
|
987
982
|
Vagrant::Plugin::Manager.instance.local_file.installed_plugins
|
988
983
|
end
|
data/lib/vagrant/errors.rb
CHANGED
@@ -816,6 +816,30 @@ module Vagrant
|
|
816
816
|
error_key(:unimplemented_provider_action)
|
817
817
|
end
|
818
818
|
|
819
|
+
class UploadInvalidCompressionType < VagrantError
|
820
|
+
error_key(:upload_invalid_compression_type)
|
821
|
+
end
|
822
|
+
|
823
|
+
class UploadMissingExtractCapability < VagrantError
|
824
|
+
error_key(:upload_missing_extract_capability)
|
825
|
+
end
|
826
|
+
|
827
|
+
class UploadMissingTempCapability < VagrantError
|
828
|
+
error_key(:upload_missing_temp_capability)
|
829
|
+
end
|
830
|
+
|
831
|
+
class UploadSourceMissing < VagrantError
|
832
|
+
error_key(:upload_source_missing)
|
833
|
+
end
|
834
|
+
|
835
|
+
class UploaderError < VagrantError
|
836
|
+
error_key(:uploader_error)
|
837
|
+
end
|
838
|
+
|
839
|
+
class UploaderInterrupted < UploaderError
|
840
|
+
error_key(:uploader_interrupted)
|
841
|
+
end
|
842
|
+
|
819
843
|
class VagrantInterrupt < VagrantError
|
820
844
|
error_key(:interrupted)
|
821
845
|
end
|
@@ -968,6 +992,10 @@ module Vagrant
|
|
968
992
|
error_key(:power_off, "vagrant.actions.vm.export")
|
969
993
|
end
|
970
994
|
|
995
|
+
class WinRMInvalidCommunicator < VagrantError
|
996
|
+
error_key(:winrm_invalid_communicator)
|
997
|
+
end
|
998
|
+
|
971
999
|
class WSLVagrantVersionMismatch < VagrantError
|
972
1000
|
error_key(:wsl_vagrant_version_mismatch)
|
973
1001
|
end
|
data/lib/vagrant/machine.rb
CHANGED
@@ -41,12 +41,14 @@ module Vagrant
|
|
41
41
|
@system_file = StateFile.new(system_path) if system_path && system_path.file?
|
42
42
|
|
43
43
|
@local_file = nil
|
44
|
+
@globalized = @localized = false
|
44
45
|
end
|
45
46
|
|
46
47
|
# Enable global plugins
|
47
48
|
#
|
48
49
|
# @return [Hash] list of plugins
|
49
50
|
def globalize!
|
51
|
+
@globalized = true
|
50
52
|
@logger.debug("Enabling globalized plugins")
|
51
53
|
plugins = installed_plugins
|
52
54
|
bundler_init(plugins)
|
@@ -56,8 +58,9 @@ module Vagrant
|
|
56
58
|
# Enable environment local plugins
|
57
59
|
#
|
58
60
|
# @param [Environment] env Vagrant environment
|
59
|
-
# @return [Hash] list of plugins
|
61
|
+
# @return [Hash, nil] list of plugins
|
60
62
|
def localize!(env)
|
63
|
+
@localized = true
|
61
64
|
if env.local_data_path
|
62
65
|
@logger.debug("Enabling localized plugins")
|
63
66
|
@local_file = StateFile.new(env.local_data_path.join("plugins.json"))
|
@@ -68,6 +71,11 @@ module Vagrant
|
|
68
71
|
end
|
69
72
|
end
|
70
73
|
|
74
|
+
# @return [Boolean] local and global plugins are loaded
|
75
|
+
def ready?
|
76
|
+
@globalized && @localized
|
77
|
+
end
|
78
|
+
|
71
79
|
# Initialize bundler with given plugins
|
72
80
|
#
|
73
81
|
# @param [Hash] plugins List of plugins
|
@@ -335,6 +343,32 @@ module Vagrant
|
|
335
343
|
end
|
336
344
|
nil
|
337
345
|
end
|
346
|
+
|
347
|
+
# Check if the requested plugin is installed
|
348
|
+
#
|
349
|
+
# @param [String] name Name of plugin
|
350
|
+
# @param [String] version Specific version of the plugin
|
351
|
+
# @return [Boolean]
|
352
|
+
def plugin_installed?(name, version=nil)
|
353
|
+
# Make the requirement object
|
354
|
+
version = Gem::Requirement.new([version.to_s]) if version
|
355
|
+
|
356
|
+
# If plugins are loaded, check for match in loaded specs
|
357
|
+
if ready?
|
358
|
+
return installed_specs.any? do |s|
|
359
|
+
match = s.name == name
|
360
|
+
next match if !version
|
361
|
+
next match && version.satisfied_by?(s.version)
|
362
|
+
end
|
363
|
+
end
|
364
|
+
|
365
|
+
# Plugins are not loaded yet so check installed plugin data
|
366
|
+
plugin_info = installed_plugins[name]
|
367
|
+
return false if !plugin_info
|
368
|
+
return !!plugin_info if version.nil? || plugin_info["installed_gem_version"].nil?
|
369
|
+
installed_version = Gem::Version.new(plugin_info["installed_gem_version"])
|
370
|
+
version.satisfied_by?(installed_version)
|
371
|
+
end
|
338
372
|
end
|
339
373
|
end
|
340
374
|
end
|
@@ -124,6 +124,10 @@ module Vagrant
|
|
124
124
|
warn(trigger.warn)
|
125
125
|
end
|
126
126
|
|
127
|
+
if trigger.abort
|
128
|
+
trigger_abort(trigger.abort)
|
129
|
+
end
|
130
|
+
|
127
131
|
if trigger.run
|
128
132
|
run(trigger.run, trigger.on_error, trigger.exit_codes)
|
129
133
|
end
|
@@ -131,6 +135,10 @@ module Vagrant
|
|
131
135
|
if trigger.run_remote
|
132
136
|
run_remote(trigger.run_remote, trigger.on_error, trigger.exit_codes)
|
133
137
|
end
|
138
|
+
|
139
|
+
if trigger.ruby_block
|
140
|
+
execute_ruby(trigger.ruby_block)
|
141
|
+
end
|
134
142
|
end
|
135
143
|
end
|
136
144
|
|
@@ -241,6 +249,21 @@ module Vagrant
|
|
241
249
|
end
|
242
250
|
end
|
243
251
|
end
|
252
|
+
|
253
|
+
# Exits Vagrant immediately
|
254
|
+
#
|
255
|
+
# @param [Integer] code Code to exit Vagrant on
|
256
|
+
def trigger_abort(exit_code)
|
257
|
+
@machine.ui.warn(I18n.t("vagrant.trigger.abort"))
|
258
|
+
exit(exit_code)
|
259
|
+
end
|
260
|
+
|
261
|
+
# Calls the given ruby block for execution
|
262
|
+
#
|
263
|
+
# @param [Proc] ruby_block
|
264
|
+
def execute_ruby(ruby_block)
|
265
|
+
ruby_block.call(@env, @machine)
|
266
|
+
end
|
244
267
|
end
|
245
268
|
end
|
246
269
|
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
module Vagrant
|
2
|
+
module Util
|
3
|
+
class CurlHelper
|
4
|
+
|
5
|
+
# Hosts that do not require notification on redirect
|
6
|
+
SILENCED_HOSTS = [
|
7
|
+
"vagrantcloud.com".freeze,
|
8
|
+
"vagrantup.com".freeze
|
9
|
+
].freeze
|
10
|
+
|
11
|
+
def self.capture_output_proc(logger, ui, source=nil)
|
12
|
+
progress_data = ""
|
13
|
+
progress_regexp = /^\r\s*(\d.+?)\r/m
|
14
|
+
|
15
|
+
# Setup the proc that'll receive the real-time data from
|
16
|
+
# the downloader.
|
17
|
+
data_proc = Proc.new do |type, data|
|
18
|
+
# Type will always be "stderr" because that is the only
|
19
|
+
# type of data we're subscribed for notifications.
|
20
|
+
|
21
|
+
# Accumulate progress_data
|
22
|
+
progress_data << data
|
23
|
+
|
24
|
+
while true
|
25
|
+
# If the download has been redirected and we are no longer downloading
|
26
|
+
# from the original host, notify the user that the target host has
|
27
|
+
# changed from the source.
|
28
|
+
if progress_data.include?("Location")
|
29
|
+
location = progress_data.scan(/(^|[^\w-])Location: (.+?)$/m).flatten.compact.last.to_s.strip
|
30
|
+
if !location.empty?
|
31
|
+
location_uri = URI.parse(location)
|
32
|
+
|
33
|
+
unless location_uri.host.nil?
|
34
|
+
redirect_notify = false
|
35
|
+
logger.info("download redirected to #{location}")
|
36
|
+
source_uri = URI.parse(source)
|
37
|
+
source_host = source_uri.host.to_s.split(".", 2).last
|
38
|
+
location_host = location_uri.host.to_s.split(".", 2).last
|
39
|
+
if !redirect_notify && location_host != source_host && !SILENCED_HOSTS.include?(location_host)
|
40
|
+
ui.clear_line
|
41
|
+
ui.detail "Download redirected to host: #{location_uri.host}"
|
42
|
+
end
|
43
|
+
redirect_notify = true
|
44
|
+
end
|
45
|
+
end
|
46
|
+
progress_data.replace("")
|
47
|
+
break
|
48
|
+
end
|
49
|
+
# If we have a full amount of column data (two "\r") then
|
50
|
+
# we report new progress reports. Otherwise, just keep
|
51
|
+
# accumulating.
|
52
|
+
match = nil
|
53
|
+
check_match = true
|
54
|
+
|
55
|
+
while check_match
|
56
|
+
check_match = progress_regexp.match(progress_data)
|
57
|
+
if check_match
|
58
|
+
data = check_match[1].to_s
|
59
|
+
stop = progress_data.index(data) + data.length
|
60
|
+
progress_data.slice!(0, stop)
|
61
|
+
|
62
|
+
match = check_match
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
break if !match
|
67
|
+
|
68
|
+
# Ignore the first \r and split by whitespace to grab the columns
|
69
|
+
columns = data.strip.split(/\s+/)
|
70
|
+
|
71
|
+
# COLUMN DATA:
|
72
|
+
#
|
73
|
+
# 0 - % total
|
74
|
+
# 1 - Total size
|
75
|
+
# 2 - % received
|
76
|
+
# 3 - Received size
|
77
|
+
# 4 - % transferred
|
78
|
+
# 5 - Transferred size
|
79
|
+
# 6 - Average download speed
|
80
|
+
# 7 - Average upload speed
|
81
|
+
# 9 - Total time
|
82
|
+
# 9 - Time spent
|
83
|
+
# 10 - Time left
|
84
|
+
# 11 - Current speed
|
85
|
+
|
86
|
+
output = "Progress: #{columns[0]}% (Rate: #{columns[11]}/s, Estimated time remaining: #{columns[10]})"
|
87
|
+
ui.clear_line
|
88
|
+
ui.detail(output, new_line: false)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
return data_proc
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
@@ -6,6 +6,7 @@ require "digest/sha1"
|
|
6
6
|
require "vagrant/util/busy"
|
7
7
|
require "vagrant/util/platform"
|
8
8
|
require "vagrant/util/subprocess"
|
9
|
+
require "vagrant/util/curl_helper"
|
9
10
|
|
10
11
|
module Vagrant
|
11
12
|
module Util
|
@@ -88,85 +89,7 @@ module Vagrant
|
|
88
89
|
# tell us output so we can parse it out.
|
89
90
|
extra_subprocess_opts[:notify] = :stderr
|
90
91
|
|
91
|
-
|
92
|
-
progress_regexp = /^\r\s*(\d.+?)\r/m
|
93
|
-
|
94
|
-
# Setup the proc that'll receive the real-time data from
|
95
|
-
# the downloader.
|
96
|
-
data_proc = Proc.new do |type, data|
|
97
|
-
# Type will always be "stderr" because that is the only
|
98
|
-
# type of data we're subscribed for notifications.
|
99
|
-
|
100
|
-
# Accumulate progress_data
|
101
|
-
progress_data << data
|
102
|
-
|
103
|
-
while true
|
104
|
-
# If the download has been redirected and we are no longer downloading
|
105
|
-
# from the original host, notify the user that the target host has
|
106
|
-
# changed from the source.
|
107
|
-
if progress_data.include?("Location")
|
108
|
-
location = progress_data.scan(/(^|[^\w-])Location: (.+?)$/m).flatten.compact.last.to_s.strip
|
109
|
-
if !location.empty?
|
110
|
-
location_uri = URI.parse(location)
|
111
|
-
|
112
|
-
unless location_uri.host.nil?
|
113
|
-
@logger.info("download redirected to #{location}")
|
114
|
-
source_uri = URI.parse(source)
|
115
|
-
source_host = source_uri.host.to_s.split(".", 2).last
|
116
|
-
location_host = location_uri.host.to_s.split(".", 2).last
|
117
|
-
if !@redirect_notify && location_host != source_host && !SILENCED_HOSTS.include?(location_host)
|
118
|
-
@ui.clear_line
|
119
|
-
@ui.detail "Download redirected to host: #{location_uri.host}"
|
120
|
-
end
|
121
|
-
@redirect_notify = true
|
122
|
-
end
|
123
|
-
end
|
124
|
-
progress_data.replace("")
|
125
|
-
break
|
126
|
-
end
|
127
|
-
|
128
|
-
# If we have a full amount of column data (two "\r") then
|
129
|
-
# we report new progress reports. Otherwise, just keep
|
130
|
-
# accumulating.
|
131
|
-
match = nil
|
132
|
-
check_match = true
|
133
|
-
|
134
|
-
while check_match
|
135
|
-
check_match = progress_regexp.match(progress_data)
|
136
|
-
if check_match
|
137
|
-
data = check_match[1].to_s
|
138
|
-
stop = progress_data.index(data) + data.length
|
139
|
-
progress_data.slice!(0, stop)
|
140
|
-
|
141
|
-
match = check_match
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
|
-
break if !match
|
146
|
-
|
147
|
-
# Ignore the first \r and split by whitespace to grab the columns
|
148
|
-
columns = data.strip.split(/\s+/)
|
149
|
-
|
150
|
-
# COLUMN DATA:
|
151
|
-
#
|
152
|
-
# 0 - % total
|
153
|
-
# 1 - Total size
|
154
|
-
# 2 - % received
|
155
|
-
# 3 - Received size
|
156
|
-
# 4 - % transferred
|
157
|
-
# 5 - Transferred size
|
158
|
-
# 6 - Average download speed
|
159
|
-
# 7 - Average upload speed
|
160
|
-
# 9 - Total time
|
161
|
-
# 9 - Time spent
|
162
|
-
# 10 - Time left
|
163
|
-
# 11 - Current speed
|
164
|
-
|
165
|
-
output = "Progress: #{columns[0]}% (Rate: #{columns[11]}/s, Estimated time remaining: #{columns[10]})"
|
166
|
-
@ui.clear_line
|
167
|
-
@ui.detail(output, new_line: false)
|
168
|
-
end
|
169
|
-
end
|
92
|
+
data_proc = Vagrant::Util::CurlHelper.capture_output_proc(@logger, @ui, @source)
|
170
93
|
end
|
171
94
|
|
172
95
|
@logger.info("Downloader starting download: ")
|
@@ -17,39 +17,52 @@ module Vagrant
|
|
17
17
|
|
18
18
|
# systemd-networkd.service is in use
|
19
19
|
#
|
20
|
+
# @param [Vagrant::Plugin::V2::Communicator] comm Guest communicator
|
20
21
|
# @return [Boolean]
|
21
22
|
def systemd_networkd?(comm)
|
22
|
-
comm.test("
|
23
|
+
comm.test("systemctl -q is-active systemd-networkd.service", sudo: true)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Check if given service is controlled by systemd
|
27
|
+
#
|
28
|
+
# @param [Vagrant::Plugin::V2::Communicator] comm Guest communicator
|
29
|
+
# @param [String] service_name Name of the service to check
|
30
|
+
# @return [Boolean]
|
31
|
+
def systemd_controlled?(comm, service_name)
|
32
|
+
comm.test("systemctl -q is-active #{service_name}", sudo: true)
|
23
33
|
end
|
24
34
|
|
25
35
|
# systemd hostname set is via hostnamectl
|
26
36
|
#
|
37
|
+
# @param [Vagrant::Plugin::V2::Communicator] comm Guest communicator
|
27
38
|
# @return [Boolean]
|
28
39
|
def hostnamectl?(comm)
|
29
|
-
comm.test("hostnamectl")
|
40
|
+
comm.test("command -v hostnamectl")
|
30
41
|
end
|
31
42
|
|
32
43
|
## netplan helpers
|
33
44
|
|
34
45
|
# netplan is installed
|
35
46
|
#
|
47
|
+
# @param [Vagrant::Plugin::V2::Communicator] comm Guest communicator
|
36
48
|
# @return [Boolean]
|
37
49
|
def netplan?(comm)
|
38
|
-
comm.test("
|
50
|
+
comm.test("command -v netplan")
|
39
51
|
end
|
40
52
|
|
41
53
|
## nmcli helpers
|
42
54
|
|
43
55
|
# nmcli is installed
|
44
56
|
#
|
57
|
+
# @param [Vagrant::Plugin::V2::Communicator] comm Guest communicator
|
45
58
|
# @return [Boolean]
|
46
59
|
def nmcli?(comm)
|
47
|
-
comm.test("
|
60
|
+
comm.test("command -v nmcli")
|
48
61
|
end
|
49
62
|
|
50
63
|
# NetworkManager currently controls device
|
51
64
|
#
|
52
|
-
# @param
|
65
|
+
# @param [Vagrant::Plugin::V2::Communicator] comm Guest communicator
|
53
66
|
# @param device_name [String]
|
54
67
|
# @return [Boolean]
|
55
68
|
def nm_controlled?(comm, device_name)
|