def abort_wids(sids: List[str], wait=True): cm = ConfigManager(db_path=None) for sid in sids: try: row = cm.get_row_for_submission_id_or_path(sid) WorkflowManager.mark_aborted(row.execution_dir, row.submission_id) except Exception as e: Logger.critical(f"Couldn't abort '{sid}': " + str(e)) raise e if wait: Logger.info( "Waiting until completely aborted. This can take up to a few minutes to complete." ) for sid in sids: try: wm = ConfigManager.get_from_path_or_submission_lazy( sid, readonly=True) check_attempts = 0 while not wm.database.get_uncached_status().is_in_final_state( ): time.sleep(1) check_attempts += 1 if check_attempts % 5 == 0: Logger.info( f"Still waiting for '{sid}' to move to final state" ) except Exception as e: Logger.critical( f"Couldn't watch '{sid}' until aborted: {str(e)}") Logger.info(f"Jobs {' '.join(sids)} should be completely aborted now")
def abort_wids(wids: List[str]): for wid in wids: try: row = ConfigManager.manager().get_lazy_db_connection().get_by_wid( wid) if row: WorkflowManager.mark_aborted(row.outputdir, row.wid) else: WorkflowManager.mark_aborted(wid, None) except Exception as e: Logger.critical(f"Couldn't abort '{wid}': " + str(e)) raise e