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
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel