Hi Lennart,

Thanks, for the comment.
Open an enhancement ticket, for having an applier towards imm class.

/Neel.

On 2016/10/24 04:24 PM, Lennart Lund wrote:
> Hi Neel
>
> Ack with comments
>
> Tested that long DN setting during campaign init works again.
>
> The solution for reading this setting results in a lot of redundant code. 
> Reading of this setting from IMM and updating global variables is done in 
> many places (I have counted to 5). This is risky and hard to handle in a 
> threaded system.
> A better solution is probably to constantly keep track of changes of this 
> setting e.g. by using an IMM applier running in its own thread, not saving 
> the information in global variable (we should try to get rid of the cb 
> struct) and encapsulate all handling of this setting. The only thing that's 
> interesting in the rest of the code is the correct value. Nowhere in the code 
> it should be needed to handle this setting in any other way than to read it.
>
> Thanks
> Lennart
>
>> -----Original Message-----
>> From: [email protected] [mailto:[email protected]]
>> Sent: den 21 oktober 2016 13:32
>> To: Lennart Lund <[email protected]>; Rafael Odzakow
>> <[email protected]>
>> Cc: [email protected]
>> Subject: [PATCH 1 of 1] smf:read imm longdn attribute at campaigninit
>> [#2119]
>>
>>   osaf/services/saf/smfsv/smfd/SmfCampaignInit.cc |  17
>> +++++++++++++++--
>>   1 files changed, 15 insertions(+), 2 deletions(-)
>>
>>
>> diff --git a/osaf/services/saf/smfsv/smfd/SmfCampaignInit.cc
>> b/osaf/services/saf/smfsv/smfd/SmfCampaignInit.cc
>> --- a/osaf/services/saf/smfsv/smfd/SmfCampaignInit.cc
>> +++ b/osaf/services/saf/smfsv/smfd/SmfCampaignInit.cc
>> @@ -225,11 +225,24 @@ SmfCampaignInit::execute()
>>                   return false;
>>           }
>>
>> +    TRACE("3. Read_IMM_long_DN_config_and_set_control_block()");
>> +    if
>> (!immUtil.read_IMM_long_DN_config_and_set_control_block(smfd_cb)) {
>> +            LOG_ER("SmfCampaignInit: reading long DN config from IMM
>> FAILED");
>> +            TRACE_LEAVE();
>> +            return false;
>> +    }
>> +
>>      std::list < SmfUpgradeAction * >::iterator upActiter;
>>      upActiter = m_campInitAction.begin();
>>      while (upActiter != m_campInitAction.end()) {
>> -                    SaAisErrorT rc = (*upActiter)-
>>> execute(SmfCampaignThread::instance()->getImmHandle(),
>> -                                                       &initRollbackDn);
>> +            TRACE("4. %s:
>> read_IMM_long_DN_config_and_set_control_block()",__FUNCTION__);
>> +            if
>> (!immUtil.read_IMM_long_DN_config_and_set_control_block(smfd_cb)) {
>> +                    LOG_ER("SmfCampaignInit: reading long DN config
>> from IMM FAILED");
>> +                    TRACE_LEAVE();
>> +                    return false;
>> +            }
>> +            SaAisErrorT rc = (*upActiter)-
>>> execute(SmfCampaignThread::instance()->getImmHandle(),
>> +                            &initRollbackDn);
>>              if (rc != SA_AIS_OK) {
>>                      LOG_ER("SmfCampaignInit init action %d failed,
>> rc=%s", (*upActiter)->getId(), saf_error(rc));
>>                      TRACE_LEAVE();


------------------------------------------------------------------------------
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to