> > > In this case, the link between the differring blocks should be > externalized from your ldap module (e.g. the ldap module should care > about stuff related to ldap.. not about relations to other modules). > > You could put the order declaration in a "node type" or "node role" kind > of class that you include in your node. > say: > > class mysql_server_role { > include ldap_authentication_role # which declares whatever is needed > # for ldap support > include mysql > > Class['Ldap'] -> Class['Mysql'] > } >
I see your point and we allready have this role setup in place. But also maintaining ordering declarations for every module that we include is gonna be a painfull, especially if you have, as we, widespread use of common defines that also impose their own ordering. A system simular to stages, but with the ability to assign stages to more then just a class This would allow me to do the following: define portage_useflag_override() { File{ "": stage => useflag } } define hyves_package($category) { package{ "": stage => package } } Class portage { exec {"emerge --sync": } } Class ldap { hyves_package{'nss-switch': } notify{"done ldap": } } Stage['portage-setup'] -> Stage['useflag'] -> Stage['package'] -> Stage['ldap'] -> Stage['main'] Class{"portage": stage => portage-setup; } Class{"ldap": stage => ldap; } portage_useflag_override{"test":} And have an execution order like this one: exec['emerge --sync'] -> portage_useflag_override["test"] -> hyves_package["nss-switch"] -> notify["done ldap"] The two foremost gains with such an approach would be that cross-module ordering could worked out using stages. While the few modules that deliver common services used by other modules, through defines, can work without complicated, possibly cross-stage, dependency chains. Regards, Jos and not dependency chains that would need to cross stages. > > -- > Gabriel Filion > -- 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+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.