osaf/services/saf/amf/amfd/include/su.h | 6 +----- osaf/services/saf/amf/amfd/role.cc | 2 +- osaf/services/saf/amf/amfd/sg_2n_fsm.cc | 30 ++++++++++++++++-------------- osaf/services/saf/amf/amfd/su.cc | 6 ++++++ 4 files changed, 24 insertions(+), 20 deletions(-)
diff --git a/osaf/services/saf/amf/amfd/include/su.h b/osaf/services/saf/amf/amfd/include/su.h --- a/osaf/services/saf/amf/amfd/include/su.h +++ b/osaf/services/saf/amf/amfd/include/su.h @@ -114,6 +114,7 @@ class AVD_SU { void set_all_susis_assigned_quiesced(void); void set_all_susis_assigned(void); void set_term_state(bool state); + void set_su_switch(SaToggleState state); private: void send_attribute_update(AVSV_AMF_SU_ATTR_ID attrib_id); @@ -131,11 +132,6 @@ typedef struct { } AVD_SUTCOMP_TYPE; -#define m_AVD_SET_SU_SWITCH(cb,su,state) {\ -su->su_switch = state;\ -m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(cb, su, AVSV_CKPT_SU_SWITCH);\ -} - #define m_AVD_APP_SU_IS_INSVC(i_su,su_node_ptr) \ ((su_node_ptr->saAmfNodeAdminState == SA_AMF_ADMIN_UNLOCKED) && \ (su_node_ptr->saAmfNodeOperState == SA_AMF_OPERATIONAL_ENABLED) && \ diff --git a/osaf/services/saf/amf/amfd/role.cc b/osaf/services/saf/amf/amfd/role.cc --- a/osaf/services/saf/amf/amfd/role.cc +++ b/osaf/services/saf/amf/amfd/role.cc @@ -536,7 +536,7 @@ void avd_role_switch_ncs_su_evh(AVD_CL_C avd_sg_su_si_mod_snd(cb, i_su, SA_AMF_HA_ACTIVE); } else { avd_sg_su_oper_list_add(cb, i_su, false); - m_AVD_SET_SU_SWITCH(cb, i_su, AVSV_SI_TOGGLE_SWITCH); + i_su->set_su_switch(AVSV_SI_TOGGLE_SWITCH); m_AVD_SET_SG_FSM(cb, (i_su->sg_of_su), AVD_SG_FSM_SU_OPER); } } 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 @@ -866,7 +866,7 @@ SaAisErrorT avd_sg_2n_siswap_func(AVD_SI /* Add the SU to the operation list and change the SG state to SU_operation. */ avd_sg_su_oper_list_add(avd_cb, susi->su, false); m_AVD_SET_SG_FSM(avd_cb, susi->su->sg_of_su, AVD_SG_FSM_SU_OPER); - m_AVD_SET_SU_SWITCH(avd_cb, susi->su, AVSV_SI_TOGGLE_SWITCH); + susi->su->set_su_switch(AVSV_SI_TOGGLE_SWITCH); si->invocation = invocation; LOG_NO("%s Swap initiated", susi->si->name.value); @@ -917,7 +917,7 @@ static uint32_t avd_sg_2n_su_fault_su_op if (su->sg_of_su->su_oper_list.su == su) { su_ha_state = avd_su_state_determine(su); if (su_ha_state == SA_AMF_HA_QUIESCED) { - m_AVD_SET_SU_SWITCH(cb, su, AVSV_SI_TOGGLE_STABLE); + su->set_su_switch(AVSV_SI_TOGGLE_STABLE); } else if (su_ha_state == SA_AMF_HA_QUIESCING) { if (avd_sidep_si_dependency_exists_within_su(su)) { if (avd_sg_susi_mod_snd_honouring_si_dependency(su, SA_AMF_HA_QUIESCED) == NCSCC_RC_FAILURE) { @@ -999,7 +999,7 @@ static uint32_t avd_sg_2n_su_fault_su_op avd_su_role_failover(su, a_su); } - m_AVD_SET_SU_SWITCH(cb, a_su, AVSV_SI_TOGGLE_STABLE); + a_su->set_su_switch(AVSV_SI_TOGGLE_STABLE); } } /* if(su_ha_state == SA_AMF_HA_STANDBY) */ @@ -1039,8 +1039,8 @@ static uint32_t avd_sg_2n_su_fault_su_op if ((a_su->su_switch == AVSV_SI_TOGGLE_SWITCH) && (a_su->saAmfSuReadinessState == SA_AMF_READINESS_IN_SERVICE) && - (a_su_ha_state == SA_AMF_HA_QUIESCED)) { - m_AVD_SET_SU_SWITCH(cb, a_su, AVSV_SI_TOGGLE_STABLE); + (a_su_ha_state == SA_AMF_HA_QUIESCED)) { + a_su->set_su_switch(AVSV_SI_TOGGLE_STABLE); } else if (a_su_ha_state == SA_AMF_HA_QUIESCED) { /* the other SU has quiesced assignments meaning either it is * out of service or locked. So just send a remove request @@ -2127,8 +2127,9 @@ static uint32_t avd_sg_2n_susi_sucss_su_ } /* Finish the SI SWAP admin operation */ - m_AVD_SET_SU_SWITCH(cb, su->sg_of_su->su_oper_list.su, AVSV_SI_TOGGLE_STABLE); - avd_sg_su_oper_list_del(cb, su->sg_of_su->su_oper_list.su, false); + AVD_SU *su_at_head = su->sg_of_su->su_oper_list.su; + su_at_head->set_su_switch(AVSV_SI_TOGGLE_STABLE); + avd_sg_su_oper_list_del(cb, su_at_head, false); 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*/ avd_sidep_update_si_dep_state_for_all_sis(su->sg_of_su); @@ -2233,8 +2234,7 @@ static uint32_t avd_sg_2n_susi_sucss_su_ node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED); } } else if (su->su_switch == AVSV_SI_TOGGLE_SWITCH) { - /* this SU switch state is true change to false. */ - m_AVD_SET_SU_SWITCH(cb, su, AVSV_SI_TOGGLE_STABLE); + su->set_su_switch(AVSV_SI_TOGGLE_STABLE); } } else { @@ -2714,7 +2714,7 @@ uint32_t avd_sg_2n_susi_fail_func(AVD_CL goto done; } - m_AVD_SET_SU_SWITCH(cb, su, AVSV_SI_TOGGLE_STABLE); + su->set_su_switch(AVSV_SI_TOGGLE_STABLE); m_AVD_SET_SG_FSM(cb, (su->sg_of_su), AVD_SG_FSM_SG_REALIGN); complete_siswap(su, SA_AIS_ERR_BAD_OPERATION); @@ -3056,7 +3056,7 @@ static void avd_sg_2n_node_fail_su_oper( node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED); } } else { - m_AVD_SET_SU_SWITCH(cb, su, AVSV_SI_TOGGLE_STABLE); + su->set_su_switch(AVSV_SI_TOGGLE_STABLE); } } /* if ((quiesced_susi_in_su(su)) || (quiescing_susi_in_su(su))) */ @@ -3083,7 +3083,7 @@ static void avd_sg_2n_node_fail_su_oper( node_admin_state_set(su_node_ptr, SA_AMF_ADMIN_LOCKED); } } else { - m_AVD_SET_SU_SWITCH(cb, su, AVSV_SI_TOGGLE_STABLE); + su->set_su_switch(AVSV_SI_TOGGLE_STABLE); } avd_sg_su_oper_list_add(cb, a_susi->su, false); m_AVD_SET_SG_FSM(cb, (su->sg_of_su), AVD_SG_FSM_SG_REALIGN); @@ -3157,7 +3157,8 @@ static void avd_sg_2n_node_fail_su_oper( m_AVD_SET_SG_FSM(cb, (su->sg_of_su), AVD_SG_FSM_SG_REALIGN); } - m_AVD_SET_SU_SWITCH(cb, (su->sg_of_su->su_oper_list.su), AVSV_SI_TOGGLE_STABLE); + AVD_SU *su_at_head = su->sg_of_su->su_oper_list.su; + su_at_head->set_su_switch(AVSV_SI_TOGGLE_STABLE); su->delete_all_susis(); } /* if(avd_su_state_determine(su) == SA_AMF_HA_STANDBY) */ @@ -3193,7 +3194,8 @@ static void avd_sg_2n_node_fail_su_oper( m_AVD_SET_SG_FSM(cb, (su->sg_of_su), AVD_SG_FSM_SG_REALIGN); } - m_AVD_SET_SU_SWITCH(cb, (su->sg_of_su->su_oper_list.su), AVSV_SI_TOGGLE_STABLE); + AVD_SU *su_at_head = su->sg_of_su->su_oper_list.su; + su_at_head->set_su_switch(AVSV_SI_TOGGLE_STABLE); su->delete_all_susis(); } diff --git a/osaf/services/saf/amf/amfd/su.cc b/osaf/services/saf/amf/amfd/su.cc --- a/osaf/services/saf/amf/amfd/su.cc +++ b/osaf/services/saf/amf/amfd/su.cc @@ -1702,3 +1702,9 @@ void AVD_SU::set_term_state(bool state) TRACE("%s term_state %u", name.value, term_state); m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, this, AVSV_CKPT_SU_TERM_STATE); } + +void AVD_SU::set_su_switch(SaToggleState state) { + su_switch = state; + TRACE("%s su_switch %u", name.value, su_switch); + m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, this, AVSV_CKPT_SU_SWITCH); +} ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available. Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel