diff --git a/xCAT-server/lib/xcat/plugins/openbmc.pm b/xCAT-server/lib/xcat/plugins/openbmc.pm index 519a4a13c..f3adf401b 100644 --- a/xCAT-server/lib/xcat/plugins/openbmc.pm +++ b/xCAT-server/lib/xcat/plugins/openbmc.pm @@ -848,11 +848,23 @@ sub rpower_response { if ($node_info{$node}{cur_status} eq "RPOWER_STATUS_RESPONSE" and !$next_status{ $node_info{$node}{cur_status} }) { if ($response_info->{'data'}->{CurrentHostState} =~ /Off$/) { - xCAT::SvrUtils::sendmsg("off", $callback, $node); + # State is off, but check if it is transitioning + if ($response_info->{'data'}->{RequestedHostTransition} =~ /On$/) { + xCAT::SvrUtils::sendmsg("powering-on", $callback, $node); + } + else { + xCAT::SvrUtils::sendmsg("off", $callback, $node); + } } elsif ($response_info->{'data'}->{CurrentHostState} =~ /Quiesced$/) { xCAT::SvrUtils::sendmsg("quiesced", $callback, $node); } else { - xCAT::SvrUtils::sendmsg("on", $callback, $node); + # State is on, but check if it is transitioning + if ($response_info->{'data'}->{RequestedHostTransition} =~ /Off$/) { + xCAT::SvrUtils::sendmsg("powering-off", $callback, $node); + } + else { + xCAT::SvrUtils::sendmsg("on", $callback, $node); + } } }