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 Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel