diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-12-14 19:53:47 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-12-14 19:53:47 +0000 |
| commit | 72f8b3205296e1242ff63061fb7a6770cd423609 (patch) | |
| tree | a6367a95d20ec35e7626f74cd826df5abff254d0 /lib/puppet | |
| parent | f5e7915b54a4bdb21067ad82142751b542345969 (diff) | |
| download | puppet-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-x | lib/puppet/provider/package/aptitude.rb | 9 | ||||
| -rwxr-xr-x | lib/puppet/provider/package/dpkg.rb | 13 | ||||
| -rwxr-xr-x | lib/puppet/provider/package/gem.rb | 2 | ||||
| -rwxr-xr-x | lib/puppet/provider/parsedfile.rb | 1 |
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 |
