On Tuesday, January 14, 2014 6:37:56 AM UTC-6, Andrew wrote:
>
> can't seem figure this out.
> Here is my data:
>
> common.yaml
>
> nfsshares:
>
>   "nfsshare-public":
>
>     name: /var/public
>
>     device: "hostname1:/vol/public"
>
>     remounts: true
>
>     options: 'rw,bg,hard'
>
>   "nfsshare-private":
>
>     name: /var/private
>
>     ensure: mounted
>
>     device: 'hostname2:/var/private'
>
>     remounts: true
>
>     options: 'rw,bg,hard'  
>
>
> now on the node level:
>
> my-test-server.yaml
>
> nfs::client::nfs_resouce_name: [ 'nfsshare-public',  "nfsshare-private" ]
>
>   
>
> struggling to make class "nfs::client"
>
> to create resources  'nfsshare-public',  "nfsshare-private" based on the 
> above data in hiera without making "create_resources" inside of 
> "create_resources" or run loop  on nfs_resouce_name and then 
> create_resource for each item.
>
> There must be simpler way.
>
>
> Any hints appreciated.
>


I'm not altogether clear on what you do or don't want to do, but your data 
appear to be pointing in this direction:

class nfs::client (
    $nfs_resource_name
    ) {
  nfs::share { ${nfs_resource_name}: 
    sharedata => hiera('nfsshares')
  }
}

define nfs::share (
    $sharedata
    ) {
  $my_data = { $title => $sharedata[$title] }
  create_resources('mount', $my_data)

  # if you don't want to use create_resources()
  # then you can put a regular mount declaration
  # there.  It only needs to handle one resource.
}

I'm assuming there that you must accommodate cases where the 'nfsshares' 
data contains more shares than you want to declare for the given node, else 
create_resources() could more directly be applied to the problem.

Alternatively, you could write a custom function that creates a hash 
containing just the wanted elements by selecting elements from the overall 
hash based on array of keys.  You could use create_resources() directly on 
that without an intervening defined type. Such a function would be 
sufficiently general to be reusable, and it could be expressed very 
compactly in Ruby.


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 view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/c816acf4-26df-4a6d-881c-ed15457eb10a%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to