Re: [devel] [PATCH 1 of 1] smfd: Merge rolling to singlestep procedures for several nodes [#1685]

2016-09-06 Thread Lennart Lund
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]

2016-09-02 Thread Rafael Odzakow
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]

2016-09-02 Thread Neelakanta Reddy
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]

2016-09-01 Thread Rafael Odzakow
 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::vector procedures = 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]

2016-08-29 Thread Neelakanta Reddy
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::vector procedures = 
> 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]

2016-08-27 Thread Rafael Odzakow
 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::vector procedures = 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]

2016-08-23 Thread Rafael Odzakow
 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::vector procedures = 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