def load_workitem_result(self, case_name, task_cname, index): workitem_result_coll = self.__workitem_result_collection(case_name) result = workitem_result_coll.find_one( {"_id": "{}-{:08}".format(task_cname, index)}) if result is not None: return TaskResult.from_native(result) else: return TaskResult()
def load_workitem_result(self, case_name, task_cname, index): workitems_path = self.__workitems_path(case_name, task_cname) file_name = "{:08}-result.json".format(index) try: with open(os.path.join(workitems_path, file_name), "r") as f: return TaskResult.from_native(json.load(f)) except: return TaskResult()
def load_workitem_result(self, case_name, task_cname, index): workitem_result_coll = self.__workitem_result_collection(case_name) result = workitem_result_coll.find_one({"_id" : "{}-{:08}".format(task_cname, index)}) if result is not None: return TaskResult.from_native(result) else: return TaskResult()
def run(self): "Start the task execution. Remember to call this function at the end of the script !" self.logger.debug("Python {0}".format(sys.version)) self.logger.debug("Task {0} started on host {1}".format( self.id, self.hostname)) self._start_time = datetime.now() aborted = False exitcode = -1 exception = trace = None try: if self._main is not None: self.logger.debug("Running [main] ...") exitcode = self._main() if exitcode is None: exitcode = 0 else: exitcode = self.__default_main() self.logger.info("Elapsed time: {0}".format(self.elapsed_time())) except Abort as ex: self.logger.error("Task aborted with signal {0}".format( ex.args[0])) aborted = True import traceback trace = traceback.format_exc() except Exception as ex: self.logger.error("Exception on task {0}".format(self.id)) self.logger.exception(ex) exception = str(ex) import traceback trace = traceback.format_exc() result = TaskResult(hostname=self.hostname, start_time=self._start_time, end_time=datetime.now(), exitcode=exitcode, aborted=aborted, exception=exception, trace=trace) self._provider.save_workitem_result(self.case, self.task, self.index, result) self._provider.close() exit(exitcode)