Add detail about what script_version should look like.
[arvados.git] / doc / api / schema / Job.html.textile.liquid
1 ---
2 layout: default
3 navsection: api
4 navmenu: Schema
5 title: Job
6
7 ...
8
9 Applications submit compute jobs when:
10 * Provenance is important, i.e., it is worth recording how the output was produced; or
11 * Computation time is significant; or
12 * The job management features are convenient (failure detection/recovery, regression testing, etc).
13
14 h2. Methods
15
16 See "jobs":{{site.baseurl}}/api/methods/jobs.html
17
18 h2. Resource
19
20 Each job has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html:
21
22 table(table table-bordered table-condensed).
23 |_. Attribute|_. Type|_. Description|_. Notes|
24 |script|string|The filename of the job script.|This program will be invoked by Crunch for each job task. It is given as a path to an executable file, relative to the @/crunch_scripts@ directory in the Git tree specified by the _repository_ and _script_version_ attributes.|
25 |script_parameters|hash|The input parameters for the job.|Conventionally, one of the parameters is called @"input"@. Typically, some parameter values are collection UUIDs. Ultimately, though, the significance of parameters is left entirely up to the script itself.|
26 |repository|string|Git repository|Given as the name of a locally hosted git repository.|
27 |script_version|string|Git commit|During a **create** transaction, this is the Git branch, tag, or hash supplied by the client. Before the job starts, Arvados updates it to the full 40-character SHA-1 hash of the commit used by the job.
28 See "Script versions":#script_version below for more detail about acceptable ways to specify a commit.|
29 |cancelled_by_client_uuid|string|API client ID|Is null if job has not been cancelled|
30 |cancelled_by_user_uuid|string|Authenticated user ID|Is null if job has not been cancelled|
31 |cancelled_at|datetime|When job was cancelled|Is null if job has not been cancelled|
32 |started_at|datetime|When job started running|Is null if job has not [yet] started|
33 |finished_at|datetime|When job finished running|Is null if job has not [yet] finished|
34 |running|boolean|Whether the job is running||
35 |success|boolean|Whether the job indicated successful completion|Is null if job has not finished|
36 |is_locked_by_uuid|string|UUID of the user who has locked this job|Is null if job is not locked. The system user locks the job when starting the job, in order to prevent job attributes from being altered.|
37 |log|string|Collection UUID|Is null if the job has not finished. After the job runs, the given collection contains a text file with log messages provided by the @arv-crunch-job@ task scheduler as well as the standard error streams provided by the task processes.|
38 |tasks_summary|hash|Summary of task completion states.|Example: @{"done":0,"running":4,"todo":2,"failed":0}@|
39 |output|string|Collection UUID|Is null if the job has not finished.|
40 |nondeterministic|boolean|The job is expected to produce different results if run more than once.|If true, this job will not be considered as a candidate for automatic re-use when submitting subsequent identical jobs.|
41 |submit_id|string|Unique ID provided by client when job was submitted|Optional. This can be used by a client to make the "jobs.create":{{site.baseurl}}/api/methods/jobs.html#create method idempotent.|
42 |priority|string|||
43 |runtime_constraints|hash|Constraints that must be satisfied by the job/task scheduler in order to run the job.|See below.|
44
45 h3(#script_version). Script versions
46
47 The @script_version@ attribute is typically given as a branch, tag, or commit hash, but there are many more ways to specify a Git commit. The "specifying revisions" section of the "gitrevisions manual page":http://git-scm.com/docs/gitrevisions.html has a definitive list. Arvados accepts @script_version@ in any format listed there that names a single commit (not a tree, a blob, or a range of commits). However, some kinds of names can be expected to resolve differently in Arvados than they do in your local repository. For example, <code>HEAD@{1}</code> refers to the local reflog, and @origin/master@ typically refers to a remote branch: neither is likely to work as desired if given as a @script_version@.
48
49 h3. Runtime constraints
50
51 table(table table-bordered table-condensed).
52 |_. Key|_. Type|_. Description|_. Implemented|
53 |min_nodes|integer||&#10003;|
54 |max_nodes|integer|||
55 |max_tasks_per_node|integer|Maximum simultaneous tasks on a single node|&#10003;|
56 |min_ram_per_task|integer|Minimum real memory (KiB) per task||
57 |min_ram_per_node|integer|Minimum real memory (KiB) per node||