osaf/services/saf/amf/amfd/sg_2n_fsm.cc |  98 ++++++++++++++------------------
 1 files changed, 43 insertions(+), 55 deletions(-)


diff --git a/osaf/services/saf/amf/amfd/sg_2n_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
@@ -587,7 +587,9 @@ static AVD_SU *avd_sg_2n_su_chose_asgn(A
 {
        AVD_SU_SI_REL *a_susi;
        AVD_SU_SI_REL *s_susi;
-       AVD_SU *a_su, *s_su, *return_su = NULL;
+       AVD_SU *a_su = NULL;
+       AVD_SU *s_su = NULL;
+       AVD_SU *return_su = NULL;
        AVD_SI *i_si;
        bool l_flag = true;
        AVD_SU_SI_REL *tmp_susi;
@@ -601,14 +603,12 @@ static AVD_SU *avd_sg_2n_su_chose_asgn(A
                /* No active assignment exists. Scan the ranked list of SUs in 
the SG
                 * to identify a in-service SU 
                 */
-               a_su = sg->list_of_su;
-               while ((a_su != NULL) && (l_flag == true)) {
-                       if (a_su->saAmfSuReadinessState == 
SA_AMF_READINESS_IN_SERVICE) {
-                               l_flag = false;
-                               continue;
+               a_su = NULL;
+               for (const auto& iter : sg->list_of_su) {
+                       if (iter->saAmfSuReadinessState == 
SA_AMF_READINESS_IN_SERVICE) {
+                               a_su = iter;
+                               break;
                        }
-
-                       a_su = a_su->sg_list_su_next;
                }
 
                if (a_su == NULL) {
@@ -658,16 +658,13 @@ static AVD_SU *avd_sg_2n_su_chose_asgn(A
                /* No standby assignment exists. Scan the ranked list of SUs in 
the SG
                 * to identify a in-service SU with no assignments. 
                 */
-               l_flag = true;
-               s_su = sg->list_of_su;
-               while ((s_su != NULL) && (l_flag == true)) {
-                       if ((s_su->saAmfSuReadinessState == 
SA_AMF_READINESS_IN_SERVICE) &&
-                           (s_su->list_of_susi == AVD_SU_SI_REL_NULL)) {
-                               l_flag = false;
-                               continue;
+               s_su = NULL;
+               for (const auto& iter : sg->list_of_su) {
+                       if (iter->saAmfSuReadinessState == 
SA_AMF_READINESS_IN_SERVICE &&
+                               iter->list_of_susi == AVD_SU_SI_REL_NULL) {
+                               s_su = iter;
+                               break;
                        }
-
-                       s_su = s_su->sg_list_su_next;
                }
 
                if (s_su == NULL) {
@@ -1173,7 +1170,6 @@ done:
 }
 
 uint32_t SG_2N::su_fault(AVD_CL_CB *cb, AVD_SU *su) {
-       AVD_SU *a_su;
        AVD_SU_SI_REL *l_susi, *o_susi;
        uint32_t rc = NCSCC_RC_FAILURE;
        SaAmfHAStateT su_ha_state;
@@ -1296,15 +1292,13 @@ uint32_t SG_2N::su_fault(AVD_CL_CB *cb, 
                                                goto done;
                                        }
                                        o_susi = AVD_SU_SI_REL_NULL;
-                                       a_su = su->sg_of_su->list_of_su;
-                                       while (a_su != NULL) {
+                                       for (const auto& a_su : 
su->sg_of_su->list_of_su) {
                                                if 
(a_su->sg_of_su->ng_using_saAmfSGAdminState == false)
                                                        
a_su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
                                                if ((a_su->list_of_susi != 
AVD_SU_SI_REL_NULL)
                                                        && 
(avd_su_state_determine(a_su) == SA_AMF_HA_STANDBY)){
                                                        o_susi = 
a_su->list_of_susi;
                                                }
-                                               a_su = a_su->sg_list_su_next;
                                        }
                                        if 
(su->sg_of_su->ng_using_saAmfSGAdminState == true) {
                                                su->sg_of_su->saAmfSGAdminState 
= SA_AMF_ADMIN_LOCKED;
@@ -1343,15 +1337,13 @@ uint32_t SG_2N::su_fault(AVD_CL_CB *cb, 
                                                goto done;
                                        }
                                        o_susi = AVD_SU_SI_REL_NULL;
-                                       a_su = su->sg_of_su->list_of_su;
-                                       while (a_su != NULL) {
+                                       for (const auto& a_su : 
su->sg_of_su->list_of_su) {
                                                if 
(a_su->sg_of_su->ng_using_saAmfSGAdminState == false)
                                                        
a_su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
                                                if ((a_su->list_of_susi != 
AVD_SU_SI_REL_NULL)
                                                                && 
(avd_su_state_determine(a_su) == SA_AMF_HA_STANDBY)){
                                                        o_susi = 
a_su->list_of_susi;
                                                }
-                                               a_su = a_su->sg_list_su_next;
                                        }
                                        if 
(su->sg_of_su->ng_using_saAmfSGAdminState == true) {
                                                su->sg_of_su->saAmfSGAdminState 
= SA_AMF_ADMIN_LOCKED;
@@ -2359,7 +2351,7 @@ uint32_t SG_2N::susi_success(AVD_CL_CB *
                                                                   
AVSV_SUSI_ACT act, SaAmfHAStateT state) {
 
        AVD_SU_SI_REL *s_susi, *n_susi;
-       AVD_SU *i_su, *a_su;
+       bool all_unassigned = true;
        uint32_t rc = NCSCC_RC_FAILURE;
 
        TRACE_ENTER2("'%s' act=%u, hastate=%u, sg_fsm_state=%u", 
su->name.value, act,
@@ -2404,16 +2396,15 @@ uint32_t SG_2N::susi_success(AVD_CL_CB *
                        } else if ((susi == AVD_SU_SI_REL_NULL) && (act == 
AVSV_SUSI_ACT_DEL)) {
                                /* Free all the SI assignments to this SU */
                                su->delete_all_susis();
-                               i_su = su->sg_of_su->list_of_su;
-                               while (i_su != NULL) {
-                                       if (i_su->list_of_susi != 
AVD_SU_SI_REL_NULL) {
-                                               /* found a assigned su break */
+                               for (const auto& iter : 
su->sg_of_su->list_of_su) {
+                                       if (iter->list_of_susi != 
AVD_SU_SI_REL_NULL) {
+                                               all_unassigned = false;
+                                               /* found an assigned su break */
                                                break;
                                        }
-                                       i_su = i_su->sg_list_su_next;
                                }
 
-                               if (i_su == NULL) {
+                               if (all_unassigned == true) {
                                        /* the SG doesnt have any SI 
assignments.Change state to stable. */
                                        m_AVD_SET_SG_FSM(cb, (su->sg_of_su), 
AVD_SG_FSM_STABLE);
                                        /*As sg is stable, screen for si 
dependencies and take action on whole sg*/
@@ -2484,11 +2475,11 @@ uint32_t SG_2N::susi_success(AVD_CL_CB *
                                                        
AVSV_CKPT_SG_ADMIN_STATE);
                                } else
                                        avd_sg_admin_state_set(su->sg_of_su, 
SA_AMF_ADMIN_LOCKED);
-                               a_su = su->sg_of_su->list_of_su;
-                               while ((a_su != NULL) &&
-                                               
(a_su->sg_of_su->ng_using_saAmfSGAdminState == false)) {
+                               for (const auto& a_su : 
su->sg_of_su->list_of_su) {
+                                       if 
(a_su->sg_of_su->ng_using_saAmfSGAdminState == true)
+                                               break;
+       
                                        
a_su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
-                                       a_su = a_su->sg_list_su_next;
                                }
                        }       /* if ((susi == AVD_SU_SI_REL_NULL) && (act == 
AVSV_SUSI_ACT_MOD) &&
                                   (state == SA_AMF_HA_QUIESCED)) */
@@ -2530,11 +2521,12 @@ uint32_t SG_2N::susi_success(AVD_CL_CB *
                                                                
AVSV_CKPT_SG_ADMIN_STATE);
                                        } else
                                                
avd_sg_admin_state_set(su->sg_of_su, SA_AMF_ADMIN_LOCKED);
-                                       a_su = su->sg_of_su->list_of_su;
-                                       while ((a_su != NULL) &&
-                                                       
(a_su->sg_of_su->ng_using_saAmfSGAdminState == false)) {
+
+                                       for (const auto& a_su : 
su->sg_of_su->list_of_su) {
+                                               if 
(a_su->sg_of_su->ng_using_saAmfSGAdminState == true)
+                                                       break;
+
                                                
a_su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
-                                               a_su = a_su->sg_list_su_next;
                                        }
                                } else {
                                        n_susi = 
avd_siass_next_susi_to_quiesce(susi);
@@ -2571,7 +2563,6 @@ done:
 uint32_t SG_2N::susi_failed(AVD_CL_CB *cb, AVD_SU *su, AVD_SU_SI_REL *susi,
                AVSV_SUSI_ACT act, SaAmfHAStateT state) {
        AVD_SU_SI_REL *s_susi, *o_susi, *l_susi;
-       AVD_SU *a_su;
        AVD_AVND *su_node_ptr = NULL;
        uint32_t rc = NCSCC_RC_FAILURE;
 
@@ -2793,12 +2784,9 @@ uint32_t SG_2N::susi_failed(AVD_CL_CB *c
                                avd_sg_su_si_del_snd(cb, su);
                        }
                        avd_sg_admin_state_set(su->sg_of_su, 
SA_AMF_ADMIN_LOCKED);
-                       a_su = su->sg_of_su->list_of_su;
-                       while (a_su != NULL) {
+                       for (const auto& a_su : su->sg_of_su->list_of_su) {
                                
a_su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
-                               a_su = a_su->sg_list_su_next;
                        }
-
                }               /* if ((susi == AVD_SU_SI_REL_NULL) && (act == 
AVSV_SUSI_ACT_MOD) &&
                                   ((state == SA_AMF_HA_QUIESCED) && 
                                   (su->sg_of_su->admin_state == 
NCS_ADMIN_STATE_LOCK)) */
@@ -3263,7 +3251,7 @@ void SG_2N::node_fail_si_oper(AVD_SU *su
 
 void SG_2N::node_fail(AVD_CL_CB *cb, AVD_SU *su) {
        AVD_SU_SI_REL *a_susi, *s_susi;
-       AVD_SU *o_su, *i_su;
+       AVD_SU *o_su;
        bool flag;
        SaAmfHAStateT su_ha_state;
 
@@ -3473,19 +3461,19 @@ void SG_2N::node_fail(AVD_CL_CB *cb, AVD
 
                if (su->sg_of_su->saAmfSGAdminState == SA_AMF_ADMIN_LOCKED) {
                        /* SG is admin lock */
+                       bool found_assigned = false;
 
                        /* Free all the SI assignments to this SU */
                        su->delete_all_susis();
-                       i_su = su->sg_of_su->list_of_su;
-                       while (i_su != NULL) {
-                               if (i_su->list_of_susi != AVD_SU_SI_REL_NULL) {
+                       for (const auto& iter : su->sg_of_su->list_of_su) {
+                               if (iter->list_of_susi != AVD_SU_SI_REL_NULL) {
                                        /* found a assigned su break */
+                                       found_assigned = true;
                                        break;
                                }
-                               i_su = i_su->sg_list_su_next;
                        }
 
-                       if (i_su == NULL) {
+                       if (found_assigned == false) {
                                /* the SG doesnt have any SI assignments.Change 
state to stable. */
                                m_AVD_SET_SG_FSM(cb, (su->sg_of_su), 
AVD_SG_FSM_STABLE);
                                /*As sg is stable, screen for si dependencies 
and take action on whole sg*/
@@ -3533,11 +3521,11 @@ void SG_2N::node_fail(AVD_CL_CB *cb, AVD
                                } else
                                        avd_sg_admin_state_set(su->sg_of_su, 
SA_AMF_ADMIN_LOCKED);
 
-                               i_su = su->sg_of_su->list_of_su;
-                               while ((i_su != NULL) &&
-                                               
(i_su->sg_of_su->ng_using_saAmfSGAdminState == false)) {
-                                       
i_su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
-                                       i_su = i_su->sg_list_su_next;
+                               for (const auto& iter : 
su->sg_of_su->list_of_su) {
+                                       if 
(iter->sg_of_su->ng_using_saAmfSGAdminState == true)
+                                               break;
+
+                                       
iter->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE);
                                }
                        } /* if (avd_su_state_determine(su) == 
SA_AMF_HA_QUIESCING) */
                        else {

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to