src/smf/smfd/SmfExecControlHdl.cc |  20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)


diff --git a/src/smf/smfd/SmfExecControlHdl.cc 
b/src/smf/smfd/SmfExecControlHdl.cc
--- a/src/smf/smfd/SmfExecControlHdl.cc
+++ b/src/smf/smfd/SmfExecControlHdl.cc
@@ -188,12 +188,24 @@ bool SmfExecControlObjHandler::smfProtec
 bool SmfExecControlObjHandler::getValuesFromImmCopy() {
   bool errinfo = true;
 
-  TRACE_ENTER();
-    if (readExecControlObject(c_openSafSmfExecControl_copy) == false) {
-      LOG_NO("%s readExecControlObject(c_openSafSmfExecControl_copy) Fail",
-             __FUNCTION__);
+  std::string copydn = c_openSafSmfExecControl_copy;
+  SaImmAttrValuesT_2 **attributes;
+  if (!p_immutil_object->getObject(copydn, &attributes)) {
+    // We do not have a copy so create it. This can happen when upgrading from
+    // an earlier version of SMF. SMF will only read the copy when it has been
+    // restarted.
+    LOG_NO("No copy existing for execControl, read execControl and create it");
+    if (!install()) {
       errinfo = false;
     }
+  }
+
+  TRACE_ENTER();
+  if (readExecControlObject(c_openSafSmfExecControl_copy) == false) {
+    LOG_NO("%s readExecControlObject(c_openSafSmfExecControl_copy) Fail",
+           __FUNCTION__);
+    errinfo = false;
+  }
 
   TRACE_LEAVE();
   return errinfo;

------------------------------------------------------------------------------
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