osaf/services/saf/amf/amfd/su.cc |  16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)


When mw su is in locked-in state and opensaf is started, amfnd hangs.
When mw su is unlocked-in, amfnd still doesn't instantiate the mw su.

Amfd doesn't send instantiate message to amfnd because su is not
in enabled state and node is not in present state.

Amfd should send instantiate message to amfnd for mw su unlock-in command.

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
@@ -1030,11 +1030,17 @@ void AVD_SU::unlock_instantiation(SaImmO
                goto done;
        }
 
-       if ((node->node_state == AVD_AVND_STATE_PRESENT) &&
-               ((node->saAmfNodeAdminState != 
SA_AMF_ADMIN_LOCKED_INSTANTIATION) &&
-               (sg_of_su->saAmfSGAdminState != 
SA_AMF_ADMIN_LOCKED_INSTANTIATION)) &&
-                (saAmfSUOperState == SA_AMF_OPERATIONAL_ENABLED) &&
-                (sg_of_su->saAmfSGNumPrefInserviceSUs > 
sg_instantiated_su_count(sg_of_su))) {
+       /* Middleware sus are not enabled until node joins. During
+          starting of opensaf, if mw su is locked-in and unlock-in
+          command is issued, su should get instantiated. */
+       if (((node->node_state == AVD_AVND_STATE_PRESENT) ||
+                               (node->node_state == AVD_AVND_STATE_NO_CONFIG) 
||
+                               (node->node_state == AVD_AVND_STATE_NCS_INIT)) 
&&
+                       ((node->saAmfNodeAdminState != 
SA_AMF_ADMIN_LOCKED_INSTANTIATION) &&
+                        (sg_of_su->saAmfSGAdminState != 
SA_AMF_ADMIN_LOCKED_INSTANTIATION)) &&
+                       ((saAmfSUOperState == SA_AMF_OPERATIONAL_ENABLED) ||
+                        (sg_of_su->sg_ncs_spec == true)) &&
+                       (sg_of_su->saAmfSGNumPrefInserviceSUs > 
sg_instantiated_su_count(sg_of_su))) {
                /* When the SU will instantiate then prescence state change 
message will come
                   and so store the callback parameters to send response later 
on. */
                if (avd_snd_presence_msg(avd_cb, this, false) == 
NCSCC_RC_SUCCESS) {

------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&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