ok, dont bother answering the question about the other module... I got it straightened out... the logic was fubar I cut it down to a single file type, and service type with a few separators and it all works now.
On Mar 30, 12:22 pm, trey85stang <trey85st...@gmail.com> wrote: > Correction: > > # subscribe => $highavailability ? { > # true => File["myapp"], > # false => $hostname ? { > # /$m[0-9]*/ => File["myapp1"], > # /$s[0-9]*/ => File["myapp2"], > # }, > # }, > > On Mar 30, 12:20 pm, trey85stang <trey85st...@gmail.com> wrote: > > > > > > > > > sweet, got it fixed by using selectors instead of case.... Im going > > to add one more question to this thread since it appears to be syntax > > related as well... perhaps my logic is just a little fubar > > > but, I have this module that the services complains that it cannot > > find the file dependencies: > > > class apparmor { > > if $highavailability == "true" { > > file { "myapp": > > owner => "root", > > group => "root", > > mode => 640, > > path => "/etc/apparmor.d/path.to.myapp", > > source => "puppet://modules/apparmor/path.to.myapp", > > require => Package["libapparmor","apparmor-profiles","perl- > > libapparmor","yast2-apparmor"], > > } > > } else { > > case $hostname { > > /$m[0-9]*$/: { > > file { "myapp1": > > owner => "root", > > group => "root", > > mode => 640, > > path => "/etc/apparmor.d/path.to.myapp1", > > source => "puppet://modules/apparmor/path.to.myapp1", > > require => Package["libapparmor","apparmor-profiles","perl- > > libapparmor","yast2-apparmor"], > > } > > } > > /$s[0-9]*$/: { > > file { "myapp2": > > owner => "root", > > group => "root", > > mode => 640, > > path => "/etc/apparmor.d/path.to.myapp2", > > source => "puppet://modules/apparmor/path.to.myapp2", > > require => Package["libapparmor","apparmor-profiles","perl- > > libapparmor","yast2-apparmor"], > > } > > } > > } > > } > > service { apparmor: > > ensure => running, > > # subscribe => $highavailability ? { > > # true => File["myapp_profile"], > > # false => $hostname ? { > > # /$m[0-9]*/ => File["myapp1_apparmor"], > > # /$s[0-9]*/ => File["myapp2_apparmor"], > > # }, > > # }, > > hasrestart => true, > > hasstatus => true, > > restart => "/etc/init.d/apparmor restart", > > status => "/etc/init.d/apparmor status", > > } > > > } > > > The commented out part under service is the section I am having > > trouble with; as it always compalins that it cannot find > > File["myapp"]; the logic works but but the file type is never found. > > With that section commented out the respective files transfer to their > > respective location. > > > Any idea's on this one? I seem to be having problems with my logic > > building in these modules. > > > On Mar 30, 9:32 am, Martin Alfke <tux...@gmail.com> wrote: > > > > On Mar 30, 2011, at 4:03 PM, trey85stang wrote: > > > > > I am getting a syntax error in a module and I'm not sure why... > > > > > Anyone care to take a look? > > > > > class audit { > > > > file { "/etc/audit.rules": > > > > owner => "root", > > > > group => "root", > > > > mode => 640, > > > > case $operatingsystemrelease { > > > > "10.2": { path => "/etc/audit.rules", > > > > source => "puppet:///modules/audit/audit.rules.sles10", > > > > require => Package["audit-libs","audit"] > > > > } > > > > "11.1": { path => "/etc/audit/audit.rules", > > > > source => "puppet:///modules/audit/audit.rules.sles11", > > > > require => Package["audit-libs","audit","audit-audispd- > > > > plugins"] > > > > } > > > > } > > > > } > > > > } > > > > You need to use a selector for each resource item: > > > path => $operatingsystemrelease ? { > > > "10.2" => "/etc/audit.rules", > > > "11.1" => "/etc/audit/audit.rules", > > > default => undef,}, > > > > source => $operatingsystemrelease ? { > > > "10.2" => "puppet...", > > > "11.1" => "puppet...", > > > default => ..., > > > > }, > > > > another option would be to separate this to multiple manifests (one for > > > each os-release) and include based upon os-release number. > > > > > error on client is: > > > > err: Could not retrieve catalog from remote server: Error 400 on > > > > SERVER: Syntax error at 'case'; expected '}' at /etc/puppet/shared/ > > > > modules/audit/manifests/init.pp:6 on node node.example.com > > > > > Also, is it possible to do regex's in the case statement? > > > > > i.e" > > > > "/^10\.[0-3]*/": { stuff here } > > > > "/^11\.[0-3]*/": { other stuff } > > > > Regexp are possible, But you have to take care of upper/lower letters > > > yourself. > > > > > Thanks > > > > > -- > > > > 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 > > > > athttp://groups.google.com/group/puppet-users?hl=en. -- 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.