osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc |  48 +++++++++++----------------
 1 files changed, 20 insertions(+), 28 deletions(-)


diff --git a/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc
@@ -223,8 +223,13 @@ AVD_SU *avd_sg_nacvred_su_chose_asgn(AVD
 
        }/* while ((i_si != AVD_SI_NULL) && (l_flag == true)) */
 
-       TRACE_LEAVE2("%p", sg->su_oper_list.su);
-       return sg->su_oper_list.su;
+       TRACE_LEAVE();
+
+       if (sg->su_oper_list.empty() == true) {
+               return NULL;
+       } else {
+               return sg->su_oper_list.front();
+       }
 }
 
 uint32_t SG_NACV::si_assign(AVD_CL_CB *cb, AVD_SI *si) {
@@ -379,7 +384,7 @@ uint32_t SG_NACV::su_fault(AVD_CL_CB *cb
                break;          /* case AVD_SG_FSM_SG_REALIGN: */
        case AVD_SG_FSM_SU_OPER:
 
-               if (su->sg_of_su->su_oper_list.su == su) {
+               if (su_oper_list_front() == su) {
                        /* The SU is same as the SU in the list. If the SI 
relationships to the
                         * SU is quiescing, If this SU admin is shutdown change 
to LOCK and
                         * send D2N-INFO_SU_SI_ASSIGN modify quiesced all.
@@ -610,7 +615,7 @@ uint32_t SG_NACV::susi_success(AVD_CL_CB
                                avd_sg_su_oper_list_del(cb, su, false);
                        }
 
-                       if ((su->sg_of_su->admin_si == AVD_SI_NULL) && 
(su->sg_of_su->su_oper_list.su == NULL)) {
+                       if ((su->sg_of_su->admin_si == AVD_SI_NULL) && 
(su->sg_of_su->su_oper_list.empty() == true)) {
                                if (avd_sg_nacvred_su_chose_asgn(cb, 
su->sg_of_su) == NULL) {
                                        /* No New assignments are been done in 
the SG. change the FSM state */
                                        m_AVD_SET_SG_FSM(cb, (su->sg_of_su), 
AVD_SG_FSM_STABLE);
@@ -724,7 +729,7 @@ uint32_t SG_NACV::susi_success(AVD_CL_CB
                                        m_AVSV_SEND_CKPT_UPDT_ASYNC_RMV(cb, 
su->sg_of_su, AVSV_CKPT_AVD_SI_TRANS);
                                }
 
-                               if ((su->sg_of_su->admin_si == AVD_SI_NULL) && 
(su->sg_of_su->su_oper_list.su == NULL)) {
+                               if ((su->sg_of_su->admin_si == AVD_SI_NULL) && 
(su->sg_of_su->su_oper_list.empty() == true)) {
                                        if (avd_sg_nacvred_su_chose_asgn(cb, 
su->sg_of_su) == NULL) {
                                                /* No New assignments are been 
done in the SG. change the FSM state */
                                                m_AVD_SET_SG_FSM(cb, 
(su->sg_of_su), AVD_SG_FSM_STABLE);
@@ -764,7 +769,7 @@ uint32_t SG_NACV::susi_success(AVD_CL_CB
 
                        avd_sg_su_oper_list_del(cb, su, false);
 
-                       if (su->sg_of_su->su_oper_list.su == NULL) {
+                       if (su->sg_of_su->su_oper_list.empty() == true) {
                                if (avd_sg_nacvred_su_chose_asgn(cb, 
su->sg_of_su) != NULL) {
                                        /* New assignments are been done in the 
SG. */
                                        /* change the FSM state */
@@ -852,7 +857,7 @@ uint32_t SG_NACV::susi_success(AVD_CL_CB
                                                return NCSCC_RC_FAILURE;
                                        }
 
-                                       if (su->sg_of_su->su_oper_list.su != 
su) {
+                                       if (su_oper_list_front() != su) {
                                                LOG_EM("%s:%u: %s (%u)", 
__FILE__, __LINE__, su->name.value, su->name.length);
                                                LOG_EM("%s:%u: %s (%u)", 
__FILE__, __LINE__, su->list_of_susi->si->name.value,
                                                                
su->list_of_susi->si->name.length);
@@ -959,7 +964,7 @@ uint32_t SG_NACV::susi_success(AVD_CL_CB
 
                        avd_sg_su_oper_list_del(cb, su, false);
 
-                       if (su->sg_of_su->su_oper_list.su == NULL) {
+                       if (su->sg_of_su->su_oper_list.empty() == true) {
                                avd_sg_admin_state_set(su->sg_of_su, 
SA_AMF_ADMIN_LOCKED);
 
                                /* change the FSM state */
@@ -1119,7 +1124,7 @@ uint32_t SG_NACV::susi_failed(AVD_CL_CB 
                                                return NCSCC_RC_FAILURE;
                                        }
 
-                                       if (su->sg_of_su->su_oper_list.su != 
su) {
+                                       if (su_oper_list_front() != su) {
                                                LOG_EM("%s:%u: %s (%u)", 
__FILE__, __LINE__, su->name.value, su->name.length);
                                                LOG_EM("%s:%u: %s (%u)", 
__FILE__, __LINE__, su->list_of_susi->si->name.value,
                                                                
su->list_of_susi->si->name.length);
@@ -1340,7 +1345,7 @@ void SG_NACV::node_fail(AVD_CL_CB *cb, A
                        }
                }
 
-               if ((su->sg_of_su->admin_si == AVD_SI_NULL) && 
(su->sg_of_su->su_oper_list.su == NULL)) {
+               if ((su->sg_of_su->admin_si == AVD_SI_NULL) && 
(su->sg_of_su->su_oper_list.empty() == true)) {
                        if (avd_sg_nacvred_su_chose_asgn(cb, su->sg_of_su) == 
NULL) {
                                /* No New assignments are been done in the SG. 
change the FSM state */
                                m_AVD_SET_SG_FSM(cb, (su->sg_of_su), 
AVD_SG_FSM_STABLE);
@@ -1362,7 +1367,7 @@ void SG_NACV::node_fail(AVD_CL_CB *cb, A
                /* Remove the SI relationship to this SU. */
                su->delete_all_susis();
 
-               if (su->sg_of_su->su_oper_list.su == su) {
+               if (su_oper_list_front() == su) {
                        /*  SU is same as the SU in the list. If this SU admin 
is shutdown 
                         * change to LOCK. Remove the SU from operation list. 
choose and 
                         * assign SIs whose active assignment criteria is not 
meet to 
@@ -1463,7 +1468,7 @@ void SG_NACV::node_fail(AVD_CL_CB *cb, A
 
                avd_sg_su_oper_list_del(cb, su, false);
 
-               if (su->sg_of_su->su_oper_list.su == NULL) {
+               if (su->sg_of_su->su_oper_list.empty() == true) {
                        avd_sg_admin_state_set(su->sg_of_su, 
SA_AMF_ADMIN_LOCKED);
 
                        /* change the FSM state */
@@ -1531,7 +1536,7 @@ uint32_t SG_NACV::su_admin_down(AVD_CL_C
                                   ((avnd != AVD_AVND_NULL) && 
(avnd->su_admin_state == NCS_ADMIN_STATE_SHUTDOWN))) */
                break;          /* case AVD_SG_FSM_STABLE: */
        case AVD_SG_FSM_SU_OPER:
-               if ((su->sg_of_su->su_oper_list.su == su) &&
+               if ((su_oper_list_front() == su) &&
                    (su->list_of_susi->state == SA_AMF_HA_QUIESCING) &&
                    ((su->saAmfSUAdminState == SA_AMF_ADMIN_LOCKED) ||
                     ((avnd != NULL) && (avnd->saAmfNodeAdminState == 
SA_AMF_ADMIN_LOCKED)))) {
@@ -1646,7 +1651,6 @@ uint32_t SG_NACV::si_admin_down(AVD_CL_C
 
 uint32_t SG_NACV::sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg) {
        AVD_SU *i_su;
-       AVD_SG_OPER *l_suopr;
 
        TRACE_ENTER2("%u", sg->sg_fsm_state);
 
@@ -1700,7 +1704,7 @@ uint32_t SG_NACV::sg_admin_down(AVD_CL_C
                        return NCSCC_RC_FAILURE;
                }
 
-               if (sg->su_oper_list.su != NULL) {
+               if (sg->su_oper_list.empty() == false) {
                        m_AVD_SET_SG_FSM(cb, sg, AVD_SG_FSM_SG_ADMIN);
                }
 
@@ -1711,24 +1715,12 @@ uint32_t SG_NACV::sg_admin_down(AVD_CL_C
                         * SG to lock and send D2N-INFO_SU_SI_ASSIGN modify 
quiesced message
                         * to all the SUs in the SU operation list with 
quiescing assignment.
                         */
-                       if (sg->su_oper_list.su != NULL) {
-                               i_su = sg->su_oper_list.su;
+                       for (const auto& i_su : su_oper_list) {
                                if ((i_su->list_of_susi->state == 
SA_AMF_HA_QUIESCING) &&
                                    (i_su->list_of_susi->fsm == 
AVD_SU_SI_STATE_MODIFY)) {
                                        avd_sg_su_si_mod_snd(cb, i_su, 
SA_AMF_HA_QUIESCED);
                                }
-
-                               l_suopr = i_su->sg_of_su->su_oper_list.next;
-                               while (l_suopr != NULL) {
-                                       if ((l_suopr->su->list_of_susi->state 
== SA_AMF_HA_QUIESCING) &&
-                                           (l_suopr->su->list_of_susi->fsm == 
AVD_SU_SI_STATE_MODIFY)) {
-                                               avd_sg_su_si_mod_snd(cb, 
l_suopr->su, SA_AMF_HA_QUIESCED);
-                                       }
-
-                                       l_suopr = l_suopr->next;
-                               }
                        }
-
                }               /* if (sg->admin_state == NCS_ADMIN_STATE_LOCK) 
*/
                break;          /* case AVD_SG_FSM_SG_ADMIN: */
        default:

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to