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

Reply via email to