diff options
author | Radek Novacek <rnovacek@redhat.com> | 2012-07-26 10:29:55 +0200 |
---|---|---|
committer | Radek Novacek <rnovacek@redhat.com> | 2012-07-26 10:29:55 +0200 |
commit | b4cafb696bf10d46c4b26d4b4a1da15e5292eb9f (patch) | |
tree | 1d1d11b39a83e764c777f9c70ba6d3cfacbacc0e | |
parent | c8a9bc4c56cb00a9402510cc9b1bd6f796e4a58e (diff) | |
download | openlmi-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.c | 12 |
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( |