summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authormpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>2007-05-30 22:29:40 +0000
committermpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>2007-05-30 22:29:40 +0000
commite0fbd41053a5a430b4d4916cfa4a45ec5fcfdf90 (patch)
treeeaa422bc972bb03a946716a031ffe021221fb91d /lib
parent37a221c32e8107ec4f436b6619a87b868449516f (diff)
downloadpuppet-e0fbd41053a5a430b4d4916cfa4a45ec5fcfdf90.tar.gz
puppet-e0fbd41053a5a430b4d4916cfa4a45ec5fcfdf90.tar.xz
puppet-e0fbd41053a5a430b4d4916cfa4a45ec5fcfdf90.zip
Switch the package type to use a :versionable feature, and convert all providers to use the feature. Hope it doesn't break anything.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2543 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib')
-rwxr-xr-xlib/puppet/provider/package/apple.rb4
-rwxr-xr-xlib/puppet/provider/package/apt.rb6
-rwxr-xr-xlib/puppet/provider/package/aptitude.rb2
-rw-r--r--lib/puppet/provider/package/aptrpm.rb6
-rwxr-xr-xlib/puppet/provider/package/darwinport.rb4
-rwxr-xr-xlib/puppet/provider/package/dpkg.rb4
-rwxr-xr-xlib/puppet/provider/package/gem.rb6
-rwxr-xr-xlib/puppet/provider/package/openbsd.rb4
-rw-r--r--lib/puppet/provider/package/pkgdmg.rb4
-rw-r--r--lib/puppet/provider/package/portage.rb6
-rwxr-xr-xlib/puppet/provider/package/ports.rb1
-rwxr-xr-xlib/puppet/provider/package/rpm.rb4
-rw-r--r--lib/puppet/provider/package/rug.rb6
-rwxr-xr-xlib/puppet/provider/package/sun.rb4
-rw-r--r--lib/puppet/provider/package/up2date.rb4
-rwxr-xr-xlib/puppet/provider/package/yum.rb7
-rw-r--r--lib/puppet/type/package.rb6
17 files changed, 21 insertions, 57 deletions
diff --git a/lib/puppet/provider/package/apple.rb b/lib/puppet/provider/package/apple.rb
index 8e6c7eb67..ce845670f 100755
--- a/lib/puppet/provider/package/apple.rb
+++ b/lib/puppet/provider/package/apple.rb
@@ -48,10 +48,6 @@ Puppet::Type.type(:package).provide :apple do
installer "-pkg", source, "-target", "/"
end
-
- def versionable?
- false
- end
end
# $Id$
diff --git a/lib/puppet/provider/package/apt.rb b/lib/puppet/provider/package/apt.rb
index 81b7c9a12..264e40b81 100755
--- a/lib/puppet/provider/package/apt.rb
+++ b/lib/puppet/provider/package/apt.rb
@@ -4,6 +4,8 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg do
desc "Package management via ``apt-get``."
+ has_feature :versionable
+
commands :aptget => "/usr/bin/apt-get"
commands :aptcache => "/usr/bin/apt-cache"
commands :preseed => "/usr/bin/debconf-set-selections"
@@ -109,10 +111,6 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg do
def purge
aptget '-y', '-q', 'remove', '--purge', @resource[:name]
- end
-
- def versionable?
- true
end
end
diff --git a/lib/puppet/provider/package/aptitude.rb b/lib/puppet/provider/package/aptitude.rb
index 32dd37627..79e853c64 100755
--- a/lib/puppet/provider/package/aptitude.rb
+++ b/lib/puppet/provider/package/aptitude.rb
@@ -1,6 +1,8 @@
Puppet::Type.type(:package).provide :aptitude, :parent => :apt do
desc "Package management via ``aptitude``."
+ has_feature :versionable
+
commands :aptitude => "/usr/bin/aptitude"
commands :aptcache => "/usr/bin/apt-cache"
diff --git a/lib/puppet/provider/package/aptrpm.rb b/lib/puppet/provider/package/aptrpm.rb
index 89a309857..766f52525 100644
--- a/lib/puppet/provider/package/aptrpm.rb
+++ b/lib/puppet/provider/package/aptrpm.rb
@@ -4,6 +4,8 @@ Puppet::Type.type(:package).provide :aptrpm, :parent => :rpm do
desc "Package management via ``apt-get`` ported to ``rpm``."
+ has_feature :versionable
+
commands :aptget => "/usr/bin/apt-get"
commands :aptcache => "/usr/bin/apt-cache"
commands :rpm => "/usr/bin/rpm"
@@ -69,10 +71,6 @@ Puppet::Type.type(:package).provide :aptrpm, :parent => :rpm do
def purge
aptget '-y', '-q', 'remove', '--purge', @resource[:name]
- end
-
- def versionable?
- true
end
end
diff --git a/lib/puppet/provider/package/darwinport.rb b/lib/puppet/provider/package/darwinport.rb
index 252e4bb39..70e6ed388 100755
--- a/lib/puppet/provider/package/darwinport.rb
+++ b/lib/puppet/provider/package/darwinport.rb
@@ -83,10 +83,6 @@ Puppet::Type.type(:package).provide :darwinport do
def update
return install()
end
-
- def versionable?
- false
- end
end
# $Id$
diff --git a/lib/puppet/provider/package/dpkg.rb b/lib/puppet/provider/package/dpkg.rb
index 3d2083333..d309ae9e5 100755
--- a/lib/puppet/provider/package/dpkg.rb
+++ b/lib/puppet/provider/package/dpkg.rb
@@ -104,10 +104,6 @@ Puppet::Type.type(:package).provide :dpkg do
def purge
dpkg "--purge", @resource[:name]
end
-
- def versionable?
- false
- end
end
# $Id$
diff --git a/lib/puppet/provider/package/gem.rb b/lib/puppet/provider/package/gem.rb
index 572069e9b..c902bcbe5 100755
--- a/lib/puppet/provider/package/gem.rb
+++ b/lib/puppet/provider/package/gem.rb
@@ -3,6 +3,8 @@ Puppet::Type.type(:package).provide :gem do
desc "Ruby Gem support. By default uses remote gems, but you can specify
the path to a local gem via ``source``."
+ has_feature :versionable
+
commands :gemcmd => "gem"
def self.gemlist(hash)
@@ -95,10 +97,6 @@ Puppet::Type.type(:package).provide :gem do
def update
self.install(false)
end
-
- def versionable?
- true
- end
end
# $Id$
diff --git a/lib/puppet/provider/package/openbsd.rb b/lib/puppet/provider/package/openbsd.rb
index dca60b4df..e910a41ba 100755
--- a/lib/puppet/provider/package/openbsd.rb
+++ b/lib/puppet/provider/package/openbsd.rb
@@ -88,10 +88,6 @@ Puppet::Type.type(:package).provide :openbsd do
def uninstall
pkgdelete @resource[:name]
end
-
- def versionable?
- false
- end
end
# $Id$
diff --git a/lib/puppet/provider/package/pkgdmg.rb b/lib/puppet/provider/package/pkgdmg.rb
index 8c343850a..e3d211fef 100644
--- a/lib/puppet/provider/package/pkgdmg.rb
+++ b/lib/puppet/provider/package/pkgdmg.rb
@@ -114,10 +114,6 @@ Puppet::Type.type(:package).provide :pkgdmg do
end
self.class.installpkgdmg(source,name)
end
-
- def versionable?
- false
- end
end
# $Id$
diff --git a/lib/puppet/provider/package/portage.rb b/lib/puppet/provider/package/portage.rb
index 32a664e1b..dd69f23a4 100644
--- a/lib/puppet/provider/package/portage.rb
+++ b/lib/puppet/provider/package/portage.rb
@@ -1,6 +1,8 @@
Puppet::Type.type(:package).provide :portage do
desc "Provides packaging support for Gentoo's portage system."
+ has_feature :versionable
+
commands :emerge => "/usr/bin/emerge", :eix => "/usr/bin/eix"
defaultfor :operatingsystem => :gentoo
@@ -103,10 +105,6 @@ Puppet::Type.type(:package).provide :portage do
def latest
return self.query[:version_available]
end
-
- def versionable?
- true
- end
end
# $Id$
diff --git a/lib/puppet/provider/package/ports.rb b/lib/puppet/provider/package/ports.rb
index 76eed9c2a..6c464cb66 100755
--- a/lib/puppet/provider/package/ports.rb
+++ b/lib/puppet/provider/package/ports.rb
@@ -1,6 +1,7 @@
Puppet::Type.type(:package).provide :ports, :parent => :freebsd do
desc "Support for FreeBSD's ports. Again, this still mixes packages
and ports."
+
commands :portupgrade => "/usr/local/sbin/portupgrade",
:portversion => "/usr/local/sbin/portversion",
:portuninstall => "/usr/local/sbin/pkg_deinstall",
diff --git a/lib/puppet/provider/package/rpm.rb b/lib/puppet/provider/package/rpm.rb
index eb3a22163..13f2589d7 100755
--- a/lib/puppet/provider/package/rpm.rb
+++ b/lib/puppet/provider/package/rpm.rb
@@ -124,10 +124,6 @@ Puppet::Type.type(:package).provide :rpm do
self.install
end
- def versionable?
- true
- end
-
def nvr
query unless @nvr
@nvr
diff --git a/lib/puppet/provider/package/rug.rb b/lib/puppet/provider/package/rug.rb
index 4916aaec8..e45813ee3 100644
--- a/lib/puppet/provider/package/rug.rb
+++ b/lib/puppet/provider/package/rug.rb
@@ -1,6 +1,8 @@
Puppet.type(:package).provide :rug, :parent => :rpm do
desc "Support for suse ``rug`` package manager."
+ has_feature :versionable
+
commands :rug => "/usr/bin/rug"
defaultfor :operatingsystem => :suse
confine :operatingsystem => :suse
@@ -46,8 +48,4 @@ Puppet.type(:package).provide :rug, :parent => :rpm do
# rug install can be used for update, too
self.install
end
-
- def versionable?
- true
- end
end
diff --git a/lib/puppet/provider/package/sun.rb b/lib/puppet/provider/package/sun.rb
index 959c0449a..ea169548d 100755
--- a/lib/puppet/provider/package/sun.rb
+++ b/lib/puppet/provider/package/sun.rb
@@ -163,10 +163,6 @@ Puppet::Type.type(:package).provide :sun do
end
self.install
end
-
- def versionable?
- false
- end
end
# $Id$
diff --git a/lib/puppet/provider/package/up2date.rb b/lib/puppet/provider/package/up2date.rb
index ad3496488..8059d796d 100644
--- a/lib/puppet/provider/package/up2date.rb
+++ b/lib/puppet/provider/package/up2date.rb
@@ -36,10 +36,6 @@ Puppet.type(:package).provide :up2date, :parent => :rpm do
# Install in up2date can be used for update, too
self.install
end
-
- def versionable?
- false
- end
end
# $Id$
diff --git a/lib/puppet/provider/package/yum.rb b/lib/puppet/provider/package/yum.rb
index 59e9bd6c7..34b9b7f10 100755
--- a/lib/puppet/provider/package/yum.rb
+++ b/lib/puppet/provider/package/yum.rb
@@ -1,5 +1,8 @@
Puppet::Type.type(:package).provide :yum, :parent => :rpm do
desc "Support via ``yum``."
+
+ has_feature :versionable
+
commands :yum => "yum", :rpm => "rpm"
defaultfor :operatingsystem => [:fedora, :centos, :redhat]
@@ -48,10 +51,6 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm do
# Install in yum can be used for update, too
self.install
end
-
- def versionable?
- true
- end
end
# $Id$
diff --git a/lib/puppet/type/package.rb b/lib/puppet/type/package.rb
index d929a6ff4..2c3cdc41d 100644
--- a/lib/puppet/type/package.rb
+++ b/lib/puppet/type/package.rb
@@ -34,6 +34,10 @@ module Puppet
existing configuration files. This feature is thus destructive
and should be used with the utmost care.",
:methods => [:purge]
+ feature :versionable, "The provider is capable of interrogating the
+ package database for installed version(s), and can select
+ which out of a set of available versions of a package to
+ install if asked."
ensurable do
desc "What state the package should be in.
@@ -94,7 +98,7 @@ module Puppet
end
newvalue(/./) do
- unless provider.versionable?
+ unless provider.class.versionable?
self.fail(
"Package provider %s does not support specifying versions" %
@resource[:provider]