vagrant-unbundled 2.1.4.0 → 2.2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +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)
|