summaryrefslogtreecommitdiff
path: root/lib/chef/provider/package/zypper.rb
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2015-06-03 07:50:10 -0700
committerLamont Granquist <lamont@scriptkiddie.org>2015-06-03 07:50:10 -0700
commitc8d94a0893561f61178f9da833b0fe204dd8afa0 (patch)
treed8ed2159577dc9141932457e5689785fc8c92c1b /lib/chef/provider/package/zypper.rb
parent770b1b5475d871ed7affa1fef605d64be1922457 (diff)
downloadchef-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.rb27
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()