osaf/services/saf/amf/amfd/clm.cc       |  4 +++-
 osaf/services/saf/amf/amfd/nodegroup.cc |  7 ++++---
 2 files changed, 7 insertions(+), 4 deletions(-)


During Clm unlock, Amf is not marking node oper state to enable,
if that node admin state is in locked-in state.
Ideally, in cany case, Amf need to mark the state to enable when
the node joins the Cluster i.e. clm unlock.
The other fix is to check the node oper state while
sending SU pres message to Amfnd.
Change of 'node->' to 'su->su_on_node->' is a refactoring correction.

diff --git a/osaf/services/saf/amf/amfd/clm.cc 
b/osaf/services/saf/amf/amfd/clm.cc
--- a/osaf/services/saf/amf/amfd/clm.cc
+++ b/osaf/services/saf/amf/amfd/clm.cc
@@ -27,6 +27,9 @@ static SaVersionT clmVersion = { 'B', 4,
 static void clm_node_join_complete(AVD_AVND *node)
 {
        TRACE_ENTER();
+       /* Enable the node in any case. */
+       avd_node_oper_state_set(node, SA_AMF_OPERATIONAL_ENABLED);
+
        /* For each of the SUs calculate the readiness state. 
         ** call the SG FSM with the new readiness state.
         */
@@ -36,7 +39,6 @@ static void clm_node_join_complete(AVD_A
                goto done;
        }
 
-       avd_node_oper_state_set(node, SA_AMF_OPERATIONAL_ENABLED);
        for (const auto& su : node->list_of_su) {
                /* For non-preinstantiable SU unlock-inst will not lead to its 
inst until unlock. */
                if ( su->saAmfSUPreInstantiable == false ) {
diff --git a/osaf/services/saf/amf/amfd/nodegroup.cc 
b/osaf/services/saf/amf/amfd/nodegroup.cc
--- a/osaf/services/saf/amf/amfd/nodegroup.cc
+++ b/osaf/services/saf/amf/amfd/nodegroup.cc
@@ -914,11 +914,12 @@ static void ng_admin_unlock_inst(AVD_AMF
                                        continue;
 
                                if ((su->saAmfSUAdminState != 
SA_AMF_ADMIN_LOCKED_INSTANTIATION) &&
-                                       (node->saAmfNodeAdminState != 
SA_AMF_ADMIN_LOCKED_INSTANTIATION) &&
+                                               
(su->su_on_node->saAmfNodeAdminState != SA_AMF_ADMIN_LOCKED_INSTANTIATION) &&
                                                (su->saAmfSUOperState == 
SA_AMF_OPERATIONAL_ENABLED) &&
-                                               (su->saAmfSUPresenceState == 
SA_AMF_PRESENCE_UNINSTANTIATED)) {
+                                               (su->saAmfSUPresenceState == 
SA_AMF_PRESENCE_UNINSTANTIATED) &&
+                                               
(su->su_on_node->saAmfNodeOperState == SA_AMF_OPERATIONAL_ENABLED)) {
                                        if ((su->saAmfSUPreInstantiable == 
false) ||
-                                                       (node->node_state != 
AVD_AVND_STATE_PRESENT))
+                                                       
(su->su_on_node->node_state != AVD_AVND_STATE_PRESENT))
                                                continue;
 
                                        if (sg->saAmfSGNumPrefInserviceSUs > 
su_try_inst) {

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to