From 4fd1aeae80f1429f2dd6fa4d37fb5e68fd893e79 Mon Sep 17 00:00:00 2001 From: Mark Gurevich Date: Fri, 19 May 2017 13:05:18 -0400 Subject: [PATCH] Handle openbmc transition states --- xCAT-server/lib/xcat/plugins/openbmc.pm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) 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); + } } }