summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-07-05 23:54:26 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-07-05 23:54:26 +0000
commit3ae3a4ec9f25b590bd84a9a2693cde2e6553a6c2 (patch)
tree4128f93336030f4374be1172411a138829ceb872
parent19e180f9081faf4661020347d678ac4835b920c1 (diff)
downloadpuppet-3ae3a4ec9f25b590bd84a9a2693cde2e6553a6c2.tar.gz
puppet-3ae3a4ec9f25b590bd84a9a2693cde2e6553a6c2.tar.xz
puppet-3ae3a4ec9f25b590bd84a9a2693cde2e6553a6c2.zip
Fixing #689, although I have not added unit tests. The problem was that a tag name was being removed, rather than the tag object itself.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2651 980ebf18-57e1-0310-9a29-db15c13687c0
-rw-r--r--lib/puppet/parser/resource.rb6
-rw-r--r--lib/puppet/rails/resource.rb3
2 files changed, 5 insertions, 4 deletions
diff --git a/lib/puppet/parser/resource.rb b/lib/puppet/parser/resource.rb
index 0722f388c..56b430b7f 100644
--- a/lib/puppet/parser/resource.rb
+++ b/lib/puppet/parser/resource.rb
@@ -207,9 +207,9 @@ class Puppet::Parser::Resource
db_resource.ar_hash_merge(db_resource.get_tag_hash(),
updated_tags,
:create => Proc.new { |name, tag|
- db_resource.add_resource_tag(tag)
- }, :delete => Proc.new { |rt|
- rt.each { |tag| db_resource.resource_tags.delete(tag) }
+ db_resource.add_resource_tag(name)
+ }, :delete => Proc.new { |tag|
+ db_resource.resource_tags.delete(tag)
}, :modify => Proc.new { |db, mem|
# nothing here
})
diff --git a/lib/puppet/rails/resource.rb b/lib/puppet/rails/resource.rb
index 0163394b1..233982ed9 100644
--- a/lib/puppet/rails/resource.rb
+++ b/lib/puppet/rails/resource.rb
@@ -45,7 +45,8 @@ class Puppet::Rails::Resource < ActiveRecord::Base
def get_tag_hash(tags = nil)
tags ||= resource_tags.find(:all, :include => :puppet_tag)
return tags.inject({}) do |hash, tag|
- hash[tag.puppet_tag.name] = tag.puppet_tag.name
+ # We have to store the tag object, not just the tag name.
+ hash[tag.puppet_tag.name] = tag
hash
end
end