[rt-users] Call external script in scrip

Anthony BRODARD brodard.anthony at gmail.com
Mon Feb 3 06:33:17 EST 2014


Hi list !

I want to set up a process to create a LDAP account automatically after
admin validation.
Currently, to create an account, user open a ticket and we run an homemade
bash script with the username as argument. It create the account, set some
options, and return the password.
I want to automatize this task. The idea is to create three CF : Status,
Username and Password. When an user create a ticket for a new LDAP account
and if the admin agrees, he will set the CF-Username and valide the request
by setting the CF-Status to "OK".
At this time, a scrip must be launched, call the bash script, set a random
password, and send the credentials to user and close the ticket.

Also, for test purpose, I've created this basic bash script
(/opt/rt4/bin/create_user.sh):

/opt/rt4/bin/rt edit $1 set CF.{PASS}="Passwd"
/opt/rt4/bin/rt edit $1 set CF.{Validation}="Send"
exit 0


And theses scrips :

CreateUser:
Custom condition :

my $Ticket = $self->TicketObj;
return 0 unless $self->TicketObj->FirstCustomFieldValue('Status') eq 'OK';
return 1;

Custom Action:

my $ticket = $self->TicketObj;
my $id = $ticket->Id;
system("/opt/rt4/bin/create_user.sh $id >> /tmp/debug");
return 1;


SendCredentials:
Custom Condition :

my $Ticket = $self->TicketObj;
return 0 unless $self->TicketObj->FirstCustomFieldValue('Status') eq 'Send';
return 1;

Action : Notify requestor and Cc
Template : Custom with credentials

When I set a the CF "Status" to OK, the scrip is correctly launched, and I
see the first connection of the bash script is the system log :
Feb  3 12:08:58 bob RT: [10535] Successful login for Anthony from localhost

Then, apache did not respond during many seconds, and I see the second
connection :
Feb  3 12:09:31 bob RT: [10534] Successful login for Anthony from localhost

And then, few seconds after :
Feb  3 12:09:50 bob RT: [10535] DBD::mysql::st execute failed: Lock wait
timeout exceeded; try restarting transaction at
/usr/local/share/perl/5.14.2/DBIx/SearchBuilder/Handle.pm line 589.
Feb  3 12:09:50 bob RT: [10535] RT::Handle=HASH(0x71041f8) couldn't execute
the query 'SELECT * FROM Tickets WHERE id = ? FOR UPDATE' at
/usr/local/share/perl/5.14.2/DBIx/SearchBuilder/Handle.pm line
602.#012#011DBIx::SearchBuilder::Handle::SimpleQuery(RT::Handle=HASH(0x71041f8),
"SELECT * FROM Tickets WHERE id = ? FOR UPDATE", 28) called at
/usr/local/share/perl/5.14.2/DBIx/SearchBuilder/Record.pm line
1234#012#011DBIx::SearchBuilder::Record::_LoadFromSQL(RT::Ticket=HASH(0x420fff0),
"SELECT * FROM Tickets WHERE id = ? FOR UPDATE", 28) called at
/opt/rt4/sbin/../lib/RT/Record.pm line
1605#012#011RT::Record::LockForUpdate(RT::Ticket=HASH(0x420fff0)) called at
/opt/rt4/sbin/../lib/RT/Record.pm line
1641#012#011RT::Record::_NewTransaction(RT::Ticket=HASH(0x420fff0), "Type",
"CustomField", "Field", 3, "OldReference", undef, "NewReference",
RT::ObjectCustomFieldValue=HASH(0x422c5b8), ...) called at
/opt/rt4/sbin/../lib/RT/Record.pm line
2034#012#011RT::Record::_AddCustomFieldValue(RT::Ticket=HASH(0x420fff0),
"Field", RT::CustomField=HASH(0x4211c20), "Value", "wazaaaaa") called at
/opt/rt4/sbin/../lib/RT/Record.pm line
1913#012#011RT::Record::AddCustomFieldValue(RT::Ticket=HASH(0x420fff0),
"Field", RT::CustomField=HASH(0x4211c20), "Value", "wazaaaaa") called at
/opt/rt4/share/html/REST/1.0/Forms/ticket/default line
403#012#011HTML::Mason::Commands::__ANON__("id", 28, "args", undef,
"format", undef, "changes", HASH(0x41ed280)) called at
/usr/local/share/perl/5.14.2/HTML/Mason/Component.pm line
138#012#011HTML::Mason::Component::run(HTML::Mason::Component::FileBased=HASH(0x420f990),
"id", 28, "args", undef, "format", undef, "changes", HASH(0x41ed280), ...)
called at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line
1300#012#011eval {...} called at
/usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line
1295#012#011HTML::Mason::Request::comp(undef, undef, "id", 28, "args",
undef, "format", undef, "changes", ...) called at
/opt/rt4/share/html/REST/1.0/dhandler line
299#012#011HTML::Mason::Commands::__ANON__("pass"
Feb  3 12:09:50 bob RT: [10535]
<rt-4.2.2-10535-1391425790-954.28-18-0 at support.bob> #28/633 - Scrip
18 SendCredentials
Feb  3 12:09:50 bob RT: [10535]
<rt-4.2.2-10535-1391425790-954.28-18-0 at support.bob> sent  To:
anthony at test.localhost
Feb  3 12:10:04 bob RT: [10534]
<rt-4.2.2-10534-1391425804-931.28-18-0 at support.bob> #28/635 - Scrip
18 SendCredentials
Feb  3 12:10:04 bob RT: [10534]
<rt-4.2.2-10534-1391425804-931.28-18-0 at support.bob> sent  To:
anthony at test.localhost
Feb  3 12:10:05 bob RT: [10529] Use of uninitialized value in string eq at
(eval 449) line 2.
Feb  3 12:10:05 bob RT: [10529] Use of uninitialized value in string eq at
(eval 451) line 2.
Feb  3 12:10:05 bob RT: [10529] Use of uninitialized value in string eq at
(eval 457) line 2.
Feb  3 12:10:05 bob RT: [10529] Use of uninitialized value in string eq at
(eval 459) line 2.
Feb  3 12:10:05 bob RT: [10538] Malformed UTF-8 character (unexpected end
of string) in string ne at /usr/share/perl/5.14/Locale/Maketext.pm line 538.

And in the ticket history:
Mon Feb 03 06:08:57 2014
Anthony<https://support.brodard.me/User/Summary.html?id=33>
* - **Status** changed to OK *
Mon Feb 03 06:09:50 2014
Anthony<https://support.brodard.me/User/Summary.html?id=33> -
PASS Passwd added
Mon Feb 03 06:09:50 2014 The RT System itself - Outgoing email recorded ->
Credentials
Mon Feb 03 06:10:04 2014
Anthony<https://support.brodard.me/User/Summary.html?id=33>
* - **Status** OK changed to Send *
Mon Feb 03 06:10:04 2014 The RT System itself - Outgoing email recorded ->
Credentials
Mon Feb 03 06:10:04 2014
Anthony<https://support.brodard.me/User/Summary.html?id=33>
* - **Status** Send deleted*
Mon Feb 03 06:10:05 2014
Anthony<https://support.brodard.me/User/Summary.html?id=33> -
PASS Passwd deleted

First, I don't understand why the credentials are sends two times, even
when the Status is not "Send". Then, do you have an idea about the two last
lines in ticket history (CF are reset) ? And finally, what seems wrong in
my process, and what can cause theses troubles in my apache srv ?

Thanks!
Anthony
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20140203/24483c99/attachment.htm>


More information about the rt-users mailing list