diff options
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/indirector/catalog/compiler.rb | 2 | ||||
-rw-r--r-- | lib/puppet/parser/resource.rb | 1 | ||||
-rw-r--r-- | lib/puppet/resource.rb | 8 | ||||
-rw-r--r-- | lib/puppet/resource/catalog.rb | 7 | ||||
-rw-r--r-- | lib/puppet/transaction.rb | 4 | ||||
-rw-r--r-- | lib/puppet/type.rb | 11 |
6 files changed, 22 insertions, 11 deletions
diff --git a/lib/puppet/indirector/catalog/compiler.rb b/lib/puppet/indirector/catalog/compiler.rb index 12da4de32..4f6b0602a 100644 --- a/lib/puppet/indirector/catalog/compiler.rb +++ b/lib/puppet/indirector/catalog/compiler.rb @@ -43,7 +43,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code # filter-out a catalog to remove exported resources def filter(catalog) - return catalog.filter { |r| r.exported? } if catalog.respond_to?(:filter) + return catalog.filter { |r| r.virtual? } if catalog.respond_to?(:filter) catalog end diff --git a/lib/puppet/parser/resource.rb b/lib/puppet/parser/resource.rb index 6632d2bba..7218ac0c0 100644 --- a/lib/puppet/parser/resource.rb +++ b/lib/puppet/parser/resource.rb @@ -268,6 +268,7 @@ class Puppet::Parser::Resource result.file = self.file result.line = self.line result.exported = self.exported + result.virtual = self.virtual result.tag(*self.tags) return result diff --git a/lib/puppet/resource.rb b/lib/puppet/resource.rb index 0de089cd7..134076580 100644 --- a/lib/puppet/resource.rb +++ b/lib/puppet/resource.rb @@ -9,7 +9,7 @@ class Puppet::Resource include Puppet::Util::Tagging extend Puppet::Util::Json include Enumerable - attr_accessor :file, :line, :catalog, :exported + attr_accessor :file, :line, :catalog, :exported, :virtual attr_writer :type, :title ATTRIBUTES = [:file, :line, :exported] @@ -106,8 +106,10 @@ class Puppet::Resource @parameters.each { |p,v| yield p, v } end - def exported? - exported + %w{exported virtual}.each do |m| + define_method(m+"?") do + self.send(m) + end end # Create our resource. diff --git a/lib/puppet/resource/catalog.rb b/lib/puppet/resource/catalog.rb index bb82906f3..6ccfe73ad 100644 --- a/lib/puppet/resource/catalog.rb +++ b/lib/puppet/resource/catalog.rb @@ -576,8 +576,11 @@ class Puppet::Resource::Catalog < Puppet::SimpleGraph message = convert.to_s.gsub "_", " " edges.each do |edge| # Skip edges between virtual resources. - next if edge.source.respond_to?(:virtual?) and edge.source.virtual? - next if edge.target.respond_to?(:virtual?) and edge.target.virtual? + next if virtual_not_exported?(edge.source) + next if block_given? and yield edge.source + + next if virtual_not_exported?(edge.target) + next if block_given? and yield edge.target unless source = map[edge.source.ref] raise Puppet::DevError, "Could not find resource %s when converting %s resources" % [edge.source.ref, message] diff --git a/lib/puppet/transaction.rb b/lib/puppet/transaction.rb index f57eda6c9..d04856d39 100644 --- a/lib/puppet/transaction.rb +++ b/lib/puppet/transaction.rb @@ -590,8 +590,8 @@ class Transaction resource.debug "Not scheduled" elsif failed_dependencies?(resource) resource.warning "Skipping because of failed dependencies" - elsif resource.exported? - resource.debug "Skipping because exported" + elsif resource.virtual? + resource.debug "Skipping because virtual" else return false end diff --git a/lib/puppet/type.rb b/lib/puppet/type.rb index 33b4e92da..ee87c2680 100644 --- a/lib/puppet/type.rb +++ b/lib/puppet/type.rb @@ -1855,6 +1855,9 @@ class Type # is the resource exported attr_accessor :exported + # is the resource virtual (it should not :-)) + attr_accessor :virtual + # create a log at specified level def log(msg) Puppet::Util::Log.create( @@ -1888,7 +1891,7 @@ class Type self.title = resource.ref end - [:file, :line, :catalog, :exported].each do |getter| + [:file, :line, :catalog, :exported, :virtual].each do |getter| setter = getter.to_s + "=" if val = resource.send(getter) self.send(setter, val) @@ -2069,8 +2072,10 @@ class Type return trans end - def exported? - exported + %w{exported virtual}.each do |m| + define_method(m+"?") do + self.send(m) + end end end # Puppet::Type |