Move api/job-tasks to api/crunch-scripts and add some explanation
[arvados.git] / doc / api / crunch-scripts.textile
1 ---
2 layout: default
3 navsection: api
4 title: Crunch scripts
5 navorder: 5
6 ---
7
8 h2. Crunch scripts
9
10 A crunch script is responsible for completing a single JobTask. In doing so, it will:
11
12 * (optionally) read some input from Keep
13 * (optionally) store some output in Keep
14 * (optionally) create some new JobTasks and add them to the current Job
15 * (optionally) update the current JobTask record with the "output" attribute set to a Keep locator or a fragment of a manifest
16 * update the current JobTask record with the "success" attribute set to True
17
18 A task's context is provided in environment variables.
19
20 table(table table-bordered table-condensed).
21 |Environment variable|Description|
22 |@JOB_UUID@|UUID of the current "Job":Jobs.html|
23 |@TASK_UUID@|UUID of the current "JobTask":JobTasks.html|
24 |@TASK_QSEQUENCE@|Number of tasks added to this job before this one (in other words, 0-based queue entry order)|
25 |@TASK_SEQUENCE@|Task execution sequence specified when task was created — generally not unique to this task|
26 |@ARVADOS_API_HOST@|Hostname and port number of API server|
27 |@ARVADOS_API_TOKEN@|Authentication token to use with API calls made by the current task|
28
29 The crunch script typically uses the Python SDK (or another suitable client library / SDK) to connect to the Arvados service and retrieve the rest of the details about the current job and task.