diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2015-06-03 07:50:10 -0700 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2015-06-03 07:50:10 -0700 |
commit | c8d94a0893561f61178f9da833b0fe204dd8afa0 (patch) | |
tree | d8ed2159577dc9141932457e5689785fc8c92c1b /lib/chef/provider/package/zypper.rb | |
parent | 770b1b5475d871ed7affa1fef605d64be1922457 (diff) | |
download | chef-c8d94a0893561f61178f9da833b0fe204dd8afa0.tar.gz |
wire zypper_package up to the DSL
i'm not sure how anybody has been using this resource, but think
we may have broken this in 12.0.0 at some point, at any rate this
will make it a lot easier for people to actually use.
Diffstat (limited to 'lib/chef/provider/package/zypper.rb')
-rw-r--r-- | lib/chef/provider/package/zypper.rb | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/lib/chef/provider/package/zypper.rb b/lib/chef/provider/package/zypper.rb index f77fb27013..c2a3ac4ba8 100644 --- a/lib/chef/provider/package/zypper.rb +++ b/lib/chef/provider/package/zypper.rb @@ -29,47 +29,48 @@ class Chef class Package class Zypper < Chef::Provider::Package + provides :zypper_package, os: "linux" + def load_current_resource - # FIXME: zypper needs a Chef::Resource::ZypperPackage wired up to :zypper_package - @current_resource = Chef::Resource::Package.new(@new_resource.name) - @current_resource.package_name(@new_resource.package_name) + @current_resource = Chef::Resource::ZypperPackage.new(new_resource.name) + current_resource.package_name(new_resource.package_name) is_installed=false is_out_of_date=false version='' oud_version='' - Chef::Log.debug("#{@new_resource} checking zypper") - status = shell_out_with_timeout("zypper --non-interactive info #{@new_resource.package_name}") + Chef::Log.debug("#{new_resource} checking zypper") + status = shell_out_with_timeout("zypper --non-interactive info #{new_resource.package_name}") status.stdout.each_line do |line| case line when /^Version: (.+)$/ version = $1 - Chef::Log.debug("#{@new_resource} version #{$1}") + Chef::Log.debug("#{new_resource} version #{$1}") when /^Installed: Yes$/ is_installed=true - Chef::Log.debug("#{@new_resource} is installed") + Chef::Log.debug("#{new_resource} is installed") when /^Installed: No$/ is_installed=false - Chef::Log.debug("#{@new_resource} is not installed") + Chef::Log.debug("#{new_resource} is not installed") when /^Status: out-of-date \(version (.+) installed\)$/ is_out_of_date=true oud_version=$1 - Chef::Log.debug("#{@new_resource} out of date version #{$1}") + Chef::Log.debug("#{new_resource} out of date version #{$1}") end end if is_installed==false @candidate_version=version - @current_resource.version(nil) + current_resource.version(nil) end if is_installed==true if is_out_of_date==true - @current_resource.version(oud_version) + current_resource.version(oud_version) @candidate_version=version else - @current_resource.version(version) + current_resource.version(version) @candidate_version=version end end @@ -78,7 +79,7 @@ class Chef raise Chef::Exceptions::Package, "zypper failed - #{status.inspect}!" end - @current_resource + current_resource end def zypper_version() |