summaryrefslogtreecommitdiffstats
path: root/lib/puppet/resource.rb
diff options
context:
space:
mode:
authorBrice Figureau <brice-puppet@daysofwonder.com>2009-08-07 22:45:12 +0200
committerJames Turnbull <james@lovedthanlost.net>2009-08-13 08:10:00 +1000
commitaad3b76da045d2fd845866fb6e8a7c9866307cd8 (patch)
tree6e8cd7c46a4f58d66b95bcdd14ef85710f44f253 /lib/puppet/resource.rb
parent63cb1ade80187ebc6f7f24c74e4d1e4db53422c1 (diff)
downloadpuppet-aad3b76da045d2fd845866fb6e8a7c9866307cd8.tar.gz
puppet-aad3b76da045d2fd845866fb6e8a7c9866307cd8.tar.xz
puppet-aad3b76da045d2fd845866fb6e8a7c9866307cd8.zip
Fix #2507 - Exported resources were not correctly collected.
#2507 contains two issues: * a crash when we filters-out an unwanted resource which had edges pointing to it. * resources are losing their virtuality when they are transformed from Puppet::Parser::Resource to Puppet::Resource. This means we weren't able to distinguish anymore between an exported resource collected in the same node as it was exported and an exported resource collected in another node. The net result is that we can't apply exported resources that are collected in the same node because they are filtered out by the catalog filter (see the commits for #2391 for more information). The fix is to keep the virtuality of the resources so that we can differentiate those two types of exported resources. We keep this until the catalog is ready to be sent, where we filter out the virtual resouces only, the other still exported ones needs to be sent to the client. To be real sure, the transaction also skips virtual resources. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
Diffstat (limited to 'lib/puppet/resource.rb')
-rw-r--r--lib/puppet/resource.rb8
1 files changed, 5 insertions, 3 deletions
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.