summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2020-07-13 19:32:23 -0700
committerGitHub <noreply@github.com>2020-07-13 19:32:23 -0700
commitc1945a7d943a76044adfe66a71456361f14a8594 (patch)
tree84a9a0de0bfbb79a58c37f6e639ecb6a28500c90
parent02dda427ad9f25984b4428a63eabb6db1f1f1a4c (diff)
parent9827c03f948450a592e4cad8c46de65ac757a507 (diff)
downloadchef-c1945a7d943a76044adfe66a71456361f14a8594.tar.gz
Merge pull request #10157 from chef/fix-execute-resource-with-integer-user
Fix execute resource with integer user parameter.
-rw-r--r--lib/chef/resource/execute.rb4
-rw-r--r--spec/unit/resource/execute_spec.rb10
2 files changed, 12 insertions, 2 deletions
diff --git a/lib/chef/resource/execute.rb b/lib/chef/resource/execute.rb
index 2584a6e4b5..ff2043596b 100644
--- a/lib/chef/resource/execute.rb
+++ b/lib/chef/resource/execute.rb
@@ -630,11 +630,11 @@ class Chef
end
# if domain is provided in both username and domain
- if specified_user && ((specified_user.include? '\\') || (specified_user.include? "@")) && specified_domain
+ if specified_user.kind_of?(String) && ((specified_user.include? '\\') || (specified_user.include? "@")) && specified_domain
raise ArgumentError, "The domain is provided twice. Username: `#{specified_user}`, Domain: `#{specified_domain}`. Please specify domain only once."
end
- if ! specified_user.nil? && specified_domain.nil?
+ if specified_user.kind_of?(String) && specified_domain.nil?
# Splitting username of format: Domain\Username
domain_and_user = user.split('\\')
diff --git a/spec/unit/resource/execute_spec.rb b/spec/unit/resource/execute_spec.rb
index 6c61beff34..0ce29da965 100644
--- a/spec/unit/resource/execute_spec.rb
+++ b/spec/unit/resource/execute_spec.rb
@@ -63,6 +63,16 @@ describe Chef::Resource::Execute do
expect(identity[:user]).to eq("user")
end
end
+
+ context "when username is passed as an integer" do
+ let(:username) { 499 }
+
+ it "correctly parses the user and domain" do
+ identity = resource.qualify_user(username, password, domain)
+ expect(identity[:domain]).to eq(nil)
+ expect(identity[:user]).to eq(499)
+ end
+ end
end
shared_examples_for "it received valid credentials" do