diff options
author | Jesse Wolfe <jes5199@gmail.com> | 2009-11-10 02:58:02 -0800 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2009-11-19 03:35:31 +1100 |
commit | c1e47a43df40abd5da04bf147df17f0b53bf0868 (patch) | |
tree | 75424d94dfeb10d5e70ffe7b9ec9a5b6ce4eaced /lib/puppet/util | |
parent | 106c9a91929f00a852f7027088cee6684f83ab63 (diff) | |
download | puppet-c1e47a43df40abd5da04bf147df17f0b53bf0868.tar.gz puppet-c1e47a43df40abd5da04bf147df17f0b53bf0868.tar.xz puppet-c1e47a43df40abd5da04bf147df17f0b53bf0868.zip |
Fixing #2789 puppetrun fails without --tag
Puppet::Transaction was handling "tags" strings differently depending on
whether they came in from Puppet[:tags] or another source.
This was causing puppetrun's tags to be misparsed if there was not
exactly one --tag parameter.
I've moved the code to Util::Tagging.
Diffstat (limited to 'lib/puppet/util')
-rw-r--r-- | lib/puppet/util/tagging.rb | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/puppet/util/tagging.rb b/lib/puppet/util/tagging.rb index 03a8b8a9a..9ee90799f 100644 --- a/lib/puppet/util/tagging.rb +++ b/lib/puppet/util/tagging.rb @@ -16,8 +16,7 @@ module Puppet::Util::Tagging @tags << tag unless @tags.include?(tag) end - # LAK:NOTE See http://snurl.com/21zf8 [groups_google_com] - qualified.collect { |name| x = name.split("::") }.flatten.each { |tag| @tags << tag unless @tags.include?(tag) } + handle_qualified_tags( qualified ) end # Are we tagged with the provided tag? @@ -32,8 +31,27 @@ module Puppet::Util::Tagging @tags.dup end + def tags=(tags) + @tags = [] + + return if tags.nil? or tags == "" + + if tags.is_a?(String) + tags = tags.strip.split(/\s*,\s*/) + end + + tags.each do |t| + tag(t) + end + end + private + def handle_qualified_tags( qualified ) + # LAK:NOTE See http://snurl.com/21zf8 [groups_google_com] + qualified.collect { |name| x = name.split("::") }.flatten.each { |tag| @tags << tag unless @tags.include?(tag) } + end + def valid_tag?(tag) tag =~ /^\w[-\w:.]*$/ end |