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.

Reply via email to