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.