diff options
author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-06-11 20:48:06 +0000 |
---|---|---|
committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-06-11 20:48:06 +0000 |
commit | 79b604d83273ad892d264c64ea03f46d321c7668 (patch) | |
tree | baa0c9de3f674433759f8fca97b23781fbe156d4 | |
parent | c826be96f30f209895083a74eabf8ee1d329bd28 (diff) | |
download | puppet-79b604d83273ad892d264c64ea03f46d321c7668.tar.gz puppet-79b604d83273ad892d264c64ea03f46d321c7668.tar.xz puppet-79b604d83273ad892d264c64ea03f46d321c7668.zip |
Oops; I forgot to add the base class for package providers. Also, cleaning up the package provider code a touch
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2559 980ebf18-57e1-0310-9a29-db15c13687c0
-rw-r--r-- | lib/puppet/provider/package.rb | 31 | ||||
-rw-r--r-- | lib/puppet/type/package.rb | 18 |
2 files changed, 40 insertions, 9 deletions
diff --git a/lib/puppet/provider/package.rb b/lib/puppet/provider/package.rb new file mode 100644 index 000000000..24293e235 --- /dev/null +++ b/lib/puppet/provider/package.rb @@ -0,0 +1,31 @@ +# Created by Luke A. Kanies on 2007-06-05. +# Copyright (c) 2007. All rights reserved. + +class Puppet::Provider::Package < Puppet::Provider + # Prefetch our package list, yo. + def self.prefetch(packages) + instances.each do |prov| + if pkg = packages[prov.name] + pkg.provider = prov + end + end + end + + # Clear out the cached values. + def flush + @property_hash.clear + end + + # Look up the current status. + def properties + if @property_hash.empty? + @property_hash = query || {:ensure => :absent} + if @property_hash.empty? + @property_hash[:ensure] = :absent + end + end + @property_hash.dup + end +end + +# $Id$ diff --git a/lib/puppet/type/package.rb b/lib/puppet/type/package.rb index 38b5b1443..8072361a9 100644 --- a/lib/puppet/type/package.rb +++ b/lib/puppet/type/package.rb @@ -390,25 +390,25 @@ module Puppet # either through the language, in which case the hash's values should # be set in 'should', or through comparing against the system, in which # case the hash's values should be set in 'is' - def initialize(hash) + def initialize(params) self.initvars - type = nil + provider = nil [:provider, "use"].each { |label| - if hash.include?(label) - type = hash[label] - hash.delete(label) + if params.include?(label) + provider = params[label] + params.delete(label) end } - if type - self[:provider] = type + if provider + self[:provider] = provider else self.setdefaults(:provider) end - super + super(params) unless @parameters.include?(:provider) - raise Puppet::DevError, "No package type set" + raise Puppet::DevError, "No package provider set" end end |