def _run_task_once(self, task): if task.result != None and task.result.status != TaskResult.PENDING: return task.job = self.jobresult.job task.result = self.jobresult.get_task(str(task.__class__), True) task.result.stage = task.stage task.dependencies_resolved = True for dependency in task.dependencies: depresolved = False for deptask in JobDispatcher.tasks: if not dependency in deptask.provides: continue self._run_task_once(deptask) if deptask.result.status == TaskResult.PASSED: depresolved = True if not depresolved: task.dependencies_resolved = False print "Running task '%s' (type %s)" % \ (task.description, task.__class__) cwd = os.getcwd() Utility.rearm_watchdog(1800) task._run() Utility.rearm_watchdog(0) os.chdir(cwd) print "Task result: %s" % (task.result.status) JobSession.object_session(self.jobresult).commit()