
Dan Smith wrote:
JG> +static char *ind_type_to_name(int ind_type)
const.
JG> +{ JG> + char *ind_name = NULL;
const.
JG> + switch (ind_type) { JG> + case MIG_CREATED: JG> + ind_name = "ComputerSystemMigrationJobCreatedIndication"; JG> + break; JG> + case MIG_DELETED: JG> + ind_name = "ComputerSystemMigrationJobDeletedIndication"; JG> + break; JG> + case MIG_MODIFIED: JG> + ind_name = "ComputerSystemMigrationJobModifiedIndication"; JG> + break; JG> + } JG> + JG> + return ind_name; JG> +} JG> + JG> static bool raise_indication(const CMPIContext *context, JG> - const char *base_type, JG> + int ind_type, JG> const char *ns, JG> CMPIInstance *inst, JG> CMPIInstance *ind) JG> { JG> char *type; JG> CMPIStatus s; JG> + char *ind_name = NULL;
const.
I'm never gonna figure that out, am I?
JG> + JG> + ind_name = ind_type_to_name(ind_type);
JG> CU_DEBUG("Setting SourceInstance"); JG> CMSetProperty(ind, "SourceInstance", JG> (CMPIValue *)&inst, CMPI_instance);
JG> /* Seems like this shouldn't be hardcoded. */ JG> - type = get_typed_class("Xen", base_type); JG> - JG> + type = get_typed_class("Xen", ind_name); JG> + JG> + CU_DEBUG("stdi_raise"); JG> + CU_DEBUG("broker %p, context %p, type %s, ns %s, ind %p", JG> + _BROKER, context, type, ns, ind); JG> s = stdi_raise_indication(_BROKER, context, type, ns, ind); JG> + CU_DEBUG("raise done");
This debug looks a little overkill, likely related to your fight with sfcb.
Yea, that's a leftover. It can go.
JG> +static CMPIObjectPath *ref_from_job(struct migration_job *job, JG> + CMPIStatus *s) JG> +{ JG> + CMPIObjectPath *ref = NULL; JG> + JG> + ref = CMNewObjectPath(_BROKER, JG> + job->ref_ns, JG> + "Virt_MigrationJob", JG> + s); JG> + if (s->rc != CMPI_RC_OK) { JG> + CU_DEBUG("Failed to create job ref for update"); JG> + goto out; JG> + } JG> + JG> + CMSetNameSpace(ref, job->ref_ns); JG> + CMAddKey(ref, "InstanceID", (CMPIValue *)job->uuid, CMPI_chars); JG> + JG> + CU_DEBUG("Getting job instance %s", job->uuid); JG> + CU_DEBUG(" REF: %s", CMGetCharPtr(CMObjectPathToString(ref, NULL)));
This debug is a little misleading, isn't it? Doesn't look like you're about to do anything like "Getting job instance" right after this.
I'm the victim of a cut-paste there. That debug made sense when it was actually right before the code that got the instance, but when I separated the ref code from the inst code I totally missed it. I still like having the ref output there, though. It's a convenient double-check.
JG> - rc = raise_indication(job->context, JG> - "ComputerSystemMigrationIndication", JG> - job->ref_ns, JG> - inst, JG> - ind); JG> + rc = raise_indication(job->context, MIG_MODIFIED, job->ref_ns, JG> + inst, ind);
Bzzzt. I just called Heidi on this, so I'm not going to let you slide either... :)
Grumble, grumble... -- -Jay