summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManick Vel <mkumaravel@msystechnologies.com>2022-01-31 21:04:46 +0530
committerpratixha <pratiksha.prajapati@msystechnologies.com>2022-05-25 12:13:23 +0530
commit0cf7c2a8a50902d3401ead52892d2989dd303ded (patch)
treeb2afb9b7b42782a357fe7470c5b2277e2e0b53f0
parent763c5cf942cc5c191226066c4518458ef2c15cb3 (diff)
downloadchef-0cf7c2a8a50902d3401ead52892d2989dd303ded.tar.gz
Added resolve source to version related changes
Signed-off-by: Manick Vel <mkumaravel@msystechnologies.com>
-rw-r--r--lib/chef/provider/package/zypper.rb20
1 files changed, 11 insertions, 9 deletions
diff --git a/lib/chef/provider/package/zypper.rb b/lib/chef/provider/package/zypper.rb
index 89aef8b9a6..f7663201c1 100644
--- a/lib/chef/provider/package/zypper.rb
+++ b/lib/chef/provider/package/zypper.rb
@@ -73,20 +73,22 @@ class Chef
def candidate_version
if new_resource.source
logger.trace("#{new_resource} checking rpm status")
- shell_out!("rpm", "-qp", "--queryformat", "%{NAME} %{VERSION}-%{RELEASE}\n", new_resource.source).stdout.each_line do |line|
- case line
- when /^(\S+)\s(\S+)$/
- current_resource.package_name($1)
- new_resource.version($2)
- @candidate_version = $2
- end
- end
+ resolve_source_to_version
else
@candidate_version ||= package_name_array.each_with_index.map { |pkg, i| available_version(i) }
end
end
+ def resolve_source_to_version
+ shell_out!("rpm -qp --queryformat '%{NAME} %{EPOCH} %{VERSION} %{RELEASE} %{ARCH}\n' #{new_resource.source}").stdout.each_line do |line|
+ case line
+ when /^(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)$/
+ return Version.new($1, "#{$2 == "(none)" ? "0" : $2}:#{$3}-#{$4}", $5)
+ end
+ end
+ end
+
def resolve_current_version(package_name)
latest_version = current_version = nil
is_installed = false
@@ -155,7 +157,7 @@ class Chef
end
def zypper_package(command, global_options, *options, names, versions)
- zipped_names = new_resource.source ? new_resource.source : zip(names, versions)
+ zipped_names = new_resource.source || zip(names, versions)
if zypper_version < 1.0
shell_out!("zypper", global_options, gpg_checks, command, *options, "-y", names)
else