From: Mohan Kanakam <[email protected]>
---
src/amf/amfd/su.cc | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/src/amf/amfd/su.cc b/src/amf/amfd/su.cc
index 81cfbf7..96db69d 100644
--- a/src/amf/amfd/su.cc
+++ b/src/amf/amfd/su.cc
@@ -1114,8 +1114,24 @@ void AVD_SU::lock_instantiation(SaImmOiHandleT
immoi_handle,
goto done;
}
- if ((saAmfSUPresenceState == SA_AMF_PRESENCE_UNINSTANTIATED) ||
- (saAmfSUPresenceState == SA_AMF_PRESENCE_INSTANTIATION_FAILED) ||
+ if (saAmfSUPresenceState == SA_AMF_PRESENCE_UNINSTANTIATED) {
+ for (const auto &comp : list_of_comp) {
+ if (comp->saAmfCompPresenceState != SA_AMF_PRESENCE_UNINSTANTIATED) {
+ LOG_NO("comp->saAmfCompPresenceState : %d ",
+ comp->saAmfCompPresenceState);
+ report_admin_op_error(immoi_handle, invocation, SA_AIS_ERR_TRY_AGAIN,
+ nullptr, "'%s' presence state is '%u'",
+ name.c_str(), saAmfSUPresenceState);
+ goto done;
+ }
+ }
+ set_admin_state(SA_AMF_ADMIN_LOCKED_INSTANTIATION);
+ avd_saImmOiAdminOperationResult(immoi_handle, invocation, SA_AIS_OK);
+ set_term_state(true);
+ goto done;
+ }
+
+ if ((saAmfSUPresenceState == SA_AMF_PRESENCE_INSTANTIATION_FAILED) ||
(saAmfSUPresenceState == SA_AMF_PRESENCE_TERMINATION_FAILED)) {
/* No need to terminate the SUs in Unins/Inst Failed/Term Failed state */
set_admin_state(SA_AMF_ADMIN_LOCKED_INSTANTIATION);
--
2.7.4
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel