diff --git a/perl-xCAT-2.0/xCAT/PPCfsp.pm b/perl-xCAT-2.0/xCAT/PPCfsp.pm index 57bdefb53..3e176ba15 100644 --- a/perl-xCAT-2.0/xCAT/PPCfsp.pm +++ b/perl-xCAT-2.0/xCAT/PPCfsp.pm @@ -37,149 +37,6 @@ my %cmds = ( ); -########################################################################## -# Parse the command line for options and operands -########################################################################## -sub parse_args { - - my $request = shift; - my $command = $request->{command}; - my @rsp = keys %{$cmds{$command}}; - my $args = $request->{arg}; - my %opt = (); - my %cmds = (); - - ############################################# - # Responds with usage statement - ############################################# - local *usage = sub { - my $usage_string = xCAT::Usage->getUsage($command); - return( [$_[0], $usage_string] ); - }; - ############################################# - # Process command-line arguments - ############################################# - if ( !defined( $args )) { - return(usage( "No command specified" )); - } - ############################################# - # Checks case in GetOptions, allows opts - # to be grouped (e.g. -vx), and terminates - # at the first unrecognized option. - ############################################# - @ARGV = @$args; - $Getopt::Long::ignorecase = 0; - Getopt::Long::Configure( "bundling" ); - $request->{method} = undef; - - if ( !GetOptions( \%opt, qw(V|Verbose) )) { - return( usage() ); - } - #################################### - # Check for "-" with no option - #################################### - if ( grep(/^-$/, @ARGV )) { - return(usage( "Missing option: -" )); - } - #################################### - # Check for "=" with no argument - #################################### - if (my ($c) = grep(/=$/, @ARGV )) { - return(usage( "Missing argument: $c" )); - } - #################################### - # Check for unsupported commands - #################################### - foreach my $arg ( @ARGV ) { - my ($command,$value) = split( /=/, $arg ); - if ( !grep( /^$command$/, @rsp )) { - return(usage( "Invalid command: $arg" )); - } - if ( exists( $cmds{$command} )) { - return(usage( "Command multiple times: $command" )); - } - $cmds{$command} = $value; - } - #################################### - # Check command arguments - #################################### - foreach ( keys %cmds ) { - if ( $cmds{$_} ) { - my $result = parse_option( $request, $_, $cmds{$_} ); - if ( $result ) { - return( usage($result) ); - } - } - } - $request->{method} = \%cmds; - return( \%opt ); -} - - -########################################################################## -# Parse the command line optional arguments -########################################################################## -sub parse_option { - - my $request = shift; - my $command = shift; - my $value = shift; - - #################################### - # Set/get time - #################################### - if ( $command =~ /^time$/ ) { - if ( $value !~ - /^([0-1]?[0-9]|2[0-3]):(0?[0-9]|[1-5][0-9]):(0?[0-9]|[1-5][0-9])$/){ - return( "Invalid time format '$value'" ); - } - } - #################################### - # Set/get date - #################################### - if ( $command =~ /^date$/ ) { - if ( $value !~ - /^(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])-(20[0-9]{2})$/){ - return( "Invalid date format '$value'" ); - } - } - #################################### - # Set/get options - #################################### - if ( $command =~ /^(autopower|iocap)$/ ) { - if ( $value !~ /^(enable|disable)$/i ) { - return( "Invalid argument '$value'" ); - } - } - #################################### - # Deconfiguration policy - #################################### - if ( $command =~ /^decfg$/ ) { - if ( $value !~ /^(enable|disable):.*$/i ) { - return( "Invalid argument '$value'" ); - } - } - #################################### - # Processor deconfiguration - #################################### - if ( $command =~ /^procdecfg$/ ) { - if ( $value !~ /^(configure|deconfigure):\d+:(all|[\d,]+)$/i ) { - return( "Invalid argument '$value'" ); - } - } - ################################ - # Memory deconfiguration - ################################ - elsif ( $command =~ /^memdecfg$/ ) { - if ($value !~/^(configure|deconfigure):\d+:(unit|bank):(all|[\d,]+)$/i){ - return( "Invalid argument '$value'" ); - } - } - return undef; -} - - - ########################################################################## # FSP command handler through HTTP interface ##########################################################################