diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-06-09 21:22:25 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-06-09 21:22:25 +0000 |
| commit | 8ceb1f30496d89f883d9dfa00d5eab001dcd1450 (patch) | |
| tree | 7361801b20a5822c1d7a7101bdea83ec39c372af | |
| parent | 4ca7ece1f294488615d5899cb4710c5cb13c5e23 (diff) | |
| download | puppet-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.pp | 7 | ||||
| -rw-r--r-- | lib/puppet/parser/ast.rb | 3 | ||||
| -rw-r--r-- | lib/puppet/parser/ast/selector.rb | 5 | ||||
| -rwxr-xr-x | test/language/snippets.rb | 12 |
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() |
