FAQ
Hello

I have some puppet code that does the equivalent of the following. The
idea is to have a define "foo" with some actions that must be executed
before it runs ("foo::pre"). Since the resources in "foo::pre" can
only be defined once, it's implemented as a class, and included from
the define:

class foo::pre {
notice("foo::pre")
}
define foo() {
include 'foo::pre'
notice("foo")
}
class x {
notice("x")
foo { 'x foo':
}
}
class y {
notice("y")
foo { 'y foo':
}
}
include x
include y

My problem starts when I need to parametrize class "foo::pre":

class foo::pre($blah) {
notice("foo::pre")
}
define foo() {
class { 'foo::pre':
blah => 1,
}
notice("foo")
}
class x {
notice("x")
foo { 'x foo':
}
}
class y {
notice("y")
foo { 'y foo':
}
}
include x
include y

When I try to apply this code, I get the error "Duplicate definition:
Class[Foo::Pre] is already defined".

I always thought that the "class { 'someclass': }" syntax was
equivalent to "include someclass", but it seems that in the former,
Puppet treats it as a class definition and not just an include (even
though that's not where the class is defined).

Is there any way around this, or another way to achieve this with
parametrized classes?

Thanks in advance,
Andre

--
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+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppuppet-users @
categoriespuppet
postedApr 26, '12 at 3:49p
activeApr 26, '12 at 3:49p
posts1
users1
websitepuppetlabs.com

1 user in discussion

Andre Nathan: 1 post

People

Translate

site design / logo © 2022 Grokbase