osaf/services/saf/amf/amfd/ndfsm.cc | 5 ++--- osaf/services/saf/amf/amfd/ndproc.cc | 27 ++++++++------------------- osaf/services/saf/amf/amfd/sgproc.cc | 7 +++++++ 3 files changed, 17 insertions(+), 22 deletions(-)
diff --git a/osaf/services/saf/amf/amfd/ndfsm.cc b/osaf/services/saf/amf/amfd/ndfsm.cc --- a/osaf/services/saf/amf/amfd/ndfsm.cc +++ b/osaf/services/saf/amf/amfd/ndfsm.cc @@ -221,9 +221,8 @@ void avd_nd_ncs_su_assigned(AVD_CL_CB *c m_AVD_CLINIT_TMR_START(cb); } - /* No application SUs hosted on this node. Check if all SUs are instantiated cluster-wide, - if so start assignments */ - if ((avnd->list_of_su == NULL) && (cb->amf_init_tmr.is_active == true) && + /* Check if all SUs are in 'in-service' cluster-wide, if so start assignments */ + if ((cb->amf_init_tmr.is_active == true) && (cluster_su_instantiation_done(cb, NULL) == true)) { avd_stop_tmr(cb, &cb->amf_init_tmr); cluster_startup_expiry_event_generate(cb); diff --git a/osaf/services/saf/amf/amfd/ndproc.cc b/osaf/services/saf/amf/amfd/ndproc.cc --- a/osaf/services/saf/amf/amfd/ndproc.cc +++ b/osaf/services/saf/amf/amfd/ndproc.cc @@ -493,11 +493,9 @@ bool cluster_su_instantiation_done(AVD_C goto node_walk; TRACE("SU '%s', SUPresenceState '%u'", su->name.value, su->saAmfSUPresenceState); - if ((su->saAmfSUPresenceState == SA_AMF_PRESENCE_INSTANTIATED) || - (su->saAmfSUPresenceState == - SA_AMF_PRESENCE_INSTANTIATION_FAILED) || - (su->saAmfSUPresenceState == - SA_AMF_PRESENCE_TERMINATION_FAILED)) { + if (((su->saAmfSUOperState == SA_AMF_OPERATIONAL_ENABLED) && (su->saAmfSUPresenceState == + SA_AMF_PRESENCE_INSTANTIATED)) || + (su->saAmfSUOperState == SA_AMF_OPERATIONAL_DISABLED)) { } else { /* Don't calculate if SU is in transient state.*/ goto done; @@ -519,11 +517,11 @@ node_walk: (su_ptr->su_on_node->saAmfNodeAdminState != SA_AMF_ADMIN_LOCKED_INSTANTIATION) && (su_ptr->saAmfSUPreInstantiable == true)) { - if ((su_ptr->saAmfSUPresenceState == SA_AMF_PRESENCE_INSTANTIATED) || - (su_ptr->saAmfSUPresenceState == - SA_AMF_PRESENCE_INSTANTIATION_FAILED) || - (su_ptr->saAmfSUPresenceState == - SA_AMF_PRESENCE_TERMINATION_FAILED)) { + if (((su_ptr->saAmfSUOperState == SA_AMF_OPERATIONAL_ENABLED) && + (su_ptr->saAmfSUPresenceState == + SA_AMF_PRESENCE_INSTANTIATED)) || + (su_ptr->saAmfSUOperState == + SA_AMF_OPERATIONAL_DISABLED)) { } else { goto done; } @@ -743,15 +741,6 @@ void avd_data_update_req_evh(AVD_CL_CB * /* send response to pending clm callback */ if (su->su_on_node->clm_pend_inv != 0) clm_pend_response(su, static_cast<SaAmfPresenceStateT>(l_val)); - - /* No application SUs hosted on this node. Check if all SUs are instantiated - cluster-wide, if so start assignments */ - if ((cb->amf_init_tmr.is_active == true) && - (su->sg_of_su->sg_ncs_spec == false) && - (cluster_su_instantiation_done(cb, su) == true)) { - avd_stop_tmr(cb, &cb->amf_init_tmr); - cluster_startup_expiry_event_generate(cb); - } } else { /* log error that a the value len is invalid */ LOG_ER("%s:%u: %u", __FILE__, __LINE__, n2d_msg->msg_info.n2d_data_req.param_info. 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 @@ -411,6 +411,13 @@ void avd_su_oper_state_evh(AVD_CL_CB *cb goto done; } + /* Check if all SUs are in 'in-service' cluster-wide, if so start assignments */ + if ((cb->amf_init_tmr.is_active == true) && + (cluster_su_instantiation_done(cb, su) == true)) { + avd_stop_tmr(cb, &cb->amf_init_tmr); + cluster_startup_expiry_event_generate(cb); + } + /* Verify that the SU operation state is disable and do the processing. */ if (n2d_msg->msg_info.n2d_opr_state.su_oper_state == SA_AMF_OPERATIONAL_DISABLED) { /* if the SU is NCS SU, call the node FSM routine to handle the failure. ------------------------------------------------------------------------------ Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel