Feature #7816

Updated by Peter Amstutz almost 6 years ago

This program runs on a worker host. It is invoked by the Crunch2 dispatcher (possibly via slurm or ssh). Its responsibilities include:


(03:21:05 PM) tetron_: (3) run the thing specified by "command"
(03:21:20 PM) tetron_: run "command" in the container, I should say
(03:21:47 PM) tetron_: (4) update the container record when done (need to add at least an "exit code" field)
(03:22:26 PM) tetron_: (5) log the activity of the executor and the container (separately)
(03:23:25 PM) tetron_: (6) test all the above functionality
(03:24:31 PM) tetron_: not includes: mount points, stats, runtime constraints, error handling (?)

Retrieve the Container record with the given UUID
# * Load the specified docker image from Keep
# * Translate the Container specification to a "docker run" command line or invoke the container via Docker SDK
# * Forward the executor's logging and container's stdout, stderr to the Arvados API as Log entries and to a collection
# * Update the Container record to reflect the actual state of the container (progress/completion), exit code, logs
# * Testing for all above features

Not included in this story:

* Start arv-mount on the host (if required by the container) and shutting it down when the container exits (#8015)
* Impose runtime constraints, using "docker run" arguments and other facilities (#8017)
* Report resources used by the container while it runs (presumably using crunchstat) (#8016)
* Save the container's output in the Container record (except logs) (#8020)
* log throttling (#8019)
* retry failure (#8018)

See [[Containers API]]