Hi Florian. great and smart method. But I've found a problem. If i have a 
hash with two dimensions I'm losing the information of the first dimension. 
Explained:
yaml:
---
routers:
  router1:
     ip: 1.2.3.4
     ports:
        1:
           foo: true
           bar: false
        2:
           foo: false
           bar: false
  router2:
     ip: 5.6.7.8
     ports:
        1:
           foo: true
           bar: true
        2:
           foo: false
           bar: true

manifest:

create_resources('foo::map',$routers)
}

define foo::map ($ip,$ports) {
  create_resources('ports::map',$ports)
}

define ports::map ($foo,$bar) {
}


When catalog reaches ports::map, catalog have lost information about 
original router name. Is it correct? Or am I missing something?
Thanks in advance.


El jueves 15 de marzo de 2012 21:58:01 UTC+1, Florian Koch escribió:
>
> Hi Gary,
>
> hm for other classes it works , so i think the puppet backend is not 
> needed 
> (
> https://github.com/ripienaar/hiera-puppet/commit/a7350529a99e5d1bad8b03749661f3f4c7f00216
> ),
> the problem is the define, i guess that a define won't set $module_path 
> correct, the hiera cass from the class tocat::instance works perfect.
>
> But i have found better solution, i use create_resources to build the 
> defines, works really smart
>
> class tomcat::instance{
>
> $instances = hiera('tomcat_instances')
>
>         create_resources('tomcat::installer',$instances)
> }
> define tomcat::installer ($user,$group,$basedir,$logdir,$name){ ....}
> ---
> tomcat_instances:
>         crowd1:
>                 name: 'cr1'
>                 basedir: '/srv'
>                 logdir: '/var/log'
>                 user: 'crowd'
>                 group: 'crowd'
>
>         crowd2:
>                 name: 'cr2'
>                 basedir: '/srv'
>                 logdir: '/var/log'
>                 user: 'crowd'
>                 group: 'crowd'
>
>
> rgds Florian
> Am Donnerstag, 15. März 2012 21:33:17 UTC+1 schrieb Gary Larizza:
>>
>> Hi Florian,
>>
>> I believe since $calling_module is a variable out of Puppet and not 
>> Facter, that you will need to ALSO setup the Puppet backend, in addition to 
>> the YAML backend, in the hiera.yaml file so Hiera can get its value.
>>
>> On Fri, Mar 16, 2012 at 6:47 AM, Florian Koch <
>> florian.koch1...@googlemail.com> wrote:
>>
>>> Hi,
>>>
>>> i have some trouble with hiera and  %{calling_module}.
>>>
>>> i have: 
>>>
>>> class tomcat::instance{
>>>
>>>         $instances = hiera('tomcat_instances')
>>>
>>>         tomcat::installer{$instances:}
>>>
>>> }
>>>
>>> define tomcat::installer {
>>>
>>>         require 'tomcat'
>>>
>>>         $instance_opts = hiera($name)
>>>
>>>         $tomcat_user = $instance_opts[user]
>>>         $tomcat_group = $instance_opts[group]
>>>         $basedir = $instance_opts[basedir]
>>>         $logdir = $instance_opts[logdir]
>>>         $tomcat_name = $instance_opts[name]
>>>
>>>
>>>         $tomcat_version='6'
>>> ...
>>> }
>>>
>>> i specify the tomcat names in a hiera file and run the define wit the 
>>> names as array (so they get executed for each name)
>>>
>>> '/var/lib/environments/test/hieradata'/tomcat/crowd.yaml
>>>
>>> ---
>>> tomcat_instances:
>>>         - crowd1
>>>         - crowd2
>>>
>>>         
>>> crowd1:
>>>         name: 'crowd1'
>>>         basedir: '/srv'
>>>         logdir: '/var/log'
>>>         user: 'crowd'
>>>         group: 'crowd'
>>>
>>> crowd2:
>>>         name: 'crowd2'
>>>         basedir: '/srv'
>>>         logdir: '/var/log'
>>>         user: 'crowd'
>>>         group: 'crowd'
>>>
>>> my hiera.yaml
>>> ---
>>> :hierarchy:
>>>     - %{calling_module}/%{fqdn}
>>>     - %{hostbasename}
>>>     - %{domain}
>>>     - common
>>> :backends:
>>>     - yaml
>>> :yaml:
>>>     :datadir: '/var/lib/environments/%{environment}/hieradata'
>>>
>>>
>>> if i wrote the crowd.yaml content in the common.yaml all works, if its 
>>> in the module subdirectory, puppet can not find the data from the hiera 
>>> lookup in the tomcat::installer, but the call from the tomcat::instance 
>>> class works, i get the right tomcat names in the error.
>>>
>>> any idea?
>>>
>>> rgds Florian
>>>
>>>  -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Puppet Users" group.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msg/puppet-users/-/ZjdL5rHQxBYJ.
>>> 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.
>>>
>>
>>
>>
>> -- 
>>
>> Gary Larizza
>> Professional Services Engineer
>> Puppet Labs
>>
>> 

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/6G9ZMTBEku4J.
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.

Reply via email to