Hi,

we want to make use of the splat operator and extend the list of parameters:

#site/profile/manifests/files.pp
class profile::files (
  Hash $files = {},
){
  $files.each |String $key, Hash $params| {
    $_template = $params['template']
    $_value = delete($params, 'template')

    notify { 'template':
      message => $_template,
    }
    notify { '_value':
      message => $_value,
    }

    file { $key:
      *       => $_value,
      content => epp($_template),
    }
  }
}

#data/common.yaml
---
profile::files::files:
  '/tmp/foo':
    ensure: file,
    mode: '0644'
    template: 'profile/file_template.epp'

Puppet agent run compains:

Error: Failed to apply catalog: Validation of File[/tmp/foo] failed: You cannot 
specify more than one of content, source, target (file: 
/etc/puppetlabs/code/environments/production/site/profile/manifests/files.pp, 
line: 15)

When removing the file resource, the notify output looks OK:

Notice: profile/file_template.epp
Notice: /Stage[main]/Profile::Files/Notify[template]/message: defined 'message' 
as 'profile/file_template.epp'
Notice: {"ensure"=>"file,", "mode"=>"0644"}
Notice: /Stage[main]/Profile::Files/Notify[_value]/message: defined 'message' 
as {
  'ensure' => 'file,',
  'mode' => '0644'
}
Notice: Applied catalog in 36.38 seconds

What am I missing or doing wrong?

Thanks,
Martin

-- 
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/2580881E-185B-41FD-87E7-04FDB93C5E4B%40gmail.com.

Reply via email to