diff options
author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-06-04 20:37:14 +0000 |
---|---|---|
committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-06-04 20:37:14 +0000 |
commit | c35d07b4183be141fa606de665c52740f5cc6510 (patch) | |
tree | 6597bb7385d64ed1546541a221edb2d02585e5d2 /lib/puppet | |
parent | a7b057de317ffc60e50405ea1ebb109ba4003b4f (diff) | |
download | puppet-c35d07b4183be141fa606de665c52740f5cc6510.tar.gz puppet-c35d07b4183be141fa606de665c52740f5cc6510.tar.xz puppet-c35d07b4183be141fa606de665c52740f5cc6510.zip |
Significantly reworked the type => provider interface with respect to
listing existing provider instances. The class method on both
class heirarchies has been renamed to 'instances', to start. Providers
are now expected to return provider instances, instead of creating
resources, and the resource's 'instances' method is expected to
find the matching resource, if any, and set the resource's
provider appropriately. This *significantly* reduces the reliance on
effectively global state (resource references in the resource classes).
This global state will go away soon.
Along with this change, the 'prefetch' class method on providers now
accepts the list of resources for prefetching. This again reduces
reliance on global state, and makes the execution path much easier
to follow.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2551 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet')
30 files changed, 159 insertions, 221 deletions
diff --git a/lib/puppet/metatype/instances.rb b/lib/puppet/metatype/instances.rb index 2d408f750..be7d1be1c 100644 --- a/lib/puppet/metatype/instances.rb +++ b/lib/puppet/metatype/instances.rb @@ -248,6 +248,24 @@ class Puppet::Type return trans end + # Retrieve all known instances. Either requires providers or must be overridden. + def self.instances + unless defined?(@providers) and ! @providers.empty? + raise Puppet::DevError, "%s has no providers and has not overridden 'instances'" % self.name + end + + # Put the default provider first, then the rest of the suitable providers. + sources = [] + [defaultprovider, suitableprovider].flatten.uniq.collect do |provider| + next if sources.include?(provider.source) + + sources << provider.source + provider.instances.collect do |instance| + create(:name => instance.name, :provider => instance, :check => :all) + end + end.flatten.compact + end + # Create the path for logging and such. def pathbuilder if defined? @parent and @parent diff --git a/lib/puppet/metatype/providers.rb b/lib/puppet/metatype/providers.rb index 33506e06f..72459d3af 100644 --- a/lib/puppet/metatype/providers.rb +++ b/lib/puppet/metatype/providers.rb @@ -86,26 +86,6 @@ class Puppet::Type return obj end - # Create a list method that just calls our providers. - def self.mkprovider_list - unless respond_to?(:list) - meta_def(:list) do - suitableprovider.find_all { |p| p.respond_to?(:list) }.collect { |prov| - prov.list.each { |h| h[:provider] = prov.name } - }.flatten.collect do |hash| - if hash.is_a?(Hash) - hash2obj(hash) - elsif hash.is_a?(self) - hash - else - raise Puppet::DevError, "Provider %s returned object of type %s in list" % - [prov.name, hash.class] - end - end - end - end - end - # Retrieve a provider by name. def self.provider(name) name = Puppet::Util.symbolize(name) @@ -172,7 +152,6 @@ class Puppet::Type def self.providify return if @paramhash.has_key? :provider - mkprovider_list() newparam(:provider) do desc "The specific backend for #{self.name.to_s} to use. You will seldom need to specify this -- Puppet will usually discover the @@ -197,17 +176,21 @@ class Puppet::Type @resource.class.defaultprovider.name } - validate do |value| - value = value[0] if value.is_a? Array - if provider = @resource.class.provider(value) + validate do |provider_class| + provider_class = provider_class[0] if provider_class.is_a? Array + if provider_class.is_a?(Puppet::Provider) + provider_class = provider_class.class.name + end + + if provider = @resource.class.provider(provider_class) unless provider.suitable? raise ArgumentError, "Provider '%s' is not functional on this platform" % - [value] + [provider_class] end else raise ArgumentError, "Invalid %s provider '%s'" % - [@resource.class.name, value] + [@resource.class.name, provider_class] end end @@ -244,10 +227,13 @@ class Puppet::Type end def provider=(name) - if klass = self.class.provider(name) + if name.is_a?(Puppet::Provider) + @provider = name + @provider.resource = self + elsif klass = self.class.provider(name) @provider = klass.new(self) else - raise UnknownProviderError, "Could not find %s provider of %s" % + raise ArgumentError, "Could not find %s provider of %s" % [name, self.class.name] end end diff --git a/lib/puppet/network/handler/resource.rb b/lib/puppet/network/handler/resource.rb index 349f73537..ca492bd81 100755 --- a/lib/puppet/network/handler/resource.rb +++ b/lib/puppet/network/handler/resource.rb @@ -145,7 +145,7 @@ class Puppet::Network::Handler bucket = Puppet::TransBucket.new bucket.type = typeklass.name - typeklass.list.each do |obj| + typeklass.instances.each do |obj| next if ignore.include? obj.name #object = Puppet::TransObject.new(obj.name, typeklass.name) diff --git a/lib/puppet/provider.rb b/lib/puppet/provider.rb index 1f18ae730..a725611d0 100644 --- a/lib/puppet/provider.rb +++ b/lib/puppet/provider.rb @@ -109,6 +109,12 @@ class Puppet::Provider end end + # The method for returning a list of provider instances. Note that it returns providers, preferably with values already + # filled in, not resources. + def self.instances + raise Puppet::DevError, "Provider %s has not defined the 'instances' class method" % self.name + end + # Create the methods for a given command. def self.make_command_methods(name) # Now define a method for that command @@ -323,16 +329,34 @@ class Puppet::Provider self.class.command(name) end - def initialize(resource) - @resource = resource - - # LAK 2007-05-09: Keep the model stuff around for backward compatibility - @model = resource - @property_hash = {} + def initialize(resource = nil) + if resource.is_a?(Hash) + @property_hash = resource.dup + elsif resource + @resource = resource if resource + # LAK 2007-05-09: Keep the model stuff around for backward compatibility + @model = resource + @property_hash = {} + else + @property_hash = {} + end end def name - @resource.name + if n = @property_hash[:name] + return n + elsif self.resource + resource.name + else + raise Puppet::DevError, "No resource and no name in property hash" + end + end + + # Set passed params as the current values. + def set(params) + params.each do |param, value| + @property_hash[symbolize(param)] = value + end end def to_s diff --git a/lib/puppet/provider/nameservice/netinfo.rb b/lib/puppet/provider/nameservice/netinfo.rb index c44f105e8..0323807e8 100644 --- a/lib/puppet/provider/nameservice/netinfo.rb +++ b/lib/puppet/provider/nameservice/netinfo.rb @@ -45,6 +45,12 @@ class NetInfo < Puppet::Provider::NameService end end + def self.instances + report(@resource_type.validproperties).collect do |hash| + self.new(hash) + end + end + # Convert a NetInfo line into a hash of data. def self.line2hash(line, params) values = line.split(/\t/) @@ -61,12 +67,6 @@ class NetInfo < Puppet::Provider::NameService hash end - def self.list - report(@resource_type.validproperties).collect do |hash| - @resource_type.hash2obj(hash) - end - end - # What field the value is stored under. def self.netinfokey(name) name = symbolize(name) diff --git a/lib/puppet/provider/package/apple.rb b/lib/puppet/provider/package/apple.rb index ce845670f..e9fb00482 100755 --- a/lib/puppet/provider/package/apple.rb +++ b/lib/puppet/provider/package/apple.rb @@ -11,7 +11,17 @@ Puppet::Type.type(:package).provide :apple do defaultfor :operatingsystem => :darwin - def self.listbyname + def self.instances + instance_by_name.collect do |name| + self.new( + :name => name, + :provider => :apple, + :ensure => :installed + ) + end + end + + def self.instance_by_name Dir.entries("/Library/Receipts").find_all { |f| f =~ /\.pkg$/ }.collect { |f| @@ -22,16 +32,6 @@ Puppet::Type.type(:package).provide :apple do } end - def self.list - listbyname.collect do |name| - Puppet.type(:package).installedpkg( - :name => name, - :provider => :apple, - :ensure => :installed - ) - end - end - def query if FileTest.exists?("/Library/Receipts/#{@resource[:name]}.pkg") return {:name => @resource[:name], :ensure => :present} diff --git a/lib/puppet/provider/package/blastwave.rb b/lib/puppet/provider/package/blastwave.rb index 9f544dbd5..07f904eef 100755 --- a/lib/puppet/provider/package/blastwave.rb +++ b/lib/puppet/provider/package/blastwave.rb @@ -23,10 +23,10 @@ Puppet::Type.type(:package).provide :blastwave, :parent => :sun do end end - def self.list(hash = {}) + def self.instances(hash = {}) blastlist(hash).collect do |bhash| bhash.delete(:avail) - Puppet::Type.type(:package).installedpkg(bhash) + new(bhash) end end diff --git a/lib/puppet/provider/package/darwinport.rb b/lib/puppet/provider/package/darwinport.rb index 70e6ed388..8c0bbb891 100755 --- a/lib/puppet/provider/package/darwinport.rb +++ b/lib/puppet/provider/package/darwinport.rb @@ -31,12 +31,11 @@ Puppet::Type.type(:package).provide :darwinport do } end - def self.list + def self.instances packages = [] eachpkgashash do |hash| - pkg = Puppet.type(:package).installedpkg(hash) - packages << pkg + packages << new(hash) end return packages diff --git a/lib/puppet/provider/package/dpkg.rb b/lib/puppet/provider/package/dpkg.rb index d309ae9e5..e09638669 100755 --- a/lib/puppet/provider/package/dpkg.rb +++ b/lib/puppet/provider/package/dpkg.rb @@ -6,7 +6,7 @@ Puppet::Type.type(:package).provide :dpkg do commands :dpkg => "/usr/bin/dpkg" commands :dpkgquery => "/usr/bin/dpkg-query" - def self.list + def self.instances packages = [] # list out all of the packages @@ -29,7 +29,7 @@ Puppet::Type.type(:package).provide :dpkg do hash[:provider] = self.name - packages.push Puppet.type(:package).installedpkg(hash) + packages << new(hash) else Puppet.warning "Failed to match dpkg-query line %s" % line.inspect diff --git a/lib/puppet/provider/package/gem.rb b/lib/puppet/provider/package/gem.rb index c902bcbe5..fb5e243e9 100755 --- a/lib/puppet/provider/package/gem.rb +++ b/lib/puppet/provider/package/gem.rb @@ -56,9 +56,9 @@ Puppet::Type.type(:package).provide :gem do end end - def self.list(justme = false) + def self.instances(justme = false) gemlist(:local => true).collect do |hash| - Puppet::Type.type(:package).installedpkg(hash) + new(hash) end end diff --git a/lib/puppet/provider/package/openbsd.rb b/lib/puppet/provider/package/openbsd.rb index e910a41ba..0e238f546 100755 --- a/lib/puppet/provider/package/openbsd.rb +++ b/lib/puppet/provider/package/openbsd.rb @@ -7,7 +7,7 @@ Puppet::Type.type(:package).provide :openbsd do defaultfor :operatingsystem => :openbsd confine :operatingsystem => :openbsd - def self.list + def self.instances packages = [] begin @@ -29,8 +29,7 @@ Puppet::Type.type(:package).provide :openbsd do hash[:provider] = self.name - pkg = Puppet.type(:package).installedpkg(hash) - packages << pkg + packages << new(hash) else # Print a warning on lines we can't match, but move # on, since it should be non-fatal @@ -38,12 +37,6 @@ Puppet::Type.type(:package).provide :openbsd do end } end - # Mark as absent any packages we didn't find - Puppet.type(:package).each do |pkg| - unless packages.include? pkg - pkg.is = [:ensure, :absent] - end - end return packages rescue Puppet::ExecutionFailure diff --git a/lib/puppet/provider/package/pkgdmg.rb b/lib/puppet/provider/package/pkgdmg.rb index e3d211fef..e0864764a 100644 --- a/lib/puppet/provider/package/pkgdmg.rb +++ b/lib/puppet/provider/package/pkgdmg.rb @@ -23,7 +23,7 @@ Puppet::Type.type(:package).provide :pkgdmg do commands :curl => "/usr/bin/curl" # JJM We store a cookie for each installed .pkg.dmg in /var/db - def self.listbyname + def self.instance_by_name Dir.entries("/var/db").find_all { |f| f =~ /^\.puppet_pkgdmg_installed_/ }.collect do |f| @@ -33,9 +33,9 @@ Puppet::Type.type(:package).provide :pkgdmg do end end - def self.list - listbyname.collect do |name| - Puppet.type(:package).installedpkg( + def self.instances + instance_by_name.collect do |name| + new( :name => name, :provider => :pkgdmg, :ensure => :installed diff --git a/lib/puppet/provider/package/portage.rb b/lib/puppet/provider/package/portage.rb index dd69f23a4..3b4c1a44f 100644 --- a/lib/puppet/provider/package/portage.rb +++ b/lib/puppet/provider/package/portage.rb @@ -7,7 +7,7 @@ Puppet::Type.type(:package).provide :portage do defaultfor :operatingsystem => :gentoo - def self.list + def self.instances result_format = /(\S+) (\S+) \[(.*)\] \[[^0-9]*([^\s:]*)(:\S*)?\] ([\S]*) (.*)/ result_fields = [:category, :name, :ensure, :version_available, :slot, :vendor, :description] @@ -28,7 +28,7 @@ Puppet::Type.type(:package).provide :portage do package[:provider] = :portage package[:ensure] = package[:ensure].split.last - packages.push(Puppet.type(:package).installedpkg(package)) + packages << new(package) end end diff --git a/lib/puppet/provider/package/rpm.rb b/lib/puppet/provider/package/rpm.rb index 13f2589d7..3b9ac8b15 100755 --- a/lib/puppet/provider/package/rpm.rb +++ b/lib/puppet/provider/package/rpm.rb @@ -10,7 +10,7 @@ Puppet::Type.type(:package).provide :rpm do commands :rpm => "rpm" - def self.list + def self.instances packages = [] # list out all of the packages @@ -30,7 +30,7 @@ Puppet::Type.type(:package).provide :rpm do hash[field] = value } hash[:provider] = self.name - packages.push Puppet.type(:package).installedpkg(hash) + packages << new(hash) else raise "failed to match rpm line %s" % line end diff --git a/lib/puppet/provider/package/sun.rb b/lib/puppet/provider/package/sun.rb index ea169548d..c5b954881 100755 --- a/lib/puppet/provider/package/sun.rb +++ b/lib/puppet/provider/package/sun.rb @@ -9,7 +9,7 @@ Puppet::Type.type(:package).provide :sun do defaultfor :operatingsystem => :solaris - def self.list + def self.instances packages = [] hash = {} names = { @@ -40,7 +40,7 @@ Puppet::Type.type(:package).provide :sun do when /^$/: hash[:provider] = :sun - packages.push Puppet.type(:package).installedpkg(hash) + packages << new(hash) hash.clear when /\s*(\w+):\s+(.+)/: name = $1 diff --git a/lib/puppet/provider/parsedfile.rb b/lib/puppet/provider/parsedfile.rb index 09233069b..43c53601e 100755 --- a/lib/puppet/provider/parsedfile.rb +++ b/lib/puppet/provider/parsedfile.rb @@ -107,17 +107,13 @@ class Puppet::Provider::ParsedFile < Puppet::Provider end # Return a list of all of the records we can find. - def self.list + def self.instances prefetch() @records.find_all { |r| r[:record_type] == self.name }.collect { |r| - clean(r) + new(clean(r)) } end - def self.list_by_name - list.collect { |r| r[:name] } - end - # Override the default method with a lot more functionality. def self.mk_resource_methods [resource_type.validproperties, resource_type.parameters].flatten.each do |attr| @@ -175,11 +171,24 @@ class Puppet::Provider::ParsedFile < Puppet::Provider # set. We need to turn those three locations into a list of files, # prefetch each one, and make sure they're associated with each appropriate # resource instance. - def self.prefetch + def self.prefetch(resources = nil) # Reset the record list. @records = [] - targets().each do |target| - prefetch_target(target) + targets(resources).each do |target| + @records += prefetch_target(target) + end + + if resources + @records.each do |record| + if name = record[:name] and resource = resources[name] + resource.provider = new(record) + elsif respond_to?(:match) + if instance = match(record, resources) + record[:name] = instance[:name] + instance.provider = new(record) + end + end + end end end @@ -196,25 +205,10 @@ class Puppet::Provider::ParsedFile < Puppet::Provider end unless target_records - raise Puppet::DevError, "Prefetch hook for provider %s returned nil" % - self.name + raise Puppet::DevError, "Prefetching %s for provider %s returned nil" % [target, self.name] end - @records += target_records - - # Set current property on any existing resource instances. - target_records(target).find_all { |i| i.is_a?(Hash) }.each do |record| - # Find any resource instances whose names match our instances. - if instance = self.resource_type[record[:name]] - next unless instance.provider.is_a?(self) - instance.provider.property_hash = record - elsif respond_to?(:match) - if instance = match(record) - record[:name] = instance[:name] - instance.provider.property_hash = record - end - end - end + target_records end # Is there an existing record with this name? @@ -256,7 +250,7 @@ class Puppet::Provider::ParsedFile < Puppet::Provider # Find a list of all of the targets that we should be reading. This is # used to figure out what targets we need to prefetch. - def self.targets + def self.targets(resources = nil) targets = [] # First get the default target unless self.default_target @@ -268,17 +262,13 @@ class Puppet::Provider::ParsedFile < Puppet::Provider targets += @target_objects.keys # Lastly, check the file from any resource instances - self.resource_type.each do |resource| - targets << resource.value(:target) - - # This is only the case for properties, and targets should always - # be properties. - #if resource.respond_to?(:is) - # targets << resource.is(:target) - #end + if resources + resources.each do |name, resource| + targets << resource.value(:target) + end end - targets.uniq.reject { |t| t.nil? } + targets.uniq.compact end def self.to_file(records) diff --git a/lib/puppet/provider/service/init.rb b/lib/puppet/provider/service/init.rb index c5bcc26eb..79e5a2c69 100755 --- a/lib/puppet/provider/service/init.rb +++ b/lib/puppet/provider/service/init.rb @@ -29,7 +29,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do end # List all services of this type. - def self.list(name) + def self.instances(name) # We need to find all paths specified for our type or any parent types paths = Puppet.type(:service).paths(name) @@ -44,7 +44,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do end end - paths.each do |path| + paths.collect do |path| unless FileTest.directory?(path) Puppet.notice "Service path %s does not exist" % path next @@ -59,14 +59,8 @@ Puppet::Type.type(:service).provide :init, :parent => :base do Dir.entries(path).reject { |e| fullpath = File.join(path, e) e =~ /^\./ or ! FileTest.executable?(fullpath) - }.each do |name| - if obj = Puppet::Type.type(:service)[name] - obj[:check] = check - else - Puppet::Type.type(:service).create( - :name => name, :check => check, :path => path - ) - end + }.collect do |name| + new(:name => name, :path => path) end end end diff --git a/lib/puppet/provider/zone/solaris.rb b/lib/puppet/provider/zone/solaris.rb index 7ace69047..d178679fe 100644 --- a/lib/puppet/provider/zone/solaris.rb +++ b/lib/puppet/provider/zone/solaris.rb @@ -21,18 +21,11 @@ Puppet::Type.type(:zone).provide(:solaris) do return hash end - def self.list + def self.instances adm(:list, "-cp").split("\n").collect do |line| hash = line2hash(line) - obj = nil - unless obj = @resource[hash[:name]] - obj = @resource.create(:name => hash[:name]) - end - - obj.setstatus(hash) - - obj + new(hash) end end diff --git a/lib/puppet/transaction.rb b/lib/puppet/transaction.rb index 7c046c898..d27f4038a 100644 --- a/lib/puppet/transaction.rb +++ b/lib/puppet/transaction.rb @@ -473,16 +473,20 @@ class Transaction # Prefetch any providers that support it. We don't support prefetching # types, just providers. def prefetch - @resources.collect { |obj| - if pro = obj.provider - pro.class - else - nil + prefetchers = {} + @resources.each do |resource| + if provider = resource.provider and provider.class.respond_to?(:prefetch) + prefetchers[provider.class] ||= {} + prefetchers[provider.class][resource.title] = resource end - }.reject { |o| o.nil? }.uniq.each do |klass| - # XXX We need to do something special here in case of failure. - if klass.respond_to?(:prefetch) - klass.prefetch + end + + # Now call prefetch, passing in the resources so that the provider instances can be replaced. + prefetchers.each do |provider, resources| + begin + provider.prefetch(resources) + rescue => detail + Puppet.err "Could not prefetch % provider %s: %s" % [resources[0].class.name, provider.name, detail] end end end diff --git a/lib/puppet/type/exec.rb b/lib/puppet/type/exec.rb index e5071b484..dabd98830 100755 --- a/lib/puppet/type/exec.rb +++ b/lib/puppet/type/exec.rb @@ -444,8 +444,8 @@ module Puppet end end - def self.list - self.collect { |i| i } + def self.instances + [] end # Verify that we pass all of the checks. The argument determines whether diff --git a/lib/puppet/type/group.rb b/lib/puppet/type/group.rb index 5e82140e7..8ca687904 100755 --- a/lib/puppet/type/group.rb +++ b/lib/puppet/type/group.rb @@ -120,22 +120,6 @@ module Puppet defaultto false end - def self.list_by_name - users = [] - defaultprovider.listbyname do |user| - users << user - end - return users - end - - def self.list - defaultprovider.list - - self.collect do |user| - user - end - end - def retrieve if self.provider and @provider.exists? return super diff --git a/lib/puppet/type/package.rb b/lib/puppet/type/package.rb index 2c3cdc41d..d116238a1 100644 --- a/lib/puppet/type/package.rb +++ b/lib/puppet/type/package.rb @@ -361,23 +361,6 @@ module Puppet return object end - # List all package instances - def self.list - # XXX For now, just list the default provider, but we should list - # all suitables or something, but we need to not list a parent - # type if a child type gets listed. - #suitableprovider.each do |provider| - # p provider.name - # provider.list - #end - - defaultprovider.list - - self.collect do |pkg| - pkg - end - end - # Iterate across all packages of a given type and mark them absent # if they are not in the list def self.markabsent(pkgtype, packages) diff --git a/lib/puppet/type/pfile.rb b/lib/puppet/type/pfile.rb index bec0a4dd2..3a07a9342 100644 --- a/lib/puppet/type/pfile.rb +++ b/lib/puppet/type/pfile.rb @@ -259,7 +259,7 @@ module Puppet end # List files, but only one level deep. - def self.list(base = "/") + def self.instances(base = "/") unless FileTest.directory?(base) return [] end diff --git a/lib/puppet/type/pfilebucket.rb b/lib/puppet/type/pfilebucket.rb index ec1803ff8..fd0f131a1 100755 --- a/lib/puppet/type/pfilebucket.rb +++ b/lib/puppet/type/pfilebucket.rb @@ -70,8 +70,8 @@ module Puppet end end - def self.list - self.collect do |obj| obj.name end + def self.instances + [] end def bucket diff --git a/lib/puppet/type/resources.rb b/lib/puppet/type/resources.rb index ca88a7c31..39fa1bc34 100644 --- a/lib/puppet/type/resources.rb +++ b/lib/puppet/type/resources.rb @@ -31,8 +31,8 @@ Puppet::Type.newtype(:resources) do validate do |value| if [:true, true, "true"].include?(value) - unless @resource.resource_type.respond_to?(:list) - raise ArgumentError, "Purging resources of type %s is not supported, since they cannot be listed" % @resource[:name] + unless @resource.resource_type.respond_to?(:instances) + raise ArgumentError, "Purging resources of type %s is not supported, since they cannot be queried from the system" % @resource[:name] end unless @resource.resource_type.validproperty?(:ensure) raise ArgumentError, "Purging is only supported on types that accept 'ensure'" @@ -91,7 +91,7 @@ Puppet::Type.newtype(:resources) do return [] unless self.purge? hascheck = false method = - resource_type.list.find_all do |resource| + resource_type.instances.find_all do |resource| ! resource.managed? end.find_all do |resource| check(resource) diff --git a/lib/puppet/type/schedule.rb b/lib/puppet/type/schedule.rb index 08bada3a7..2e3c126e4 100755 --- a/lib/puppet/type/schedule.rb +++ b/lib/puppet/type/schedule.rb @@ -307,8 +307,8 @@ module Puppet end end - def self.list - self.collect do |obj| obj end + def self.instances + [] end def self.mkdefaultschedules diff --git a/lib/puppet/type/service.rb b/lib/puppet/type/service.rb index c582b17ee..2df311633 100644 --- a/lib/puppet/type/service.rb +++ b/lib/puppet/type/service.rb @@ -265,20 +265,6 @@ module Puppet newvalues(:true, :false) end - # List all available services - def self.list - defprov = defaultprovider - - names = [] - if defprov.respond_to? :list - defprov.list(defprov.name) - else - Puppet.debug "Type %s does not respond to list" % defprov.name - end - - self.collect { |s| s } - end - # Add a new path to our list of paths that services could be in. def self.newpath(type, path) type = type.intern if type.is_a? String diff --git a/lib/puppet/type/tidy.rb b/lib/puppet/type/tidy.rb index 8d9cda170..75a68170d 100755 --- a/lib/puppet/type/tidy.rb +++ b/lib/puppet/type/tidy.rb @@ -254,8 +254,8 @@ module Puppet validate do end - def self.list - self.collect { |t| t } + def self.instances + [] end @depthfirst = true diff --git a/lib/puppet/type/user.rb b/lib/puppet/type/user.rb index 87a57cddd..a9634b6f7 100755 --- a/lib/puppet/type/user.rb +++ b/lib/puppet/type/user.rb @@ -322,22 +322,6 @@ module Puppet autos end - def self.list_by_name - users = [] - defaultprovider.listbyname do |user| - users << user - end - return users - end - - def self.list - defaultprovider.list - - self.collect do |user| - user - end - end - def retrieve absent = false properties().inject({}) { |prophash, property| diff --git a/lib/puppet/type/yumrepo.rb b/lib/puppet/type/yumrepo.rb index 395a33068..5efb3a307 100644 --- a/lib/puppet/type/yumrepo.rb +++ b/lib/puppet/type/yumrepo.rb @@ -80,7 +80,7 @@ module Puppet # Where to put files for brand new sections @defaultrepodir = nil - def self.list + def self.instances l = [] check = validproperties clear |