osaf/services/saf/amf/amfd/include/su.h | 2 ++ osaf/services/saf/amf/amfd/sgproc.cc | 26 +++----------------------- osaf/services/saf/amf/amfd/su.cc | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 23 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 @@ -120,6 +120,8 @@ class AVD_SU { bool is_in_service(void); void reset_all_comps_assign_flag(); AVD_COMP *find_unassigned_comp_that_provides_cstype(const SaNameT *cstype); + void disable_comps(SaAisErrorT result); + private: void send_attribute_update(AVSV_AMF_SU_ATTR_ID attrib_id); diff --git a/osaf/services/saf/amf/amfd/sgproc.cc b/osaf/services/saf/amf/amfd/sgproc.cc --- a/osaf/services/saf/amf/amfd/sgproc.cc +++ b/osaf/services/saf/amf/amfd/sgproc.cc @@ -293,7 +293,7 @@ static uint32_t sg_su_failover_func(AVD_ su_complete_admin_op(su, SA_AIS_OK); else su_complete_admin_op(su, SA_AIS_ERR_TIMEOUT); - su_disable_comps(su, SA_AIS_ERR_TIMEOUT); + su->disable_comps(SA_AIS_ERR_TIMEOUT); if (su->su_on_node->admin_node_pend_cbk.invocation != 0) { /* Node level operation is going on the node hosting the SU for which sufailover got escalated. Sufailover event will always come after the @@ -1563,7 +1563,7 @@ void avd_node_down_mw_susi_failover(AVD_ i_su->set_pres_state(SA_AMF_PRESENCE_UNINSTANTIATED); i_su->set_readiness_state(SA_AMF_READINESS_OUT_OF_SERVICE); su_complete_admin_op(i_su, SA_AIS_ERR_TIMEOUT); - su_disable_comps(i_su, SA_AIS_ERR_TIMEOUT); + i_su->disable_comps(SA_AIS_ERR_TIMEOUT); /* Now analyze the service group for the new HA state * assignments and send the SU SI assign messages @@ -1616,7 +1616,7 @@ void avd_node_down_appl_susi_failover(AV /* Check if there was any admin operations going on this SU. */ su_complete_admin_op(i_su, SA_AIS_ERR_TIMEOUT); - su_disable_comps(i_su, SA_AIS_ERR_TIMEOUT); + i_su->disable_comps(SA_AIS_ERR_TIMEOUT); i_su = i_su->avnd_list_su_next; } /* while (i_su != AVD_SU_NULL) */ @@ -2041,23 +2041,3 @@ void comp_complete_admin_op(AVD_COMP *co comp->admin_pend_cbk.admin_oper = static_cast<SaAmfAdminOperationIdT>(0); } } -/** - * @brief Disable all components since SU is disabled and out of service. - * It takes care of response to IMM for any admin operation pending on components. - * @param ptr to su - * @param result - * - */ -void su_disable_comps(AVD_SU *su, SaAisErrorT result) -{ - AVD_COMP *comp; - for (comp = su->list_of_comp; comp; comp = comp->su_comp_next) { - comp->curr_num_csi_actv = 0; - comp->curr_num_csi_stdby = 0; - avd_comp_oper_state_set(comp, SA_AMF_OPERATIONAL_DISABLED); - avd_comp_pres_state_set(comp, SA_AMF_PRESENCE_UNINSTANTIATED); - comp->saAmfCompRestartCount = 0; - comp_complete_admin_op(comp, result); - m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, comp, AVSV_CKPT_AVD_COMP_CONFIG); - } -} 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 @@ -1826,3 +1826,22 @@ AVD_COMP *AVD_SU::find_unassigned_comp_t return l_comp; } + +/** + * Disables all components since SU is disabled and out of service. + * Takes care of response to IMM for any admin operation pending on components. + * @param result + */ +void AVD_SU::disable_comps(SaAisErrorT result) +{ + AVD_COMP *comp; + for (comp = list_of_comp; comp; comp = comp->su_comp_next) { + comp->curr_num_csi_actv = 0; + comp->curr_num_csi_stdby = 0; + avd_comp_oper_state_set(comp, SA_AMF_OPERATIONAL_DISABLED); + avd_comp_pres_state_set(comp, SA_AMF_PRESENCE_UNINSTANTIATED); + comp->saAmfCompRestartCount = 0; + comp_complete_admin_op(comp, result); + m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, comp, AVSV_CKPT_AVD_COMP_CONFIG); + } +} ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/NeoTech _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel