diff options
author | Michal Minar <miminar@redhat.com> | 2013-07-09 12:47:20 +0200 |
---|---|---|
committer | Michal Minar <miminar@redhat.com> | 2013-07-23 13:52:34 +0200 |
commit | 2053c1b1986688525c2e3fa171e0135dda178d40 (patch) | |
tree | d79f518bab5449f7958f6d6e63136bb81464d9d6 /src | |
parent | 92dc6ef51b693a6f74f5252b1828b2fd82289d15 (diff) | |
download | openlmi-providers-2053c1b1986688525c2e3fa171e0135dda178d40.tar.gz openlmi-providers-2053c1b1986688525c2e3fa171e0135dda178d40.tar.xz openlmi-providers-2053c1b1986688525c2e3fa171e0135dda178d40.zip |
software: configurable timeout for job completion
Diffstat (limited to 'src')
-rw-r--r-- | src/software/lmi/software/yumdb/__init__.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/software/lmi/software/yumdb/__init__.py b/src/software/lmi/software/yumdb/__init__.py index b1e26d2..470aaf8 100644 --- a/src/software/lmi/software/yumdb/__init__.py +++ b/src/software/lmi/software/yumdb/__init__.py @@ -45,6 +45,7 @@ import yum from lmi.common import singletonmixin from lmi.common.IndicationManager import IndicationManager +from lmi.software.util import Configuration from lmi.software.util import cmpi_logging from lmi.software.util import get_signal_name from lmi.software.yumdb import jobs @@ -68,8 +69,8 @@ def log_reply_error(job, reply): # asynchronous job return if not isinstance(reply, jobs.YumJob): - raise TypeError('expected instance of jobs.YumJob for reply, not "%s"' % - reply.__class__.__name__) + raise TypeError('expected instance of jobs.YumJob for reply, not "%s"' + % reply.__class__.__name__) if reply.result == jobs.YumJob.RESULT_ERROR: LOG().error("%s failed with error %s: %s", job, reply.result_data[0].__name__, str(reply.result_data[1])) @@ -248,11 +249,12 @@ class YumDB(singletonmixin.Singleton): In case, that worker process terminated due to some error. Restart it and resend all the job requests again. """ + timeout = Configuration.get_instance().get_safe( + 'Jobs', 'WaitCompleteTimeout', float) while True: LOG().debug("[jobid=%d] blocking on downlink queue", job.jobid) try: - jobout = self._worker.downlink.get( - block=True, timeout=MAX_JOB_WAIT_TIME) + jobout = self._worker.downlink.get(block=True, timeout=timeout) if jobout.jobid == job.jobid: LOG().debug("[jobid=%d] received desired reply", job.jobid) with self._reply_lock: @@ -268,7 +270,7 @@ class YumDB(singletonmixin.Singleton): self._reply_cond.notifyAll() except TQueue.Empty: LOG().warn("[jobid=%d] wait for job reply timeout" - "(%d seconds) occured", job.jobid, MAX_JOB_WAIT_TIME) + "(%d seconds) occured", job.jobid, timeout) self._handle_reply_timeout(job) @cmpi_logging.trace_method |