def stop(self): if not self._active: return self._active = False try: databand_run = self._run root_tr = self._task_run root_tr.finished_time = utcnow() if root_tr.task_run_state not in TaskRunState.finished_states(): for tr in databand_run.task_runs: if tr.task_run_state == TaskRunState.FAILED: root_tr.set_task_run_state( TaskRunState.UPSTREAM_FAILED) break else: root_tr.set_task_run_state(TaskRunState.SUCCESS) driver_tr = databand_run.driver_task.current_task_run if driver_tr.task_run_state not in TaskRunState.finished_states(): driver_tr.set_task_run_state(TaskRunState.SUCCESS) if root_tr.task_run_state == TaskRunState.SUCCESS: databand_run.set_run_state(RunState.SUCCESS) else: databand_run.set_run_state(RunState.FAILED) logger.info(databand_run.describe.run_banner_for_finished()) self._close_all_context_managers() except Exception as ex: _handle_inline_run_error("dbnd-tracking-shutdown")
def stop(self, finalize_run=True): if not self._active: return self._active = False try: # Required for scripts tracking which do not set the state to SUCCESS if finalize_run: databand_run = self._run root_tr = self._task_run root_tr.finished_time = utcnow() if root_tr.task_run_state not in TaskRunState.finished_states( ): for tr in databand_run.task_runs: if tr.task_run_state == TaskRunState.FAILED: root_tr.set_task_run_state( TaskRunState.UPSTREAM_FAILED) break else: # We can reach here in case of raising exception tracking stand alone python script if sys.exc_info()[1]: root_tr.set_task_run_state(TaskRunState.FAILED) else: root_tr.set_task_run_state(TaskRunState.SUCCESS) if root_tr.task_run_state == TaskRunState.SUCCESS: databand_run.set_run_state(RunState.SUCCESS) else: databand_run.set_run_state(RunState.FAILED) self._close_all_context_managers() except Exception: _handle_tracking_error("dbnd-tracking-shutdown")
def stop(self): if self._stoped: return try: databand_run = self._run root_tr = self._task_run root_tr.finished_time = utcnow() if root_tr.task_run_state not in TaskRunState.finished_states(): for tr in databand_run.task_runs: if tr.task_run_state == TaskRunState.FAILED: root_tr.set_task_run_state( TaskRunState.UPSTREAM_FAILED) databand_run.set_run_state(RunState.FAILED) break else: root_tr.set_task_run_state(TaskRunState.SUCCESS) if root_tr.task_run_state == TaskRunState.SUCCESS: databand_run.set_run_state(RunState.SUCCESS) else: databand_run.set_run_state(RunState.FAILED) logger.info(databand_run.describe.run_banner_for_finished()) self._close_all_context_managers() except: _handle_inline_error("dbnd-tracking-shutdown") finally: self._stoped = True
def stop(self): if not self._active: return self._active = False try: databand_run = self._run root_tr = self._task_run root_tr.finished_time = utcnow() if root_tr.task_run_state not in TaskRunState.finished_states(): for tr in databand_run.task_runs: if tr.task_run_state == TaskRunState.FAILED: root_tr.set_task_run_state(TaskRunState.UPSTREAM_FAILED) break else: root_tr.set_task_run_state(TaskRunState.SUCCESS) if root_tr.task_run_state == TaskRunState.SUCCESS: databand_run.set_run_state(RunState.SUCCESS) else: databand_run.set_run_state(RunState.FAILED) # todo: hard to control the console output if we printing to the console not from the console tracker if not CoreConfig.current().silence_tracking_mode: logger.info(databand_run.describe.run_banner_for_finished()) self._close_all_context_managers() except Exception as ex: _handle_tracking_error("dbnd-tracking-shutdown")