Can send files with Process::Client
This commit is contained in:
parent
d4cc9547db
commit
6ca9007fde
@ -79,6 +79,10 @@ sub register ($$;$$)
|
|||||||
$worker->job_servers('gearmand:4730');
|
$worker->job_servers('gearmand:4730');
|
||||||
$worker->register_function($funcname => sub { return do_work($subref, $given_arg, $priority, @_); });
|
$worker->register_function($funcname => sub { return do_work($subref, $given_arg, $priority, @_); });
|
||||||
|
|
||||||
|
# Disable exit on warning or error
|
||||||
|
$ACU::Log::fatal_warn = 0;
|
||||||
|
$ACU::Log::fatal_error = 0;
|
||||||
|
|
||||||
log DEBUG, "$funcname registered";
|
log DEBUG, "$funcname registered";
|
||||||
|
|
||||||
$worker->work while 1;
|
$worker->work while 1;
|
||||||
@ -91,13 +95,15 @@ use strict;
|
|||||||
use warnings;
|
use warnings;
|
||||||
use Carp;
|
use Carp;
|
||||||
use Gearman::Client;
|
use Gearman::Client;
|
||||||
|
use MIME::Base64;
|
||||||
use XML::LibXML;
|
use XML::LibXML;
|
||||||
|
|
||||||
use ACU::Log;
|
use ACU::Log;
|
||||||
|
|
||||||
sub build_task_xml($)
|
sub build_task_xml($;$)
|
||||||
{
|
{
|
||||||
my $params = shift;
|
my $params = shift;
|
||||||
|
my $files = shift;
|
||||||
|
|
||||||
my $doc = XML::LibXML::Document->new('1.0');
|
my $doc = XML::LibXML::Document->new('1.0');
|
||||||
my $root = $doc->createElement("sync_ssh_keys");
|
my $root = $doc->createElement("sync_ssh_keys");
|
||||||
@ -115,12 +121,26 @@ sub build_task_xml($)
|
|||||||
$root->appendChild($param);
|
$root->appendChild($param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($files)
|
||||||
|
{
|
||||||
|
log TRACE, $files;
|
||||||
|
|
||||||
|
for my $key (keys %{ $files })
|
||||||
|
{
|
||||||
|
my $file = $doc->createElement("file");
|
||||||
|
$file->addChild( $doc->createAttribute("name", $key) );
|
||||||
|
$file->addChild( $doc->createAttribute("encoding", "base64") );
|
||||||
|
$file->appendText(encode_base64($files->{$key}));
|
||||||
|
$root->appendChild($file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
my $ret = $doc->toString();
|
my $ret = $doc->toString();
|
||||||
log TRACE, $ret;
|
log TRACE, $ret;
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub launch ($$;$)
|
sub launch ($$;$$)
|
||||||
{
|
{
|
||||||
my $funcname = shift;
|
my $funcname = shift;
|
||||||
|
|
||||||
@ -129,7 +149,7 @@ sub launch ($$;$)
|
|||||||
|
|
||||||
log DEBUG, "Launching $funcname...";
|
log DEBUG, "Launching $funcname...";
|
||||||
|
|
||||||
my $xml = build_task_xml(shift);
|
my $xml = build_task_xml(shift, shift);
|
||||||
|
|
||||||
if (shift) {
|
if (shift) {
|
||||||
return $client->dispatch_background($funcname, $xml);
|
return $client->dispatch_background($funcname, $xml);
|
||||||
@ -139,13 +159,13 @@ sub launch ($$;$)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub paralaunch ($$)
|
sub paralaunch ($$;$)
|
||||||
{
|
{
|
||||||
my $funcsname = shift;
|
my $funcsname = shift;
|
||||||
log TRACE, $funcsname;
|
log TRACE, $funcsname;
|
||||||
|
|
||||||
# Build XML
|
# Build XML
|
||||||
my $xml = build_task_xml(shift);
|
my $xml = build_task_xml(shift, shift);
|
||||||
|
|
||||||
my $client = Gearman::Client->new;
|
my $client = Gearman::Client->new;
|
||||||
$client->job_servers('gearmand:4730');
|
$client->job_servers('gearmand:4730');
|
||||||
|
@ -285,7 +285,7 @@ sub process_user
|
|||||||
}
|
}
|
||||||
|
|
||||||
alert_mail($ldap, $args->{param}{"uid"}, $dn, $action, @ssh_name);
|
alert_mail($ldap, $args->{param}{"uid"}, $dn, $action, @ssh_name);
|
||||||
Process::Client::launch("sync_ssh_keys", { "action" => "update", "__0" => $args->{param}{"uid"} }, 1);
|
Process::Client::launch("sync_ssh_keys", { "action" => "update", "__0" => $args->{param}{"uid"} }, undef, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
$ldap->unbind or warn "couldn't disconnect correctly";
|
$ldap->unbind or warn "couldn't disconnect correctly";
|
||||||
|
Reference in New Issue
Block a user