
# HG changeset patch # User Heidi Eckhart <heidieck@linux.vnet.ibm.com> # Date 1201773653 -3600 # Node ID aeff601277c84629df5ab6d61174409134692215 # Parent 277d2b8395e2460a355973309ed14c06e1ef9038 Device: getInstance returns with FAILED instead of NOT_FOUND Signed-off-by: Heidi Eckhart <heidieck@linux.vnet.ibm.com> diff -r 277d2b8395e2 -r aeff601277c8 src/Virt_Device.c --- a/src/Virt_Device.c Thu Jan 31 11:00:43 2008 +0100 +++ b/src/Virt_Device.c Thu Jan 31 11:00:53 2008 +0100 @@ -456,7 +456,7 @@ static CMPIStatus get_device(const CMPIO const CMPIResult *results, const char *devid) { - CMPIStatus s; + CMPIStatus s = {CMPI_RC_OK, NULL}; virConnectPtr conn; CMPIInstance *inst; const char *cn; @@ -476,14 +476,18 @@ static CMPIStatus get_device(const CMPIO devid, NAMESPACE(reference), device_type_from_classname(cn)); - if (inst) { - CMReturnInstance(results, inst); - CMSetStatus(&s, CMPI_RC_OK); - } else { + if (inst == NULL) { cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Unable to get device instance"); - } + CMPI_RC_ERR_NOT_FOUND, + "No such instance (%s)", devid); + goto out; + } + + s = cu_validate_ref(_BROKER, reference, inst); + if (s.rc != CMPI_RC_OK) + goto out; + + CMReturnInstance(results, inst); out: virConnectClose(conn);