summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-12-14 19:53:47 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-12-14 19:53:47 +0000
commit72f8b3205296e1242ff63061fb7a6770cd423609 (patch)
treea6367a95d20ec35e7626f74cd826df5abff254d0 /lib/puppet
parentf5e7915b54a4bdb21067ad82142751b542345969 (diff)
downloadpuppet-72f8b3205296e1242ff63061fb7a6770cd423609.tar.gz
puppet-72f8b3205296e1242ff63061fb7a6770cd423609.tar.xz
puppet-72f8b3205296e1242ff63061fb7a6770cd423609.zip
Reworking the package tests. Now providers are tested individually
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1921 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet')
-rwxr-xr-xlib/puppet/provider/package/aptitude.rb9
-rwxr-xr-xlib/puppet/provider/package/dpkg.rb13
-rwxr-xr-xlib/puppet/provider/package/gem.rb2
-rwxr-xr-xlib/puppet/provider/parsedfile.rb1
4 files changed, 21 insertions, 4 deletions
diff --git a/lib/puppet/provider/package/aptitude.rb b/lib/puppet/provider/package/aptitude.rb
index 80574bd88..7b74acedc 100755
--- a/lib/puppet/provider/package/aptitude.rb
+++ b/lib/puppet/provider/package/aptitude.rb
@@ -8,7 +8,14 @@ Puppet::Type.type(:package).provide :aptitude, :parent => :apt do
def aptcmd(arg)
# Apparently aptitude hasn't always supported a -q flag.
- aptitude(arg.gsub(/-q/,""))
+ output = aptitude(arg.gsub(/-q/,""))
+
+ # Yay, stupid aptitude doesn't throw an error when the package is missing.
+ if output =~ /0 newly installed/
+ raise Puppet::Error.new(
+ "Could not find package %s" % self.name
+ )
+ end
end
end
diff --git a/lib/puppet/provider/package/dpkg.rb b/lib/puppet/provider/package/dpkg.rb
index 84fba92e8..f747a5a0c 100755
--- a/lib/puppet/provider/package/dpkg.rb
+++ b/lib/puppet/provider/package/dpkg.rb
@@ -10,7 +10,9 @@ Puppet::Type.type(:package).provide :dpkg do
packages = []
# list out all of the packages
- open("| #{command(:dpkgquery)} -W --showformat '${Status} ${Package} ${Version}\\n'") { |process|
+ cmd = "#{command(:dpkgquery)} -W --showformat '${Status} ${Package} ${Version}\\n'"
+ Puppet.debug "Executing '%s'" % cmd
+ execpipe(cmd) do |process|
# our regex for matching dpkg output
regex = %r{^(\S+ +\S+ +\S+) (\S+) (\S+)$}
fields = [:status, :name, :ensure]
@@ -33,11 +35,18 @@ Puppet::Type.type(:package).provide :dpkg do
"Failed to match dpkg-query line %s" % line
end
}
- }
+ end
return packages
end
+ def install
+ unless file = @model[:source]
+ raise ArgumentError, "You cannot install dpkg packages without a source"
+ end
+ dpkg "-i", file
+ end
+
def query
packages = []
diff --git a/lib/puppet/provider/package/gem.rb b/lib/puppet/provider/package/gem.rb
index b0ecaafe6..0fb55c67c 100755
--- a/lib/puppet/provider/package/gem.rb
+++ b/lib/puppet/provider/package/gem.rb
@@ -55,7 +55,7 @@ Puppet::Type.type(:package).provide :gem do
end
def self.list(justme = false)
- gemlist(:local => true).each do |hash|
+ gemlist(:local => true).collect do |hash|
Puppet::Type.type(:package).installedpkg(hash)
end
end
diff --git a/lib/puppet/provider/parsedfile.rb b/lib/puppet/provider/parsedfile.rb
index 144267623..ddb18ff17 100755
--- a/lib/puppet/provider/parsedfile.rb
+++ b/lib/puppet/provider/parsedfile.rb
@@ -1,4 +1,5 @@
require 'puppet'
+require 'puppet/filetype'
require 'puppet/util/fileparsing'
# This provider can be used as the parent class for a provider that