Hi Neel Ack. Both problems below are answered/solved.
Thanks Lennart > -----Original Message----- > From: Lennart Lund > Sent: den 24 april 2017 09:48 > To: Neelakanta Reddy <[email protected]>; Rafael Odzakow > <[email protected]> > Cc: [email protected]; Lennart Lund > <[email protected]> > Subject: RE: [PATCH 1/1] smf: updated the imm API vesrion to latest > supported [#2431] > > Hi Neel > > I have found two things: > 1. > You have changed SMF to use IMM minor version 17 but the IMM PR > document says that version 18 is the latest. Also the ticket says that SMF > shall > be upgraded to use version 18. > > 2. > I have a test that during campaign init state changes "longDnsAllowed" > setting to ON and then creates an object with a long name. With this patch > applied this is no longer working. SMF uses an IMM Applier to surveil the > "longDnsAllowed" attribute. With the patch applied it seems as if it takes > longer time for IMM to activate the applier callback that makes SMF aware of > that the setting has changed resulting in a "too long name" fail when SMF > tries to create the object. I will do some more investigations > > Thanks > Lennart > > > -----Original Message----- > > From: Neelakanta Reddy [mailto:[email protected]] > > Sent: den 20 april 2017 12:59 > > To: Rafael Odzakow <[email protected]>; Lennart Lund > > <[email protected]> > > Cc: [email protected]; Neelakanta Reddy > > <[email protected]> > > Subject: [PATCH 1/1] smf: updated the imm API vesrion to latest supported > > [#2431] > > > > --- > > src/smf/smfd/SmfCampaignThread.cc | 2 +- > > src/smf/smfd/SmfExecControlHdl.h | 2 +- > > src/smf/smfd/SmfImmApplierHdl.h | 2 +- > > src/smf/smfd/SmfImmOperation.cc | 15 +++++++++------ > > src/smf/smfd/SmfProcedureThread.cc | 2 +- > > src/smf/smfd/SmfUpgradeCampaign.cc | 2 ++ > > src/smf/smfd/SmfUpgradeStep.h | 2 +- > > src/smf/smfd/SmfUtils.cc | 7 ++++--- > > src/smf/smfd/smfd_campaign_oi.cc | 2 +- > > src/smf/smfd/smfd_main.cc | 2 +- > > 10 files changed, 22 insertions(+), 16 deletions(-) > > > > diff --git a/src/smf/smfd/SmfCampaignThread.cc > > b/src/smf/smfd/SmfCampaignThread.cc > > index 413beb0..8f3d257 100644 > > --- a/src/smf/smfd/SmfCampaignThread.cc > > +++ b/src/smf/smfd/SmfCampaignThread.cc > > @@ -521,7 +521,7 @@ SaAisErrorT > > SmfCampaignThread::createImmHandle(SmfCampaign *i_campaign) { > > TRACE_ENTER(); > > SaAisErrorT rc = SA_AIS_OK; > > int existCnt = 0; > > - SaVersionT immVersion = {'A', 2, 1}; > > + SaVersionT immVersion = {'A', 2, 17}; > > SmfImmUtils immutil; > > SaImmAttrValuesT_2 **attributes; > > const char *campOiName = NULL; > > diff --git a/src/smf/smfd/SmfExecControlHdl.h > > b/src/smf/smfd/SmfExecControlHdl.h > > index 3c3e8bc..8ba30a4 100644 > > --- a/src/smf/smfd/SmfExecControlHdl.h > > +++ b/src/smf/smfd/SmfExecControlHdl.h > > @@ -108,7 +108,7 @@ class SmfExecControlObjHandler { > > SaImmAttrValuesT_2 *m_nodesForSingleStep_ad; > > > > // For storing IMM handles > > - const SaVersionT m_immVersion{'A', 2, 1}; > > + const SaVersionT m_immVersion{'A', 2, 17}; > > SaImmHandleT m_omHandle; > > SaImmAdminOwnerHandleT m_ownerHandle; > > SaImmCcbHandleT m_ccbHandle; > > diff --git a/src/smf/smfd/SmfImmApplierHdl.h > > b/src/smf/smfd/SmfImmApplierHdl.h > > index 68ffa1c..7bd037c 100644 > > --- a/src/smf/smfd/SmfImmApplierHdl.h > > +++ b/src/smf/smfd/SmfImmApplierHdl.h > > @@ -98,7 +98,7 @@ class SmfImmApplierHdl { > > ExecuteImmCallbackReply ExecuteImmCallback(void); > > > > private: > > - const SaVersionT kImmVersion = {'A', 2, 11}; > > + const SaVersionT kImmVersion = {'A', 2, 17}; > > static std::atomic<unsigned int> instance_number_; > > bool isCreated_; > > std::string applier_name_; > > diff --git a/src/smf/smfd/SmfImmOperation.cc > > b/src/smf/smfd/SmfImmOperation.cc > > index 1dd44df..445455f 100644 > > --- a/src/smf/smfd/SmfImmOperation.cc > > +++ b/src/smf/smfd/SmfImmOperation.cc > > @@ -414,8 +414,9 @@ SaAisErrorT > > SmfImmCreateOperation::execute(SmfRollbackData *o_rollbackData) { > > m_ccbHandle, (SaImmClassNameT)className, &objectName, > > (const SaImmAttrValuesT_2 **)m_immAttrValues); > > if (result != SA_AIS_OK && result == SA_AIS_ERR_FAILED_OPERATION) { > > - result = saImmOmCcbGetErrorStrings(m_ccbHandle, &errStrings); > > - if (errStrings) { > > + SaAisErrorT result1 = SA_AIS_OK; > > + result1 = saImmOmCcbGetErrorStrings(m_ccbHandle, &errStrings); > > + if (result1 == SA_AIS_OK && errStrings) { > > TRACE("Received error string is %s", errStrings[0]); > > char *type = NULL; > > type = strstr(errStrings[0], "IMM: Resource abort: "); > > @@ -651,8 +652,9 @@ SaAisErrorT > > SmfImmDeleteOperation::execute(SmfRollbackData *o_rollbackData) { > > const SaStringT *errStrings = NULL; > > result = immutil_saImmOmCcbObjectDelete(m_ccbHandle, > &objectName); > > if (result != SA_AIS_OK && result == SA_AIS_ERR_FAILED_OPERATION) { > > - result = saImmOmCcbGetErrorStrings(m_ccbHandle, &errStrings); > > - if (errStrings) { > > + SaAisErrorT result1 = SA_AIS_OK; > > + result1 = saImmOmCcbGetErrorStrings(m_ccbHandle, &errStrings); > > + if (result1 == SA_AIS_OK && errStrings) { > > TRACE("Received error string is %s", errStrings[0]); > > char *type = NULL; > > type = strstr(errStrings[0], "IMM: Resource abort: "); > > @@ -1030,8 +1032,9 @@ SaAisErrorT > > SmfImmModifyOperation::execute(SmfRollbackData *o_rollbackData) { > > m_ccbHandle, &objectName, > > (const SaImmAttrModificationT_2 **)m_immAttrMods); > > if (result != SA_AIS_OK && result == SA_AIS_ERR_FAILED_OPERATION) { > > - result = saImmOmCcbGetErrorStrings(m_ccbHandle, &errStrings); > > - if (errStrings) { > > + SaAisErrorT result1 = SA_AIS_OK; > > + result1 = saImmOmCcbGetErrorStrings(m_ccbHandle, &errStrings); > > + if (result1 == SA_AIS_OK && errStrings) { > > TRACE("Received error string is %s", errStrings[0]); > > char *type = strstr(errStrings[0], "IMM: Resource abort: "); > > if (type != NULL) { > > diff --git a/src/smf/smfd/SmfProcedureThread.cc > > b/src/smf/smfd/SmfProcedureThread.cc > > index 269820b..023dc8e 100644 > > --- a/src/smf/smfd/SmfProcedureThread.cc > > +++ b/src/smf/smfd/SmfProcedureThread.cc > > @@ -179,7 +179,7 @@ SaAisErrorT > > SmfProcedureThread::createImmHandle(void) { > > TRACE_ENTER(); > > SaAisErrorT rc = SA_AIS_OK; > > int existCnt = 0; > > - SaVersionT immVersion = {'A', 2, 1}; > > + SaVersionT immVersion = {'A', 2, 17}; > > > > // DN of the procedure > > const char *procName = m_procedure->getProcName().c_str(); > > diff --git a/src/smf/smfd/SmfUpgradeCampaign.cc > > b/src/smf/smfd/SmfUpgradeCampaign.cc > > index 396bf10..aa03eba 100644 > > --- a/src/smf/smfd/SmfUpgradeCampaign.cc > > +++ b/src/smf/smfd/SmfUpgradeCampaign.cc > > @@ -1040,6 +1040,8 @@ void > > SmfUpgradeCampaign::resetMaintenanceState() { > > * with Resource abort in error string. > > */ > > continue; > > + } else { > > + break; > > } > > } > > if (rc != SA_AIS_OK) { > > diff --git a/src/smf/smfd/SmfUpgradeStep.h > > b/src/smf/smfd/SmfUpgradeStep.h > > index 4e741b7..72e5d97 100644 > > --- a/src/smf/smfd/SmfUpgradeStep.h > > +++ b/src/smf/smfd/SmfUpgradeStep.h > > @@ -895,7 +895,7 @@ class SmfAdminOperation { > > std::list<unitNameAndState> m_suList; > > std::list<unitNameAndState> m_nodeList; > > > > - const SaVersionT m_immVersion{'A', 2, 1}; > > + const SaVersionT m_immVersion{'A', 2, 17}; > > > > std::string m_nodeGroupParentDn; > > > > diff --git a/src/smf/smfd/SmfUtils.cc b/src/smf/smfd/SmfUtils.cc > > index 7277fde..d2b4734 100644 > > --- a/src/smf/smfd/SmfUtils.cc > > +++ b/src/smf/smfd/SmfUtils.cc > > @@ -58,7 +58,7 @@ > > * > > > ========================================================== > > ============== > > */ > > > > -SaVersionT SmfImmUtils::s_immVersion = {'A', 2, 1}; > > +SaVersionT SmfImmUtils::s_immVersion = {'A', 2, 17}; > > > > /* > > > ========================================================== > > ============== > > * FUNCTION PROTOTYPES > > @@ -703,8 +703,9 @@ SaAisErrorT SmfImmUtils::doImmOperations( > > /* Apply the CCB */ > > result = immutil_saImmOmCcbApply(immCcbHandle); > > if (result != SA_AIS_OK && result == SA_AIS_ERR_FAILED_OPERATION) { > > - result = saImmOmCcbGetErrorStrings(immCcbHandle, &errStrings); > > - if (errStrings) { > > + SaAisErrorT result1 = SA_AIS_OK; > > + result1 = saImmOmCcbGetErrorStrings(immCcbHandle, &errStrings); > > + if (result1 == SA_AIS_OK && errStrings) { > > TRACE("Received error string is %s", errStrings[0]); > > char *type = NULL; > > type = strstr(errStrings[0], "IMM: Resource abort: "); > > diff --git a/src/smf/smfd/smfd_campaign_oi.cc > > b/src/smf/smfd/smfd_campaign_oi.cc > > index f37f8ca..e559730 100644 > > --- a/src/smf/smfd/smfd_campaign_oi.cc > > +++ b/src/smf/smfd/smfd_campaign_oi.cc > > @@ -42,7 +42,7 @@ > > #include "smf/smfd/SmfCbkUtil.h" > > #include "base/osaf_extended_name.h" > > > > -static SaVersionT immVersion = {'A', 2, 1}; > > +static SaVersionT immVersion = {'A', 2, 17}; > > static const SaImmOiImplementerNameT implementerName = > > (SaImmOiImplementerNameT) "safSmfService"; > > > > diff --git a/src/smf/smfd/smfd_main.cc b/src/smf/smfd/smfd_main.cc > > index 2d66c1e..35b16ee 100644 > > --- a/src/smf/smfd/smfd_main.cc > > +++ b/src/smf/smfd/smfd_main.cc > > @@ -334,7 +334,7 @@ static void main_process(void) { > > initialized. > > */ > > SaImmHandleT omHandle = 0; > > - SaVersionT immVersion = {'A', 2, 1}; > > + SaVersionT immVersion = {'A', 2, 17}; > > SaAisErrorT rc = immutil_saImmOmInitialize(&omHandle, NULL, > > &immVersion); > > if (rc != SA_AIS_OK) { > > LOG_ER("immutil_saImmOmInitialize faild, rc=%s", saf_error(rc)); > > -- > > 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
