Issue #3664 has been updated by James Turnbull.

Status changed from Accepted to Ready for Testing


----------------------------------------
Bug #3664: Qualified variable interpolation is broken in master
http://projects.puppetlabs.com/issues/3664

Author: Brice Figureau
Status: Ready for Testing
Priority: High
Assigned to: Markus Roberts
Category: parser
Target version: 2.6
Affected version: testing
Keywords: 
Branch: http://github.com/masterzen/puppet/tree/tickets/master/3664


I know master is in big flux at the moment, but it also happens on testing.
This is certainly some minor glitches in Markus' new string interpolation 
system.

The following manifest which used to work fine on 0.2X.X is not working anymore:

<pre>
class myclass {
        $var = 12
}

include myclass

notice("my var is: ${myclass::var}")
</pre>

it fails with:
<pre>
/Users/brice/devl/puppet/lib/puppet/parser/parser_support.rb:317:in `on_error'
/opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:31:in 
`_racc_yyparse_c'
/Users/brice/devl/puppet/lib/puppet/parser/lexer.rb:466:in `scan'
/opt/local/lib/ruby/1.8/racc/parser.rb:152:in `_racc_yyparse_c'
/opt/local/lib/ruby/1.8/racc/parser.rb:152:in `__send__'
/opt/local/lib/ruby/1.8/racc/parser.rb:152:in `yyparse'
/Users/brice/devl/puppet/lib/puppet/parser/parser_support.rb:328:in `parse'
/Users/brice/devl/puppet/lib/puppet/resource/type_collection.rb:145:in 
`perform_initial_import'
/Users/brice/devl/puppet/lib/puppet/node/environment.rb:63:in 
`known_resource_types'
/Users/brice/devl/puppet/lib/puppet/resource/type_collection_helper.rb:5:in 
`known_resource_types'
/Users/brice/devl/puppet/lib/puppet/parser/compiler.rb:379:in `initvars'
/Users/brice/devl/puppet/lib/puppet/parser/compiler.rb:163:in `initialize'
/Users/brice/devl/puppet/lib/puppet/parser/compiler.rb:18:in `new'
/Users/brice/devl/puppet/lib/puppet/parser/compiler.rb:18:in `compile'
/Users/brice/devl/puppet/lib/puppet/indirector/catalog/compiler.rb:79:in 
`compile'
/Users/brice/devl/puppet/lib/puppet/util.rb:183:in `benchmark'
/Users/brice/devl/puppet/lib/puppet/indirector/catalog/compiler.rb:77:in 
`compile'
/Users/brice/devl/puppet/lib/puppet/indirector/catalog/compiler.rb:34:in `find'
/Users/brice/devl/puppet/lib/puppet/indirector/indirection.rb:195:in `find'
/Users/brice/devl/puppet/lib/puppet/indirector.rb:51:in `find'
/Users/brice/devl/puppet/lib/puppet/application/main.rb:119:in `main'
/Users/brice/devl/puppet/lib/puppet/application.rb:306:in `send'
/Users/brice/devl/puppet/lib/puppet/application.rb:306:in `run_command'
/Users/brice/devl/puppet/lib/puppet/application.rb:297:in `run'
/Users/brice/devl/puppet/lib/puppet/application.rb:395:in `exit_on_fail'
/Users/brice/devl/puppet/lib/puppet/application.rb:297:in `run'
bin/puppet:20
/Users/brice/devl/puppet/lib/puppet/parser/compiler.rb:21:in `compile'
/Users/brice/devl/puppet/lib/puppet/indirector/catalog/compiler.rb:79:in 
`compile'
/Users/brice/devl/puppet/lib/puppet/util.rb:183:in `benchmark'
/Users/brice/devl/puppet/lib/puppet/indirector/catalog/compiler.rb:77:in 
`compile'
/Users/brice/devl/puppet/lib/puppet/indirector/catalog/compiler.rb:34:in `find'
/Users/brice/devl/puppet/lib/puppet/indirector/indirection.rb:195:in `find'
/Users/brice/devl/puppet/lib/puppet/indirector.rb:51:in `find'
/Users/brice/devl/puppet/lib/puppet/application/main.rb:119:in `main'
/Users/brice/devl/puppet/lib/puppet/application.rb:306:in `send'
/Users/brice/devl/puppet/lib/puppet/application.rb:306:in `run_command'
/Users/brice/devl/puppet/lib/puppet/application.rb:297:in `run'
/Users/brice/devl/puppet/lib/puppet/application.rb:395:in `exit_on_fail'
/Users/brice/devl/puppet/lib/puppet/application.rb:297:in `run'
bin/puppet:20
Could not parse for environment production: Syntax error at 'myclass::var'; 
expected ')' at /tmp/var.pp:8 on node macbook.local
</pre>

the following manifest works fine, though:
<pre>
class myclass {
        $var = 12
}

include myclass

$var2 = $myclass::var
notice("my var is: ${var2}")
</pre>



-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to