Hello list.
I've the following parent class:
class munin::client {
...
munin::client::plugin { "postfix_mailqueue":
name => "postfix_mailqueue",
enable => "false"
}
}
And the following inherited class:
class munin::client::plugins::postfix inherits munin::client {
munin::client::plugin { "postfix_mailqueue":
name => "postfix_mailqueue",
source => "postfix_mailqueue",
enable => "true"
}
}
munin::client::plugin is a custom type, allowing to easily
enable/disable munin plugins, according to the following definition:
define munin::client::plugin($name, $source, $enable="true") {
case $enable {
"true": {
file { "${name}_link":
path => "$destdir/$name",
ensure => "link",
target => "$sourcedir/$source",
}
}
"false": {
file { "${name}_link":
path => "$destdir/$name",
ensure => "absent",
}
}
}
}
According to my understanding of how inheritance works, it should allow
to easily redefine default behaviour in some specific nodes by just
adding munin::client::plugins::postfix class in addition to
munin::client, inherited through default node definition. However, it
fails with the following error message:
err: Could not retrieve catalog from remote server: Error 400 on SERVER:
Duplicate declaration: Munin::Client::Plugin[postfix_mailqueue] is
already declared in file
/var/lib/puppet/devrousse/modules/munin/manifests/client.pp at line 135;
cannot redeclare at
/var/lib/puppet/devrousse/modules/munin/manifests/client/plugins/postfix.pp:11
on node dev-zimbra.inria.fr
I originally tought it was the double inclusion of both the base and the
derivated class that was causing the issue, so I attempted to remove the
base classe for the default node definition, so as to only include the
derivated one: same result :(
So, what is the generic design pattern for including default classes in
default node definition, while still allowing to override them in
specific nodes ?
--
BOFH excuse #389:
/dev/clue was linked to /dev/null
--
You received this message because you are subscribed to the Google Groups "Puppet
Users" 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-users?hl=en.