---
 src/smf/smfd/SmfCampaignWrapup.cc | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/smf/smfd/SmfCampaignWrapup.cc 
b/src/smf/smfd/SmfCampaignWrapup.cc
index 4389ff0..9ea41c3 100644
--- a/src/smf/smfd/SmfCampaignWrapup.cc
+++ b/src/smf/smfd/SmfCampaignWrapup.cc
@@ -29,6 +29,9 @@
 #include "smf/smfd/SmfRollback.h"
 #include "smf/smfd/SmfUpgradeAction.h"
 #include "smf/smfd/SmfUtils.h"
+#include "base/osaf_time.h"
+#include "base/time.h"
+
 
 /* ========================================================================
  *   DEFINITIONS
@@ -224,6 +227,21 @@ bool SmfCampaignWrapup::executeCampComplete() {
     LOG_ER(
         "SmfCampaignWrapup failed to create campaign complete rollback element 
%s, rc=%s",
         completeRollbackDn.c_str(), saf_error(result));
+
+     int ret = SA_AIS_OK;
+     base::Timer doImmOpTimer(60000);
+     while (doImmOpTimer.is_timeout() == false) {
+       TRACE("%s: SmfCampaignWrapup - executeCampComplete time left = %" 
PRIu64,
+            __FUNCTION__, doImmOpTimer.time_left());
+       ret = smfCreateRollbackElement(completeRollbackDn,
+             SmfCampaignThread::instance()->getImmHandle());
+       if (ret  == SA_AIS_ERR_TRY_AGAIN) {
+         base::Sleep(base::kFiveHundredMilliseconds);
+         continue;
+       }else{
+         break;
+       }
+     }
     return false;
   }
 
-- 
1.9.1


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to