Skip to content
Snippets Groups Projects
Commit be024151 authored by Patrick Jentsch's avatar Patrick Jentsch
Browse files

Don't save job filtered job lists in variables. Handle service not found error.

parent a86ae5c7
No related branches found
No related tags found
No related merge requests found
...@@ -10,11 +10,7 @@ def checkout_jobs(): ...@@ -10,11 +10,7 @@ def checkout_jobs():
with scheduler.app.app_context(): with scheduler.app.app_context():
client = docker.from_env() client = docker.from_env()
jobs = db.session.query(Job) jobs = db.session.query(Job)
submitted_jobs = jobs.filter_by(status='submitted').all() for job in jobs.filter_by(status='submitted').all():
foo_jobs = jobs.filter(Job.status != 'complete',
Job.status != 'failed',
Job.status != 'submitted').all()
for job in submitted_jobs:
_command = (job.service _command = (job.service
+ ' -i /files' + ' -i /files'
+ ' -o /files/output' + ' -o /files/output'
...@@ -65,13 +61,15 @@ def checkout_jobs(): ...@@ -65,13 +61,15 @@ def checkout_jobs():
restart_policy=_restart_policy restart_policy=_restart_policy
) )
job.status = 'scheduled' job.status = 'scheduled'
for job in foo_jobs: for job in jobs.filter(Job.status != 'complete',
''' Job.status != 'failed',
' TODO: Handle service not found error. Job.status != 'submitted').all():
''' try:
service = client.services.get(str(job.id)) service = client.services.get(str(job.id))
job.status = service.tasks()[0].get('Status').get('State') job.status = service.tasks()[0].get('Status').get('State')
if job.status == 'complete' or job.status == 'failed': if job.status == 'complete' or job.status == 'failed':
job.end_date = datetime.utcnow() job.end_date = datetime.utcnow()
service.remove() service.remove()
except docker.errors.NotFound:
job.status = 'failed'
db.session.commit() db.session.commit()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment