v6 Job Services¶
These services provide access to information about “all”, “currently running” and “previously finished” jobs.
v6 Job List¶
Example GET /v6/jobs/ API call
Request: GET http://.../v6/jobs/?batch_id=1
Response: 200 OK
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 3,
"job_type": {
"id": 1,
"name": "scale-ingest",
"version": "1.0.0",
"title": "Scale Ingest",
"description": "Ingests a source file into a workspace",
"is_active": true,
"is_system": true,
"is_paused": false,
"is_published": false,
"icon_code": "f013",
"unmet_resources": "chocolate,vanilla"
},
"job_type_rev": {
"id": 5,
"job_type": {
"id": 1
},
"revision_num": 1
},
"event": {
"id": 3,
"type": "STRIKE_TRANSFER",
"occurred": "2015-08-28T17:57:24.261Z"
},
"recipe": {
"id": 1,
"recipe_type": {
"id": 208,
"name": "my-recipe-type",
"title": "My Recipe Type",
"description": "My Recipe Type Description",
"revision_num": 1
}
"recipe_type_rev": {
"id": 1
},
"event": {
"id": 1
}
},
"batch": {
"id": 1,
"title": "My Batch",
"description": "My batch of recipes",
"created": "2015-08-28T17:55:41.005Z"
},
"is_superseded": false,
"superseded_job": null,
"status": "COMPLETED",
"node": {
"id": 1,
"hostname": "my-host.example.domain"
},
"error": null,
"num_exes": 1,
"input_file_size": 64,
"input_files": {
"INPUT_FILE": ["my-file.file"]
},
"source_started": "2015-08-28T17:55:41.005Z",
"source_ended": "2015-08-28T17:56:41.005Z",
"source_sensor_class": "classA",
"source_sensor": "1",
"source_collection": "12345",
"source_task": "my-task",
"created": "2015-08-28T17:55:41.005Z",
"queued": "2015-08-28T17:56:41.005Z",
"started": "2015-08-28T17:57:41.005Z",
"ended": "2015-08-28T17:58:41.005Z",
"last_status_change": "2015-08-28T17:58:45.906Z",
"superseded": null,
"last_modified": "2015-08-28T17:58:46.001Z"
}
]
}
| Job List | |||||
|---|---|---|---|---|---|
| Returns a list of all jobs. | |||||
| GET /v6/jobs/ | |||||
| Query Parameters | |||||
| page | Integer | Optional | The page of the results to return. Defaults to 1. | ||
| page_size | Integer | Optional | The size of the page to use for pagination of results. Defaults to 100, and can be anywhere from 1-1000. | ||
| started | ISO-8601 Datetime | Optional | The start of the time range to query. Supports the ISO-8601 date/time format, (ex: 2015-01-01T00:00:00Z). Supports the ISO-8601 duration format, (ex: PT3H0M0S). | ||
| ended | ISO-8601 Datetime | Optional | End of the time range to query, defaults to the current time. Supports the ISO-8601 date/time format, (ex: 2015-01-01T00:00:00Z). Supports the ISO-8601 duration format, (ex: PT3H0M0S). | ||
| source_started | ISO-8601 Datetime | Optional | The start of the source file time range to query. Supports the ISO-8601 date/time format, (ex: 2015-01-01T00:00:00Z). Supports the ISO-8601 duration format, (ex: PT3H0M0S). | ||
| source_ended | ISO-8601 Datetime | Optional | End of the source file time range to query, default is current time. Supports the ISO-8601 date/time format, (ex: 2015-01-01T00:00:00Z). Supports the ISO-8601 duration format, (ex: PT3H0M0S). | ||
| source_sensor_class | String | Optional | Return only jobs for the given source sensor class Duplicate it to filter by multiple values. | ||
| source_sensor | String | Optional | Return only jobs for the given source sensor Duplicate it to filter by multiple values. | ||
| source_collection | String | Optional | Return only jobs for the given source collection Duplicate it to filter by multiple values. | ||
| source_tasks | String | Optional | Return only jobs for the given source task Duplicate it to filter by multiple values. | ||
| order | String | Optional | One or more fields to use when ordering the results. Duplicate it to multi-sort, (ex: order=name&order=version). Prefix fields with a dash to reverse the sort, (ex: order=-name). | ||
| status | String | Optional | Return only jobs with a status matching this string. Choices: [QUEUED, RUNNING, FAILED, COMPLETED, CANCELED]. Duplicate it to filter by multiple values. | ||
| job_id | Integer | Optional | Return only jobs with a given identifier. Duplicate it to filter by multiple values. | ||
| job_type_id | Integer | Optional | Return only jobs with a given job type identifier. Duplicate it to filter by multiple values. | ||
| job_type_name | String | Optional | Return only jobs with a given job type name. Duplicate it to filter by multiple values. | ||
| batch_id | Integer | Optional | Return only jobs associated with the given batch identifier. Duplicate it to filter by multiple values. | ||
| recipe_id | Integer | Optional | Return only jobs associated with the given recipe identifier. Duplicate it to filter by multiple values. | ||
| error_category | String | Optional | Return only jobs that failed due to an error with a given category. Choices: [SYSTEM, DATA, ALGORITHM]. Duplicate it to filter by multiple values. | ||
| error_id | Integer | Optional | Return only jobs that failed with this error Duplicate it to filter by multiple values. | ||
| is_superseded | Boolean | Optional | Return only jobs matching is_superseded flag. Defaults to all jobs. | ||
| Successful Response | |||||
| Status | 200 OK | ||||
| Content Type | application/json | ||||
| JSON Fields | |||||
| count | Integer | The total number of results that match the query parameters. | |||
| next | URL | A URL to the next page of results. | |||
| previous | URL | A URL to the previous page of results. | |||
| results | Array | List of result JSON objects that match the query parameters. | |||
| .id | Integer | The unique identifier of the model. Can be passed to the details API call. (See Job Details) | |||
| .job_type | JSON Object | The job type that is associated with the job. (See Job Type Details) | |||
| .job_type_rev | JSON Object | The job type revision that is associated with the job. This represents the definition at the time the job was scheduled. (See Job Type Revision Details) | |||
| .event | JSON Object | The trigger event that is associated with the job. | |||
| .recipe | JSON Object | The recipe instance associated with this job. (See Recipe Details) | |||
| .batch | JSON Object | The batch instance associated with this job (See Batch Details) | |||
| .is_superseded | Boolean | Whether this job has been replaced and is now obsolete. | |||
| .superseded_job | JSON Object | The previous job in the chain that was superseded by this job. (See Job Details) | |||
| .status | String | The current status of the job. Choices: [QUEUED, RUNNING, FAILED, COMPLETED, CANCELED]. | |||
| .node | JSON Object | The node that the job is/was running on. | |||
| .error | JSON Object | The error that is associated with the job. (See Error Details) | |||
| .num_exes | Integer | The number of executions this job has had. | |||
| .input_file_size | Decimal | The amount of disk space in MiB required for input files for this job. | |||
| .input_files | JSON Object | The input files associated with the job. | |||
| .source_started | ISO-8601 Datetime | When collection of the source file started. | |||
| .source_ended | ISO-8601 Datetime | When collection of the source file ended. | |||
| .source_sensor_class | String | The class of sensor used to produce the source file. | |||
| .source_sensor | String | The specific identifier of the sensor used to produce the source file. | |||
| .source_collection | String | The collection of the source file. | |||
| .source_task | String | The task that produced the source file. | |||
| .created | ISO-8601 Datetime | When the associated database model was initially created. | |||
| .queued | ISO-8601 Datetime | When the job was added to the queue to be run when resources are available. | |||
| .started | ISO-8601 Datetime | When the job started running. | |||
| .ended | ISO-8601 Datetime | When the job stopped running, which could be due to success or failure. | |||
| .last_status_change | ISO-8601 Datetime | When the status of the job was last changed. | |||
| .superseded | ISO-8601 Datetime | When the the job became superseded by another job. | |||
| .last_modified | ISO-8601 Datetime | When the associated database model was last saved. | |||
v6 Job Queue new Job¶
Example POST /v6/jobs/ API call
Request: POST http://.../v6/jobs/
{
"input": :ref:`rest_v6_data_data`,
"job_type_id": 1,
"configuration": :ref:`rest_v6_job_type_configuration`
}
Response: 201 Created Headers: Location http://.../v6/job/1/
{
"id": 1,
"job_type": {
"id": 1,
"name": "test-job",
"version": "1.0.0",
"title": null,
"description": null,
"is_active": true,
"is_paused": false,
"is_system": true,
"is_published": false,
"icon_code": null,
"unmet_resources": "chocolate,vanilla"
},
"status": "QUEUED",
"job_type_rev": {
"id": 1,
"job_type": {
"id": 1,
"name": "test-job",
"version": "1.0.0",
"title": null,
"description": null,
"is_active": true,
"is_paused": false,
"is_system": true,
"is_published": false,
"icon_code": null,
"unmet_resources": "chocolate,vanilla"
},
"revision_num": 1,
"docker_image": "fake",
"created": "2018-11-01T13:30:22.485611Z",
"manifest": {
"job": {
"maintainer": {
"name": "John Doe",
"email": "jdoe@example.com"
},
"jobVersion": "1.0.0",
"title": "Test Job",
"description": "This is a test job",
"timeout": 10,
"interface": {
"inputs": {
"files": [
{
"name": "input_a"
}
]
},
"command": "",
"outputs": {
"files": [
{
"pattern": "*.png",
"multiple": true,
"name": "output_a"
}
]
}
},
"packageVersion": "1.0.0",
"name": "test-job"
},
"seedVersion": "1.0.0"
}
},
"event": {
"id": 1,
"type": "USER",
"occurred": "2018-11-01T13:30:22.522060Z"
},
"recipe": null,
"batch": null,
"is_superseded": false,
"superseded_job": null,
"node": null,
"error": null,
"num_exes": 1,
"input_file_size": 1.0,
"input_files": {
"input_a": ["my-file.file"]
},
"source_started": null,
"source_ended": null,
"created": "2018-11-01T13:30:22.530638Z",
"queued": "2018-11-01T13:30:22.593052Z",
"started": null,
"ended": null,
"last_status_change": "2018-11-01T13:30:22.593052Z",
"superseded": null,
"last_modified": "2018-11-01T13:30:23.026289Z",
"superseded_by_job": null,
"resources": {
"resources": {
"mem": 128.0,
"gpus": 0.0,
"disk": 1.0,
"cpus": 0.25
}
},
"execution": null,
"input": {
"files": {
"input_a": [
1
]
},
"json": {}
},
"output": {
"files": {},
"json": {}
}
}
| Queue New Job | |||
|---|---|---|---|
| Creates a new job and places it onto the queue | |||
| POST /v6/job/ | |||
| Content Type | application/json | ||
| JSON Fields | |||
| job_type_id | Integer | Required | The ID of the job type for the new job |
| input | JSON Object | Required | JSON defining the data to run the job on. See Data JSON |
| configuration | JSON Object | optional | JSON defining the data to run the job on See Job Type Configuration |
| Successful Response | |||
| Status | 201 CREATED | ||
| Location | URL pointing to the details for the newly queued job | ||
| Content Type | application/json | ||
| Body | JSON containing the details of the newly queued job, see Job Details | ||
v6 Job Details¶
Example GET /v6/jobs/{id}/ API call
Request: GET http://.../v6/jobs/{id}/
Response: 200 OK
{
"id": 3,
"job_type": {
"id": 1,
"name": "scale-ingest",
"version": "1.0.0",
"title": "Scale Ingest",
"description": "Ingests a source file into a workspace",
"is_active": true,
"is_paused": false,
"is_system": true,
"is_published": false,
"icon_code": "f013",
"unmet_resources": "chocolate,vanilla"
},
"job_type_rev": {
"id": 5,
"job_type": {
"name": "scale-ingest",
"version": "1.0.0",
"title": "Scale Ingest",
"description": "Ingests a source file into a workspace",
"icon_code": "f013",
"num_versions": 1,
"latest_version": "1.0.0"
},
"revision_num": 1,
"docker_image": "scale-ingest-1.0.0-seed:1.0.0",
"created": "2015-08-28T17:55:41.005Z",
"manifest": {...}
},
"event": {
"id": 3,
"type": "STRIKE_TRANSFER",
"occurred": "2015-08-28T17:57:24.261Z"
},
"recipe": {
"id": 1,
"recipe_type": {
"id": 208,
"name": "my-recipe-type",
"title": "My Recipe Type",
"description": "My Recipe Type Description",
"revision_num": 1
}
"recipe_type_rev": {
"id": 1
},
"event": {
"id": 1
}
},
"batch": {
"id": 1,
"title": "My Batch",
"description": "My batch of recipes",
"created": "2015-08-28T17:55:41.005Z"
},
"is_superseded": false,
"superseded_job": null,
"superseded_by_job": null,
"status": "COMPLETED",
"node": {
"id": 1,
"hostname": "my-host.example.domain"
},
"resources": {
"resources": {
"mem": 128.0,
"disk": 11.0,
"cpus": 1.0
}
},
"error": null,
"max_tries": 3,
"num_exes": 1,
"execution": {
"id": 3,
"status": "COMPLETED",
"exe_num": 1,
"cluster_id": "scale_job_1234_263x0",
"created": "2015-08-28T17:57:41.033Z",
"queued": "2015-08-28T17:57:41.010Z",
"started": "2015-08-28T17:57:44.494Z",
"ended": "2015-08-28T17:57:45.906Z",
"job": {
"id": 3,
},
"node": {
"id": 1,
"hostname": "machine.com"
},
"error": null,
"job_type": {
"id": 1,
"name": "scale-ingest",
"version": "1.0.0",
"title": "Scale Ingest",
"description": "Ingests a source file into a workspace",
"is_active": true,
"is_paused": false,
"is_system": true,
"is_published": false,
"icon_code": "f013",
"unmet_resources": "chocolate,vanilla"
},
"timeout": 1800,
"input_file_size": 64.0,
"task_results": null,
"resources": {
"resources": {
"mem": 128.0,
"disk": 11.0,
"cpus": 1.0
}
},
"configuration": {
"tasks": [...],
},
"output": {
"output_data": [
{
"name": "output_file",
"file_id": 3
}
]
}
},
"input": {
"files": {'input_a': [1234], 'input_b': [1235, 1236]},
"json": {'input_c': 999, 'input_d': {'hello'}}
},
"input_file_size": 64,
"input_files": {
"INPUT_FILE": ["my-file.file"]
},
"output": {
"files": {'output_a': [456]},
"json": {'output_b': 'success'}
},
"source_started": "2015-08-28T17:55:41.005Z",
"source_ended": "2015-08-28T17:56:41.005Z",
"source_sensor_class": "classA",
"source_sensor": "1",
"source_collection": "12345",
"source_task": "my-task",
"created": "2015-08-28T17:55:41.005Z",
"queued": "2015-08-28T17:56:41.005Z",
"started": "2015-08-28T17:57:41.005Z",
"ended": "2015-08-28T17:58:41.005Z",
"last_status_change": "2015-08-28T17:58:45.906Z",
"superseded": null,
"last_modified": "2015-08-28T17:58:46.001Z",
"configuration": {
"mounts": {},
"priority": 50,
"output_workspaces": {
"default": "defaultworkspace",
"outputs": {}
},
"settings": {}
}
}
| Job Details | ||||
|---|---|---|---|---|
| Returns a specific job and all its related model information. | ||||
|
||||
| Successful Response | ||||
| Status | 200 OK | |||
| Content Type | application/json | |||
| JSON Fields | ||||
| id | Integer | The unique identifier of the model. | ||
| job_type | JSON Object | The job type that is associated with the job. (See Job Type Details) | ||
| job_type_rev | JSON Object | The job type revision that is associated with the job. This represents the definition at the time the job was scheduled. (See Job Type Revision Details) | ||
| event | JSON Object | The trigger event that is associated with the job. | ||
| recipe | JSON Object | The recipe instance associated with this job. (See Recipe Details) | ||
| batch | JSON Object | The batch instance associated with this job (See Batch Details) | ||
| is_superseded | Boolean | Whether this job has been replaced and is now obsolete. | ||
| superseded_job | JSON Object | The previous job in the chain that was superseded by this job. (See Job Details) | ||
| superseded_by_job | JSON Object | The next job in the chain that superseded this job. (See Job Details) | ||
| status | String | The current status of the job. Choices: [QUEUED, RUNNING, FAILED, COMPLETED, CANCELED]. | ||
| node | JSON Object | The node that the job is/was running on. | ||
| resources | JSON Object | JSON description describing the resources required for this job. | ||
| error | JSON Object | The error that is associated with the job. (See Error Details) | ||
| max_tries | Integer | Number of times this job will be automatically retried after an error. | ||
| num_exes | Integer | The number of executions this job has had. | ||
| execution | JSON Object | The most recent execution of the job. (See Job Execution Details) | ||
| input | JSON Object | The input data for the job. (See Data) | ||
| input_file_size | Decimal | The amount of disk space in MiB required for input files for this job. | ||||
| input_files | JSON Object | The input files associated with the job. | ||||
| output | JSON Object | The output data for the job. (See Data) | ||
| source_started | ISO-8601 Datetime | When collection of the source file started. | ||
| source_ended | ISO-8601 Datetime | When collection of the source file ended. | ||
| source_sensor_class | String | The class of sensor used to produce the source file. | ||
| source_sensor | String | The specific identifier of the sensor used to produce the source file. | ||
| source_collection | String | The collection of the source file. | ||
| source_task | String | The task that produced the source file. | ||
| created | ISO-8601 Datetime | When the associated database model was initially created. | ||
| queued | ISO-8601 Datetime | When the job was added to the queue to be run when resources are available. | ||
| started | ISO-8601 Datetime | When the job started running. | ||
| ended | ISO-8601 Datetime | When the job stopped running, which could be due to success or failure. | ||
| last_status_change | ISO-8601 Datetime | When the status of the job was last changed. | ||
| superseded | ISO-8601 Datetime | When the the job became superseded by another job. | ||
| last_modified | ISO-8601 Datetime | When the associated database model was last saved. | ||
| configuration | JSON Object | JSON description of the configuration for running the job (See Job Type Configuration JSON) | ||
v6 Job Input File List¶
Example GET /v6/jobs/{id}/input_files/ API call
Request: GET http://.../v6/jobs/{id}/input_files/
Response: 200 OK
See Scale Files for an example response
| Job Input Files | |||
|---|---|---|---|
| Returns detailed information about input files associated with a given Job ID. | |||
|
|||
| Query Parameters | |||
| page | Integer | Optional | The page of the results to return. Defaults to 1. |
| page_size | Integer | Optional | The size of the page to use for pagination of results. Defaults to 100, and can be anywhere from 1-1000. |
| started | ISO-8601 Datetime | Optional | The start of the time range to query. Supports the ISO-8601 date/time format, (ex: 2015-01-01T00:00:00Z). Supports the ISO-8601 duration format, (ex: PT3H0M0S). |
| ended | ISO-8601 Datetime | Optional | The end of the time range to query. Supports the ISO-8601 date/time format, (ex: 2015-01-01T00:00:00Z). Supports the ISO-8601 duration format, (ex: PT3H0M0S). |
| time_field | String | Optional | Indicates the time field(s) that started and ended will use for time filtering. Valid values are:
The default value is last_modified. |
| file_name | String | Optional | Returns only input files with this file name. |
| job_input | String | Optional | Returns files for this job input. |
| Successful Response | |||
| Status | 200 OK | ||
| Content Type | application/json | ||
| JSON Fields | |||
| count | Integer | The total number of results that match the query parameters. | |
| next | URL | A URL to the next page of results. | |
| previous | URL | A URL to the previous page of results. | |
| results | Array | List of result JSON objects that match the query parameters. (See Scale Files) | |
v6 Job Executions List¶
Example GET /v6/jobs/{id}/executions/ API call
Request: GET http://.../v6/jobs/{id}/executions/
Response: 200 OK
{ "count": 57, "next": null, "previous": null, "results": [ { "id": 3, "status": "COMPLETED", "exe_num": 1, "cluster_id": "scale_job_1234_263x0", "created": "2015-08-28T17:57:41.033Z", "queued": "2015-08-28T17:57:41.010Z", "started": "2015-08-28T17:57:44.494Z", "ended": "2015-08-28T17:57:45.906Z", "job": { "id": 3 }, "node": { "id": 1, "hostname": "machine.com" }, "error": null, "job_type": { "id": 1, "name": "scale-ingest", "version": "1.0.0", "title": "Scale Ingest", "description": "Ingests a source file into a workspace", "is_active": true, "is_paused": false, "is_system": true, "is_published": false, "icon_code": "f013", "unmet_resources": "chocolate,vanilla" }, "timeout": 1800, "input_file_size": 10 } ] }
| Job Executions List | |||
|---|---|---|---|
| Returns a list of job executions associated with a given Job ID. Returned job executions are ordered by exe_num descending (most recent first) | |||
|
|||
| Query Parameters | |||
| page | Integer | Optional | The page of the results to return. Defaults to 1. |
| page_size | Integer | Optional | The size of the page to use for pagination of results. Defaults to 100, and can be anywhere from 1-1000. |
| status | String | Optional | Return only executions with a status matching this string. Choices: [RUNNING, FAILED, COMPLETED, CANCELED]. Duplicate it to filter by multiple values. |
| node_id | Integer | Optional | Return only executions that ran on a given node. Duplicate it to filter by multiple values. |
| error_id | Integer | Optional | Return only executions that had the given error. Duplicate it to filter by multiple values. |
| error_category | Integer | Optional | Return only executions that had an error in the given category. Duplicate it to filter by multiple values. |
| Successful Response | |||
| Status | 200 OK | ||
| Content Type | application/json | ||
| JSON Fields | |||
| count | Integer | The total number of results that match the query parameters. | |
| next | URL | A URL to the next page of results. | |
| previous | URL | A URL to the previous page of results. | |
| results | Array | List of result JSON objects that match the query parameters. | |
| .id | Integer | The unique identifier of the model. Can be passed to the details API call. (See Job Execution Details) | |
| .status | String | The status of the job execution. Choices: [RUNNING, FAILED, COMPLETED, CANCELED]. | |
| .exe_num | Integer | The unique job execution number for the job identifer. | |
| .cluster_id | String | The Scale cluster identifier. | |
| .created | ISO-8601 Datetime | When the associated database model was initially created. | |
| .queued | ISO-8601 Datetime | When the job was added to the queue for this run and went to QUEUED status. | |
| .started | ISO-8601 Datetime | When the job was scheduled and went to RUNNING status. | |
| .ended | ISO-8601 Datetime | When the job execution ended. (FAILED, COMPLETED, or CANCELED) | |
| .job | JSON Object | The job that is associated with the execution. (See Job Details) | |
| .node | JSON Object | The node that ran the execution. (See Node Details) | |
| .error | JSON Object | The last error that was recorded for the execution. (See Error Details) | |
| .job_type | JSON Object | The job type that is associated with the execution. (See Job Type Details) | |
| .timeout | Integer | The maximum amount of time this job can run before being killed (in seconds). | |
| .input_file_size | Float | The total amount of disk space in MiB for all input files for this execution. | |
v6 Job Execution Details¶
Example GET /v6/jobs/{id}/executions/{exe_num}/ API call
Request: GET http://.../v6/jobs/{id}/executions/{exe_num}/
Response: 200 OK
{ "id": 3, "status": "COMPLETED", "exe_num": 1, "cluster_id": "scale_job_1234_263x0", "created": "2015-08-28T17:57:41.033Z", "queued": "2015-08-28T17:57:41.010Z", "started": "2015-08-28T17:57:44.494Z", "ended": "2015-08-28T17:57:45.906Z", "job": { "id": 3 }, "node": { "id": 1, "hostname": "machine.com" }, "error": null, "job_type": { "id": 1, "name": "scale-ingest", "version": "1.0.0", "title": "Scale Ingest", "description": "Ingests a source file into a workspace", "is_active": true, "is_paused": false, "is_system": true, "is_published": false, "icon_code": "f013", "unmet_resources": "chocolate,vanilla" }, "timeout": 1800, "input_file_size": 10, "task_results": null, "resources": { "resources": { "mem": 128, "disk": 11, "cpus": 1 } }, "configuration": { <architecture_jobs_exe_configuration> }, "output": { "output_data": [ { "name": "output_file", "file_id": 3 } ] } }
| Job Execution Details | ||
|---|---|---|
| Returns a specific job execution and all its related model information including job, node, environment, and results. | ||
|
||
| Successful Response | ||
| Status | 200 OK | |
| Content Type | application/json | |
| JSON Fields | ||
| id | Integer | The unique identifier of the model. Can be passed to the details API call. (See Job Execution Details) |
| status | String | The status of the job execution. Choices: [RUNNING, FAILED, COMPLETED, CANCELED]. |
| exe_num | Integer | The unique job execution number for the job identifer. |
| cluster_id | String | The Scale cluster identifier. |
| created | ISO-8601 Datetime | When the associated database model was initially created. |
| queued | ISO-8601 Datetime | When the job was added to the queue for this run and went to QUEUED status. |
| started | ISO-8601 Datetime | When the job was scheduled and went to RUNNING status. |
| ended | ISO-8601 Datetime | When the job execution ended. (FAILED, COMPLETED, or CANCELED) |
| job | JSON Object | The job that is associated with the execution. (See Job Details) |
| node | JSON Object | The node that ran the execution. (See Node Details) |
| error | JSON Object | The last error that was recorded for the execution. (See Error Details) |
| job_type | JSON Object | The job type that is associated with the execution. (See Job Type Details) |
| timeout | Integer | The maximum amount of time this job can run before being killed (in seconds). |
| input_file_size | Float | The total amount of disk space in MiB for all input files for this execution. |
| task_results | JSON Object | JSON description of the task results for this execution. (See Job Task Results) |
| resources | JSON Object | JSON description describing the resources allocated to this execution. |
| configuration | JSON Object | JSON description of the configuration for running the job (See Job Execution Configuration) |
| output | JSON Object | JSON description of the job output. |
v6 Cancel Jobs¶
Example POST /v6/jobs/cancel/ API call
Request: POST http://.../v6/jobs/cancel/
{ "started": "2016-01-01T00:00:00Z", "ended": "2016-01-02T00:00:00Z", "status": "FAILED", "job_ids": [ 101, 102, 103 ], "job_type_ids": [ 1, 2, 3 ], "job_types": [ {"name": "my-job-type", "version": "1.0.0"} ], "job_type_names": [ 'test-job-type' ], "batch_ids": [ 201, 202, 203 ], "recipe_ids": [ 301, 302, 303 ], "error_categories": [ "SYSTEM" ], "error_ids": [ 11, 22, 33 ], "is_superseded": true }
Response: 202 ACCEPTED
| Cancel Jobs | |||
|---|---|---|---|
| Cancels the jobs that fit the given filter criteria. The canceling will be done asynchronously, so the response will just indicate that the cancel request has been accepted. | |||
| POST /v6/jobs/cancel/ | |||
| Content Type | application/json | ||
| JSON Fields | |||
| started | ISO-8601 Datetime | Optional | The start of the time range to query. Supports the ISO-8601 date/time format, (ex: 2015-01-01T00:00:00Z). Supports the ISO-8601 duration format, (ex: PT3H0M0S). |
| ended | ISO-8601 Datetime | Optional | End of the time range to query, defaults to the current time. Supports the ISO-8601 date/time format, (ex: 2015-01-01T00:00:00Z). Supports the ISO-8601 duration format, (ex: PT3H0M0S). |
| status | String | Optional | Cancel only jobs with this status |
| job_ids | Array[Integer] | Optional | Cancel only jobs with these IDs |
| job_type_ids | Array[Integer] | Optional | Cancel only jobs with these job types |
| job_types | Array | Optional | Cancel only jobs with these job types specified by name/version |
| job_type_names | Array[String] | Optional | Cancel only jobs with these job type names |
| batch_ids | Array[Integer] | Optional | Cancel only jobs that were part of these batches |
| recipe_ids | Array[Integer] | Optional | Cancel only jobs that were part of these recipes |
| error_categories | Array[String] | Optional | Cancel only jobs that failed with these error categories |
| error_ids | Array[String] | Optional | Cancel only jobs that failed with these errors |
| Successful Response | |||
| Status | 202 Accepted | ||
| No response body | |||
v6 Requeue Jobs¶
Example POST /v6/jobs/requeue/ API call
Request: POST http://.../v6/jobs/requeue/
{ "started": "2016-01-01T00:00:00Z", "ended": "2016-01-02T00:00:00Z", "status": "FAILED", "job_ids": [ 101, 102, 103 ], "job_type_ids": [ 1, 2, 3 ], "job_types": [ {"name": "my-job-type", "version": "1.0.0"} ], "job_type_names": [ 'test-job-type' ], "batch_ids": [ 201, 202, 203 ], "recipe_ids": [ 301, 302, 303 ], "error_categories": [ "SYSTEM" ], "error_ids": [ 11, 22, 33 ], "is_superseded": true, "priority": 101 }
Response: 202 ACCEPTED
| Requeue Jobs | |||
|---|---|---|---|
| Re-queues the FAILED/CANCELED jobs that fit the given filter criteria. The re-queuing will be done asynchronously, so the response will just indicate that the re-queue request has been accepted. | |||
| POST /v6/jobs/requeue/ | |||
| Content Type | application/json | ||
| JSON Fields | |||
| started | ISO-8601 Datetime | Optional | The start of the time range to query. Supports the ISO-8601 date/time format, (ex: 2015-01-01T00:00:00Z). Supports the ISO-8601 duration format, (ex: PT3H0M0S). |
| ended | ISO-8601 Datetime | Optional | End of the time range to query, defaults to the current time. Supports the ISO-8601 date/time format, (ex: 2015-01-01T00:00:00Z). Supports the ISO-8601 duration format, (ex: PT3H0M0S). |
| status | String | Optional | Re-queue only jobs with this status |
| job_ids | Array[Integer] | Optional | Re-queue only jobs with these IDs |
| job_type_ids | Array[Integer] | Optional | Re-queue only jobs with these job types |
| job_types | Array | Optional | Re-queue only jobs with these job types specified by name/version |
| job_type_names | Array[String] | Optional | Re-queue only jobs with these job type names |
| batch_ids | Array[Integer] | Optional | Re-queue only jobs that were part of these batches |
| recipe_ids | Array[Integer] | Optional | Re-queue only jobs that were part of these recipes |
| error_categories | Array[String] | Optional | Re-queue only jobs that failed with these error categories |
| error_ids | Array[String] | Optional | Re-queue only jobs that failed with these errors |
| priority | Integer | Optional | Change the priority of matching jobs when adding them to the queue. Defaults to jobs current priority, lower number is higher priority. |
| Successful Response | |||
| Status | 202 Accepted | ||
v6 Job Execution Log¶
Example GET /v6/job-executions/{job_exe_id}/logs/{log_id}/ API call
Request: GET http://.../v6/job-executions/{job_exe_id}/logs/{log_id}/
Response: 200 OK
{ [ "message": "<log from job execution>", "@timestamp": "2015-08-28T17:57:41.033Z", "scale_order_num": 1, "scale_task": 123, "scale_job_exe": "scale_job_1234_263x0", "scale_node": "machine.com", "stream": "stdout" ] }
| Job Execution Log | ||
|---|---|---|
| Returns the log for a specific job execution. | ||
|
||
| Successful Response | ||
| Status | 200 OK | |
| Content Type | application/json | |
| JSON Fields | ||
| .message | String | The log message. |
| .@timestamp | ISO-8601 Datetime | The ISO-8601 timestamp marking when the message was logged. |
| .scale_order_num | Integer | A sequence number used to indicate correct log message order when multiple messages share the same @timestamp value. |
| .scale_task | Integer | The ID of the Scale task that produced this log message. |
| .scale_job_exe | String | The unique cluster ID of the Scale job execution that produced this log message |
| .scale_node | String | The host name of the Scale node that executed the Scale task |
| .stream | String | Indicates which stream produced the log message, either “stdout” or “stderr” |