On Mon, Nov 30, 2009 at 1:21 PM, Douglas Garstang
<doug.garst...@gmail.com> wrote:
> On Mon, Nov 30, 2009 at 12:12 AM, David Schmitt <da...@dasz.at> wrote:
>> Douglas Garstang wrote:
>>> On Thu, Nov 26, 2009 at 11:59 PM, David Schmitt <da...@dasz.at> wrote:
>>>> Douglas Garstang wrote:
>>>>> First post didn't appear on the list (gee, like that doesn't happen
>>>>> all the time....)
>>>>>
>>>>> So.. I've been fighting with trying to get puppet to include/execute
>>>>> module in a certain order for several weeks now. I kind of have
>>>>> something hacked together, but it scares me a bit since I don't know
>>>>> exactly what is happening.
>>>>>
>>>>> I don't suppose there's still an easy way to do this....?
>>>> I have as one of the very fist things in my site.pp a list of imports of
>>>> modules. That way at least the init.pp of each of the listed modules is
>>>> activated.
>>>>
>>>> This is from before autoloading though, so in a newer installation I
>>>> would consider most modules that need an import as (slightly) broken.
>>>
>>> Not quite sure I follow David.
>>>
>>> You explicitly import specific modules in site.pp? This is what I have
>>> currently...
>>>
>>> import "definitions/*.pp"
>>> import "modules/*.pp"
>>> import "nodes/*.pp"
>>>
>>> Are you saying that by putting specific module imports before these
>>> lines that they will get executed first? Is this actually documented
>>> somewhere?
>>
>> Uhhh, importing, parsing and application on the client are different
>> issues. Since I'm not sure (anymore) what you are referring to, I'll
>> define those actions explicitly for this discussion:
>>
>>   * parsing:  the process of translating the manifests and modules on
>> disk into the catalog, which is sent to the client.
>>
>>   * importing:  while parsing, the execution of the import() method
>> adds more modules and manifests to be parsed.
>>
>>   * application:  after the catalog is downloaded by the client, the
>> contents of the catalog are applied to the system.
>>
>>
>> Depending on which action you really meant, the question has different
>> answers:
>>
>>   * parsing:  manifests and modules are parsed in top-down order.
>> Methods, variables, classes, defines and resources earlier in a file are
>> parsed (and thus evaluated) before those later in the file.
>>
>>   * importing:  since import is a function, it is evaluated at that
>> point in the parsing process when it is encountered in the manifest. At
>> this point the referenced files are parsed and their content added to
>> the catalog (as far as they are applicable).
>>
>>   * application:  application order is totally dependent on the
>> require/before/notify/subscribe meta-parameters as specified in the
>> catalog. Parse-order has no influence here.
>
> Thanks, but i don't think you answered my question.
>
> Lets dumb it down. How can I ENSURE that EVERYTHING from module A is
> implemented before ANYTHING from module B?


in 0.25, use the require function in module A to require the class in module B.
http://reductivelabs.com/trac/puppet/wiki/FunctionReference#require

in 0.24.x this is a bit more frustrating, and you need to require the
resources in module A to require the class in module B.




-- 
nigel

--

You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@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