On 10-03-11 12:49, Martijn Grendelman wrote: > Hi, > > Yesterday I implemented a module for managing Nagios configurations. It > has turned out to be quite a complex beast, but in my test environment, it > seemed to do everything it should. > > Now, in production, managing some 30 hosts, I get the following on the > node that is both Puppetmaster and Nagios server: > >> Thu Mar 10 12:13:14 +0100 2011 >> /Stage[main]/Nagios::Server/Nagios_host[server017] (err): Could not >> evaluate: undefined method `sort' for :absent:Symbol >> Thu Mar 10 12:13:14 +0100 2011 >> /Stage[main]/Nagios::Target/Nagios_host[offman01] (err): Could not evaluate: >> undefined method `sort' for :absent:Symbol >> Thu Mar 10 12:13:14 +0100 2011 >> /Stage[main]/Nagios::Server/Nagios_host[server000-vpn] (err): Could not >> evaluate: undefined method `sort' for :absent:Symbol > > It does this for all nodes. Unfortunately, I have no idea what that means > or where to start looking. Google doesn't give any results when searching > for this error. > > The strange thing that I notice is, that for any 'normal' node, it gives > the error as a result of the Nagios::Server class (which is only included > on the Nagios server i.e. 'this' node, and collects the Nagios_host > resources), but for the node itself (offman01, the middle line in the > excerpt above), the error is reported for the Nagios::Target class (which > is included on all monitored nodes, including the Nagios server itself, > which exports the @@nagios_host definitions). > > I am not sure what more information to give you, so if anyone has ANY > idea, please let me know.
Some more information: The nagios::target class has this: class nagios::target { include nagios::common @@nagios_host { "$hostname": use => "generic-host", address => $fqdn, alias => $hostname, ensure => present, target => "$nagios::common::nagios_conf_test/host-$hostname.cfg", } $hostgroups_parameter = generate (some command) if $hostgroups_parameter != "" { Nagios_host["$hostname"] { hostgroups => $hostgroups_parameter, } } } Now, if I comment out the last 'if' with everything inside, the error gradually disappers, with gradually meaning, that for each node that did a catalog run /before/ the Nagios server node, the error is gone. I have verified that 'some command' actually generates valid information, and it does so for all hosts, or so it seems. Hm, just wondering right now: could it be because there are no quotes around $hostgroups_parameter after 'hostgroups => ' ? Best regards, Martijn. -- 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.