
# HG changeset patch # User Sharad Mishra <snmishra@us.ibm.com> # Date 1286382665 25200 # Node ID a97431f4b91e5d4009e9f2e70dea7d7bc85464f5 # Parent d4beac1f62c6ad131f584b04460eb807aa46f0d4 Missing namespace from migration indications This patch passes ObjectPath inside the indication when calling CBDeliverIndication. Signed-off-by: Sharad Mishra <snmishra@us.ibm.com> diff -r d4beac1f62c6 -r a97431f4b91e std_indication.c --- a/std_indication.c Tue Sep 14 21:19:05 2010 -0400 +++ b/std_indication.c Wed Oct 06 09:31:05 2010 -0700 @@ -98,13 +98,15 @@ static CMPIStatus default_raise(const CMPIBroker *broker, const CMPIContext *context, + CMPIObjectPath *ref, CMPIInstance *ind) { - CMPIObjectPath *ref; CMPIStatus s = {CMPI_RC_OK, NULL}; - ref = CMGetObjectPath(ind, NULL); - + s = CMSetObjectPath(ind, ref); + if (s.rc != CMPI_RC_OK) + return s; + CBDeliverIndication(broker, context, NAMESPACE(ref), @@ -114,13 +116,15 @@ static CMPIStatus raise(struct std_indication_ctx *ctx, const CMPIContext *context, - const CMPIArgs *argsin) + const CMPIArgs *argsin, + CMPIObjectPath *ref) { bool enabled; CMPIInstance *inst; CMPIStatus s = {CMPI_RC_OK, NULL}; const char *ind_name = NULL; + CU_DEBUG("In raise"); if (cu_get_inst_arg(argsin, "TheIndication", &inst) != CMPI_RC_OK) { cu_statusf(ctx->brkr, &s, CMPI_RC_ERR_FAILED, @@ -136,6 +140,8 @@ goto out; } + CU_DEBUG("Indication is %s", ind_name); + enabled = is_ind_enabled(ctx, ind_name, &s); if (s.rc != CMPI_RC_OK) { CU_DEBUG("Problem checking enabled: '%s'", CMGetCharPtr(s.msg)); @@ -146,13 +152,14 @@ goto out; if (ctx->handler == NULL || ctx->handler->raise_fn == NULL) - s = default_raise(ctx->brkr, context, inst); + s = default_raise(ctx->brkr, context, ref, inst); else - s = ctx->handler->raise_fn(ctx->brkr, context, inst); + s = ctx->handler->raise_fn(ctx->brkr, context, ref, inst); out: return s; } + CMPIStatus stdi_deliver(const CMPIBroker *broker, const CMPIContext *ctx, struct ind_args *args, @@ -294,7 +301,7 @@ CMPIStatus stdi_handler(CMPIMethodMI *self, const CMPIContext *context, const CMPIResult *results, - const CMPIObjectPath *reference, + CMPIObjectPath *reference, const char *methodname, const CMPIArgs *argsin, CMPIArgs *argsout) @@ -305,13 +312,13 @@ if (STREQC(methodname, "TriggerIndications")) s = trigger(ctx, context); else if (STREQ(methodname, "RaiseIndication")) - s = raise(ctx, context, argsin); + s = raise(ctx, context, argsin, reference); else cu_statusf(ctx->brkr, &s, CMPI_RC_ERR_FAILED, "Invalid method"); - CMReturnDone(results); + CMReturnDone(results); return s; } @@ -370,8 +377,15 @@ CMPIArgs *argsout; op = CMNewObjectPath(broker, ns, type, &s); - if (s.rc != CMPI_RC_OK) + if ((op == NULL) || (s.rc != CMPI_RC_OK)) { + CU_DEBUG("Unable to create path for indication %s", + type); + cu_statusf(broker, &s, + CMPI_RC_ERR_FAILED, + "Unable to create path for indication %s", + type); return s; + } argsin = CMNewArgs(broker, &s); if (s.rc != CMPI_RC_OK) @@ -386,7 +400,7 @@ return s; CBInvokeMethod(broker, context, op, method, argsin, argsout, &s); - + return s; } diff -r d4beac1f62c6 -r a97431f4b91e std_indication.h --- a/std_indication.h Tue Sep 14 21:19:05 2010 -0400 +++ b/std_indication.h Wed Oct 06 09:31:05 2010 -0700 @@ -41,6 +41,7 @@ typedef CMPIStatus (*raise_indication_t)(const CMPIBroker *broker, const CMPIContext *ctx, + CMPIObjectPath *ref, const CMPIInstance *ind); typedef CMPIStatus (*trigger_indication_t)(const CMPIContext *ctx); @@ -134,7 +135,7 @@ CMPIStatus stdi_handler(CMPIMethodMI *self, const CMPIContext *context, const CMPIResult *results, - const CMPIObjectPath *reference, + CMPIObjectPath *reference, const char *methodname, const CMPIArgs *argsin, CMPIArgs *argsout);