2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-21 19:22:05 +00:00
2018-01-24 03:16:41 -05:00

103 lines
3.4 KiB
Perl

# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
package xCAT_plugin::AAAusage;
use strict;
use xCAT::Usage;
##########################################################################
# Common help plugin for table-driven commands
##########################################################################
##########################################################################
# Command handler method from tables
##########################################################################
sub handled_commands {
return {
rnetboot => 'AAAusage',
rpower => 'AAAusage',
rbeacon => 'AAAusage',
rvitals => 'AAAusage',
reventlog => 'AAAusage',
rinv => 'AAAusage',
rsetboot => 'AAAusage',
rbootseq => 'AAAusage',
rscan => 'AAAusage',
rspconfig => 'AAAusage',
getmacs => 'AAAusage',
mkvm => 'AAAusage',
lsvm => 'AAAusage',
chvm => 'AAAusage',
rmvm => 'AAAusage',
mkdocker => 'AAAusage',
lsdocker => 'AAAusage',
rmdocker => 'AAAusage',
#lsslp => 'AAAusage',
rflash => 'AAAusage',
mkhwconn => 'AAAusage',
rmhwconn => 'AAAusage',
lshwconn => 'AAAusage',
renergy => 'AAAusage',
nodeset => 'AAAusage',
rspreset => 'AAAusage',
rmhypervisor => 'AAAusage',
rmigrate => 'AAAusage',
rshutdown => 'AAAusage',
};
}
##########################################################################
# Pre-process request from xCat daemon
##########################################################################
sub preprocess_request {
my $request = shift;
#if ($request->{_xcatdest}) { return [$request]; } #exit if preprocessed
if (($request->{_xcatpreprocessed}) and ($request->{_xcatpreprocessed}->[0] == 1)) { return [$request]; }
my $callback = shift;
my @requests;
#display usage statement if -h is present or no noderage is specified
my $noderange = $request->{node}; #Should be arrayref
my $command = $request->{command}->[0];
my $extrargs = $request->{arg};
my @exargs = ($request->{arg});
if (ref($extrargs)) {
@exargs = @$extrargs;
}
if (($#exargs == -1) or (($#exargs == 0) and ($exargs[0] =~ /^\s*$/)) and (!$noderange and $command ne "lsslp")) {
$exargs[0] = "--help"; # force help if no args
}
# rflash: -p flag is to specify a directory, which will be parsed as a node range with regular expression
# stop the rflash command without noderange
# rflash -p /tmp/test --activate disruptive
# where the /tmp/test will be treated as noderange with regular expression
# this is a general issue for the xcatclient commands, if with a flag can be followed by directory
# however, rflash is the only one we can think of for now.
if (!$noderange and $command eq "rflash") {
$exargs[0] = "--help";
}
my $usage_string = xCAT::Usage->parseCommand($command, @exargs);
if ($usage_string) {
$callback->({ data => [$usage_string] });
$request = {};
return;
}
}
##########################################################################
# Process request from xCat daemon
##########################################################################
sub process_request {
return 0;
}
1;