Feature #7816
Updated by Peter Amstutz almost 9 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]]