xcat-core/xCAT-server/lib/xcat/plugins/syncfiles.pm

68 lines
1.5 KiB
Perl
Raw Normal View History

# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
#-------------------------------------------------------
=head1
xCAT plugin package to handle syncfiles command
=cut
#-------------------------------------------------------
package xCAT_plugin::syncfiles;
use xCAT::Utils;
use xCAT::MsgUtils;
use xCAT::NodeRange;
1;
#-------------------------------------------------------
=head3 handled_commands
Return list of commands handled by this plugin
=cut
#-------------------------------------------------------
sub handled_commands
{
return {'syncfiles' => "syncfiles"};
}
#-------------------------------------------------------
=head3 process_request
Process the command
=cut
#-------------------------------------------------------
sub process_request
{
my $request = shift;
my $callback = shift;
my $subreq = shift;
my $client;
if ($request->{'_xcat_clienthost'}) {
$client = $request->{'_xcat_clienthost'}->[0];
}
if ($client) { ($client) = noderange($client) };
unless ($client) { #Not able to do identify the host in question
xCAT::MsgUtils->message("S","Received syncfiles from $client, which couldn't be correlated to a node (domain mismatch?)");
return;
}
require xCAT::Postage;
my $rc = xCAT::Postage->syncfiles($client,$callback,$subreq);
if ($rc) {
xCAT::MsgUtils->message("S","Sync files to node $client completed");
} else {
xCAT::MsgUtils->message("S","Encountered error when using xdcp sync files to $client");
}
}