[Puppet Users] Re: custom definitions require and +>
Hi > I'm still on 0.23.2 for some time. Planning the upgrade at the moment. then it might be worth witing for 0.25.0 imho... cheers pete --~--~-~--~~~---~--~~ 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+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~--~~~~--~~--~--~---
[Puppet Users] Re: custom definitions require and +>
Hi > I'm still on 0.23.2 for some time. Planning the upgrade at the moment. then it might be worth witing for 0.25.0 imho... cheers pete --~--~-~--~~~---~--~~ 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+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~--~~~~--~~--~--~---
[Puppet Users] Re: custom definitions require and +>
I'm still on 0.23.2 for some time. Planning the upgrade at the moment. On Jul 15, 10:09 am, David Schmitt wrote: > robert.gstoehl wrote: > > Seems to work so far, thanks. What happens when a $require is passed > > to the definition which contains an array? > > > require => [ Package["wget"], $require ] > > > My quick test (printing out $require via a notify) indicate that only > > the first item of the array is included. Is there a way to merge > > arrays? > > Use the append functionality of newer puppet releases: > > http://reductivelabs.com/trac/puppet/wiki/LanguageTutorial#appending-... > > Regards, DavidS --~--~-~--~~~---~--~~ 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+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~--~~~~--~~--~--~---
[Puppet Users] Re: custom definitions require and +>
robert.gstoehl wrote: > Seems to work so far, thanks. What happens when a $require is passed > to the definition which contains an array? > > require => [ Package["wget"], $require ] > > My quick test (printing out $require via a notify) indicate that only > the first item of the array is included. Is there a way to merge > arrays? Use the append functionality of newer puppet releases: http://reductivelabs.com/trac/puppet/wiki/LanguageTutorial#appending-to-variables Regards, DavidS --~--~-~--~~~---~--~~ 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+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~--~~~~--~~--~--~---
[Puppet Users] Re: custom definitions require and +>
Hm, with --debug it seems like all the dependencies, even an array of them, get passed to the nested exec. Voodoo :) Thanks for your help. On Jul 15, 9:55 am, "robert.gstoehl" wrote: > Seems to work so far, thanks. What happens when a $require is passed > to the definition which contains an array? > > require => [ Package["wget"], $require ] > > My quick test (printing out $require via a notify) indicate that only > the first item of the array is included. Is there a way to merge > arrays? > > On Jul 13, 7:12 pm, David Schmitt wrote: > > > robert.gstoehl wrote: > > > I'm trying to get the dependencies right: > > > > define wget($source, $options = "", $unless = "") { > > > include pkg::virtual_packages > > > realize (Package["wget"]) > > > exec {"wget $options -O $title $source": > > > path => "/usr/bin:/opt/csw/bin", > > > unless => "$unless", > > > timeout => 18000, > > > require => Package["wget"] > > > } > > > > if $require { > > > Exec ["wget $options -O $title $source"]{ > > > require +> $require > > > } > > > } > > > } > > > > Bombs with: > > > > err: Could not retrieve configuration: Parameter 'require' is already > > > set on Exec[wget -O ... ] by wget at /etc/opt/csw/puppet/ > > > manifests/definitions/wget.pp:8; cannot redefine at /etc/opt/csw/ > > > puppet/manifests/definitions/wget.pp:14 > > > > The docs say: > > > > Note that all defined types support automatically all metaparameters. > > > Therefore you can pass any later used parameters like $require to a > > > define, without any definition of it: > > > > 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, > > > } > > > } > > > } > > > > What am I doing wrong? Is there another way to add the require > > > metaparameter to the nested exec resource? > > > "+>" is only valid when inheriting resources. > > > Instead do this: > > > > define wget($source, $options = "", $unless = "") { > > > include pkg::virtual_packages > > > realize (Package["wget"]) > > > exec {"wget $options -O $title $source": > > > path => "/usr/bin:/opt/csw/bin", > > > unless => "$unless", > > > timeout => 18000, > > > } > > > > > > if $require { > > > Exec ["wget $options -O $title $source"]{ > > > require => [ Package["wget"], $require ] > > > } > > > } else { > > > Exec ["wget $options -O $title $source"]{ > > > require => [ Package["wget"] ] > > > } > > > } > > > } > > > Regards, DavidS --~--~-~--~~~---~--~~ 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+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~--~~~~--~~--~--~---
[Puppet Users] Re: custom definitions require and +>
Seems to work so far, thanks. What happens when a $require is passed to the definition which contains an array? require => [ Package["wget"], $require ] My quick test (printing out $require via a notify) indicate that only the first item of the array is included. Is there a way to merge arrays? On Jul 13, 7:12 pm, David Schmitt wrote: > robert.gstoehl wrote: > > I'm trying to get the dependencies right: > > > define wget($source, $options = "", $unless = "") { > > include pkg::virtual_packages > > realize (Package["wget"]) > > exec {"wget $options -O $title $source": > > path => "/usr/bin:/opt/csw/bin", > > unless => "$unless", > > timeout => 18000, > > require => Package["wget"] > > } > > > if $require { > > Exec ["wget $options -O $title $source"]{ > > require +> $require > > } > > } > > } > > > Bombs with: > > > err: Could not retrieve configuration: Parameter 'require' is already > > set on Exec[wget -O ... ] by wget at /etc/opt/csw/puppet/ > > manifests/definitions/wget.pp:8; cannot redefine at /etc/opt/csw/ > > puppet/manifests/definitions/wget.pp:14 > > > The docs say: > > > Note that all defined types support automatically all metaparameters. > > Therefore you can pass any later used parameters like $require to a > > define, without any definition of it: > > > 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, > > } > > } > > } > > > What am I doing wrong? Is there another way to add the require > > metaparameter to the nested exec resource? > > "+>" is only valid when inheriting resources. > > Instead do this: > > > define wget($source, $options = "", $unless = "") { > > include pkg::virtual_packages > > realize (Package["wget"]) > > exec {"wget $options -O $title $source": > > path => "/usr/bin:/opt/csw/bin", > > unless => "$unless", > > timeout => 18000, > > } > > > > if $require { > > Exec ["wget $options -O $title $source"]{ > > require => [ Package["wget"], $require ] > > } > > } else { > > Exec ["wget $options -O $title $source"]{ > > require => [ Package["wget"] ] > > } > > } > > } > > Regards, DavidS --~--~-~--~~~---~--~~ 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+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~--~~~~--~~--~--~---
[Puppet Users] Re: custom definitions require and +>
Hi > > define wget($source, $options = "", $unless = "") { > > include pkg::virtual_packages > > realize (Package["wget"]) > > exec {"wget $options -O $title $source": > > path=> "/usr/bin:/opt/csw/bin", > > unless => "$unless", > > timeout => 18000, > > } > > > > if $require { > > Exec ["wget $options -O $title $source"]{ > > require => [ Package["wget"], $require ] > > } > > } else { > > Exec ["wget $options -O $title $source"]{ > > require => [ Package["wget"] ] > > } > > } > > } or from 0.24.6 on you might be able to simply use the apend function: http://reductivelabs.com/trac/puppet/wiki/LanguageTutorial#appending-to-variables /me didn't test it... cheers pete --~--~-~--~~~---~--~~ 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+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~--~~~~--~~--~--~---
[Puppet Users] Re: custom definitions require and +>
robert.gstoehl wrote: > I'm trying to get the dependencies right: > > define wget($source, $options = "", $unless = "") { > include pkg::virtual_packages > realize (Package["wget"]) > exec {"wget $options -O $title $source": > path=> "/usr/bin:/opt/csw/bin", > unless => "$unless", > timeout => 18000, > require => Package["wget"] > } > > if $require { > Exec ["wget $options -O $title $source"]{ > require +> $require > } > } > } > > Bombs with: > > err: Could not retrieve configuration: Parameter 'require' is already > set on Exec[wget -O ... ] by wget at /etc/opt/csw/puppet/ > manifests/definitions/wget.pp:8; cannot redefine at /etc/opt/csw/ > puppet/manifests/definitions/wget.pp:14 > > The docs say: > > Note that all defined types support automatically all metaparameters. > Therefore you can pass any later used parameters like $require to a > define, without any definition of it: > > 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, > } > } > } > > What am I doing wrong? Is there another way to add the require > metaparameter to the nested exec resource? "+>" is only valid when inheriting resources. Instead do this: > define wget($source, $options = "", $unless = "") { > include pkg::virtual_packages > realize (Package["wget"]) > exec {"wget $options -O $title $source": > path=> "/usr/bin:/opt/csw/bin", > unless => "$unless", > timeout => 18000, > } > > if $require { > Exec ["wget $options -O $title $source"]{ > require => [ Package["wget"], $require ] > } > } else { > Exec ["wget $options -O $title $source"]{ > require => [ Package["wget"] ] > } > } > } Regards, DavidS --~--~-~--~~~---~--~~ 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+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~--~~~~--~~--~--~---