Let''s start with two example problems: 1) Select the first available value in an address space. For example openldap syncrepl rid, "ID uniquely identifying the replica .. an integer which has no more than three decimal digits"[1]. 2) Selecting a sticky "random" value from an array of values. In this example choosing an available server(s) to query for directory services. Reselection should be limited to a change in array size, or possibly selected value deletion. I''ve got this mostly ''solved'' using a combination of exported files, a lookup function, and a temp variable. But it seems awfully hacky and wasteful. The problems seems close to RI Pienaars extlookup[2], or Lukes data loading system[3], or even concatenated file fragments. The key difference from [2] and [3] is that my source data is dynamically generated by other nodes. Has anyone solved a similar issue? Or see a good path to take on this? So my current ''solution'' in quick psuedo manifest: class openldap::replica { File <<| tag == $ldap_cluster |>> file { "/var/puppet/lib/ldap_replicas": ensure => directory, purge => true; } @@file{ "/var/puppet/lib/ldap_replicas/$fqdn": content => $ldap_rid, tag => $ldap_cluster } $ldap_rid = ext_lookup("ldap_replicas", "available") augeas {"slapd.conf_rid": changes => "set /files/etc/openldap/ slapd.conf/syncrepl/rid $ldap_rid" } } And what I think it might look like. This could be as simple as defines, or an actual Type and a function that starts poking into the compiler/catalog. @@dkv_put{ $fqdn: key => "ldap_rid", value => $ldap_rid, tag => $ldap_cluster } $ldap_rid = dkv_get( key => "ldap_rid", sort => "available", count => "1", tag => $ldap_cluster ) [1] http://www.openldap.org/doc/admin22/syncrepl.html [2] http://www.devco.net/archives/2009/08/31/complex_data_and_puppet.php [3] http://projects.reductivelabs.com/issues/2953 -- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.