Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
n_done = n_jobs_by_status["Done"]
# note: "Killed" jobs also get moved to "Failed" after a while
n_failed = n_jobs_by_status["Failed"]
n_in_final_state = n_done + n_failed
# The gbasf2 project is considered as failed if any of the jobs in it failed.
# However, we first try to reschedule thos jobs and only declare it as failed if the maximum number of retries
# for reschedulinhas been reached
if n_failed > 0:
self._on_failure_action()
if self.max_retries > 0 and self._reschedule_failed_jobs():
return JobStatus.running
return JobStatus.aborted
if n_in_final_state < n_jobs:
return JobStatus.running
# Require all jobs to be done for project success, any job failure results in a failed project
if n_done == n_jobs:
# download dataset only the first time that we return JobStatus.successful
if not self._project_had_been_successful:
self._on_first_success_action()
self._project_had_been_successful = True
return JobStatus.successful
raise RuntimeError("Could not determine JobStatus")
print(f"Jobs in gbasf2 project \"{self.gbasf2_project_name}\" at {time_string}: {job_status_string}")
self._n_jobs_by_status = n_jobs_by_status
n_jobs = len(job_status_dict)
n_done = n_jobs_by_status["Done"]
# note: "Killed" jobs also get moved to "Failed" after a while
n_failed = n_jobs_by_status["Failed"]
n_in_final_state = n_done + n_failed
# The gbasf2 project is considered as failed if any of the jobs in it failed.
# However, we first try to reschedule thos jobs and only declare it as failed if the maximum number of retries
# for reschedulinhas been reached
if n_failed > 0:
self._on_failure_action()
if self.max_retries > 0 and self._reschedule_failed_jobs():
return JobStatus.running
return JobStatus.aborted
if n_in_final_state < n_jobs:
return JobStatus.running
# Require all jobs to be done for project success, any job failure results in a failed project
if n_done == n_jobs:
# download dataset only the first time that we return JobStatus.successful
if not self._project_had_been_successful:
self._on_first_success_action()
self._project_had_been_successful = True
return JobStatus.successful
raise RuntimeError("Could not determine JobStatus")