Prefer docker image from command line over the one in the experiment

This commit is contained in:
allegroai 2020-03-12 18:35:49 +02:00
parent 757210d5b3
commit aa75b92e46

View File

@ -396,13 +396,14 @@ class Worker(ServiceCommandSection):
except Exception: except Exception:
pass pass
def run_one_task(self, queue, task_id, worker_args): def run_one_task(self, queue, task_id, worker_args, docker=None):
# type: (Text, Text, WorkerParams) -> () # type: (Text, Text, WorkerParams) -> ()
""" """
Run one task pulled from queue. Run one task pulled from queue.
:param queue: ID of queue that task was pulled from :param queue: ID of queue that task was pulled from
:param task_id: ID of task to run :param task_id: ID of task to run
:param worker_args: Worker command line arguments :param worker_args: Worker command line arguments
:param docker: Docker image in which the execution task will run
""" """
# start new process and execute task id # start new process and execute task id
print("Running task '{}'".format(task_id)) print("Running task '{}'".format(task_id))
@ -428,7 +429,7 @@ class Worker(ServiceCommandSection):
if self.docker_image_func: if self.docker_image_func:
try: try:
response = get_task(self._session, task_id, only_fields=["execution.docker_cmd"]) response = get_task(self._session, task_id, only_fields=["execution.docker_cmd"])
task_docker_cmd = response.execution.docker_cmd task_docker_cmd = docker or response.execution.docker_cmd
task_docker_cmd = task_docker_cmd.strip() if task_docker_cmd else None task_docker_cmd = task_docker_cmd.strip() if task_docker_cmd else None
except Exception: except Exception:
task_docker_cmd = None task_docker_cmd = None
@ -1096,7 +1097,7 @@ class Worker(ServiceCommandSection):
trace=self._session.trace, trace=self._session.trace,
) )
self.report_monitor(ResourceMonitor.StatusReport(task=task_id)) self.report_monitor(ResourceMonitor.StatusReport(task=task_id))
self.run_one_task(queue='', task_id=task_id, worker_args=worker_params) self.run_one_task(queue='', task_id=task_id, worker_args=worker_params, docker=docker)
self.stop_monitor() self.stop_monitor()
self._unregister() self._unregister()
return return