summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-04-21 03:06:54 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-04-21 03:06:54 +0000
commit63cdc6cf6fa2c680173532cbbf989ee97c664e83 (patch)
treedb4f741a3f74a38769636b5ce25923260287b564
parentd9fd0026f04c6d7bd5cb28e20a3f40bd21c24467 (diff)
downloadpuppet-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.rb50
-rwxr-xr-xlib/puppet/type/package/openbsd.rb17
-rwxr-xr-xlib/puppet/type/package/ports.rb2
-rwxr-xr-xlib/puppet/type/package/yum.rb1
-rw-r--r--test/types/package.rb3
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