Hi Khanh,

It's better if you add comment for code.
Example:
// This happen when unexpected cluster reboot
// when campaign (merged to single step) reach EXECUTION_COMPLETED
// Keep state EXCUTION_COMPLETED then user try to commit lead to
// SMFD crash and campaign cannot be committed in anyway.

Best Regards,
ThuanTr

-----Original Message-----
From: khanh.h.dang <khanh.h.d...@dektech.com.au> 
Sent: Monday, August 5, 2019 11:52 AM
To: lennart.l...@ericsson.com; thuan.t...@dektech.com.au
Cc: opensaf-devel@lists.sourceforge.net; khanh.h.dang
<khanh.h.d...@dektech.com.au>
Subject: [PATCH 1/1] smfd: set campaign state failed when error msg is
introduced [#3063]

With single step upgrade method, after a manual cluster reboot, campaign
status gets error but state remains EXECUTION_COMPLETED.
This change corrects the state of campaign in such case.
---
 src/smf/smfd/SmfCampaign.cc | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/smf/smfd/SmfCampaign.cc b/src/smf/smfd/SmfCampaign.cc index
6f514831b..d87afbe4d 100644
--- a/src/smf/smfd/SmfCampaign.cc
+++ b/src/smf/smfd/SmfCampaign.cc
@@ -729,6 +729,13 @@ bool SmfCampaign::startProcedure(SmfUpgradeProcedure
*procedure) {
         "Start of procedure thread failed for " + procedure->getDn();
     LOG_ER("%s", error.c_str());
     SmfCampaignThread::instance()->campaign()->setError(error);
+    SmfUpgradeCampaign *p_uc = getUpgradeCampaign();
+    if ((p_uc->getProcExecutionMode() == SMF_MERGE_TO_SINGLE_STEP) &&
+        (SmfCampaignThread::instance()->campaign()->getState() ==
+        SA_SMF_CMPG_EXECUTION_COMPLETED)) {
+      SmfCampaignThread::instance()->campaign()->setState(
+          SA_SMF_CMPG_EXECUTION_FAILED);
+    }
     return false;
   }
   return true;
--
2.22.0




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

Reply via email to