diff options
Diffstat (limited to 'src/python/openlmi')
-rw-r--r-- | src/python/openlmi/common/JobManager.py | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/src/python/openlmi/common/JobManager.py b/src/python/openlmi/common/JobManager.py index 5ed7830..f2d0c71 100644 --- a/src/python/openlmi/common/JobManager.py +++ b/src/python/openlmi/common/JobManager.py @@ -495,6 +495,23 @@ class Job(object): return inst @cmpi_logging.trace_method + def get_cim_error(self): + """ + Return job error as CIMInstance of CIM_Error. + :returns: CIMInstance of CIM_Error + """ + path = pywbem.CIMInstanceName( + classname="CIM_Error", + host=socket.gethostname(), + namespace=self.job_manager.namespace) + err = pywbem.CIMInstance( + classname="CIM_Error", + path=path) + err['CIMStatusCode'] = pywbem.Uint32(self.error[0]) + err['Message'] = self.error[1] + return err + + @cmpi_logging.trace_method def get_post_call(self): """ Return indication that describes the post-execution values of the @@ -524,15 +541,7 @@ class Job(object): if self.return_value is not None: inst['ReturnValue'] = str(self.return_value) if self.error is not None: - path = pywbem.CIMInstanceName( - classname="CIM_Error", - host=socket.gethostname(), - namespace=self.job_manager.namespace) - err = pywbem.CIMInstance( - classname="CIM_Error", - path=path) - err['CIMStatusCode'] = pywbem.Uint32(self.error[0]) - err['Message'] = self.error[1] + err = self.get_cim_error() inst['Error'] = [err, ] return inst @@ -1139,7 +1148,8 @@ class LMI_ConcreteJob(CIMProvider2): if job.error is None: errors = [] else: - errors = [job.error, ] + err = job.get_cim_error() + errors = [err, ] out_params = [ pywbem.CIMParameter( name='errors', @@ -1283,9 +1293,10 @@ class LMI_ConcreteJob(CIMProvider2): type='instance', is_array=False) else: + err = job.get_cim_error() error = pywbem.CIMParameter( name='error', - value=job.error, + value=err, type='instance') rval = self.Values.GetError.Success return (rval, [error]) |