diff --git a/docs/source/guides/admin-guides/references/man1/rpower.1.rst b/docs/source/guides/admin-guides/references/man1/rpower.1.rst index b344f75d6..74dcc3cac 100644 --- a/docs/source/guides/admin-guides/references/man1/rpower.1.rst +++ b/docs/source/guides/admin-guides/references/man1/rpower.1.rst @@ -23,8 +23,8 @@ SYNOPSIS \ **rpower**\ [\ **-h | -**\ **-help | -v | -**\ **-version**\ ] -BMC (using IPMI) specific: -========================== +BMC (using IPMI): +================= \ **rpower**\ \ *noderange*\ [\ **on | off | softoff | reset | boot | stat | state | status | wake | suspend**\ [\ **-w**\ \ *timeout*\ ] [\ **-o**\ ] [\ **-r**\ ]] @@ -32,8 +32,17 @@ BMC (using IPMI) specific: \ **rpower**\ \ *noderange*\ [\ **pduon | pduoff | pdustat | pdureset**\ ] -OpenBMC specific: -================= +OpenPower BMC (using IPMI): +=========================== + + +\ **rpower**\ \ *noderange*\ [\ **on | off | reset | boot | stat | state | status**\ ] + +\ **rpower**\ \ *noderange*\ [\ **pduon | pduoff | pdustat | pdureset**\ ] + + +OpenPower OpenBMC: +================== \ **rpower**\ \ *noderange*\ [\ **off | on | reset | boot | stat | state | status**\ ] @@ -97,6 +106,13 @@ Blade specific: \ **rpower**\ \ *noderange*\ [\ **cycle | softoff**\ ] +Lenovo High-Density Server specific: +==================================== + + +\ **rpower**\ \ *noderange*\ [\ **on | off | reset | boot | reseat**\ ] + + zVM specific: ============= @@ -270,6 +286,12 @@ OPTIONS +\ **reseat**\ + + For Lenovo high-density servers, simulates unplugging and replugging the node into the chassis. + + + \ **of**\ Boot the node to open firmware console mode. diff --git a/perl-xCAT/xCAT/Usage.pm b/perl-xCAT/xCAT/Usage.pm index cfad04bac..51eed08a8 100755 --- a/perl-xCAT/xCAT/Usage.pm +++ b/perl-xCAT/xCAT/Usage.pm @@ -26,7 +26,13 @@ my %usage = ( "rpower" => "Usage: rpower [--nodeps] [on|onstandby|off|suspend|reset|stat|state|boot] [-V|--verbose] [-m table.colum==expectedstatus][-m table.colum==expectedstatus...] [-r ] [-t ] rpower [-h|--help|-v|--version] - OpenBMC specific: + BMC (using IPMI): + rpower noderange [on|off|softoff|reset|boot|stat|state|status|wake|suspend [-w timeout] [-o] [-r]] + rpower noderange [pduon|pduoff|pdustat] + OpenPower BMC: + rpower noderange [on|off|reset|boot|stat|state|status] + rpower noderange [pduon|pduoff|pdustat] + OpenPower OpenBMC: rpower noderange [on|off|reset|boot|stat|state|status] KVM Virtualization specific: rpower [boot] [ -c ] diff --git a/xCAT-client/pods/man1/rpower.1.pod b/xCAT-client/pods/man1/rpower.1.pod index 2a8bd9d96..61e7be87c 100644 --- a/xCAT-client/pods/man1/rpower.1.pod +++ b/xCAT-client/pods/man1/rpower.1.pod @@ -8,13 +8,19 @@ B I [B<--nodeps>] [B|B|B|B|B [B<-h>|B<--help>|B<-v>|B<--version>] -=head2 BMC (using IPMI) specific: +=head2 BMC (using IPMI): B I [B|B|B|B|B|B|B|B|B|B [B<-w> I] [B<-o>] [B<-r>]] B I [B|B|B|B] -=head2 OpenBMC specific: +=head2 OpenPower BMC (using IPMI): + +B I [B|B|B|B|B|B|B] + +B I [B|B|B|B] + +=head2 OpenPower OpenBMC: B I [B|B|B|B|B|B|B] diff --git a/xCAT-server/lib/xcat/plugins/ipmi.pm b/xCAT-server/lib/xcat/plugins/ipmi.pm index cc510278a..596eac8ee 100644 --- a/xCAT-server/lib/xcat/plugins/ipmi.pm +++ b/xCAT-server/lib/xcat/plugins/ipmi.pm @@ -2535,6 +2535,12 @@ sub power { my $rc = 0; my $text; my $code; + + if (($sessdata->{subcommand} !~ /^on$|^off$|^reset$|^boot$|^stat$|^state$|^status$/) and isopenpower($sessdata)) { + xCAT::SvrUtils::sendmsg([ 1, "unsupported command rpower $sessdata->{subcommand} for OpenPower" ], $callback, $sessdata->{node}, %allerrornodes); + return; + } + if ($sessdata->{subcommand} eq "reseat") { reseat_node($sessdata); } elsif (not $sessdata->{acpistate} and is_systemx($sessdata)) { #Only implemented for IBM servers @@ -2681,6 +2687,7 @@ sub power_response { my $text = $codes{ $rsp->{code} }; unless ($text) { $text = sprintf("Unknown response %02xh", $rsp->{code}); } xCAT::SvrUtils::sendmsg([ 1, $text ], $callback, $sessdata->{node}, %allerrornodes); + return; } else { my $command = $sessdata->{subcommand}; my $status = $sessdata->{powerstatus};