Issue #22817 has been reported by Chad Huneycutt.

----------------------------------------
Bug #22817: enabling future parser breaks puppet - "Do not add methods to model 
classes directly..."
https://projects.puppetlabs.com/issues/22817

* Author: Chad Huneycutt
* Status: Unreviewed
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* Affected Puppet version: 
* Keywords: 
* Branch: 
----------------------------------------
After enabling the future parser, agent runs fail with "Could not parse for 
environment X: Do not add methods to model classes directly, add them to the 
ClassModule instead on node foo.bar"

This happens even with an empty node definition.

up-to-date RHEL6.4 on master and agent with puppet 3.3.1 from puppetlabs repo

The master is run via apache+passenger.

puppet.conf on master: 

<pre>
[main]
    dbadapter = mysql
    dbuser = puppet
    dbpassword = myultrasecretpassword
    dbserver = localhost
    dbsocket = /var/lib/mysql/mysql.sock

[master]
    vardir = /var/lib/puppetmaster
    ssldir = /var/lib/puppetmaster/ssl
    rundir = /var/run/puppet
    autosign = true
    modulepath = 
/etc/puppet/environments/$environment/modules:/etc/puppet/environments/common/modules
    manifest = /etc/puppet/environments/$environment/site.pp
    hiera_config = /etc/puppet/hiera.yaml

    reports = log, foreman

    # set default env for unconfigured nodes
    environment = infrastructure
    storeconfigs = true
    parser = future
</pre>


puppet.conf on agent:

<pre>
[agent]
    server = trantor.vm
    vardir = /var/lib/puppet
    ssldir = $vardir/ssl

    report = true
    pluginsync = true

    environment = research
</pre>

site.pp:

<pre>
node default {
}
</pre>

Here's the master trace:

<pre>
Error: Could not parse for environment research: Do not add methods to model 
classes directly, add them to the ClassModule instead on node anacreon.vm
/usr/lib/ruby/site_ruby/rgen/metamodel_builder.rb:198:in `method_added'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/core_ext/module/aliasing.rb:33:in
 `alias_method'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/core_ext/module/aliasing.rb:33:in
 `alias_method_chain'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/dependencies.rb:142:in
 `included'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/dependencies.rb:140:in
 `class_eval'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/dependencies.rb:140:in
 `included'
/usr/lib/ruby/site_ruby/rgen/metamodel_builder/mm_multiple.rb:15:in `include'
/usr/lib/ruby/site_ruby/rgen/metamodel_builder/mm_multiple.rb:15:in `MMMultiple'
/usr/lib/ruby/site_ruby/rgen/metamodel_builder/mm_multiple.rb:14:in 
`instance_eval'
/usr/lib/ruby/site_ruby/rgen/metamodel_builder/mm_multiple.rb:14:in `MMMultiple'
/usr/lib/ruby/site_ruby/rgen/metamodel_builder/mm_multiple.rb:12:in `each'
/usr/lib/ruby/site_ruby/rgen/metamodel_builder/mm_multiple.rb:12:in `MMMultiple'
/usr/lib/ruby/site_ruby/rgen/ecore/ecore.rb:20
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in 
`gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/dependencies.rb:184:in
 `require'
/usr/lib/ruby/site_ruby/rgen/transformer.rb:1
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in 
`gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/dependencies.rb:184:in
 `require'
/usr/lib/ruby/site_ruby/rgen/ecore/ruby_to_ecore.rb:1
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in 
`gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/dependencies.rb:184:in
 `require'
/usr/lib/ruby/site_ruby/rgen/ecore/ecore_interface.rb:22:in `ecore'
/usr/lib/ruby/site_ruby/1.8/puppet/pops/containment.rb:28:in `eAllContents'
/usr/lib/ruby/site_ruby/1.8/puppet/pops/containment.rb:20:in `each'
/usr/lib/ruby/site_ruby/1.8/puppet/pops/validation/checker3_1.rb:39:in 
`validate'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/e_parser_adapter.rb:61:in `validate'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/e_parser_adapter.rb:38:in `parse'
/usr/lib/ruby/site_ruby/1.8/puppet/node/environment.rb:468:in 
`perform_initial_import'
/usr/lib/ruby/site_ruby/1.8/puppet/node/environment.rb:219:in 
`known_resource_types'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/site_ruby/1.8/puppet/node/environment.rb:216:in 
`known_resource_types'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/type_collection_helper.rb:5:in 
`known_resource_types'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:465:in `initvars'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:202:in `initialize'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:29:in `new'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:29:in `compile'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:88:in 
`compile'
/usr/lib/ruby/site_ruby/1.8/puppet/util/profiler/none.rb:6:in `profile'
/usr/lib/ruby/site_ruby/1.8/puppet/util/profiler.rb:26:in `profile'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:86:in 
`compile'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:182:in `benchmark'
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:181:in `benchmark'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:85:in 
`compile'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:45:in `find'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/indirection.rb:197:in `find'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:140:in `do_find'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:97:in `send'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:97:in `process'
/usr/lib/ruby/site_ruby/1.8/puppet/util/profiler/none.rb:6:in `profile'
/usr/lib/ruby/site_ruby/1.8/puppet/util/profiler.rb:26:in `profile'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:91:in `process'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick/rest.rb:31:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:35:in `listen'
/usr/lib/ruby/1.8/webrick/server.rb:173:in `call'
/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:32:in `listen'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:31:in `initialize'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:31:in `new'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:31:in `listen'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:28:in `synchronize'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:28:in `listen'
/usr/lib/ruby/site_ruby/1.8/puppet/network/server.rb:27:in `start'
/usr/lib/ruby/site_ruby/1.8/puppet/daemon.rb:139:in `start'
/usr/lib/ruby/site_ruby/1.8/puppet/application/master.rb:289:in 
`start_webrick_master'
/usr/lib/ruby/site_ruby/1.8/puppet/application/master.rb:205:in `main'
/usr/lib/ruby/site_ruby/1.8/puppet/application/master.rb:165:in `run_command'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:364:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:457:in `plugin_hook'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:364:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:511:in `exit_on_fail'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:364:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:132:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:86:in `execute'
/usr/bin/puppet:4
Error: Could not parse for environment research: Do not add methods to model 
classes directly, add them to the ClassModule instead on node anacreon.vm
Error: Could not parse for environment research: Do not add methods to model 
classes directly, add them to the ClassModule instead on node anacreon.vm
/usr/lib/ruby/site_ruby/rgen/metamodel_builder.rb:198:in `method_added'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/core_ext/module/aliasing.rb:33:in
 `alias_method'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/core_ext/module/aliasing.rb:33:in
 `alias_method_chain'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/dependencies.rb:142:in
 `included'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/dependencies.rb:140:in
 `class_eval'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/dependencies.rb:140:in
 `included'
