Hi all,
I'm experimenting with the Nagios Autoclose.

It seems I get an abort caused by a null pointer exception.

[Tue Jul 5 14:47:02 2011] [info]: Extracted type, category, host, problem_type and problem_severity from subject with values RECOVERY, Service, sambadev2, sambadev2_root and OK (/opt/rt4/local/plugins/RT-Extension-Nagios/lib/RT/Action/UpdateNagiosTickets.pm:35) [Tue Jul 5 14:47:02 2011] [error]: Scrip Commit 12 died. - Can't call method "SetStatus" on an undefined value at /opt/rt4/local/plugins/RT-Extension-Nagios/lib/RT/Action/UpdateNagiosTickets.pm line 76.

Stack:
[/opt/rt4/local/plugins/RT-Extension-Nagios/lib/RT/Action/UpdateNagiosTickets.pm:76]
  [/opt/rt4/sbin/../lib/RT/ScripAction.pm:232]
  [/opt/rt4/sbin/../lib/RT/Scrip.pm:475]
  [/opt/rt4/sbin/../lib/RT/Scrips.pm:189]
  [/opt/rt4/sbin/../lib/RT/Transaction.pm:198]
  [/opt/rt4/sbin/../lib/RT/Record.pm:1450]
  [/opt/rt4/sbin/../lib/RT/Ticket.pm:669]
  [/opt/rt4/sbin/../lib/RT/Interface/Email.pm:1495]
[/opt/rt4/share/html/REST/1.0/NoAuth/mail-gateway:61] (/opt/rt4/sbin/../lib/RT/Scrip.pm:483) [Tue Jul 5 14:47:02 2011] [info]: Ticket 306 created in queue 'Nagios' by gsollazz (/opt/rt4/sbin/../lib/RT/Ticket.pm:681)


What is causing this?

I have this as my reg exp:

    if ( my ( $type, $category, $host, $problem_type, $problem_severity ) =
        $subject =~
m{(PROBLEM|RECOVERY|ACKNOWLEDGEMENT)\s+(Service|Host) Alert: ([^/]+)/?(.*)\s+is\s+(\w+)}i ) #m{(PROBLEM|RECOVERY|ACKNOWLEDGEMENT)\s+alert\s+-\s+(Service|Host): ([^/]+)/?(.*)\s+is\s+(\w+)}i #qr{(PROBLEM|RECOVERY|ACKNOWLEDGEMENT)\s+(Service|Host) Alert: ([^/]+)/?(.*)\s+is\s+(\w+)}i
    {
        $problem_type ||= '';
        $RT::Logger->info(
"Extracted type, category, host, problem_type and problem_severity from
subject with values $type, $category, $host, $problem_type and $problem_severity"
        );
        my $tickets = RT::Tickets->new( $self->CurrentUser );
        $tickets->LimitQueue( VALUE => $new_ticket->Queue )
          unless RT->Config->Get('NagiosSearchAllQueues');
        $tickets->LimitSubject(
            VALUE => "$category $host"
              . ( $problem_type ? "/$problem_type" : '' ),
            OPERATOR => 'LIKE',
        );
        my @active = RT::Queue->ActiveStatusArray();
        for my $active (@active) {
            $tickets->LimitStatus(
                VALUE    => $active,
                OPERATOR => '=',
            );
        }

However, line 78 is just this:

                my ( $ret, $msg ) = $merged_ticket->SetStatus($resolved);

So I assume somewhat it doesn't manage to merge the tickets. But why does it fail here and not, say, when it calls "MergeInto"?

Thanks to anyone who can help,
Giuseppe

--
____________________________________

Giuseppe Sollazzo
Senior Systems Analyst
Computing Services
Information Services
St. George's, University Of London
Cranmer Terrace
London SW17 0RE

Email: [email protected]
Direct Dial: +44 20 8725 5160
Fax: +44 20 8725 3583



--------
2011 Training: http://bestpractical.com/services/training.html

Reply via email to