Return OK to immSteps if step is already completed in order to
continue executing after a manual cluster reboot.
---
 src/smf/smfd/SmfUpgradeCampaign.cc  | 1 +
 src/smf/smfd/SmfUpgradeProcedure.cc | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/src/smf/smfd/SmfUpgradeCampaign.cc 
b/src/smf/smfd/SmfUpgradeCampaign.cc
index 3c50bf7..a50f4da 100644
--- a/src/smf/smfd/SmfUpgradeCampaign.cc
+++ b/src/smf/smfd/SmfUpgradeCampaign.cc
@@ -903,6 +903,7 @@ void SmfUpgradeCampaign::procResult(SmfUpgradeProcedure 
*i_procedure,
 void SmfUpgradeCampaign::continueExec() {
   TRACE_ENTER();
   SaSmfCmpgStateT currentState = m_state->getState();
+  SmfCampaignThread::instance()->campaign()->setError("");
 
   // Check if the campaign execution continues after a campaign restart
   // resulting from a SMF ordered cluster reboot or SI_SWAP
diff --git a/src/smf/smfd/SmfUpgradeProcedure.cc 
b/src/smf/smfd/SmfUpgradeProcedure.cc
index fd99e88..92ae35d 100644
--- a/src/smf/smfd/SmfUpgradeProcedure.cc
+++ b/src/smf/smfd/SmfUpgradeProcedure.cc
@@ -3382,6 +3382,13 @@ SaAisErrorT 
SmfUpgradeProcedure::getImmStepsMergedSingleStep() {
     return SA_AIS_ERR_INIT;
   }
 
+  if (newStep->getState() == SA_SMF_STEP_COMPLETED) {
+    LOG_NO("SmfUpgradeProcedure::getImmStepsMergedSingleStep: state %d",
+           SA_SMF_STEP_COMPLETED);
+    TRACE_LEAVE();
+    return SA_AIS_OK;
+  }
+
   if ((newStep->getState() != SA_SMF_STEP_INITIAL) &&
       (newStep->getState() != SA_SMF_STEP_EXECUTING)) {
     LOG_NO("SmfUpgradeProcedure::getImmStepsMergedSingleStep: Invalid state 
%d",
-- 
2.7.4



_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to