I don't know if it's just me, but I find this example horribly confusing, and I'm wondering if it's just really out of date.
http://docs.puppetlabs.com/guides/language_tutorial.html#definitions define svn_repo($path) { exec {"create_repo_${name}": command => "/usr/bin/svnadmin create $path/$title", unless => "/bin/test -d $path", } if $require { Exec["create_repo_${name}"]{ require +> $require, } } } svn_repo { puppet: path => "/var/svn", require => Package[subversion], } It doesn't really make any sense to me. What's the problem with the require being set on Svn_repo[puppet] rather than Svn_repo[puppet]/Exec[create_repo_puppet] ? Another problem is that this model breaks down entirely if you need to set a require on Exec[create_repo_puppet] itself as Puppet will complain that the require has already been defined. (which seems kind of odd given the use of plusignment, but I don't use this syntax ever, so maybe it's just me.) It just feels like you could accomplish the same thing with: define svn_repo($path) { exec {"create_repo_${name}": command => "/usr/bin/svnadmin create $path/$title", unless => "/bin/test -d $path", } } svn_repo { puppet: path => "/var/svn", require => Package[subversion], } with the added bonus that you can set additional requires inside the defined type without having to jump through any hoops. Were metaparameters not supported with defined types in the past? -- nigel -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-us...@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.