Hi Nagu,

please see comment below. /Thanks HansN

On 09/10/2015 12:30 PM, Nagendra Kumar wrote:
> Forgot to provide comments in the previous email. Please find comments 
> inlined with [Nagu].
>
> Thanks
> -Nagu
>> -----Original Message-----
>> From: Nagendra Kumar
>> Sent: 10 September 2015 15:58
>> To: Hans Nordeback; Praveen Malviya; gary....@dektech.com.au
>> Cc: opensaf-devel@lists.sourceforge.net
>> Subject: Re: [devel] [PATCH 1 of 1] amfd: Don't send alarm SI has no current
>> active assignments if node is locked V2 [#1465]
>>
>> Hi Hans N,
>>
>> I tested with combination of SU/Node lock/locked-in with pres state inst
>> fail/term fail.
>> So, when node is locked/locked-in, even if su goes into term fail, the alarm 
>> is
>> not sent because the pres state becomes uninst before update_ass_state gets
>> called. Hope this is ok.
>>
>> Ack with the comments inlined with [Nagu] and the documentation need to
>> be updated as well.
>>
>>
>> Thanks
>> -Nagu
>>> -----Original Message-----
>>> From: Hans Nordeback [mailto:hans.nordeb...@ericsson.com]
>>> Sent: 04 September 2015 19:20
>>> To: Praveen Malviya; Nagendra Kumar; gary....@dektech.com.au
>>> Cc: opensaf-devel@lists.sourceforge.net
>>> Subject: [PATCH 1 of 1] amfd: Don't send alarm SI has no current
>>> active assignments if node is locked V2 [#1465]
>>>
>>>   osaf/services/saf/amf/amfd/include/si.h |   2 ++
>>>   osaf/services/saf/amf/amfd/si.cc        |  23 +++++++++++++++++++----
>>>   osaf/services/saf/amf/amfd/siass.cc     |   3 +++
>>>   3 files changed, 24 insertions(+), 4 deletions(-)
>>>
>>>
>>> diff --git a/osaf/services/saf/amf/amfd/include/si.h
>>> b/osaf/services/saf/amf/amfd/include/si.h
>>> --- a/osaf/services/saf/amf/amfd/include/si.h
>>> +++ b/osaf/services/saf/amf/amfd/include/si.h
>>> @@ -109,6 +109,8 @@ public:
>>>
>>>     bool alarm_sent; /* SI unassigned alarm has been sent */
>>>
>>> +        struct avd_avnd_tag *si_on_node;   /*  the node on which this SI
>>> resides */
>>> +        AVD_SU *curr_su;                        /* The SU with the latest
>> assignment*/
>>>     void inc_curr_act_ass();
>>>     void dec_curr_act_ass();
>>>     void inc_curr_stdby_ass();
>>> diff --git a/osaf/services/saf/amf/amfd/si.cc
>>> b/osaf/services/saf/amf/amfd/si.cc
>>> --- a/osaf/services/saf/amf/amfd/si.cc
>>> +++ b/osaf/services/saf/amf/amfd/si.cc
>>> @@ -26,6 +26,7 @@
>>>   #include <csi.h>
>>>   #include <proc.h>
>>>   #include <si_dep.h>
>>> +#include <node.h>
>>>
>>>   AmfDb<std::string, AVD_SI> *si_db = NULL;
>>>
>>> @@ -320,7 +321,9 @@ AVD_SI::AVD_SI() :
>>>     list_of_sus_per_si_rank(NULL),
>>>     rankedsu_list_head(NULL),
>>>     invocation(0),
>>> -   alarm_sent(false)
>>> +   alarm_sent(false),
>>> +   si_on_node{nullptr},
>>> +   curr_su{nullptr}
>>>   {
>>>     memset(&name, 0, sizeof(SaNameT));
>>>     memset(&saAmfSvcType, 0, sizeof(SaNameT)); @@ -1315,9 +1318,21
>> @@
>>> void AVD_SI::update_ass_state()
>>>
>>>             /* alarm & notifications */
>>>             if (saAmfSIAssignmentState ==
>>> SA_AMF_ASSIGNMENT_UNASSIGNED) {
>>> -                   avd_send_si_unassigned_alarm(&name);
>>> -                   alarm_sent = true;
>>> -                   m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb,
>>> this, AVSV_CKPT_SI_ALARM_SENT);
>>> +                   osafassert(si_on_node != nullptr);
>>> +                   osafassert(curr_su != nullptr);
>>> +                   if ((sg_of_si->sg_ncs_spec == true) &&
>>> +                       (sg_of_si->sg_type->saAmfSgtRedundancyModel ==
>>> SA_AMF_NO_REDUNDANCY_MODEL) &&
>>> +                       (curr_su->saAmfSUPresenceState !=
>>> SA_AMF_PRESENCE_INSTANTIATION_FAILED) &&
>>> +                       (curr_su->saAmfSUPresenceState !=
>>> SA_AMF_PRESENCE_TERMINATION_FAILED) &&
>>> +                       ((si_on_node->saAmfNodeAdminState ==
>>> SA_AMF_ADMIN_SHUTTING_DOWN) ||
>>> +                        (si_on_node->saAmfNodeAdminState ==
>>> SA_AMF_ADMIN_LOCKED) ||
>>> +                        (si_on_node->saAmfNodeAdminState ==
>>> SA_AMF_ADMIN_LOCKED_INSTANTIATION))) {
>>> +                           LOG_NO("Node is locked, no SI unassigned
>>> alarm will be sent");
>>> +                   } else {
>>> +                           avd_send_si_unassigned_alarm(&name);
>>> +                           alarm_sent = true;
>>> +
>>>     m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, this,
>>> AVSV_CKPT_SI_ALARM_SENT);
>>> +                   }
>>>             }
>>>             else {
>>>                     avd_send_si_assigned_ntf(&name, oldState,
>> saAmfSIAssignmentState);
>>> diff --git a/osaf/services/saf/amf/amfd/siass.cc
>>> b/osaf/services/saf/amf/amfd/siass.cc
>>> --- a/osaf/services/saf/amf/amfd/siass.cc
>>> +++ b/osaf/services/saf/amf/amfd/siass.cc
>>> @@ -166,6 +166,9 @@ AVD_SU_SI_REL *avd_susi_create(AVD_CL_CB
>>>     su_si->si = si;
>>>     su_si->su = su;
>>>
>>> +   si->si_on_node = su->su_on_node;
>>> +   si->curr_su = su;
> [Nagu]: This need to be reset when susi is deleted.
[HansN] The curr_su reflects the latest assigned su and it will be 
changed when
a new susi is created. It is needed to keep the curr_su as 
"update_ass_state" is called after
susi has been deleted. The curr_su presence state is checked in 
"update_ass_state",
so curr_su can not be null but point to the latest su, before susi delete.
>
>
>>> +
>>>     /*
>>>      * Add the susi rel rec to the ordered si-list
>>>      */
>> ------------------------------------------------------------------------------
>> Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
>> Get real-time metrics from all of your servers, apps and tools in one place.
>> SourceForge users - Click here to start your Free Trial of Datadog now!
>> http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
>> _______________________________________________
>> Opensaf-devel mailing list
>> Opensaf-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/opensaf-devel


------------------------------------------------------------------------------
Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to