Hi, thanks for your support so far.
I did a lot of tests, but it still dont work. I added a screenshot of my script as a created it in the web gui. You can see it here: http://www.asymmetry.de/scrip.jpg But it still does not work. Here is what i did: Custom condition: my $Transaction = $self->TransactionObj; return $Transaction->$Transaction->Subject ='HMPF'; Custom action preparation return 1; Custom action cleanup my $Ticket = $self->TicketObj; $Ticket->SetStatus('resolved'); return 1; I'm not really shure about the brackets ({}). in the last mail there where brackets in the custom condition field but not in the cleanup, so i'm not shure about that. Also if i have to return 1; or return 1; (writing the word return inside the scripbt or not). So maybe sombody has the final answer :) Again thanks a lot for the support so far! Best regards Thomas Am 11.07.2007 19:12 Uhr schrieb "Gene LeDuc" unter <[EMAIL PROTECTED]>: > Hi Thomas, > > You create scrips like this using the RT web GUI. Go into Configuration, > select Queues, then the queue that you want this scrip to apply to, then > Scrips, then New Scrip. I don't think you really want to do this with perl > modules. > > For condition, select "User Defined" > For action, select "User Defined" > For template, select "Global template: Blank" (actually, I don't think it > matters what you select for a template if the action is user-defined, but > you have to select something). > For stage, select "TransactionCreate" > > In the Custom condition area you want to trap transactions that are > Type:Correspond (e-mail) and that have "HMPF" in the subject. Your custom > condition could look something like this: > { my $Transaction = $self->TransactionObj; > return $Transaction->Type eq 'Correspond' && $Transaction->Subject =~ > /HMPF/; > } > > This will cause the scrip to fire when a transaction occurs that is an > e-mail that has HMPF in the subject, otherwise the scrip will not fire. > > In the Custom action preparation code area you can just put: > return 1; > > This does nothing except allow the cleanup action to run. If you leave it > out then the cleanup action won't run. > > In the Custom action cleanup code area you could have something like this: > my $Ticket = $self->TicketObj; > $Ticket->SetStatus('resolved'); > return 1; > > This will change the status of the ticket to resolved. It will also create > another transaction that will trigger any "On Resolve" scrips you might have. > > All of this is done within the RT web GUI. > > Good luck with this, > Gene > > > At 09:20 AM 7/11/2007, Thomas Hecker wrote: >> Hi, >> >> well i changed the scrip this way: >> >> my $problem_desc = undef; >> >> my $Transaction = $self->TransactionObj; >> my $subject = $Transaction->Attachments->First->GetHeader('Subject'); >> if ( $subject =~ /^HMPF (\w+) - (\S*) (\S*)/ ) { >> # Auto-close/resolve this whole thing >> $self->TicketObj->SetStatus( "resolved" ); >> } else { >> return 1; >> } >> 1; >> >> So it should set a ticket to solved when the subject contains HMPF - right? >> >> The next problem i have is, how do i implement this scrip to rt? I saved it >> as an .pm file and put it into the lib to all the other scrips. than i wrote >> a perl script described in the o'reilly book page 81, to make the scrip >> available to the RTR database: >> >> #!usr/bin/perl >> >> use strict; >> use lib "/usr/share/request-tracker3.6/lib"; >> >> use RT; >> use RT::Interface::CLI qw( CleanEnv GetCurrentUser ); >> use RT::ScripCondition; >> >> CleanEnv(); >> RT::LoadConfig(); >> RT::Init(); >> >> my $user = GetCurrentUser(); >> unless( $user->Id ) { >> print "No RT user found. Please consult your GOD\n"; >> exit 1; >> } >> >> my $sc = RT::ScripCondition->new($user); >> >> $sc->Create( Name => 'HMPF-Betreff', >> Beschreibung => 'Wenn Betreff enthaelt HMPF dann schliesse >> sofort', >> ExecModule => 'OnCreate', >> ApplicableTransTypes => 'Status', >> ); >> >> When i run this scrip i get no error, but the scrip is not available in the >> webinterface of rt. >> >> what's wrong? >> >> Thanks for help >> Thomas >> >> >> >> Am 05.07.2007 15:12 Uhr schrieb "Drew Barnes" unter >> <[EMAIL PROTECTED]>: >> >>> I think this should be correct, but I haven't used this particular scrip >>> lately. >>> >>> >>> # If the subject of the ticket matches a pattern suggesting >>> # that this is a Nagios RECOVERY message AND there is >>> # an existing ticket (open or new) in the "zNagios" queue with a matching >>> # "problem description", (that is not this ticket) >>> # merge this ticket into that ticket >>> # >>> # Based on http://marc.free.net.ph/message/20040319.180325.27528377.en.html >>> >>> my $problem_desc = undef; >>> >>> my $Transaction = $self->TransactionObj; >>> my $subject = $Transaction->Attachments->First->GetHeader('Subject'); >>> if ( $subject =~ /^RECOVERY (\w+) - (\S*) (\S*)/ ) { >>> # This looks like a nagios recovery message >>> $problem_desc = $2; >>> >>> $RT::Logger->debug("Found a recovery msg: $problem_desc"); >>> } else { >>> return 1; >>> } >>> >>> # Ok, now let's merge this ticket with it's PROBLEM msg. >>> my $search = RT::Tickets->new($RT::SystemUser); >>> $search->LimitQueue(VALUE => 'zNagios'); >>> $search->LimitStatus(VALUE => 'new', OPERATOR => '=', ENTRYAGGREGATOR => >>> 'or'); >>> $search->LimitStatus(VALUE => 'open', OPERATOR => '='); >>> >>> if ($search->Count == 0) { return 1; } >>> my $id = undef; >>> while (my $ticket = $search->Next) { >>> # Ignore the ticket that opened this transation (the recovery one...) >>> next if $self->TicketObj->Id == $ticket->Id; >>> # Look for nagios PROBLEM warning messages... >>> if ( $ticket->Subject =~ /^PROBLEM (\w+) - (\S*) (\S*)/ ) { >>> if ($2 eq $problem_desc){ >>> # Aha! Found the Problem TICKET corresponding to this RECOVERY >>> # ticket >>> $id = $ticket->Id; >>> # Nagios may send more then one PROBLEM message, right? >>> $RT::Logger->debug("Merging ticket " . $self->TicketObj->Id >>> . " into $id because of Nagios Subject match."); >>> $self->TicketObj->MergeInto($id); >>> # Keep looking for more PROBLEM tickets... >>> } >>> } >>> } >>> >>> $id || return 1; >>> # Auto-close/resolve this whole thing >>> $self->TicketObj->SetStatus( "resolved" ); >>> 1; >>> >>> Thomas Hecker wrote: >>>> i Thanks for the hint, i'll try my best, but i have problems finding the >>>> right line breaks. can anybody help? All modifications i'll try then by >>>> myself :) >>>> >>>> Thanks again >>>> Thomas >>>> >>>> >>>> Am 03.07.2007 15:15 Uhr schrieb "Drew Barnes" unter >>>> <[EMAIL PROTECTED]>: >>>> >>>> >>>>> I would look at modifying this to suit your needs. >>>>> http://wiki.bestpractical.com/view/AutoCloseOnNagiosRecoveryMessages >>>>> >>>>> Thomas Hecker wrote: >>>>> >>>>>> Hi all, >>>>>> >>>>>> i use RT 3.6.1 and look for a scrip that automatically closes new >> ticktes >>>>>> that have subjects that contain special words. >>>>>> >>>>>> an example: >>>>>> >>>>>> i have some UPS from APC wich send emails after performing >> selftesting. The >>>>>> subject is somehing like "HOMER passes internal self test" where >> HOMER is >>>>>> the name of the UPS. This email should be sent to rt. RT then opens >> a new >>>>>> ticket. Now i want a scrip that closes the ticket automatically when the >>>>>> subject of an email contains specail words. So status mails will still >>>>>> generate tickets but are closed immediately (fpt statistic purpose). >> Status >>>>>> mails with an error like "Error 123 while HOMER performing self >> test" then >>>>>> correctly will open a ticket that stays open. >>>>>> >>>>>> My problem here is, that i know nothing about perl coding, so i >> can't code >>>>>> this scrip by myself. Maybe sombody has allready a scrip wich works >>>>>> similar, >>>>>> or maybe somebody could code it? >>>>>> >>>>>> Thanks for help >>>>>> Thomas >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users >>>>>> >>>>>> Community help: http://wiki.bestpractical.com >>>>>> Commercial support: [EMAIL PROTECTED] >>>>>> >>>>>> >>>>>> Discover RT's hidden secrets with RT Essentials from O'Reilly Media. >>>>>> Buy a copy at http://rtbook.bestpractical.com >>>>>> >>>>>> >>>> >>>> >>>> >> >> >> _______________________________________________ >> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users >> >> Community help: http://wiki.bestpractical.com >> Commercial support: [EMAIL PROTECTED] >> >> >> Discover RT's hidden secrets with RT Essentials from O'Reilly Media. >> Buy a copy at http://rtbook.bestpractical.com > _______________________________________________ http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users Community help: http://wiki.bestpractical.com Commercial support: [EMAIL PROTECTED] Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
