summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-06-09 21:22:25 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-06-09 21:22:25 +0000
commit8ceb1f30496d89f883d9dfa00d5eab001dcd1450 (patch)
tree7361801b20a5822c1d7a7101bdea83ec39c372af
parent4ca7ece1f294488615d5899cb4710c5cb13c5e23 (diff)
downloadpuppet-8ceb1f30496d89f883d9dfa00d5eab001dcd1450.tar.gz
puppet-8ceb1f30496d89f883d9dfa00d5eab001dcd1450.tar.xz
puppet-8ceb1f30496d89f883d9dfa00d5eab001dcd1450.zip
Found a bug where single-value selectors can fail on a second compile. Fixed it, and am now compiling all snippets twice.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1250 980ebf18-57e1-0310-9a29-db15c13687c0
-rw-r--r--examples/code/snippets/selectorvalues.pp7
-rw-r--r--lib/puppet/parser/ast.rb3
-rw-r--r--lib/puppet/parser/ast/selector.rb5
-rwxr-xr-xtest/language/snippets.rb12
4 files changed, 25 insertions, 2 deletions
diff --git a/examples/code/snippets/selectorvalues.pp b/examples/code/snippets/selectorvalues.pp
index 4d07da080..cd8cf77a7 100644
--- a/examples/code/snippets/selectorvalues.pp
+++ b/examples/code/snippets/selectorvalues.pp
@@ -30,8 +30,13 @@ $mode5 = yay ? {
default => 644
}
+$mode6 = $mode5 ? {
+ 755 => 755
+}
+
file { "/tmp/selectorvalues1": ensure => file, mode => $mode1 }
file { "/tmp/selectorvalues2": ensure => file, mode => $mode2 }
file { "/tmp/selectorvalues3": ensure => file, mode => $mode3 }
file { "/tmp/selectorvalues4": ensure => file, mode => $mode4 }
-file { "/tmp/selectorvalues5": ensure => file, mode => $mode4 }
+file { "/tmp/selectorvalues5": ensure => file, mode => $mode5 }
+file { "/tmp/selectorvalues6": ensure => file, mode => $mode6 }
diff --git a/lib/puppet/parser/ast.rb b/lib/puppet/parser/ast.rb
index 4c5226108..6d84e6402 100644
--- a/lib/puppet/parser/ast.rb
+++ b/lib/puppet/parser/ast.rb
@@ -79,6 +79,9 @@ module Puppet
error.line ||= @line
error.file ||= @file
error.backtrace = detail.backtrace
+ if Puppet[:debug]
+ puts detail.backtrace
+ end
raise error
end
end
diff --git a/lib/puppet/parser/ast/selector.rb b/lib/puppet/parser/ast/selector.rb
index 3adf0261c..5d1c41494 100644
--- a/lib/puppet/parser/ast/selector.rb
+++ b/lib/puppet/parser/ast/selector.rb
@@ -19,7 +19,10 @@ class Puppet::Parser::AST
default = nil
- @values = [@values] unless @values.instance_of? AST::ASTArray
+ #@values = [@values] unless @values.instance_of? AST::ASTArray
+ unless @values.instance_of? AST::ASTArray or @values.instance_of? Array
+ @values = [@values]
+ end
# Then look for a match in the options.
@values.each { |obj|
diff --git a/test/language/snippets.rb b/test/language/snippets.rb
index f45a5799d..c34d1b192 100755
--- a/test/language/snippets.rb
+++ b/test/language/snippets.rb
@@ -509,6 +509,18 @@ class TestSnippets < Test::Unit::TestCase
assert_nothing_raised {
client.getconfig()
}
+
+ client = Puppet::Client::MasterClient.new(
+ :Master => server,
+ :Cache => false
+ )
+
+ assert(client.local)
+ # Now do it again
+ Puppet::Type.allclear
+ assert_nothing_raised {
+ client.getconfig()
+ }
trans = nil
assert_nothing_raised {
trans = client.apply()