Thanks for the response Dan, that was an easy fix.
Here is a trace: # puppet agent -t --trace /usr/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:56:in `deserialize' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:75:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/indirection.rb:188:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/indirector.rb:50:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:240:in `retrieve_new_catalog' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:429:in `thinmark' /usr/lib/ruby/1.8/benchmark.rb:308:in `realtime' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:428:in `thinmark' /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:239:in `retrieve_new_catalog' /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:86:in `retrieve_catalog' /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:111:in `retrieve_and_apply_catalog' /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:150:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:39:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/agent/locker.rb:21:in `lock' /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:39:in `run' /usr/lib/ruby/1.8/sync.rb:230:in `synchronize' /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:39:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:103:in `with_client' /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:37:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:172:in `call' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:172:in `controlled_run' /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:35:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:114:in `onetime' /usr/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:88:in `run_command' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:305:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:420:in `hook' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:305:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:411:in `exit_on_fail' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:305:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:62:in `execute' /usr/bin/puppet:4 err: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid parameter yumreposerver::locations on node kinks.corp.localmatters.com warning: Not using cache on failed catalog err: Could not retrieve catalog; skipping run On Tue, Jul 12, 2011 at 11:35 PM, Dan Bode <d...@puppetlabs.com> wrote: > > > On Tue, Jul 12, 2011 at 10:43 AM, Justin Lambert < > jlamb...@localmatters.com> wrote: > >> I have just gotten to playing with this and am doing something wrong, >> probably very basic. >> >> On the puppetmaster (which for my testing is also the client) I have >> create_resources.rb in /var/lib/puppet/lib/puppet/parser/functions. >> >> I wrote a new ENC that will just output a very basic YAML to test this, >> the output is: >> classes: >> yumreposerver: >> yumreposerver::locations: >> >> > centos5: >> distro: centos >> version: 5.6 >> > > it should be something like: > > yumreposerver: > instances: > centos5: > distro: > ... > > there is no yumreposerver parameter in the yum server class, only an > instances parameter > > >> >> In my modules directory I have yumreposerver/manifests/locations.pp: >> class yumreposerver::locations ( $instances = {} ) >> { >> create_resources('yumreposerver::location', $instances) >> } >> >> yumreposerver/manifests/location.pp: >> define yumreposerver::location( $distro, $version ) { >> ..... >> } >> >> puppet agent -t --noop returns: >> err: Could not retrieve catalog from remote server: Error 400 on SERVER: >> Invalid parameter yumreposerver::locations on node <name> >> > > I agree that this is not a very clear error message, can you run with > --trace? > > > >> Puppet version 2.6.9 on SL6. >> >> Any insight as to where I have gone wrong? >> >> Thanks, >> jl >> >> On Wed, Jul 6, 2011 at 7:22 AM, Justin Lambert <jlamb...@localmatters.com >> > wrote: >> >>> This looks exactly like what I was looking for, thank you. This might be >>> worth mentioning on the ENC page so people like myself can find it easier. >>> >>> >>> On Tue, Jul 5, 2011 at 10:42 PM, Dan Bode <d...@puppetlabs.com> wrote: >>> >>>> Hi J, >>>> >>>> The create resources function was created to serve this exact use case >>>> (the README actually mentions your exact use case :) ) >>>> >>>> https://github.com/puppetlabs/puppetlabs-create_resources >>>> >>>> This will require 2.6.5 or higher to work (That is the first version >>>> where ENC's support param classes) >>>> >>>> The function was also merged into core in 2.7.0 >>>> >>>> -Dan >>>> >>>> On Tue, Jul 5, 2011 at 1:40 PM, Justin Lambert < >>>> jlamb...@localmatters.com> wrote: >>>> >>>>> I have recently started moving the config of our puppet hosts out of >>>>> the nodes files and into an ENC so they can be managed through a web UI by >>>>> someone with less technical experience without the fear of a typo causing >>>>> a >>>>> failure of all catalogs to compile. As a result, I have been looking at >>>>> which modules need to be rewritten to support this. The problem I have >>>>> run >>>>> into is, how do you do something such as add multiple virtual hosts using >>>>> the YAML output of an ENC? >>>>> >>>>> I currently have something like: >>>>> >>>>> node 'web01.company.com' { >>>>> apache::virtualhost { 'site1': location => '/hosted/site1', url => ' >>>>> http://site1.com' } >>>>> apache::virtualhost { 'site2': location => '/hosted/site2', url => ' >>>>> http://site2.com' } >>>>> } >>>>> >>>>> This uses 'define apache::virtualhost' in order to create multiple >>>>> sites, works fine. The YAML from an ENC (referencing >>>>> http://docs.puppetlabs.com/guides/external_nodes.html) doesn't look to >>>>> support this kind of definition so I need to find an alternative. My next >>>>> thought was that I can pass parameters to a parameterized class. No love >>>>> there as you can't instantiate a class multiple times with different >>>>> parameters. How are others solving this issue? >>>>> >>>>> Thanks, >>>>> jl >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Puppet Users" group. >>>>> To post to this group, send email to puppet-users@googlegroups.com. >>>>> To unsubscribe from this group, send email to >>>>> puppet-users+unsubscr...@googlegroups.com. >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/puppet-users?hl=en. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Puppet Users" group. >>>> To post to this group, send email to puppet-users@googlegroups.com. >>>> To unsubscribe from this group, send email to >>>> puppet-users+unsubscr...@googlegroups.com. >>>> For more options, visit this group at >>>> http://groups.google.com/group/puppet-users?hl=en. >>>> >>> >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Puppet Users" group. >> To post to this group, send email to puppet-users@googlegroups.com. >> To unsubscribe from this group, send email to >> puppet-users+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/puppet-users?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To post to this group, send email to puppet-users@googlegroups.com. > To unsubscribe from this group, send email to > puppet-users+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. > -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.