From e6098f6c4f725c3450ae2bb14940aceb73a8266d Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Wed, 18 Nov 2015 12:51:18 -0800 Subject: [PATCH] rename to powershell_elevated_interactive --- CHANGELOG.md | 3 ++- plugins/provisioners/shell/config.rb | 8 ++++---- plugins/provisioners/shell/provisioner.rb | 2 +- test/unit/plugins/provisioners/shell/config_test.rb | 2 +- website/docs/source/v2/provisioning/shell.html.md | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 697fcaf43..652583e2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,7 +30,8 @@ IMPROVEMENTS: - core: allow removal of all box versions with `--all` flag [GH-3462] - command/plugin: Add `--plugin-clean-sources` flag to reset plugin install sources, primarily for corp firewalls. [GH-4738] - - communicators/winrm: Support interactive mode for elevated scripts [GH-6185] + - provisioners/shell: Support interactive mode for elevated PowerShell + scripts [GH-6185] - provisioners/ansible: add new `force_remote_user` option to control whether `ansible_ssh_user` parameter should be applied or not [GH-6348] - provisioners/ansible: show a warning when running from a Windows Host [GH-5292] diff --git a/plugins/provisioners/shell/config.rb b/plugins/provisioners/shell/config.rb index aaadb8081..24021e9de 100644 --- a/plugins/provisioners/shell/config.rb +++ b/plugins/provisioners/shell/config.rb @@ -12,7 +12,7 @@ module VagrantPlugins attr_accessor :keep_color attr_accessor :name attr_accessor :powershell_args - attr_accessor :elevated_interactive + attr_accessor :powershell_elevated_interactive def initialize @args = UNSET_VALUE @@ -24,7 +24,7 @@ module VagrantPlugins @keep_color = UNSET_VALUE @name = UNSET_VALUE @powershell_args = UNSET_VALUE - @elevated_interactive = UNSET_VALUE + @powershell_elevated_interactive = UNSET_VALUE end def finalize! @@ -37,7 +37,7 @@ module VagrantPlugins @keep_color = false if @keep_color == UNSET_VALUE @name = nil if @name == UNSET_VALUE @powershell_args = "-ExecutionPolicy Bypass" if @powershell_args == UNSET_VALUE - @elevated_interactive = false if @elevated_interactive == UNSET_VALUE + @powershell_elevated_interactive = false if @powershell_elevated_interactive == UNSET_VALUE if @args && args_valid? @args = @args.is_a?(Array) ? @args.map { |a| a.to_s } : @args.to_s @@ -81,7 +81,7 @@ module VagrantPlugins errors << I18n.t("vagrant.provisioners.shell.args_bad_type") end - if elevated_interactive && !privileged + if powershell_elevated_interactive && !privileged errors << I18n.t("vagrant.provisioners.shell.interactive_not_elevated") end diff --git a/plugins/provisioners/shell/provisioner.rb b/plugins/provisioners/shell/provisioner.rb index 1abfc4889..6899f11da 100644 --- a/plugins/provisioners/shell/provisioner.rb +++ b/plugins/provisioners/shell/provisioner.rb @@ -137,7 +137,7 @@ module VagrantPlugins end # Execute it with sudo - comm.sudo(command, { elevated: config.privileged, interactive: config.elevated_interactive }) do |type, data| + comm.sudo(command, { elevated: config.privileged, interactive: config.powershell_elevated_interactive }) do |type, data| handle_comm(type, data) end end diff --git a/test/unit/plugins/provisioners/shell/config_test.rb b/test/unit/plugins/provisioners/shell/config_test.rb index 582740162..c0f04dd2f 100644 --- a/test/unit/plugins/provisioners/shell/config_test.rb +++ b/test/unit/plugins/provisioners/shell/config_test.rb @@ -88,7 +88,7 @@ describe "VagrantPlugins::Shell::Config" do it "returns an error if elevated_interactive is true but privileged is false" do subject.path = file_that_exists - subject.elevated_interactive = true + subject.powershell_elevated_interactive = true subject.privileged = false subject.finalize! diff --git a/website/docs/source/v2/provisioning/shell.html.md b/website/docs/source/v2/provisioning/shell.html.md index 783ce948e..d5b0d6174 100644 --- a/website/docs/source/v2/provisioning/shell.html.md +++ b/website/docs/source/v2/provisioning/shell.html.md @@ -66,7 +66,7 @@ The remainder of the available options are optional: * `powershell_args` (string) - Extra arguments to pass to `PowerShell` if you're provisioning with PowerShell on Windows. -* `elevated_interactive` (boolean) - Run an elevated script in interactive mode +* `powershell_elevated_interactive` (boolean) - Run an elevated script in interactive mode on Windows. By default this is "false". Must also be `privileged`. Be sure to enable auto-login for Windows as the user must be logged in for interactive mode to work.