Re: [devel] [PATCH 1 of 1] smfd: Merge rolling to singlestep procedures for several nodes [#1685]
Ack Limitations and rules for usage has to be documented but a separate document ticket has to be created. Thanks Lennart > -Original Message- > From: Rafael Odzakow > Sent: den 5 september 2016 09:55 > To: reddy.neelaka...@oracle.com; Lennart Lund >> Cc: opensaf-devel@lists.sourceforge.net > Subject: [PATCH 1 of 1] smfd: Merge rolling to singlestep procedures for > several nodes [#1685] > > osaf/services/saf/smfsv/config/smfsv_classes.xml| 1084 +-- > --- > osaf/services/saf/smfsv/smfd/Makefile.am| 8 +- > osaf/services/saf/smfsv/smfd/SmfCampState.cc| 151 +-- > osaf/services/saf/smfsv/smfd/SmfCampaign.cc |77 +- > osaf/services/saf/smfsv/smfd/SmfCampaign.hh | 1 + > osaf/services/saf/smfsv/smfd/SmfExecControl.cc | 363 ++ > osaf/services/saf/smfsv/smfd/SmfExecControl.h |59 + > osaf/services/saf/smfsv/smfd/SmfExecControlHdl.cc | 506 > osaf/services/saf/smfsv/smfd/SmfExecControlHdl.h| 126 ++ > osaf/services/saf/smfsv/smfd/SmfProcState.cc|28 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.cc |39 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.hh |35 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeProcedure.cc |27 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeProcedure.hh |18 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeStep.cc |49 + > osaf/services/saf/smfsv/smfd/SmfUpgradeStep.hh |13 +- > osaf/services/saf/smfsv/smfd/smfd.h | 2 +- > osaf/services/saf/smfsv/smfd/smfd_campaign_oi.cc|32 - > osaf/services/saf/smfsv/smfd/smfd_cb.h | 5 - > 19 files changed, 1842 insertions(+), 781 deletions(-) > > > diff --git a/osaf/services/saf/smfsv/config/smfsv_classes.xml > b/osaf/services/saf/smfsv/config/smfsv_classes.xml > --- a/osaf/services/saf/smfsv/config/smfsv_classes.xml > +++ b/osaf/services/saf/smfsv/config/smfsv_classes.xml > @@ -1,535 +1,555 @@ > > http://www.saforum.org/IMMSchema; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; > xsi:noNamespaceSchemaLocation="SAI-AIS-IMM-XSD-A.02.13.xsd"> > - > - SA_CONFIG > - > - safSmfCampaign > - SA_STRING_T > - SA_CONFIG > - SA_INITIALIZED > - > - > - saSmfCmpgFileUri > - SA_STRING_T > - SA_CONFIG > - SA_WRITABLE > - > - > - saSmfCmpgConfigBase > - SA_TIME_T > - SA_RUNTIME > - SA_PERSISTENT > - SA_CACHED > - > - > - saSmfCmpgExpectedTime > - SA_TIME_T > - SA_RUNTIME > - SA_PERSISTENT > - SA_CACHED > - > - > - saSmfCmpgElapsedTime > - SA_TIME_T > - SA_RUNTIME > - SA_PERSISTENT > - SA_CACHED > - > - > - saSmfCmpgState > - SA_UINT32_T > - SA_RUNTIME > - SA_PERSISTENT > - SA_CACHED > - 1 > - > - > - saSmfCmpgError > - SA_STRING_T > - SA_RUNTIME > - SA_PERSISTENT > - SA_CACHED > - SA_MULTI_VALUE > - > - > - > - SA_RUNTIME > - > - safSmfProcedure > - SA_STRING_T > - SA_RUNTIME > - SA_PERSISTENT > - SA_CACHED > - > - > - saSmfProcExecLevel > - SA_UINT32_T > - SA_RUNTIME > - SA_PERSISTENT > - SA_CACHED > - > - > - saSmfProcMustKeepSIs > - SA_NAME_T > - SA_RUNTIME > - SA_PERSISTENT > - SA_CACHED > - SA_MULTI_VALUE > - > - > - saSmfProcAcceptSIOutage > - SA_NAME_T > - SA_RUNTIME > - SA_PERSISTENT > - SA_CACHED > - SA_MULTI_VALUE > - > - > - saSmfProcMaxNumSIsOutage > - SA_UINT32_T > - SA_RUNTIME > - SA_PERSISTENT > - SA_CACHED > - > - > -
Re: [devel] [PATCH 1 of 1] smfd: Merge rolling to singlestep procedures for several nodes [#1685]
Hello, 2. Yes in this version only PLs are allowed in nodesForSingleStep. We should fail more gracefully. An defect ticket will be written to fix this issue. On 09/02/2016 02:11 PM, Neelakanta Reddy wrote: > Hi Rafel, > > Tested the patch, but following are the comments: > > 1. when the controllers are included > > immcfg -a numberOfSingleSteps=2 -a nodesForSingleStep=SC-1 -a > nodesForSingleStep=SC-2 openSafSmfExecControl=MergeCampToSS2 > > I have seen the segmentation fault. > > Sep 2 17:10:03 SLES1 osafsmfd[2551]: ER SmfProcedureThread::init, > getImmSteps FAILED, rc=SA_AIS_ERR_NOT_EXIST (12) > Sep 2 17:10:03 SLES1 osafsmfd[2551]: ER SmfProcedureThread::main, > SmfProcedureThread: init failed > Sep 2 17:10:03 SLES1 osafsmfd[2551]: ER Start of procedure thread > failed for > safSmfProc=SmfBalancedProc0,safSmfCampaign=Campaign1,safApp=safSmfService > Sep 2 17:10:03 SLES1 osafimmnd[2459]: NO Implementer disconnected 11 > <336, 2010f> (safSmfProc1) > Sep 2 17:10:03 SLES1 osafimmnd[2459]: NO Implementer disconnected 12 > <411, 2010f> (safSmfProc2) > Sep 2 17:10:03 SLES1 osafimmnd[2459]: NO Implementer disconnected 15 > <480, 2010f> (safSmfProc3) > Sep 2 17:10:03 SLES1 osafamfnd[2520]: NO > 'safComp=SMF,safSu=SC-1,safSg=2N,safApp=OpenSAF' faulted due to > 'avaDown' : Recovery is 'nodeFailfast' > Sep 2 17:10:03 SLES1 osafamfnd[2520]: ER > safComp=SMF,safSu=SC-1,safSg=2N,safApp=OpenSAF Faulted due to:avaDown > Recovery is:nodeFailfast > Sep 2 17:10:03 SLES1 osafamfnd[2520]: Rebooting OpenSAF NodeId = > 131343 EE Name = , Reason: Component faulted: recovery is node > failfast, OwnNodeId = 131343, SupervisionTime = 60 > Sep 2 17:10:03 SLES1 kernel: [ 163.790156] osafsmfd[2675]: segfault > at 51 ip 7f1c89310b08 sp 7f1c8bd968c0 error 4 in > libgcc_s.so.1[7f1c89301000+16000] > Sep 2 17:05:46 SLES1 osafimmnd[2483]: NO Implementer locally > disconnected. Marking it as doomed 16 <546, 2010f> (safSmfProc4) > Sep 2 17:05:46 SLES1 osafimmnd[2483]: NO Implementer locally > disconnected. Marking it as doomed 9 <314, 2010f> (safSmfService) > Sep 2 17:05:46 SLES1 osafimmnd[2483]: NO Implementer locally > disconnected. Marking it as doomed 10 <326, 2010f> (safSmfCampaign) > Sep 2 17:05:46 SLES1 osafimmnd[2483]: NO Implementer disconnected 16 > <546, 2010f> (safSmfProc4) > Sep 2 17:05:46 SLES1 osafimmnd[2483]: NO Implementer disconnected 9 > <314, 2010f> (safSmfService) > Sep 2 17:05:46 SLES1 opensaf_reboot: Rebooting local node; timeout=60 > > > bt(full bt i did not get): > > signal: 11 pid: 96 uid: 0 > /usr/lib/../lib64/libopensaf_core.so.0(+0x1dfed)[0x7f69a5b42fed] > /lib64/libpthread.so.0(+0xf7c0)[0x7f69a481f7c0] > /usr/lib64/opensaf/osafsmfd[0x429539] > /usr/lib64/opensaf/osafsmfd[0x42b5dd] > /usr/lib64/opensaf/osafsmfd[0x410801] > /usr/lib64/opensaf/osafsmfd[0x410a38] > /usr/lib64/opensaf/osafsmfd[0x40aae3] > /usr/lib64/opensaf/osafsmfd(_ZN17SmfCampaignThread4mainEPv+0x32)[0x40abe2] > > /lib64/libpthread.so.0(+0x77b6)[0x7f69a48177b6] > /lib64/libc.so.6(clone+0x6d)[0x7f69a37bb9cd] > > smfd traces: > Sep 2 17:10:03.789791 osafsmfd [2551:SmfProcedureThread.cc:0060] TR > Procedure thread exits > Sep 2 17:10:03.789799 osafsmfd [2551:SmfProcedureThread.cc:0088] >> > ~SmfProcedureThread > Sep 2 17:10:03.789836 osafsmfd [2551:SmfProcedureThread.cc:0096] << > ~SmfProcedureThread > Sep 2 17:10:03.789872 osafsmfd [2551:SmfProcedureThread.cc:0178] << stop > Sep 2 17:10:03.789888 osafsmfd [2551:SmfUpgradeProcedure.cc:0159] << > ~SmfUpgradeProcedure > Sep 2 17:10:03.789897 osafsmfd [2551:SmfUpgradeProcedure.cc:0121] >> > ~SmfUpgradeProcedure > Sep 2 17:10:03.789905 osafsmfd [2551:SmfUpgradeProcedure.cc:0159] << > ~SmfUpgradeProcedure > Sep 2 17:10:03.789913 osafsmfd [2551:SmfUpgradeProcedure.cc:0121] >> > ~SmfUpgradeProcedure > Sep 2 17:10:03.789921 osafsmfd [2551:SmfUpgradeProcedure.cc:0159] << > ~SmfUpgradeProcedure > Sep 2 17:10:03.789929 osafsmfd [2551:SmfUpgradeCampaign.cc:0103] << > ~SmfUpgradeCampaign > Sep 2 17:10:03.789959 osafsmfd [2551:SmfUpgradeCampaign.cc:0796] >> > execute > > > 2. > Is this enhancement , considers only PLs for nodesForSingleStep? If > yes, then SCs should not be allowed. > There must be check, to allow only PLs. > > Regards, > Neel. > > > > On 2016/09/01 02:27 PM, Rafael Odzakow wrote: >> osaf/services/saf/smfsv/config/smfsv_classes.xml| 13 + >> osaf/services/saf/smfsv/smfd/Makefile.am|6 +- >> osaf/services/saf/smfsv/smfd/SmfCampState.cc| 126 +- >> osaf/services/saf/smfsv/smfd/SmfCampaign.cc | 77 ++- >> osaf/services/saf/smfsv/smfd/SmfCampaign.hh |1 + >> osaf/services/saf/smfsv/smfd/SmfExecControl.cc | 410 >> >> osaf/services/saf/smfsv/smfd/SmfExecControl.h | 59 ++ >> osaf/services/saf/smfsv/smfd/SmfProcState.cc| 28 +- >> osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.cc | 32 +- >>
Re: [devel] [PATCH 1 of 1] smfd: Merge rolling to singlestep procedures for several nodes [#1685]
Hi Rafel, Tested the patch, but following are the comments: 1. when the controllers are included immcfg -a numberOfSingleSteps=2 -a nodesForSingleStep=SC-1 -a nodesForSingleStep=SC-2 openSafSmfExecControl=MergeCampToSS2 I have seen the segmentation fault. Sep 2 17:10:03 SLES1 osafsmfd[2551]: ER SmfProcedureThread::init, getImmSteps FAILED, rc=SA_AIS_ERR_NOT_EXIST (12) Sep 2 17:10:03 SLES1 osafsmfd[2551]: ER SmfProcedureThread::main, SmfProcedureThread: init failed Sep 2 17:10:03 SLES1 osafsmfd[2551]: ER Start of procedure thread failed for safSmfProc=SmfBalancedProc0,safSmfCampaign=Campaign1,safApp=safSmfService Sep 2 17:10:03 SLES1 osafimmnd[2459]: NO Implementer disconnected 11 <336, 2010f> (safSmfProc1) Sep 2 17:10:03 SLES1 osafimmnd[2459]: NO Implementer disconnected 12 <411, 2010f> (safSmfProc2) Sep 2 17:10:03 SLES1 osafimmnd[2459]: NO Implementer disconnected 15 <480, 2010f> (safSmfProc3) Sep 2 17:10:03 SLES1 osafamfnd[2520]: NO 'safComp=SMF,safSu=SC-1,safSg=2N,safApp=OpenSAF' faulted due to 'avaDown' : Recovery is 'nodeFailfast' Sep 2 17:10:03 SLES1 osafamfnd[2520]: ER safComp=SMF,safSu=SC-1,safSg=2N,safApp=OpenSAF Faulted due to:avaDown Recovery is:nodeFailfast Sep 2 17:10:03 SLES1 osafamfnd[2520]: Rebooting OpenSAF NodeId = 131343 EE Name = , Reason: Component faulted: recovery is node failfast, OwnNodeId = 131343, SupervisionTime = 60 Sep 2 17:10:03 SLES1 kernel: [ 163.790156] osafsmfd[2675]: segfault at 51 ip 7f1c89310b08 sp 7f1c8bd968c0 error 4 in libgcc_s.so.1[7f1c89301000+16000] Sep 2 17:05:46 SLES1 osafimmnd[2483]: NO Implementer locally disconnected. Marking it as doomed 16 <546, 2010f> (safSmfProc4) Sep 2 17:05:46 SLES1 osafimmnd[2483]: NO Implementer locally disconnected. Marking it as doomed 9 <314, 2010f> (safSmfService) Sep 2 17:05:46 SLES1 osafimmnd[2483]: NO Implementer locally disconnected. Marking it as doomed 10 <326, 2010f> (safSmfCampaign) Sep 2 17:05:46 SLES1 osafimmnd[2483]: NO Implementer disconnected 16 <546, 2010f> (safSmfProc4) Sep 2 17:05:46 SLES1 osafimmnd[2483]: NO Implementer disconnected 9 <314, 2010f> (safSmfService) Sep 2 17:05:46 SLES1 opensaf_reboot: Rebooting local node; timeout=60 bt(full bt i did not get): signal: 11 pid: 96 uid: 0 /usr/lib/../lib64/libopensaf_core.so.0(+0x1dfed)[0x7f69a5b42fed] /lib64/libpthread.so.0(+0xf7c0)[0x7f69a481f7c0] /usr/lib64/opensaf/osafsmfd[0x429539] /usr/lib64/opensaf/osafsmfd[0x42b5dd] /usr/lib64/opensaf/osafsmfd[0x410801] /usr/lib64/opensaf/osafsmfd[0x410a38] /usr/lib64/opensaf/osafsmfd[0x40aae3] /usr/lib64/opensaf/osafsmfd(_ZN17SmfCampaignThread4mainEPv+0x32)[0x40abe2] /lib64/libpthread.so.0(+0x77b6)[0x7f69a48177b6] /lib64/libc.so.6(clone+0x6d)[0x7f69a37bb9cd] smfd traces: Sep 2 17:10:03.789791 osafsmfd [2551:SmfProcedureThread.cc:0060] TR Procedure thread exits Sep 2 17:10:03.789799 osafsmfd [2551:SmfProcedureThread.cc:0088] >> ~SmfProcedureThread Sep 2 17:10:03.789836 osafsmfd [2551:SmfProcedureThread.cc:0096] << ~SmfProcedureThread Sep 2 17:10:03.789872 osafsmfd [2551:SmfProcedureThread.cc:0178] << stop Sep 2 17:10:03.789888 osafsmfd [2551:SmfUpgradeProcedure.cc:0159] << ~SmfUpgradeProcedure Sep 2 17:10:03.789897 osafsmfd [2551:SmfUpgradeProcedure.cc:0121] >> ~SmfUpgradeProcedure Sep 2 17:10:03.789905 osafsmfd [2551:SmfUpgradeProcedure.cc:0159] << ~SmfUpgradeProcedure Sep 2 17:10:03.789913 osafsmfd [2551:SmfUpgradeProcedure.cc:0121] >> ~SmfUpgradeProcedure Sep 2 17:10:03.789921 osafsmfd [2551:SmfUpgradeProcedure.cc:0159] << ~SmfUpgradeProcedure Sep 2 17:10:03.789929 osafsmfd [2551:SmfUpgradeCampaign.cc:0103] << ~SmfUpgradeCampaign Sep 2 17:10:03.789959 osafsmfd [2551:SmfUpgradeCampaign.cc:0796] >> execute 2. Is this enhancement , considers only PLs for nodesForSingleStep? If yes, then SCs should not be allowed. There must be check, to allow only PLs. Regards, Neel. On 2016/09/01 02:27 PM, Rafael Odzakow wrote: > osaf/services/saf/smfsv/config/smfsv_classes.xml| 13 + > osaf/services/saf/smfsv/smfd/Makefile.am|6 +- > osaf/services/saf/smfsv/smfd/SmfCampState.cc| 126 +- > osaf/services/saf/smfsv/smfd/SmfCampaign.cc | 77 ++- > osaf/services/saf/smfsv/smfd/SmfCampaign.hh |1 + > osaf/services/saf/smfsv/smfd/SmfExecControl.cc | 410 > > osaf/services/saf/smfsv/smfd/SmfExecControl.h | 59 ++ > osaf/services/saf/smfsv/smfd/SmfProcState.cc| 28 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.cc | 32 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.hh | 24 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeProcedure.cc | 27 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeProcedure.hh | 18 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeStep.hh | 13 +- > osaf/services/saf/smfsv/smfd/smfd.h |2 +- > 14 files changed, 653 insertions(+), 183 deletions(-) > > > diff --git
[devel] [PATCH 1 of 1] smfd: Merge rolling to singlestep procedures for several nodes [#1685]
osaf/services/saf/smfsv/config/smfsv_classes.xml| 13 + osaf/services/saf/smfsv/smfd/Makefile.am|6 +- osaf/services/saf/smfsv/smfd/SmfCampState.cc| 126 +- osaf/services/saf/smfsv/smfd/SmfCampaign.cc | 77 ++- osaf/services/saf/smfsv/smfd/SmfCampaign.hh |1 + osaf/services/saf/smfsv/smfd/SmfExecControl.cc | 410 osaf/services/saf/smfsv/smfd/SmfExecControl.h | 59 ++ osaf/services/saf/smfsv/smfd/SmfProcState.cc| 28 +- osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.cc | 32 +- osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.hh | 24 +- osaf/services/saf/smfsv/smfd/SmfUpgradeProcedure.cc | 27 +- osaf/services/saf/smfsv/smfd/SmfUpgradeProcedure.hh | 18 +- osaf/services/saf/smfsv/smfd/SmfUpgradeStep.hh | 13 +- osaf/services/saf/smfsv/smfd/smfd.h |2 +- 14 files changed, 653 insertions(+), 183 deletions(-) diff --git a/osaf/services/saf/smfsv/config/smfsv_classes.xml b/osaf/services/saf/smfsv/config/smfsv_classes.xml --- a/osaf/services/saf/smfsv/config/smfsv_classes.xml +++ b/osaf/services/saf/smfsv/config/smfsv_classes.xml @@ -531,5 +531,18 @@ SA_WRITABLE 0 + + numberOfSingleSteps + SA_UINT32_T + SA_CONFIG + SA_WRITABLE + + + nodesForSingleStep + SA_STRING_T + SA_CONFIG + SA_WRITABLE + SA_MULTI_VALUE + diff --git a/osaf/services/saf/smfsv/smfd/Makefile.am b/osaf/services/saf/smfsv/smfd/Makefile.am --- a/osaf/services/saf/smfsv/smfd/Makefile.am +++ b/osaf/services/saf/smfsv/smfd/Makefile.am @@ -49,7 +49,8 @@ noinst_HEADERS = \ SmfCampaignWrapup.hh \ SmfCampaignInit.hh \ SmfCallback.hh \ - SmfCbkUtil.hh + SmfCbkUtil.hh \ + SmfExecControl.h osafsmfd_CXXFLAGS = $(AM_CXXFLAGS) @XML2_CFLAGS@ @@ -87,7 +88,8 @@ osafsmfd_SOURCES = \ SmfCampaignInit.cc \ SmfCampaignWrapup.cc \ SmfCallback.cc \ - SmfCbkUtil.cc + SmfCbkUtil.cc \ + SmfExecControl.cc osafsmfd_LDFLAGS = \ $(AM_LDFLAGS) \ diff --git a/osaf/services/saf/smfsv/smfd/SmfCampState.cc b/osaf/services/saf/smfsv/smfd/SmfCampState.cc --- a/osaf/services/saf/smfsv/smfd/SmfCampState.cc +++ b/osaf/services/saf/smfsv/smfd/SmfCampState.cc @@ -32,8 +32,10 @@ #include "SmfCampaignThread.hh" #include "SmfCampaign.hh" #include "SmfProcedureThread.hh" +#include "smfsv_defs.h" #include #include +#include "SmfUpgradeAction.hh" /* * DEFINITIONS * @@ -764,12 +766,7 @@ SmfCampStateExecuting::execute(SmfUpgrad //must be restarted. The execution shall continue at step execution phase. The procedure initialization //and step calculation was performed before the move of control. -std::vector < SmfUpgradeProcedure * > procedures; -if (i_camp->getProcExecutionMode() == SMF_MERGE_TO_SINGLE_STEP) { -procedures.push_back(i_camp->getMergedProc()); -} else { -procedures = i_camp->getProcedures(); -} +std::vectorprocedures = i_camp->getProcedures(); std::vector < SmfUpgradeProcedure * >::iterator iter; bool execProcFound = false; @@ -817,13 +814,7 @@ SmfCampStateExecuting::executeProc(SmfUp //The procedure vector is sorted in execution level order (low -> high) //Lowest number shall be executed first. -std::vector < SmfUpgradeProcedure * > procedures; -if (i_camp->getProcExecutionMode() == SMF_MERGE_TO_SINGLE_STEP) { -procedures.push_back(i_camp->getMergedProc()); -} else { -procedures = i_camp->getProcedures(); -} - +std::vector procedures = i_camp->getProcedures(); std::vector < SmfUpgradeProcedure * >::iterator iter; int execLevel = -1; @@ -912,12 +903,7 @@ SmfCampStateExecuting::suspend(SmfUpgrad TRACE("SmfCampStateExecuting::suspend implementation"); /* Send suspend message to all procedures */ -std::vector < SmfUpgradeProcedure * > procedures; -if (i_camp->getProcExecutionMode() == SMF_MERGE_TO_SINGLE_STEP) { -procedures.push_back(i_camp->getMergedProc()); -} else { -procedures = i_camp->getProcedures(); -} +std::vector procedures = i_camp->getProcedures(); std::vector < SmfUpgradeProcedure * >::iterator iter; @@ -966,12 +952,7 @@ SmfCampStateExecuting::procResult(SmfUpg
Re: [devel] [PATCH 1 of 1] smfd: Merge rolling to singlestep procedures for several nodes [#1685]
Hi Rafel, Reviewed and tested the patch. minor comments inline. Questions: 1. For the new attribute "nodesForSingleStep" only PLs are allowed? 2. I tested giving controllers immcfg -a numberOfSingleSteps=2 -a nodesForSingleStep=SC-1 -a nodesForSingleStep=SC-2 openSafSmfExecControl=MergeCampToSS2 The steps created are "SmfBalancedProcedure" are created for PL and normal "safSmfProc=proc2 " created for SCs Thanks, Neel. On 2016/08/27 01:59 PM, Rafael Odzakow wrote: > osaf/services/saf/smfsv/config/smfsv_classes.xml| 13 + > osaf/services/saf/smfsv/smfd/Makefile.am|6 +- > osaf/services/saf/smfsv/smfd/SmfCampState.cc| 126 + > osaf/services/saf/smfsv/smfd/SmfCampaign.cc | 78 ++- > osaf/services/saf/smfsv/smfd/SmfCampaign.hh |1 + > osaf/services/saf/smfsv/smfd/SmfExecControl.cc | 423 > > osaf/services/saf/smfsv/smfd/SmfExecControl.h | 64 +++ > osaf/services/saf/smfsv/smfd/SmfProcState.cc|7 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.cc | 32 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.hh | 24 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeProcedure.cc | 14 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeProcedure.hh | 20 +- > osaf/services/saf/smfsv/smfd/SmfUpgradeStep.hh | 13 +- > osaf/services/saf/smfsv/smfd/smfd.h |2 +- > 14 files changed, 638 insertions(+), 185 deletions(-) > > > diff --git a/osaf/services/saf/smfsv/config/smfsv_classes.xml > b/osaf/services/saf/smfsv/config/smfsv_classes.xml > --- a/osaf/services/saf/smfsv/config/smfsv_classes.xml > +++ b/osaf/services/saf/smfsv/config/smfsv_classes.xml > @@ -531,5 +531,18 @@ > SA_WRITABLE > 0 > > + > + numberOfSingleSteps > + SA_UINT32_T > + SA_CONFIG > + SA_WRITABLE > + > + > + nodesForSingleStep > + SA_STRING_T > + SA_CONFIG > + SA_WRITABLE > + SA_MULTI_VALUE > + > > > diff --git a/osaf/services/saf/smfsv/smfd/Makefile.am > b/osaf/services/saf/smfsv/smfd/Makefile.am > --- a/osaf/services/saf/smfsv/smfd/Makefile.am > +++ b/osaf/services/saf/smfsv/smfd/Makefile.am > @@ -49,7 +49,8 @@ noinst_HEADERS = \ > SmfCampaignWrapup.hh \ > SmfCampaignInit.hh \ > SmfCallback.hh \ > - SmfCbkUtil.hh > + SmfCbkUtil.hh \ > + SmfExecControl.h > > osafsmfd_CXXFLAGS = $(AM_CXXFLAGS) @XML2_CFLAGS@ > > @@ -87,7 +88,8 @@ osafsmfd_SOURCES = \ > SmfCampaignInit.cc \ > SmfCampaignWrapup.cc \ > SmfCallback.cc \ > - SmfCbkUtil.cc > + SmfCbkUtil.cc \ > + SmfExecControl.cc > > osafsmfd_LDFLAGS = \ > $(AM_LDFLAGS) \ > diff --git a/osaf/services/saf/smfsv/smfd/SmfCampState.cc > b/osaf/services/saf/smfsv/smfd/SmfCampState.cc > --- a/osaf/services/saf/smfsv/smfd/SmfCampState.cc > +++ b/osaf/services/saf/smfsv/smfd/SmfCampState.cc > @@ -32,8 +32,10 @@ > #include "SmfCampaignThread.hh" > #include "SmfCampaign.hh" > #include "SmfProcedureThread.hh" > +#include "smfsv_defs.h" > #include > #include > +#include "SmfUpgradeAction.hh" > /* >* DEFINITIONS >* > @@ -764,12 +766,7 @@ SmfCampStateExecuting::execute(SmfUpgrad > //must be restarted. The execution shall continue at step execution > phase. The procedure initialization > //and step calculation was performed before the move of control. > > -std::vector < SmfUpgradeProcedure * > procedures; > -if (i_camp->getProcExecutionMode() == SMF_MERGE_TO_SINGLE_STEP) { > -procedures.push_back(i_camp->getMergedProc()); > -} else { > -procedures = i_camp->getProcedures(); > -} > +std::vectorprocedures = > i_camp->getProcedures(); > > std::vector < SmfUpgradeProcedure * >::iterator iter; > bool execProcFound = false; > @@ -817,13 +814,7 @@ SmfCampStateExecuting::executeProc(SmfUp > //The procedure vector is sorted in execution level order (low -> high) > //Lowest number shall be executed first. > > -std::vector < SmfUpgradeProcedure * > procedures; > -if (i_camp->getProcExecutionMode() == SMF_MERGE_TO_SINGLE_STEP) { > -procedures.push_back(i_camp->getMergedProc()); > -} else { > -procedures = i_camp->getProcedures(); > -} > - > +std::vector procedures = > i_camp->getProcedures(); > std::vector < SmfUpgradeProcedure * >::iterator iter; > int execLevel = -1; > > @@ -912,12 +903,7 @@
[devel] [PATCH 1 of 1] smfd: Merge rolling to singlestep procedures for several nodes [#1685]
osaf/services/saf/smfsv/config/smfsv_classes.xml| 13 + osaf/services/saf/smfsv/smfd/Makefile.am|6 +- osaf/services/saf/smfsv/smfd/SmfCampState.cc| 126 + osaf/services/saf/smfsv/smfd/SmfCampaign.cc | 78 ++- osaf/services/saf/smfsv/smfd/SmfCampaign.hh |1 + osaf/services/saf/smfsv/smfd/SmfExecControl.cc | 423 osaf/services/saf/smfsv/smfd/SmfExecControl.h | 64 +++ osaf/services/saf/smfsv/smfd/SmfProcState.cc|7 +- osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.cc | 32 +- osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.hh | 24 +- osaf/services/saf/smfsv/smfd/SmfUpgradeProcedure.cc | 14 +- osaf/services/saf/smfsv/smfd/SmfUpgradeProcedure.hh | 20 +- osaf/services/saf/smfsv/smfd/SmfUpgradeStep.hh | 13 +- osaf/services/saf/smfsv/smfd/smfd.h |2 +- 14 files changed, 638 insertions(+), 185 deletions(-) diff --git a/osaf/services/saf/smfsv/config/smfsv_classes.xml b/osaf/services/saf/smfsv/config/smfsv_classes.xml --- a/osaf/services/saf/smfsv/config/smfsv_classes.xml +++ b/osaf/services/saf/smfsv/config/smfsv_classes.xml @@ -531,5 +531,18 @@ SA_WRITABLE 0 + + numberOfSingleSteps + SA_UINT32_T + SA_CONFIG + SA_WRITABLE + + + nodesForSingleStep + SA_STRING_T + SA_CONFIG + SA_WRITABLE + SA_MULTI_VALUE + diff --git a/osaf/services/saf/smfsv/smfd/Makefile.am b/osaf/services/saf/smfsv/smfd/Makefile.am --- a/osaf/services/saf/smfsv/smfd/Makefile.am +++ b/osaf/services/saf/smfsv/smfd/Makefile.am @@ -49,7 +49,8 @@ noinst_HEADERS = \ SmfCampaignWrapup.hh \ SmfCampaignInit.hh \ SmfCallback.hh \ - SmfCbkUtil.hh + SmfCbkUtil.hh \ + SmfExecControl.h osafsmfd_CXXFLAGS = $(AM_CXXFLAGS) @XML2_CFLAGS@ @@ -87,7 +88,8 @@ osafsmfd_SOURCES = \ SmfCampaignInit.cc \ SmfCampaignWrapup.cc \ SmfCallback.cc \ - SmfCbkUtil.cc + SmfCbkUtil.cc \ + SmfExecControl.cc osafsmfd_LDFLAGS = \ $(AM_LDFLAGS) \ diff --git a/osaf/services/saf/smfsv/smfd/SmfCampState.cc b/osaf/services/saf/smfsv/smfd/SmfCampState.cc --- a/osaf/services/saf/smfsv/smfd/SmfCampState.cc +++ b/osaf/services/saf/smfsv/smfd/SmfCampState.cc @@ -32,8 +32,10 @@ #include "SmfCampaignThread.hh" #include "SmfCampaign.hh" #include "SmfProcedureThread.hh" +#include "smfsv_defs.h" #include #include +#include "SmfUpgradeAction.hh" /* * DEFINITIONS * @@ -764,12 +766,7 @@ SmfCampStateExecuting::execute(SmfUpgrad //must be restarted. The execution shall continue at step execution phase. The procedure initialization //and step calculation was performed before the move of control. -std::vector < SmfUpgradeProcedure * > procedures; -if (i_camp->getProcExecutionMode() == SMF_MERGE_TO_SINGLE_STEP) { -procedures.push_back(i_camp->getMergedProc()); -} else { -procedures = i_camp->getProcedures(); -} +std::vectorprocedures = i_camp->getProcedures(); std::vector < SmfUpgradeProcedure * >::iterator iter; bool execProcFound = false; @@ -817,13 +814,7 @@ SmfCampStateExecuting::executeProc(SmfUp //The procedure vector is sorted in execution level order (low -> high) //Lowest number shall be executed first. -std::vector < SmfUpgradeProcedure * > procedures; -if (i_camp->getProcExecutionMode() == SMF_MERGE_TO_SINGLE_STEP) { -procedures.push_back(i_camp->getMergedProc()); -} else { -procedures = i_camp->getProcedures(); -} - +std::vector procedures = i_camp->getProcedures(); std::vector < SmfUpgradeProcedure * >::iterator iter; int execLevel = -1; @@ -912,12 +903,7 @@ SmfCampStateExecuting::suspend(SmfUpgrad TRACE("SmfCampStateExecuting::suspend implementation"); /* Send suspend message to all procedures */ -std::vector < SmfUpgradeProcedure * > procedures; -if (i_camp->getProcExecutionMode() == SMF_MERGE_TO_SINGLE_STEP) { -procedures.push_back(i_camp->getMergedProc()); -} else { -procedures = i_camp->getProcedures(); -} +std::vector procedures = i_camp->getProcedures(); std::vector < SmfUpgradeProcedure * >::iterator iter; @@ -966,12 +952,7 @@ SmfCampStateExecuting::procResult(SmfUpg
[devel] [PATCH 1 of 1] smfd: Merge rolling to singlestep procedures for several nodes [#1685]
osaf/services/saf/smfsv/config/smfsv_classes.xml| 13 + osaf/services/saf/smfsv/smfd/Makefile.am|6 +- osaf/services/saf/smfsv/smfd/SmfCampState.cc| 125 +- osaf/services/saf/smfsv/smfd/SmfCampaign.cc | 78 ++- osaf/services/saf/smfsv/smfd/SmfCampaign.hh |1 + osaf/services/saf/smfsv/smfd/SmfExecControl.cc | 399 osaf/services/saf/smfsv/smfd/SmfExecControl.h | 56 ++ osaf/services/saf/smfsv/smfd/SmfProcState.cc|7 +- osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.cc | 32 +- osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.hh | 24 +- osaf/services/saf/smfsv/smfd/SmfUpgradeProcedure.cc | 14 +- osaf/services/saf/smfsv/smfd/SmfUpgradeProcedure.hh | 20 +- osaf/services/saf/smfsv/smfd/SmfUpgradeStep.hh | 13 +- osaf/services/saf/smfsv/smfd/smfd.h |2 +- 14 files changed, 605 insertions(+), 185 deletions(-) diff --git a/osaf/services/saf/smfsv/config/smfsv_classes.xml b/osaf/services/saf/smfsv/config/smfsv_classes.xml --- a/osaf/services/saf/smfsv/config/smfsv_classes.xml +++ b/osaf/services/saf/smfsv/config/smfsv_classes.xml @@ -531,5 +531,18 @@ SA_WRITABLE 0 + + numberOfSingleSteps + SA_UINT32_T + SA_CONFIG + SA_WRITABLE + + + nodesForSingleStep + SA_STRING_T + SA_CONFIG + SA_WRITABLE + SA_MULTI_VALUE + diff --git a/osaf/services/saf/smfsv/smfd/Makefile.am b/osaf/services/saf/smfsv/smfd/Makefile.am --- a/osaf/services/saf/smfsv/smfd/Makefile.am +++ b/osaf/services/saf/smfsv/smfd/Makefile.am @@ -49,7 +49,8 @@ noinst_HEADERS = \ SmfCampaignWrapup.hh \ SmfCampaignInit.hh \ SmfCallback.hh \ - SmfCbkUtil.hh + SmfCbkUtil.hh \ + SmfExecControl.h osafsmfd_CXXFLAGS = $(AM_CXXFLAGS) @XML2_CFLAGS@ @@ -87,7 +88,8 @@ osafsmfd_SOURCES = \ SmfCampaignInit.cc \ SmfCampaignWrapup.cc \ SmfCallback.cc \ - SmfCbkUtil.cc + SmfCbkUtil.cc \ + SmfExecControl.cc osafsmfd_LDFLAGS = \ $(AM_LDFLAGS) \ diff --git a/osaf/services/saf/smfsv/smfd/SmfCampState.cc b/osaf/services/saf/smfsv/smfd/SmfCampState.cc --- a/osaf/services/saf/smfsv/smfd/SmfCampState.cc +++ b/osaf/services/saf/smfsv/smfd/SmfCampState.cc @@ -32,6 +32,7 @@ #include "SmfCampaignThread.hh" #include "SmfCampaign.hh" #include "SmfProcedureThread.hh" +#include "smfsv_defs.h" #include #include /* @@ -764,12 +765,7 @@ SmfCampStateExecuting::execute(SmfUpgrad //must be restarted. The execution shall continue at step execution phase. The procedure initialization //and step calculation was performed before the move of control. -std::vector < SmfUpgradeProcedure * > procedures; -if (i_camp->getProcExecutionMode() == SMF_MERGE_TO_SINGLE_STEP) { -procedures.push_back(i_camp->getMergedProc()); -} else { -procedures = i_camp->getProcedures(); -} +std::vectorprocedures = i_camp->getProcedures(); std::vector < SmfUpgradeProcedure * >::iterator iter; bool execProcFound = false; @@ -817,13 +813,7 @@ SmfCampStateExecuting::executeProc(SmfUp //The procedure vector is sorted in execution level order (low -> high) //Lowest number shall be executed first. -std::vector < SmfUpgradeProcedure * > procedures; -if (i_camp->getProcExecutionMode() == SMF_MERGE_TO_SINGLE_STEP) { -procedures.push_back(i_camp->getMergedProc()); -} else { -procedures = i_camp->getProcedures(); -} - +std::vector procedures = i_camp->getProcedures(); std::vector < SmfUpgradeProcedure * >::iterator iter; int execLevel = -1; @@ -912,12 +902,7 @@ SmfCampStateExecuting::suspend(SmfUpgrad TRACE("SmfCampStateExecuting::suspend implementation"); /* Send suspend message to all procedures */ -std::vector < SmfUpgradeProcedure * > procedures; -if (i_camp->getProcExecutionMode() == SMF_MERGE_TO_SINGLE_STEP) { -procedures.push_back(i_camp->getMergedProc()); -} else { -procedures = i_camp->getProcedures(); -} +std::vector procedures = i_camp->getProcedures(); std::vector < SmfUpgradeProcedure * >::iterator iter; @@ -966,12 +951,7 @@ SmfCampStateExecuting::procResult(SmfUpg LOG_NO("CAMP: Procedure %s returned STEPUNDONE", i_procedure->getProcName().c_str()); /* Send suspend message to