Re: rt-crontool on condition x change queue
Joel Bergmark <[email protected]>
| Newsgroups | gmane.comp.bug-tracking.request-tracker.user |
|---|---|
| Message-ID | <DB5PR07MB103154A529CB97B1B4E1A061A0D20@DB5PR07MB1031.eurprd07.prod.outlook.com> |
Hello, Indeed you are right, and I found a guy named Andy Smith in the UK that solved the problem, I've attached his solution to the email (not sure if attachments works). Put it in rt4/lib/RT/Action/QChange.pm and then call it with relevant query with: --action RT::Action::QChange --action-arg YOURQUEUE --template 'blank' Works like a charm, I use it in this way for SLA purposes to escalate a TT that passes over the defined ServiceAgreement: rt-crontool --transaction last --search RT::Search::FromSQL --search-arg "Queue = 'SLA' AND (Status='new' OR Status='open')" --condition RT::Condition::Overdue --action RT::Action::QChange --action-arg QUEUE --template 'SLA-escalation' Regards, Joel Från: rt-users [mailto:[email protected]] För Emmanuel Lacour Skickat: den 18 oktober 2016 16:01 Till: [email protected] Ämne: Re: [rt-users] rt-crontool on condition x change queue Le 18/10/2016 à 11:03, Joel Bergmark a écrit : Hi, Just a quick one this time, is there any easy way to use rt crontool get something like this working: /opt/rt4/bin/rt-crontool --search RT::Search::FromSQL --search-arg "Queue = 'X' AND (Status='new' OR Status='open')" --condition RT::Condition::Overdue --action RT::Queue "Newqueue" I know its not really under rt::action but is there a way to call upon rt::queue from this? Tried a bunch of different syntax but get "RT::Queue::Prepare Unimplemented in main." there is no stock SetQueue RT action, you have to write it yourself. Just put the following content (untested) in rt/local/lib/RT/Action/SetQueue.pm and call it like this: /opt/rt4/bin/rt-crontool --search RT::Search::FromSQL --search-arg "Queue = 'X' AND (Status='new' OR Status='open')" --condition RT::Condition::Overdue --action SetQueue --action-arg "Newqueue" ------------------------------------ cut ------------------------------------ package RT::Action::SetQueue; use base 'RT::Action'; use strict; use warnings; sub Describe { my $self = shift; return (ref $self . " will set a ticket's queue to the argument provided."); } sub Prepare { return 1; } sub Commit { my $self = shift; $self->TicketObj->SetQueue($self->Argument); } 1; ------------------------------------ cut ------------------------------------ --------- RT 4.4 and RTIR training sessions, and a new workshop day! https://bestpractical.com/training * Boston - October 24-26 * Los Angeles - Q1 2017
QChange.pm
(application/octet-stream, 2.7 KB)
# BEGIN BPS TAGGED BLOCK {{{
#
# COPYRIGHT:
#
# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
# <[email protected]>
#
# (Except where explicitly superseded by other copyright notices)
#
#
# LICENSE:
#
# This work is made available to you under the terms of Version 2 of
# the GNU General Public License. A copy of that license should have
# been provided with this software, but in any event can be snarfed
# from www.gnu.org.
#
# This work is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 or visit their web page on the internet at
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
#
#
# CONTRIBUTION SUBMISSION POLICY:
#
# (The following paragraph is not intended to limit the rights granted
# to you to modify and distribute this software under the terms of
# the GNU General Public License and is only of importance to you if
# you choose to contribute your changes and enhancements to the
# community by submitting them to Best Practical Solutions, LLC.)
#
# By intentionally submitting any modifications, corrections or
# derivatives to this work, or any other work intended for use with
# Request Tracker, to Best Practical Solutions, LLC, you confirm that
# you are the copyright holder for those contributions and you grant
# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
# royalty-free, perpetual, license to use, copy, create derivative
# works based on those contributions, and sublicense and distribute
# those contributions and any derivatives thereof.
#
# END BPS TAGGED BLOCK }}}
package RT::Action::QChange;
use strict;
use warnings;
use base qw(RT::Action::Notify);
use Email::Address;
=head1 Notify Owner or AdminCc
If the owner of this ticket is Nobody, notify the AdminCcs. Otherwise, only notify the Owner.
=cut
sub Prepare {
my $self = shift;
return 1;
}
my $self;
sub Commit {
my $self = shift;
my $argument = $self->Argument;
unless ( $argument ) {
$RT::Logger->error("Argument is mandatory for Test action");
return 0;
}
my ($status, $msg) = $self->TicketObj->SetQueue("$argument");
if ( not $status ) {
RT::Logger->error("Could not reassign queue: $msg");
return 0;
}
RT::Base->_ImportOverlays();
return 1;
}
1;