diff options
author | Tim Smith <tsmith@chef.io> | 2020-07-13 19:32:23 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-13 19:32:23 -0700 |
commit | c1945a7d943a76044adfe66a71456361f14a8594 (patch) | |
tree | 84a9a0de0bfbb79a58c37f6e639ecb6a28500c90 | |
parent | 02dda427ad9f25984b4428a63eabb6db1f1f1a4c (diff) | |
parent | 9827c03f948450a592e4cad8c46de65ac757a507 (diff) | |
download | chef-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.rb | 4 | ||||
-rw-r--r-- | spec/unit/resource/execute_spec.rb | 10 |
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 |