summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/indirector/catalog/compiler.rb2
-rw-r--r--lib/puppet/parser/resource.rb1
-rw-r--r--lib/puppet/resource.rb8
-rw-r--r--lib/puppet/resource/catalog.rb7
-rw-r--r--lib/puppet/transaction.rb4
-rw-r--r--lib/puppet/type.rb11
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