summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan McLellan <btm@loftninjas.org>2017-10-16 21:42:38 -0400
committerGitHub <noreply@github.com>2017-10-16 21:42:38 -0400
commit2a7c69b0013731f3392c63de05dea6611ff2ee53 (patch)
treec88ba95d21b5b2e97a4e29dcd3d3bfc4df2dc43d
parent87674bfceb5f818b96388aa786121546f1d67a39 (diff)
parentf04a1c83c84bf5108e4346eff20c472de2f51334 (diff)
downloadchef-2a7c69b0013731f3392c63de05dea6611ff2ee53.tar.gz
Merge pull request #6437 from MsysTechnologiesllc/dh/array_choco_pkg_artifactory
[MSYS-647] array support for choco pkg from artifactory
-rw-r--r--lib/chef/provider/package/chocolatey.rb21
-rw-r--r--spec/unit/provider/package/chocolatey_spec.rb4
2 files changed, 16 insertions, 9 deletions
diff --git a/lib/chef/provider/package/chocolatey.rb b/lib/chef/provider/package/chocolatey.rb
index c832116377..3536d807ad 100644
--- a/lib/chef/provider/package/chocolatey.rb
+++ b/lib/chef/provider/package/chocolatey.rb
@@ -237,15 +237,20 @@ EOS
#
# @return [Hash] name-to-version mapping of available packages
def available_packages
- @available_packages ||=
- begin
- cmd = [ "list -r #{package_name_array.join ' '}" ]
- cmd.push( "-source #{new_resource.source}" ) if new_resource.source
- raw = parse_list_output(*cmd)
- raw.keys.each_with_object({}) do |name, available|
- available[name] = desired_name_versions[name] || raw[name]
+ return @available_packages if @available_packages
+ @available_packages = {}
+ package_name_array.each do |pkg|
+ available_versions =
+ begin
+ cmd = [ "list -r #{pkg}" ]
+ cmd.push( "-source #{new_resource.source}" ) if new_resource.source
+ raw = parse_list_output(*cmd)
+ raw.keys.each_with_object({}) do |name, available|
+ available[name] = desired_name_versions[name] || raw[name]
+ end
end
- end
+ @available_packages.merge! available_versions
+ end
@available_packages
end
diff --git a/spec/unit/provider/package/chocolatey_spec.rb b/spec/unit/provider/package/chocolatey_spec.rb
index 68b121960c..afc068041d 100644
--- a/spec/unit/provider/package/chocolatey_spec.rb
+++ b/spec/unit/provider/package/chocolatey_spec.rb
@@ -59,7 +59,9 @@ Git|2.6.2
munin-node|1.6.1.20130823
EOF
remote_list_obj = double(stdout: remote_list_stdout)
- allow(provider).to receive(:shell_out!).with("#{choco_exe} list -r #{package_names.join ' '}#{args}", { :returns => [0], timeout: timeout }).and_return(remote_list_obj)
+ package_names.each do |pkg|
+ allow(provider).to receive(:shell_out!).with("#{choco_exe} list -r #{pkg}#{args}", { :returns => [0], timeout: timeout }).and_return(remote_list_obj)
+ end
end
describe "#initialize" do