mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-10-31 02:32:45 +00:00 
			
		
		
		
	Catch more exceptions.
This commit is contained in:
		| @@ -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() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user