Consider these two Puppet module files:

# File modules/a/manifests/b/c.pp
class a::b::c {
    include b::c
}

# File modules/b/manifests/c.pp
class b::c {
    notify { "In b::c": }
}

It seems that when Puppet hits the include b::c directive in class a::b::c, it searches for the corresponding *.pp file by looking backwards from the current class and decides that it find the correct file located at ../../b/c.pp. In other words, it resolves b::c to the same *.pp file that the include b::c statement appears in: modules/a/manifests/b/c.pp

I expected it (and would like it) to instead find and load the file modules/b/manifests/c.pp. Is there a way to make Puppet do this? If not, it seems to me that module names may not contain any other module names anywhere within them, which is a pretty surprising restriction.

link|improve this question

50% accept rate
feedback

1 Answer

up vote 1 down vote accepted

to force it to top use 'include ::b::c'

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.