xcat-core/xCAT-server-2.0/lib/xcat/plugins/getpostscript.pm

76 lines
1.6 KiB
Perl

# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
#-------------------------------------------------------
=head1
xCAT plugin package to handle getpostscript command
=cut
#-------------------------------------------------------
package xCAT_plugin::getpostscript;
use xCAT::Postage;
use xCAT::Utils;
use xCAT::NodeRange;
1;
#-------------------------------------------------------
=head3 handled_commands
Return list of commands handled by this plugin
=cut
#-------------------------------------------------------
sub handled_commands
{
return {'getpostscript' => "getpostscript"};
}
#-------------------------------------------------------
=head3 process_request
Process the command
=cut
#-------------------------------------------------------
sub process_request
{
my $request = shift;
my $callback = shift;
my $nodes = $request->{node};
my $command = $request->{command}->[0];
my $args = $request->{arg};
my $envs = $request->{env};
my $rsp;
my $i = 1;
my @nodes=@$nodes;
# do your processing here
# return info
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
return;
}
my $state = $request->{scripttype}->[0];
unless ($state) {
return;
}
my @scriptcontents = xCAT::Postage::makescript($client,$state,$callback);
if (scalar(@scriptcontents)) {
$rsp->{data} = \@scriptcontents;
}
$callback->($rsp);
}