mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-11-15 01:05:42 +00:00
Catch more exceptions.
This commit is contained in:
parent
be0241519d
commit
3a6fdaa24b
@ -42,25 +42,22 @@ def checkout_jobs():
|
||||
mem_reservation=job.mem_mb * (10 ** 6)
|
||||
)
|
||||
_restart_policy = docker.types.RestartPolicy(condition='none')
|
||||
'''
|
||||
' Create the service with the prepared values.
|
||||
'
|
||||
' Note: A service reserves hardware ressources. In case no worker
|
||||
' node has the required ressources available (not reserved),
|
||||
' the service gets queued by the Docker engine until a node
|
||||
' is able to meet the requirements.
|
||||
'''
|
||||
service = client.services.create(
|
||||
_image,
|
||||
command=_command,
|
||||
constraints=_constraints,
|
||||
labels=_labels,
|
||||
mounts=_mounts,
|
||||
name=_name,
|
||||
resources=_resources,
|
||||
restart_policy=_restart_policy
|
||||
)
|
||||
job.status = 'scheduled'
|
||||
try:
|
||||
service = client.services.create(
|
||||
_image,
|
||||
command=_command,
|
||||
constraints=_constraints,
|
||||
labels=_labels,
|
||||
mounts=_mounts,
|
||||
name=_name,
|
||||
resources=_resources,
|
||||
restart_policy=_restart_policy
|
||||
)
|
||||
job.status = 'scheduled'
|
||||
except docker.errors.APIError:
|
||||
job.status = 'failed'
|
||||
print('[ERROR] {}: client.services.create raised APIError'
|
||||
.format(job.id))
|
||||
for job in jobs.filter(Job.status != 'complete',
|
||||
Job.status != 'failed',
|
||||
Job.status != 'submitted').all():
|
||||
@ -70,6 +67,16 @@ def checkout_jobs():
|
||||
if job.status == 'complete' or job.status == 'failed':
|
||||
job.end_date = datetime.utcnow()
|
||||
service.remove()
|
||||
except docker.errors.APIError:
|
||||
job.status = 'failed'
|
||||
print('[ERROR] {}: client.services.get raised APIError'
|
||||
.format(job.id))
|
||||
except docker.errors.NotFound:
|
||||
job.status = 'failed'
|
||||
print('[ERROR] {}: client.services.get raised NotFound'
|
||||
.format(job.id))
|
||||
except docker.errors.InvalidVersion:
|
||||
job.status = 'failed'
|
||||
print('[ERROR] {}: client.services.get raised InvalidVersion'
|
||||
.format(job.id))
|
||||
db.session.commit()
|
||||
|
Loading…
Reference in New Issue
Block a user