Hi,
instead of the complex if statements you can add member functions to
AVD_SI,
example, if (dep_si->is_tol_timer_running() etc.
/Thanks HansN
On 08/26/2015 09:05 AM, Nagendra Kumar wrote:
> Hi Praveen,
> Thanks for your comment.
> I think we can have two approaches:
> 1. Remove the code itself as suggested by you. OR
> 2. Correct the logic in the intended way. For example, please check below
> correction:
>> - if((dep_si->si_dep_state != AVD_SI_TOL_TIMER_RUNNING) ||
>> - (dep_si->si_dep_state !=
>> AVD_SI_READY_TO_UNASSIGN)) {
>> + /* Don't start tol timer if dep state are either in
>> running or unassigned. */
>> + if(!((dep_si->si_dep_state == AVD_SI_TOL_TIMER_RUNNING)
>> ||
>> + (dep_si->si_dep_state ==
>> AVD_SI_READY_TO_UNASSIGN))) {
>>
>> avd_sidep_start_tolerance_timer_for_dependant(dep_si, si);
> The intention looks that if si_dep_state is in either tol_running or
> ready_to_unassigned, then don't start the timer, else start the timer.
> So, I corrected the logic in the intended way. Now, the code will have the
> same sense as thought while coding.
> And if the logic written is wrong in the first place and since the check was
> always passing, now after
> correction of code, the test case may fail. But then we can correct the fault
> in si dep flow and add logic on top.
>
> Let me know everybody opinion.
>
> Thanks
> -Nagu
>
>> -----Original Message-----
>> From: praveen malviya
>> Sent: 26 August 2015 12:15
>> To: Nagendra Kumar; [email protected];
>> [email protected]; [email protected]
>> Cc: [email protected]
>> Subject: Re: [PATCH 1 of 1] amfd: correct logic in si dep flow [#276]
>>
>> Code inside the if block was always executing, which means if condition is
>> not
>> needed.
>> Why can't simply remove the if condition.
>>
>> Thanks,
>> Praveen
>> On 26-Aug-15 11:51 AM, [email protected] wrote:
>>> osaf/services/saf/amf/amfd/si_dep.cc | 25 ++++++++++++-------------
>>> 1 files changed, 12 insertions(+), 13 deletions(-)
>>>
>>>
>>> At many places, there has been tautological errors in si dep flow.
>>> The fix corrects them
>>>
>>> diff --git a/osaf/services/saf/amf/amfd/si_dep.cc
>>> b/osaf/services/saf/amf/amfd/si_dep.cc
>>> --- a/osaf/services/saf/amf/amfd/si_dep.cc
>>> +++ b/osaf/services/saf/amf/amfd/si_dep.cc
>>> @@ -1468,10 +1468,10 @@ void avd_sidep_unassign_dependents(AVD_S
>>> if (m_NCS_MDS_DEST_EQUAL(&sisu->su->su_on_node-
>>> adest,&su->su_on_node->adest)) {
>>> avd_si_unassign(dep_si);
>>> } else {
>>> - if((dep_si->si_dep_state !=
>> AVD_SI_TOL_TIMER_RUNNING) ||
>>> - (dep_si->si_dep_state !=
>> AVD_SI_READY_TO_UNASSIGN)) {
>>> + /* Don't start tol timer if dep state are either in
>> running or unassigned. */
>>> + if(!((dep_si->si_dep_state ==
>> AVD_SI_TOL_TIMER_RUNNING) ||
>>> + (dep_si->si_dep_state ==
>> AVD_SI_READY_TO_UNASSIGN))) {
>> avd_sidep_start_tolerance_timer_for_dependant(dep_si, si);
>>> -
>>> }
>>> }
>>> /* If this dependent SI is sponsor too, then unassign its
>>> dependents also */ @@ -1788,9 +1788,9 @@ void
>>> avd_sidep_update_depstate_si_failov
>>>
>>> if(su->su_on_node->saAmfNodeOperState ==
>> SA_AMF_OPERATIONAL_DISABLED) {
>>> if ((m_NCS_MDS_DEST_EQUAL(&sisu-
>>> su->su_on_node->adest,&su->su_on_node->adest))) {
>>> - if(((dep_si->si_dep_state !=
>> AVD_SI_TOL_TIMER_RUNNING) ||
>>> - (dep_si->si_dep_state
>> != AVD_SI_READY_TO_UNASSIGN) ||
>>> - (dep_si->si_dep_state
>> != AVD_SI_FAILOVER_UNDER_PROGRESS)) &&
>>> + if((!((dep_si->si_dep_state ==
>> AVD_SI_TOL_TIMER_RUNNING) ||
>>> + (dep_si->si_dep_state
>> == AVD_SI_READY_TO_UNASSIGN) ||
>>> + (dep_si->si_dep_state
>> == AVD_SI_FAILOVER_UNDER_PROGRESS))) &&
>> (avd_sidep_sponsors_assignment_states(dep_si))) {
>>>
>> avd_sidep_si_dep_state_set(dep_si,
>>> AVD_SI_FAILOVER_UNDER_PROGRESS); @@ -1801,10 +1801,9 @@ void
>> avd_sidep_update_depstate_si_failov
>>> }
>>> }
>>> } else if (dep_si->sg_of_si == si->sg_of_si) {
>>> - if((dep_si->si_dep_state !=
>> AVD_SI_TOL_TIMER_RUNNING) ||
>>> - (dep_si->si_dep_state !=
>> AVD_SI_READY_TO_UNASSIGN) ||
>>> - (dep_si->si_dep_state !=
>> AVD_SI_FAILOVER_UNDER_PROGRESS)) {
>>> -
>>> + if(!((dep_si->si_dep_state ==
>> AVD_SI_TOL_TIMER_RUNNING) ||
>>> + (dep_si->si_dep_state ==
>> AVD_SI_READY_TO_UNASSIGN) ||
>>> + (dep_si->si_dep_state ==
>> AVD_SI_FAILOVER_UNDER_PROGRESS))) {
>> avd_sidep_si_dep_state_set(dep_si,
>> AVD_SI_FAILOVER_UNDER_PROGRESS);
>>> if (dep_si->num_dependents
>>> 0) {
>>> /* This SI also has
>> dependents under it, update their state
>>> also */ @@ -1842,9 +1841,9 @@ void avd_sidep_update_depstate_si_failov
>>> }
>>> if (sponsor_assignments_state
>> == true) {
>>> - if((dep_si-
>>> si_dep_state != AVD_SI_TOL_TIMER_RUNNING) ||
>>> - (dep_si-
>>> si_dep_state != AVD_SI_READY_TO_UNASSIGN) ||
>>> - (dep_si-
>>> si_dep_state != AVD_SI_FAILOVER_UNDER_PROGRESS)) {
>>> + if(!((dep_si-
>>> si_dep_state == AVD_SI_TOL_TIMER_RUNNING) ||
>>> + (dep_si-
>>> si_dep_state == AVD_SI_READY_TO_UNASSIGN) ||
>>> + (dep_si-
>>> si_dep_state == AVD_SI_FAILOVER_UNDER_PROGRESS)))
>>> +{
>>>
>>>
>> avd_sidep_si_dep_state_set(dep_si,
>> AVD_SI_FAILOVER_UNDER_PROGRESS);
>>> if (dep_si-
>>> num_dependents > 0) {
>>>
------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel