src/imm/agent/imma_oi_api.cc | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/src/imm/agent/imma_oi_api.cc b/src/imm/agent/imma_oi_api.cc
--- a/src/imm/agent/imma_oi_api.cc
+++ b/src/imm/agent/imma_oi_api.cc
@@ -2120,6 +2120,12 @@ static SaAisErrorT object_implementer_se
goto bad_handle;
}
+ if(cl_node->isImmA2x12 && cl_node->clmExposed){
+ TRACE_2("SA_AIS_ERR_UNAVAILABLE: imma CLM node left the
cluster");
+ rc = SA_AIS_ERR_UNAVAILABLE;
+ goto clm_left;
+ }
+
if (cl_node->stale) {
TRACE_1("Handle %llx is stale", immOiHandle);
bool resurrected = imma_oi_resurrect(cb, cl_node, &locked, &rc);
@@ -2216,6 +2222,7 @@ static SaAisErrorT object_implementer_se
osafassert(out_evt->info.imma.type == IMMA_EVT_ND2A_IMM_ERROR);
rc = out_evt->info.imma.info.errRsp.error;
+ clm_left:
fevs_error:
bad_handle:
if (locked)
@@ -2339,6 +2346,12 @@ static SaAisErrorT object_implementer_re
goto bad_handle;
}
+ if(cl_node->isImmA2x12 && cl_node->clmExposed){
+ TRACE_2("SA_AIS_ERR_UNAVAILABLE: imma CLM node left the
cluster");
+ rc = SA_AIS_ERR_UNAVAILABLE;
+ goto clm_left;
+ }
+
if (cl_node->stale) {
TRACE_1("Handle %llx is stale", immOiHandle);
bool resurrected = imma_oi_resurrect(cb, cl_node, &locked, &rc);
@@ -2433,6 +2446,7 @@ static SaAisErrorT object_implementer_re
osafassert(out_evt->info.imma.type == IMMA_EVT_ND2A_IMM_ERROR);
rc = out_evt->info.imma.info.errRsp.error;
+ clm_left:
fevs_error:
bad_handle:
if (locked)
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel