add BSR, failover item

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.6@10786 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
zhaoertao
2011-10-17 05:54:07 +00:00
parent 1eaef84651
commit 3e6626f22d
2 changed files with 49 additions and 5 deletions
+43 -4
View File
@@ -74,7 +74,10 @@ sub parse_args {
"cec_off_policy",
"resetnet",
"sysname",
"pending_power_on_side"
"pending_power_on_side",
"BSR",
"setup_failover",
"force_failover"
);
my @frame = (
"frame",
@@ -233,7 +236,8 @@ sub parse_args {
$request->{method} = "resetnet";
return( \%opt );
}
if(exists($cmds{sysname}) or exists($cmds{pending_power_on_side})) {
if(exists($cmds{sysname}) or exists($cmds{pending_power_on_side}) or exists($cmds{BSR})
or exists($cmds{setup_failover}) or exists($cmds{force_failover})) {
$request->{hcp} = $request->{hwtype} eq 'frame' ? "bpa":"fsp";
$request->{method} = "do_fspapi_function";
return (\%opt);
@@ -308,6 +312,14 @@ sub parse_option {
return ("Invalid pending_power_on_side param '$value'");
}
}
if ($command eq 'setup_failover') {
if ($value !~ /^(enable|disable)$/) {
return ("Invalid setup_failover param '$value'");
}
}
if ($command =~ /^(BSR|force_failover)$/ ) {
return ("BSR value can not be set");
}
return undef;
}
sub check_node_info {
@@ -345,6 +357,24 @@ my %fspapi_action = (
frame => "set_ipl_param"
}
},
BSR => {
query => {
cec => "get_cec_bsr"
}
},
setup_failover => {
query => {
cec => "cec_setup_failover"
},
set => {
cec => "cec_setup_failover"
}
},
force_failover => {
query => {
cec => "cec_force_failover"
}
}
);
sub do_process_query_res {
my $name = shift;
@@ -367,6 +397,13 @@ sub do_process_query_res {
return "Error";
}
}
} elsif ($cmd =~ /^BSR$/) {
my @values = split(/\n/, @$res[1]);
foreach my $v (@values) {
push @$result, [$name, $v, '0'];
}
} else {
push @$result, $res;
}
return undef;
}
@@ -396,6 +433,8 @@ sub do_set_get_para {
return (($value eq '*') ? $node_name : $value);
} elsif ($cmd =~ /^pending_power_on_side$/){
return ($value =~ /^perm$/) ? '0' : '1';
} elsif ($cmd =~ /^setup_failover$/) {
return ($value =~ /^enable$/) ? '1' : '0';
}
}
@@ -422,7 +461,7 @@ sub do_set {
my $action = $fspapi_action{$cmd}{set}{@$d[4]};
my $para = &do_set_get_para($name, $cmd, $value);
my $values = xCAT::FSPUtils::fsp_api_action($name, $d, $action, 0, $para);
#print Dumper($values);
# print Dumper($values);
&do_process_set_res($name, $cmd, \@result, $values);
#my $res = &do_process_set_res($name, $cmd, \@result, $values);
#if (defined($res)) {
@@ -439,7 +478,7 @@ sub do_fspapi_function {
my @ret = ();
my $res;
my $args = $request->{arg};
my @fspapi_array = qw/sysname pending_power_on_side/;
my @fspapi_array = qw/sysname pending_power_on_side BSR setup_failover force_failover/;
my $invalid_node = &check_node_info($hash);
if (defined($invalid_node)) {
return ([[$invalid_node, "Node must be CEC or Frame", '1']]);
+6 -1
View File
@@ -69,7 +69,8 @@ my %usage = (
PPC specific(with HMC):
rinv <noderange> [bus|config|serial|model|firm|all]
PPC specific(using Direct FSP Management):
rinv <noderange> [firm|deconfig]
rinv <noderange> [firm]
rinv <noderange> [deconfig [-x]]
Blade specific:
rinv <noderange> [mtm|serial|mac|bios|diag|mprom|mparom|firm|all]
VMware specific:
@@ -140,6 +141,10 @@ my %usage = (
rspconfig <noderange> [pending_power_on_side=<temp|perm>]
rspconfig <noderange> [cec_off_policy]
rspconfig <noderange> [cec_off_policy=<poweroff|stayon>]
rspconfig <noderange> [BSR]
rspconfig <noderange> [setup_failover]
rspconfig <noderange> [setup_failover=<enable|disable>]
rspconfig <noderange> [force_failover]
rspconfig <noderange> --resetnet
BPA/Frame (using Direct FSP Management)specific:
rspconfig <noderange> HMC_passwd=<currentpasswd,newpasswd>