osaf/services/saf/immsv/immnd/ImmModel.cc | 30 +++++++++++++++---------------
osaf/services/saf/immsv/immnd/immnd_evt.c | 2 +-
2 files changed, 16 insertions(+), 16 deletions(-)
The detour seemed mostly to deal with handling of the SaImmScopeT type.
The scope of SA_IMM_ONE is only relevant for accessors and there it is
implicit, since that function only deals with fetching attributes from
one imm object.
diff --git a/osaf/services/saf/immsv/immnd/ImmModel.cc
b/osaf/services/saf/immsv/immnd/ImmModel.cc
--- a/osaf/services/saf/immsv/immnd/ImmModel.cc
+++ b/osaf/services/saf/immsv/immnd/ImmModel.cc
@@ -1374,6 +1374,7 @@ SaAisErrorT
immModel_searchInitialize(IMMND_CB *cb, struct ImmsvOmSearchInit* req,
void** searchOp, SaBoolT isSync, SaBoolT isAccessor)
{
+ SaAisErrorT err = SA_AIS_OK;
ImmSearchOp* op = new ImmSearchOp();
*searchOp = op;
@@ -1386,8 +1387,16 @@ immModel_searchInitialize(IMMND_CB *cb,
TRACE("Allocating iterator searchOp:%p", op);
}
-
- return ImmModel::instance(&cb->immModel)->searchInitialize(req, *op);
+ /* Reset search time */
+ op->updateSearchTime();
+
+ if(isAccessor) {
+ err = ImmModel::instance(&cb->immModel)->accessorGet(req, *op);
+ } else {
+ err = ImmModel::instance(&cb->immModel)->searchInitialize(req, *op);
+ }
+
+ return err;
}
SaAisErrorT
@@ -10051,6 +10060,10 @@ ImmModel::accessorGet(const ImmsvOmSearc
SaImmSearchOptionsT notAllowedOptions = 0LL;
bool nonExtendedNameCheck = req->searchParam.present >
ImmOmSearchParameter_PR_oneAttrParam;
bool checkAttribute = false;
+
+ if(nonExtendedNameCheck) {
+ op.setNonExtendedName();
+ }
if (objectName.empty()) {
LOG_NO("ERR_INVALID_PARAM: Empty DN is not allowed");
@@ -10390,23 +10403,10 @@ ImmModel::searchInitialize(ImmsvOmSearch
std::string refObjectName;
SaUint32T childCount=0;
- /* Reset search time */
- op.updateSearchTime();
-
if(nonExtendedNameCheck) {
op.setNonExtendedName();
}
- if(scope == SA_IMM_ONE) {
- if(noDanglingSearch) {
- LOG_NO("ERR_INVALID_PARAM: SA_IMM_SEARCH_NO_DANGLING_DEPENDENTS "
- "flag cannot be used with SA_IMM_ONE scope");
- return SA_AIS_ERR_INVALID_PARAM;
- }
-
- return this->accessorGet(req, op);
- }
-
size_t sz = strnlen((char *) req->rootName.buf,
(size_t)req->rootName.size);
std::string rootName((const char*)req->rootName.buf, sz);
diff --git a/osaf/services/saf/immsv/immnd/immnd_evt.c
b/osaf/services/saf/immsv/immnd/immnd_evt.c
--- a/osaf/services/saf/immsv/immnd/immnd_evt.c
+++ b/osaf/services/saf/immsv/immnd/immnd_evt.c
@@ -1259,7 +1259,7 @@ static uint32_t immnd_evt_proc_oi_att_pu
reqo.attributeNames = evt->info.rtAttUpdRpl.sr.attributeNames;
/*borrowing. */
TRACE_2("oi_att_pull_rpl Before searchInit");
- err = immModel_searchInitialize(cb, &reqo, &searchOp, SA_FALSE,
SA_FALSE);
+ err = immModel_searchInitialize(cb, &reqo, &searchOp, SA_FALSE,
SA_TRUE);
if (err == SA_AIS_OK) {
TRACE_2("oi_att_pull_rpl searchInit returned OK,
calling searchNext");
IMMSV_OM_RSP_SEARCH_NEXT *rsp = 0;
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel