summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRadek Novacek <rnovacek@redhat.com>2012-07-26 10:29:55 +0200
committerRadek Novacek <rnovacek@redhat.com>2012-07-26 10:29:55 +0200
commitb4cafb696bf10d46c4b26d4b4a1da15e5292eb9f (patch)
tree1d1d11b39a83e764c777f9c70ba6d3cfacbacc0e
parentc8a9bc4c56cb00a9402510cc9b1bd6f796e4a58e (diff)
downloadopenlmi-providers-b4cafb696bf10d46c4b26d4b4a1da15e5292eb9f.tar.gz
openlmi-providers-b4cafb696bf10d46c4b26d4b4a1da15e5292eb9f.tar.xz
openlmi-providers-b4cafb696bf10d46c4b26d4b4a1da15e5292eb9f.zip
service: Better error handling in provider
-rw-r--r--src/service/Linux_ServiceProvider.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/service/Linux_ServiceProvider.c b/src/service/Linux_ServiceProvider.c
index 7cbf54b..a0c8ccc 100644
--- a/src/service/Linux_ServiceProvider.c
+++ b/src/service/Linux_ServiceProvider.c
@@ -53,19 +53,18 @@ static CMPIStatus Linux_ServiceEnumInstances(
CMPIStatus st;
CMPIEnumeration* e;
if (!(e = _cb->bft->enumerateInstanceNames(_cb, cc, cop, &st))) {
- KReturn(ERR_FAILED);
+ KReturn2(_cb, ERR_FAILED, "Unable to enumerate instances of Linux_Service");
}
CMPIData cd;
while (CMHasNext(e, &st)) {
cd = CMGetNext(e, &st);
if (st.rc || cd.type != CMPI_ref) {
- KReturn(ERR_FAILED);
+ KReturn2(_cb, ERR_FAILED, "Enumerate instances didn't returned list of references");
}
-
CMPIInstance *in = _cb->bft->getInstance(_cb, cc, cd.value.ref, properties, &st);
if (st.rc) {
- KReturn(ERR_FAILED);
+ KReturn2(_cb, ERR_FAILED, "Unable to get instance of Linux_Service");
}
cr->ft->returnInstance(cr, in);
}
@@ -101,8 +100,11 @@ static CMPIStatus Linux_ServiceGetInstance(
}
KReturnInstance(cr, w);
+ Service_End_Enum(enumhdl);
+ KReturn(OK);
+ } else {
+ KReturn(ERR_NOT_FOUND);
}
- KReturn(OK);
}
static CMPIStatus Linux_ServiceCreateInstance(