What you have presented does not explain the problem. Though you do not recognize it, there is more to this than you are telling us.
On Friday, December 14, 2012 3:44:51 AM UTC-6, A_SAAS wrote: > > Hi everyone, > > > Here are the manifest I am using: > In file '*modules/test/manifest/init.pp*': > > class test ( > $test = undef, > ) { > notice("Here is the message: ${test}") > } > > > Is that the complete contents of the file? > Now in '*modules/saas/manifests/client/sudo.pp*': > > class saas::client::sudo { > class { 'test': } > } > > And is that the complete contents of *that* file? > Now in '*manifests/sites.pp*': > > import "nodes" > > Complete contents? > And finally in '*manifests/nodes.pp*': > > node 'linux-install.fqdn' { > include saas::client::sudo > } > > And the error occurs when that's the only contents of its file? > > And I am getting the following error on the client: > > Info: Retrieving plugin > Info: Loading facts in /var/lib/puppet/lib/facter/antidot_suite_version.rb > Info: Loading facts in /var/lib/puppet/lib/facter/meminbytes.rb > Info: Loading facts in /var/lib/puppet/lib/facter/root_home.rb > Info: Loading facts in /var/lib/puppet/lib/facter/facter_dot_d.rb > Info: Loading facts in /var/lib/puppet/lib/facter/sudo.rb > Info: Loading facts in /var/lib/puppet/lib/facter/concat_basedir.rb > Info: Loading facts in /var/lib/puppet/lib/facter/puppet_vardir.rb > Error: Could not retrieve catalog from remote server: Error 400 on SERVER: > Duplicate declaration: Class[Saas::Client::Sudo] is already declared; > cannot redeclare on node linux-install.fqdn > Using cached catalog > > > Puppet rejects parametrized-style class declarations for classes that have already been declared (whether the original declaration is parametrized-style or not). This is an excellent reason to rigorously avoid using parametrized-style class declarations. To find your problem, find the other place(s) where you declare Class["test"]. Such a declaration might have any of these forms: class { 'test': ... } class { '::test': ... } include 'test' include '::test' require 'test' require '::test' Be especially watchful for top-level declarations (outside any class or node). In principle, those apply to all nodes, but in practice, they may not actually be parsed for every node. You can get those by mixing up the syntax for defining a class with the parametrized-form syntax for declaring one. That is, at top level you might write class { 'test': } when you meant class 'test' { } If your node declarations have nothing other than you presented, then saas/manifests/client/sudo.pp is very likely where the extra declaration appears, or some other manifest parsed as a result of it. John -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/4fuYUdvxBiwJ. 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.