summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/provider')
-rwxr-xr-xlib/puppet/provider/package/darwinport.rb3
-rwxr-xr-xlib/puppet/provider/package/dpkg.rb11
-rwxr-xr-xlib/puppet/provider/package/freebsd.rb4
-rwxr-xr-xlib/puppet/provider/package/gem.rb11
-rwxr-xr-xlib/puppet/provider/package/openbsd.rb6
-rwxr-xr-xlib/puppet/provider/package/ports.rb2
-rwxr-xr-xlib/puppet/provider/package/rpm.rb2
-rw-r--r--lib/puppet/provider/package/up2date.rb2
-rwxr-xr-xlib/puppet/provider/package/yum.rb2
9 files changed, 19 insertions, 24 deletions
diff --git a/lib/puppet/provider/package/darwinport.rb b/lib/puppet/provider/package/darwinport.rb
index ccf0ae82d..7c19a90a6 100755
--- a/lib/puppet/provider/package/darwinport.rb
+++ b/lib/puppet/provider/package/darwinport.rb
@@ -8,7 +8,7 @@ Puppet::Type.type(:package).provide :darwinport do
# list out all of the packages
open("| #{PORT} list installed") { |process|
regex = %r{(\S+)\s+@(\S+)\s+(\S+)}
- fields = [:name, :version, :location]
+ fields = [:name, :ensure, :location]
hash = {}
# now turn each returned line into a package object
@@ -21,7 +21,6 @@ Puppet::Type.type(:package).provide :darwinport do
}
hash.delete :location
- hash[:ensure] = hash[:version]
yield hash.dup
else
raise Puppet::DevError,
diff --git a/lib/puppet/provider/package/dpkg.rb b/lib/puppet/provider/package/dpkg.rb
index 690f1ca85..cb68cd97e 100755
--- a/lib/puppet/provider/package/dpkg.rb
+++ b/lib/puppet/provider/package/dpkg.rb
@@ -18,7 +18,7 @@ Puppet::Type.type(:package).provide :dpkg do
open("| #{command(:dpkg)} -l") { |process|
# our regex for matching dpkg output
regex = %r{^(\S+)\s+(\S+)\s+(\S+)\s+(.+)$}
- fields = [:status, :name, :version, :description]
+ fields = [:status, :name, :ensure, :description]
hash = {}
5.times { process.gets } # throw away the header
@@ -54,7 +54,7 @@ Puppet::Type.type(:package).provide :dpkg do
# stupid stupid
oldcol = ENV["COLUMNS"]
ENV["COLUMNS"] = "500"
- fields = [:desired, :status, :error, :name, :version, :description]
+ fields = [:desired, :status, :error, :name, :ensure, :description]
hash = {}
# list out our specific package
@@ -87,13 +87,12 @@ Puppet::Type.type(:package).provide :dpkg do
if hash[:error] != " "
raise Puppet::PackageError.new(
"Package %s, version %s is in error state: %s" %
- [hash[:name], hash[:version], hash[:error]]
+ [hash[:name], hash[:ensure], hash[:error]]
)
end
- if hash[:status] == "i"
- hash[:ensure] = :present
- else
+ # DPKG can discuss packages that are no longer installed, so allow that.
+ if hash[:status] != "i"
hash[:ensure] = :absent
end
diff --git a/lib/puppet/provider/package/freebsd.rb b/lib/puppet/provider/package/freebsd.rb
index cd484d47a..8d44870e4 100755
--- a/lib/puppet/provider/package/freebsd.rb
+++ b/lib/puppet/provider/package/freebsd.rb
@@ -32,7 +32,7 @@ Puppet::Type.type(:package).provide :freebsd, :parent => :openbsd do
def query
self.class.list
- if @model[:version]
+ if @model.is(:ensure)
return :listed
else
return nil
@@ -40,7 +40,7 @@ Puppet::Type.type(:package).provide :freebsd, :parent => :openbsd do
end
def uninstall
- cmd = "#{command(:delete)} %s-%s" % [@model[:name], @model[:version]]
+ cmd = "#{command(:delete)} %s-%s" % [@model[:name], @model[:ensure]]
begin
output = execute(cmd)
rescue Puppet::ExecutionFailure
diff --git a/lib/puppet/provider/package/gem.rb b/lib/puppet/provider/package/gem.rb
index 227541ea0..f6c84c23c 100755
--- a/lib/puppet/provider/package/gem.rb
+++ b/lib/puppet/provider/package/gem.rb
@@ -21,7 +21,6 @@ Puppet::Type.type(:package).provide :gem do
list = execute(command).split("\n\n").collect do |set|
if gemhash = gemsplit(set)
gemhash[:provider] = :gem
- gemhash[:ensure] = gemhash[:version][0]
gemhash
else
nil
@@ -43,10 +42,10 @@ Puppet::Type.type(:package).provide :gem do
when /^\*\*\*/: return nil
when /^(\S+)\s+\((.+)\)\n/
name = $1
- version = $2.split(/,\s*/)
+ version = $2.split(/,\s*/)[0]
return {
:name => name,
- :version => version
+ :ensure => version
}
else
Puppet.warning "Could not match %s" % desc
@@ -62,8 +61,8 @@ Puppet::Type.type(:package).provide :gem do
def install(useversion = true)
command = "#{command(:gem)} install "
- if @model[:version] and useversion
- command += "-v %s " % @model[:version]
+ if (! @model.should(:ensure).is_a? Symbol) and useversion
+ command += "-v %s " % @model[:ensure]
end
if source = @model[:source]
command += source
@@ -82,7 +81,7 @@ Puppet::Type.type(:package).provide :gem do
# This always gets the latest version available.
hash = self.class.gemlist(:justme => @model[:name])
- return hash[:version][0]
+ return hash[:ensure]
end
def query
diff --git a/lib/puppet/provider/package/openbsd.rb b/lib/puppet/provider/package/openbsd.rb
index 05dee8656..2a0cb87d8 100755
--- a/lib/puppet/provider/package/openbsd.rb
+++ b/lib/puppet/provider/package/openbsd.rb
@@ -13,7 +13,7 @@ Puppet::Type.type(:package).provide :openbsd do
execpipe(listcmd()) do |process|
# our regex for matching pkg_info output
regex = %r{^(\S+)-([^-\s]+)\s+(.+)}
- fields = [:name, :version, :description]
+ fields = [:name, :ensure, :description]
hash = {}
# now turn each returned line into a package object
@@ -25,7 +25,6 @@ Puppet::Type.type(:package).provide :openbsd do
}
yup = nil
name = hash[:name]
- hash[:ensure] = :present
hash[:provider] = self.name
@@ -83,8 +82,7 @@ Puppet::Type.type(:package).provide :openbsd do
# Search for the version info
if info =~ /Information for #{@model[:name]}-(\S+)/
- hash[:version] = $1
- hash[:ensure] = :present
+ hash[:ensure] = $1
else
return nil
end
diff --git a/lib/puppet/provider/package/ports.rb b/lib/puppet/provider/package/ports.rb
index 6a46dcc03..c3d18141a 100755
--- a/lib/puppet/provider/package/ports.rb
+++ b/lib/puppet/provider/package/ports.rb
@@ -79,7 +79,7 @@ Puppet::Type.type(:package).provide :ports, :parent => :freebsd do
def query
self.class.list
- if @model[:version] and @model.is(:ensure) != :absent
+ if @model.is(:ensure) and @model.is(:ensure) != :absent
return :listed
else
return nil
diff --git a/lib/puppet/provider/package/rpm.rb b/lib/puppet/provider/package/rpm.rb
index b82700770..0c9c26d42 100755
--- a/lib/puppet/provider/package/rpm.rb
+++ b/lib/puppet/provider/package/rpm.rb
@@ -58,7 +58,7 @@ Puppet::Type.type(:package).provide :rpm do
regex = %r{^(\S+)\s+(\S+)}
#fields = [:name, :ensure, :description]
- fields = [:name, :version]
+ fields = [:name, :ensure]
hash = {}
if match = regex.match(output)
fields.zip(match.captures) { |field,value|
diff --git a/lib/puppet/provider/package/up2date.rb b/lib/puppet/provider/package/up2date.rb
index 51c01317e..8cceb3735 100644
--- a/lib/puppet/provider/package/up2date.rb
+++ b/lib/puppet/provider/package/up2date.rb
@@ -39,7 +39,7 @@ Puppet.type(:package).provide :up2date, :parent => :rpm do
else
# up2date didn't find updates, pretend the current
# version is the latest
- return @model[:version]
+ return @model[:ensure]
end
end
diff --git a/lib/puppet/provider/package/yum.rb b/lib/puppet/provider/package/yum.rb
index 587b1911e..5be838746 100755
--- a/lib/puppet/provider/package/yum.rb
+++ b/lib/puppet/provider/package/yum.rb
@@ -36,7 +36,7 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm do
else
# Yum didn't find updates, pretend the current
# version is the latest
- return @model[:version]
+ return @model[:ensure]
end
end