summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNimesh-Msys <nimesh.patni@msystechnologies.com>2019-01-25 11:55:31 +0530
committerNimesh-Msys <nimesh.patni@msystechnologies.com>2019-02-04 11:50:24 +0530
commitcdb329bb9ff22f84c445410e1fc819c04bd94699 (patch)
tree84d365d4a640d8b6500e6138aeafce8141e8402e
parent0f4bd34e95111d755b646d85150698626e27fa3d (diff)
downloadchef-cdb329bb9ff22f84c445410e1fc819c04bd94699.tar.gz
Prefer user defined flags over the default one
Signed-off-by: Nimesh-Msys <nimesh.patni@msystechnologies.com>
-rw-r--r--lib/chef/provider/powershell_script.rb4
-rw-r--r--spec/unit/provider/powershell_script_spec.rb29
2 files changed, 21 insertions, 12 deletions
diff --git a/lib/chef/provider/powershell_script.rb b/lib/chef/provider/powershell_script.rb
index a903f83107..34d2655c80 100644
--- a/lib/chef/provider/powershell_script.rb
+++ b/lib/chef/provider/powershell_script.rb
@@ -60,8 +60,8 @@ class Chef
def flags
interpreter_flags = [*default_interpreter_flags].join(" ")
- if ! (new_resource.flags.nil?)
- interpreter_flags = [new_resource.flags, interpreter_flags].join(" ")
+ unless new_resource.flags.nil?
+ interpreter_flags = [interpreter_flags, new_resource.flags].join(" ")
end
interpreter_flags
diff --git a/spec/unit/provider/powershell_script_spec.rb b/spec/unit/provider/powershell_script_spec.rb
index 79d84e61dc..61c415f88d 100644
--- a/spec/unit/provider/powershell_script_spec.rb
+++ b/spec/unit/provider/powershell_script_spec.rb
@@ -43,6 +43,11 @@ describe Chef::Provider::PowershellScript, "action_run" do
new_resource
end
+ def set_user_defined_flag
+ new_resource.flags "-ExecutionPolicy RemoteSigned"
+ provider
+ end
+
let(:provider) do
Chef::Provider::PowershellScript.new(new_resource, run_context)
end
@@ -78,23 +83,22 @@ describe Chef::Provider::PowershellScript, "action_run" do
end
let(:execution_policy_flag) do
- execution_policy_index = 0
provider_flags = provider.flags.split(" ")
- execution_policy_specified = false
-
- provider_flags.find do |value|
- execution_policy_index += 1
- execution_policy_specified = value.casecmp("-ExecutionPolicy".downcase) == 0
- end
+ # Last occurance of "executionpolicy"
+ execution_policy_index = provider_flags.map(&:downcase).rindex("-executionpolicy")
- execution_policy = execution_policy_specified ? provider_flags[execution_policy_index] : nil
+ execution_policy_index ? provider_flags[execution_policy_index + 1] : nil
end
context "when running with an unspecified PowerShell version" do
let(:powershell_version) { nil }
- it "sets the -ExecutionPolicy flag to 'Unrestricted' by default" do
+ it "sets default -ExecutionPolicy flag to 'Unrestricted'" do
expect(execution_policy_flag.downcase).to eq("unrestricted".downcase)
end
+ it "sets user defined -ExecutionPolicy flag to 'RemoteSigned'" do
+ set_user_defined_flag
+ expect(execution_policy_flag.downcase).to eq("RemoteSigned".downcase)
+ end
end
{ "2.0" => "Unrestricted",
@@ -106,9 +110,14 @@ describe Chef::Provider::PowershellScript, "action_run" do
let(:powershell_version) { version_policy[0].to_f }
context "when running PowerShell version #{version_policy[0]}" do
let(:powershell_version) { version_policy[0].to_f }
- it "sets the -ExecutionPolicy flag to '#{version_policy[1]}'" do
+
+ it "sets default -ExecutionPolicy flag to '#{version_policy[1]}'" do
expect(execution_policy_flag.downcase).to eq(version_policy[1].downcase)
end
+ it "sets user defined -ExecutionPolicy flag to 'RemoteSigned'" do
+ set_user_defined_flag
+ expect(execution_policy_flag.downcase).to eq("RemoteSigned".downcase)
+ end
end
end
end