diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-04-21 03:06:54 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-04-21 03:06:54 +0000 |
| commit | 63cdc6cf6fa2c680173532cbbf989ee97c664e83 (patch) | |
| tree | db4f741a3f74a38769636b5ce25923260287b564 | |
| parent | d9fd0026f04c6d7bd5cb28e20a3f40bd21c24467 (diff) | |
| download | puppet-63cdc6cf6fa2c680173532cbbf989ee97c664e83.tar.gz puppet-63cdc6cf6fa2c680173532cbbf989ee97c664e83.tar.xz puppet-63cdc6cf6fa2c680173532cbbf989ee97c664e83.zip | |
making corrections to pass tests on freebsd
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1128 980ebf18-57e1-0310-9a29-db15c13687c0
| -rw-r--r-- | lib/puppet/type/package.rb | 50 | ||||
| -rwxr-xr-x | lib/puppet/type/package/openbsd.rb | 17 | ||||
| -rwxr-xr-x | lib/puppet/type/package/ports.rb | 2 | ||||
| -rwxr-xr-x | lib/puppet/type/package/yum.rb | 1 | ||||
| -rw-r--r-- | test/types/package.rb | 3 |
5 files changed, 50 insertions, 23 deletions
diff --git a/lib/puppet/type/package.rb b/lib/puppet/type/package.rb index 8578d05f0..e01555df0 100644 --- a/lib/puppet/type/package.rb +++ b/lib/puppet/type/package.rb @@ -84,14 +84,15 @@ module Puppet # Autoload the package types, if they're not already defined. def self.pkgtype(name) + name = name.intern if name.is_a? String @pkgtypes ||= {} unless @pkgtypes.include? name begin require "puppet/type/package/#{name}" unless @pkgtypes.include? name - raise Puppet::DevError, "Loaded %s but pkgtype was not created" % - name + raise Puppet::DevError, + "Loaded %s but pkgtype was not created" % name end rescue LoadError raise Puppet::Error, "Could not load package type %s" % name @@ -282,6 +283,13 @@ module Puppet defaultto { @parent.class.default } + validate do |value| + unless @parent.class.pkgtype(value) + raise ArgumentError, "Invalid package type '%s'" % value + end + end + + munge do |type| if type.is_a? String type = type.intern @@ -435,25 +443,25 @@ module Puppet end # Return a list of valid package types - def self.getpkglist - if @types.nil? - if @default.nil? - self.init - end - @types = [@default] - end - - list = @types.collect { |type| - if typeobj = Puppet::PackagingType[type] - # pull all of the objects - typeobj.list - else - raise Puppet::Error, "Could not find package type '%s'" % type - end - }.flatten - @listed = true - return list - end +# def self.getpkglist +# if @types.nil? +# if @default.nil? +# self.init +# end +# @types = [@default] +# end +# +# list = @types.collect { |type| +# if typeobj = Puppet::PackagingType[type] +# # pull all of the objects +# typeobj.list +# else +# raise Puppet::Error, "Could not find package type '%s'" % type +# end +# }.flatten +# @listed = true +# return list +# end # Create a new package object from listed information def self.installedpkg(hash) diff --git a/lib/puppet/type/package/openbsd.rb b/lib/puppet/type/package/openbsd.rb index dc88980bf..4e4070ebc 100755 --- a/lib/puppet/type/package/openbsd.rb +++ b/lib/puppet/type/package/openbsd.rb @@ -4,6 +4,8 @@ module Puppet "pkg_info -a" end + module_function :listcmd + def install should = self.should(:ensure) @@ -46,7 +48,11 @@ module Puppet def list packages = [] - debug "Executing %s" % listcmd().inspect + if self.is_a? Puppet::Type + debug "Executing %s" % listcmd().inspect + else + Puppet.debug "Executing %s" % listcmd().inspect + end # list out all of the packages open("| #{listcmd()}") { |process| # our regex for matching dpkg output @@ -64,6 +70,15 @@ module Puppet yup = nil name = hash[:name] hash[:ensure] = :present + + if self.is_a? Puppet::Type and type = self[:type] + hash[:type] = type + elsif self.is_a? Module and self.respond_to? :name + hash[:type] = self.name + else + raise Puppet::DevError, "Cannot determine package type" + end + pkg = Puppet.type(:package).installedpkg(hash) packages << pkg else diff --git a/lib/puppet/type/package/ports.rb b/lib/puppet/type/package/ports.rb index de760a092..b748ffb3e 100755 --- a/lib/puppet/type/package/ports.rb +++ b/lib/puppet/type/package/ports.rb @@ -66,6 +66,8 @@ module Puppet "pkg_info" end + module_function :listcmd + def query list diff --git a/lib/puppet/type/package/yum.rb b/lib/puppet/type/package/yum.rb index 750591782..5c206eefc 100755 --- a/lib/puppet/type/package/yum.rb +++ b/lib/puppet/type/package/yum.rb @@ -1,6 +1,5 @@ module Puppet Puppet.type(:package).newpkgtype(:yum, :rpm) do - # Install a package using 'yum'. def install cmd = "yum -y install %s" % self[:name] diff --git a/test/types/package.rb b/test/types/package.rb index bbf9c1739..73e6adf40 100644 --- a/test/types/package.rb +++ b/test/types/package.rb @@ -165,12 +165,15 @@ class TestPackages < Test::Unit::TestCase end def test_specifypkgtype + pkg = nil assert_nothing_raised { pkg = Puppet.type(:package).create( :name => "mypkg", :type => "yum" ) } + assert(pkg, "Did not create package") + assert_equal(:yum, pkg[:type]) end def test_latestpkg |
