On Thursday, January 31, 2013 11:52:41 AM UTC-6, Gavin Williams wrote: > > Afternoon all > > I'm sure this is probably a nice n easy one, but I can't work it out for > the life of me... > > Anyhow, I've got the following code: > # Load db yaml data > $db_details = loadyaml('/etc/puppet/data/databases.yaml') > > notify{"DB Details loaded... About to parse.":} > -> > notify{"DB Details = ${db_details}.":} > > #$hostname = lookupvar('{hostname}') > # Parse data and filter to only primary databses for this server > $databases = parse_databases($db_details, 'database_primay_server', > $::hostname) > > notify{"Parsed db details, creating resources.":} > -> > notify{"Databases = ${databases}":} > > # Create required resources... > if $::oracle_netapp { > notify{"\$::oracle_netapp is true.":} > create_resources( act::env::oracle::instance::netapp, $databases) > } > > Parse_databases() is a custom function within one of my modules.. > > The problem I've got is that parse_databases appears to be running before > loadyaml... > Example client run: > Notice: DB Details loaded... About to parse. > Notice: /Stage[main]/Act::Server::Linux::Db::Oracle/Notify[DB Details > loaded... About to parse.]/message: defined 'message' as 'DB Details > loaded... About to parse.' > Notice: Parsed db details, creating resources. > Notice: /Stage[main]/Act::Server::Linux::Db::Oracle/Notify[Parsed db > details, creating resources.]/message: defined 'message' as 'Parsed db > details, creating resources.' > Notice: Databases = > Notice: /Stage[main]/Act::Server::Linux::Db::Oracle/Notify[Databases = > ]/message: defined 'message' as 'Databases = ' > Notice: $::oracle_netapp is true. > Notice: > /Stage[main]/Act::Server::Linux::Db::Oracle/Notify[$::oracle_netapp is > true.]/message: defined 'message' as '$::oracle_netapp is true.' > Notice: DB Details = > PUTEST01oracle_version11.2.0.3netapp_primary_controlleract-star-nactl02volumesoractrlsize1goradatasize100goraarchsnapscheduleminutes0which-hours0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23days0weeks0which-minutes0hours36size50gnetapp_snapmirror_controlleract-bun-nactl02database_primary_serveract-star-db05. > Notice: /Stage[main]/Act::Server::Linux::Db::Oracle/Notify[DB Details = > PUTEST01oracle_version11.2.0.3netapp_primary_controlleract-star-nactl02volumesoractrlsize1goradatasize100goraarchsnapscheduleminutes0which-hours0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23days0weeks0which-minutes0hours36size50gnetapp_snapmirror_controlleract-bun-nactl02database_primary_serveract-star-db05.]/message: > > defined 'message' as 'DB Details = > PUTEST01oracle_version11.2.0.3netapp_primary_controlleract-star-nactl02volumesoractrlsize1goradatasize100goraarchsnapscheduleminutes0which-hours0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23days0weeks0which-minutes0hours36size50gnetapp_snapmirror_controlleract-bun-nactl02database_primary_serveract-star-db05.' > > So how can I get the ordering right??? > >
The ordering is probably right already. At least, I don't see how we're supposed to infer otherwise from the agent's output. Functions execute on the master, at catalog compile time. The relative order in which resources are applied on the client, however, is constrained only by the relationships declared among them -- it does not inform about the order in which the resources were parsed, and informs only indirectly about the order in which functions in the declaring manifests were run. Class bodies are parsed left-to-right, top-to-bottom. You could use the notice() function to emit messages to the *master's* log about your evaluation order, but if you don't trust functions to be evaluated according to parse order then you'll want to include something in the notice() messages to prove it. John -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.