/usr/lib/ruby/site_ruby/rgen/metamodel_builder/mm_multiple.rb:15:in `include'
/usr/lib/ruby/site_ruby/rgen/metamodel_builder/mm_multiple.rb:15:in `MMMultiple'
/usr/lib/ruby/site_ruby/rgen/metamodel_builder/mm_multiple.rb:14:in 
`instance_eval'
/usr/lib/ruby/site_ruby/rgen/metamodel_builder/mm_multiple.rb:14:in `MMMultiple'
/usr/lib/ruby/site_ruby/rgen/metamodel_builder/mm_multiple.rb:12:in `each'
/usr/lib/ruby/site_ruby/rgen/metamodel_builder/mm_multiple.rb:12:in `MMMultiple'
/usr/lib/ruby/site_ruby/rgen/ecore/ecore.rb:20
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in 
`gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/dependencies.rb:184:in
 `require'
/usr/lib/ruby/site_ruby/rgen/transformer.rb:1
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in 
`gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/dependencies.rb:184:in
 `require'
/usr/lib/ruby/site_ruby/rgen/ecore/ruby_to_ecore.rb:1
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in 
`gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.16/lib/active_support/dependencies.rb:184:in
 `require'
/usr/lib/ruby/site_ruby/rgen/ecore/ecore_interface.rb:22:in `ecore'
/usr/lib/ruby/site_ruby/1.8/puppet/pops/containment.rb:28:in `eAllContents'
/usr/lib/ruby/site_ruby/1.8/puppet/pops/containment.rb:20:in `each'
/usr/lib/ruby/site_ruby/1.8/puppet/pops/validation/checker3_1.rb:39:in 
`validate'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/e_parser_adapter.rb:61:in `validate'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/e_parser_adapter.rb:38:in `parse'
/usr/lib/ruby/site_ruby/1.8/puppet/node/environment.rb:468:in 
`perform_initial_import'
/usr/lib/ruby/site_ruby/1.8/puppet/node/environment.rb:219:in 
`known_resource_types'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/site_ruby/1.8/puppet/node/environment.rb:216:in 
`known_resource_types'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/type_collection_helper.rb:5:in 
`known_resource_types'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:465:in `initvars'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:202:in `initialize'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:29:in `new'
/usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:29:in `compile'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:88:in 
`compile'
/usr/lib/ruby/site_ruby/1.8/puppet/util/profiler/none.rb:6:in `profile'
/usr/lib/ruby/site_ruby/1.8/puppet/util/profiler.rb:26:in `profile'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:86:in 
`compile'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:182:in `benchmark'
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:181:in `benchmark'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:85:in 
`compile'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:45:in `find'
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/indirection.rb:197:in `find'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:140:in `do_find'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:97:in `send'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:97:in `process'
/usr/lib/ruby/site_ruby/1.8/puppet/util/profiler/none.rb:6:in `profile'
/usr/lib/ruby/site_ruby/1.8/puppet/util/profiler.rb:26:in `profile'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:91:in `process'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick/rest.rb:31:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:35:in `listen'
/usr/lib/ruby/1.8/webrick/server.rb:173:in `call'
/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:32:in `listen'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:31:in `initialize'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:31:in `new'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:31:in `listen'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:28:in `synchronize'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:28:in `listen'
/usr/lib/ruby/site_ruby/1.8/puppet/network/server.rb:27:in `start'
/usr/lib/ruby/site_ruby/1.8/puppet/daemon.rb:139:in `start'
/usr/lib/ruby/site_ruby/1.8/puppet/application/master.rb:289:in 
`start_webrick_master'
/usr/lib/ruby/site_ruby/1.8/puppet/application/master.rb:205:in `main'
/usr/lib/ruby/site_ruby/1.8/puppet/application/master.rb:165:in `run_command'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:364:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:457:in `plugin_hook'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:364:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:511:in `exit_on_fail'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:364:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:132:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:86:in `execute'
/usr/bin/puppet:4
</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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to