Jobs
List jobs
Get a list of jobs.
URL Parameters
| Name | Description |
|---|---|
page |
integer (optional) See Paging |
limit |
integer (optional) See Paging |
detailed |
boolean (optional) See Summary / Detailed Representations |
filter |
string (optional) See Filtering |
sort |
string (optional) See Sorting |
Response
200 OK
{
"timestamp": "2016-04-14T11:15:59.642459766-04:00",
"data": [
{
"id": "1",
"active": true,
"status": "running",
"options": {
"tags": [],
"skip_tests": null,
"begin_at": "",
"end_at": "",
"testvars": [],
"extra_cli_args": ""
},
"package_id": "1027",
"package_name": "one",
"device_id": "12",
"device_name": "Device Foo",
"config_id": "34",
"config_name": "Config Foo",
"result_id": "20160414111554",
"user_id": "1",
"created": "2016-04-14T11:15:54.211891321-04:00",
"updated": "2016-04-14T11:15:56.529982108-04:00",
"automatic": false,
"run_at": "2016-04-14T11:15:54.211891321-04:00",
"interfaces": [
{
"value": "eth2",
"is_wireless": false,
"is_ics": false
},
{
"value": "wifi1-ax24",
"is_wireless": false,
"is_ics": false
},
{
"value": "wifi2-ax56",
"is_wireless": false,
"is_ics": false
},
{
"value": "wifi3-ax24",
"is_wireless": false,
"is_ics": false
},
{
"value": "wifi4-ax56",
"is_wireless": true,
"is_ics": false
}
],
"interface_names": [
"eth2",
"wifi1-ax24",
"wifi2-ax56",
"wifi3-ax24",
"wifi4-ax56"
],
"uses_wireless": true,
"uses_ics": false
}
],
"links": {
"current": 1,
"first": 1,
"last": 1,
"limit": 25,
"next": 0,
"total": 1
}
}
Get a job
Get a job.
Response
200 OK
{
"timestamp": "2016-04-14T11:15:59.642459766-04:00",
"data": {
"id": "1",
"active": true,
"status": "running",
"options": {
"tags": [],
"skip_tests": null,
"begin_at": "",
"end_at": "",
"testvars": [],
"extra_cli_args": ""
},
"package_id": "1027",
"package_name": "one",
"device_id": "12",
"device_name": "Device Foo",
"config_id": "34",
"config_name": "Config Foo",
"result_id": "20160414111554",
"user_id": "1",
"created": "2016-04-14T11:15:54.211891321-04:00",
"updated": "2016-04-14T11:15:56.529982108-04:00",
"automatic": false,
"run_at": "2016-04-14T11:15:56.529982108-04:00",
"interfaces": [
{
"value": "eth2",
"is_wireless": false,
"is_ics": false
},
{
"value": "wifi1-ax24",
"is_wireless": true,
"is_ics": false
}
],
"interface_names": [
"eth2",
"wifi1-ax24"
],
"uses_wireless": true,
"uses_ics": false
}
}
Response
404 Not Found
{
"error": "no such job"
}
Launch a job
Launch a new job.
Example
Launch a new job that runs package 123.
POST /api/v1/jobs/
{
"package_id": "123",
}
Response
200 OK
{
"timestamp": "2016-04-14T11:15:59.642459766-04:00",
"data": {
"id": "1",
"active": true,
"status": "running",
"options": {
"tags": [],
"skip_tests": null,
"begin_at": "",
"end_at": "",
"testvars": [],
"extra_cli_args": ""
},
"package_id": "1027",
"package_name": "one",
"device_id": "12",
"device_name": "Device Foo",
"config_id": "34",
"config_name": "Config Foo",
"result_id": "20160414111554",
"user_id": "1",
"created": "2016-04-14T11:15:54.211891321-04:00",
"updated": "2016-04-14T11:15:56.529982108-04:00",
"automatic": false,
"run_at": "2016-04-14T11:15:56.529982108-04:00",
"interfaces": [
{
"value": "eth2",
"is_wireless": false,
"is_ics": false
},
{
"value": "wifi1-ax24",
"is_wireless": true,
"is_ics": false
},
{
"value": "wifi2-ax56",
"is_wireless": true,
"is_ics": false
},
{
"value": "wifi3-ax24",
"is_wireless": true,
"is_ics": false
},
{
"value": "wifi4-ax56",
"is_wireless": true,
"is_ics": false
}
],
"interface_names": [
"eth2",
"wifi1-ax24",
"wifi2-ax56",
"wifi3-ax24",
"wifi4-ax56"
],
"uses_wireless": true,
"uses_ics": false
}
}
Launch a job with options
Launch a new job with options to override package defaults.
Example
Launch a new job that runs package 123.
The options components specify changes that apply to this specific job:
- start at test
cdrouter_nat_1 - end at
cdrouter_nat_2 - skip tests
cdrouter_basic_1andcdrouter_basic_10 - override testvar
lanInterfacewith valueeth4 - override testvar
lanInterfacein testvar_grouplan2with valueeth5 - delete testvar
lanSSIDin testvar_grouplan3. - delete testvar_group
lan4
POST /api/v1/jobs/
{
"package_id": "123",
"device_id": "12",
"config_id": "34",
"options": {
"tags": [
"one",
"two"
],
"skip_tests": [
"cdrouter_basic_1",
"cdrouter_basic_10"
],
"begin_at": "cdrouter_nat_1",
"end_at": "cdrouter_nat_2",
"testvars": [
{
"group": "main",
"name": "lanSSID",
"value": "qa-net-guest",
},
{
"group": "lan2",
"name": "lanSSID",
"value": "qa-net-guest",
},
{
"group": "main",
"name": "lanClients",
"action": "delete-testvar"
},
{
"group": "lan3",
"name": "lanClients",
"action": "delete-testvar"
},
{
"group": "lan4",
"action": "delete-group"
}
],
"extra_cli_args": ""
}
}
Response
200 OK
{
"timestamp": "2016-04-14T11:22:00.90795757-04:00",
"data": {
"id": "2",
"active": false,
"status": "pending",
"options": {
"tags": [
"one",
"two"
],
"skip_tests": [
"cdrouter_basic_1",
"cdrouter_basic_10"
],
"begin_at": "cdrouter_nat_1",
"end_at": "cdrouter_nat_2",
"testvars": [
{
"group": "main",
"name": "lanSSID",
"value": "qa-net-guest",
},
{
"group": "lan2",
"name": "lanSSID",
"value": "qa-net-guest",
},
{
"group": "main",
"name": "lanClients",
"action": "delete-testvar"
},
{
"group": "lan3",
"name": "lanClients",
"action": "delete-testvar"
},
{
"group": "lan4",
"action": "delete-group"
}
],
"extra_cli_args": ""
},
"package_id": "123",
"package_name": "one",
"device_id": "12",
"device_name": "Device Foo",
"config_id": "34",
"config_name": "Config Foo",
"user_id": "1",
"created": "2016-04-14T11:22:00.869323288-04:00",
"updated": "2016-04-14T11:22:00.869323288-04:00",
"automatic": false,
"run_at": "2016-04-14T11:22:00.869323288-04:00",
"interfaces": [
{
"value": "eth2",
"is_wireless": false,
"is_ics": false
},
{
"value": "wifi1-ax24",
"is_wireless": true,
"is_ics": false
},
{
"value": "wifi2-ax56",
"is_wireless": true,
"is_ics": false
},
{
"value": "wifi3-ax24",
"is_wireless": true,
"is_ics": false
},
],
"interface_names": [
"eth2",
"wifi1-ax24",
"wifi2-ax56",
"wifi3-ax24",
],
"uses_wireless": true,
"uses_ics": false
}
}
Delete a job
Delete a job.
Response
204 No Content
Get a job’s interfaces
Process a job with cdrouter-cli -print-interfaces.
Example
POST /api/v1/jobs/?process=interfaces
{
"package_id": "58",
"options": {
"extra_cli_args": "-testvar lanInterface=eth2"
}
}
Response
200 OK
{
"timestamp": "2022-02-14T10:37:07.88200925-05:00",
"data": [
{
"value": "eth2",
"is_wireless": false,
"is_ics": false
},
{
"value": "wifi1-ax24",
"is_wireless": true,
"is_ics": false
}
]
}
Bulk launch jobs
Bulk launch a set of jobs.
URL Parameters
| Name | Description |
|---|---|
bulk |
string (required) Must be launch |
filter |
string (optional) See Filtering, note that these should be package filters (see below for examples) |
all |
boolean (optional) If true, launch all packages. |
Example
Bulk launch two jobs from packages 123 and 456.
POST /api/v1/jobs/?bulk=launch
{
"jobs": [
{"package_id": "123"},
{"package_id": "456"}
]
}
Bulk launch two jobs from packages 123 and 456, tagging one with
["red"] and the other with ["blue"].
POST /api/v1/jobs/?bulk=launch
{
"jobs": [
{
"package_id": "123",
"options": {
"tags": [
"red"
]
}
},
{
"package_id": "456",
"options": {
"tags": [
"blue"
]
}
}
]
}
Bulk launch jobs from packages matching filters name~DHCP,
testlist@>{cdrouter_nat_1} and tags@>{working}, setting each job’s
tags field to ["monday"].
POST /api/v1/jobs/?bulk=edit&filter=name~DHCP&filter=testlist@>{cdrouter_nat_1}&filter=tags@>{working}
{
"fields": {
"options": {
"tags": [
"monday"
]
}
}
}
Bulk launch jobs from all packages, setting each job’s tags
field to ["monday"].
POST /api/v1/jobs/?bulk=launch&all=true
{
"fields": {
"options": {
"tags": [
"monday"
]
}
}
}
Response
200 OK
{
"timestamp": "2016-08-15T13:35:58.912810418-04:00",
"data": [
{
"id": "178",
"active": false,
"status": "pending",
"options": {
"tags": null,
"skip_tests": null,
"begin_at": "",
"end_at": "",
"testvars": [],
"extra_cli_args": ""
},
"package_id": "286",
"package_name": "all",
"device_id": "0",
"device_name": "",
"config_id": "0",
"config_name": "",
"user_id": "1",
"created": "2016-08-15T13:35:58.075165876-04:00",
"updated": "2016-08-15T13:35:58.075165876-04:00",
"automatic": false,
"run_at": "2016-08-15T13:35:58.075165876-04:00",
"interfaces": [
{
"value": "eth2",
"is_wireless": false,
"is_ics": false
},
{
"value": "wifi1-ax24",
"is_wireless": true,
"is_ics": false
}
],
"interface_names": [
"eth2",
"wifi1-ax24"
],
"uses_wireless": true,
"uses_ics": false
},
{
"id": "179",
"active": false,
"status": "pending",
"options": {
"tags": null,
"skip_tests": null,
"begin_at": "",
"end_at": "",
"testvars": [],
"extra_cli_args": ""
},
"package_id": "1051",
"package_name": "all (copy 1)",
"device_id": "0",
"device_name": "",
"config_id": "0",
"config_name": "",
"user_id": "1",
"created": "2016-08-15T13:35:58.16485173-04:00",
"updated": "2016-08-15T13:35:58.16485173-04:00",
"automatic": false,
"run_at": "2016-08-15T13:35:58.16485173-04:00",
"interfaces": [
{
"value": "eth2",
"is_wireless": false,
"is_ics": false
},
{
"value": "wifi1-ax24",
"is_wireless": true,
"is_ics": false
}
],
"interface_names": [
"eth2",
"wifi1-ax24"
],
"uses_wireless": true,
"uses_ics": false
},
{
"id": "180",
"active": false,
"status": "pending",
"options": {
"tags": null,
"skip_tests": null,
"begin_at": "",
"end_at": "",
"testvars": [],
"extra_cli_args": ""
},
"package_id": "1232",
"package_name": "nightly performance",
"device_id": "0",
"device_name": "",
"config_id": "0",
"config_name": "",
"user_id": "1",
"created": "2016-08-15T13:35:58.355105411-04:00",
"updated": "2016-08-15T13:35:58.355105411-04:00",
"automatic": false,
"run_at": "2016-08-15T13:35:58.355105411-04:00",
"interfaces": [
{
"value": "eth2",
"is_wireless": false,
"is_ics": false
},
{
"value": "wifi1-ax24",
"is_wireless": true,
"is_ics": false
}
],
"interface_names": [
"eth2",
"wifi1-ax24"
],
"uses_wireless": true,
"uses_ics": false
}
]
}
Bulk delete jobs
Bulk delete a set of jobs.
URL Parameters
| Name | Description |
|---|---|
bulk |
string (required) Must be delete |
filter |
string (optional) See Filtering |
all |
boolean (optional) If true, delete all jobs not currently running. |
Example
Bulk delete jobs 1, 2 and 3.
POST /api/v1/jobs/?bulk=delete
{
"jobs": [
{ "id": "1" },
{ "id": "2" },
{ "id": "3" },
]
}
Bulk delete jobs matching filters package_name=dns.
POST /api/v1/jobs/?bulk=delete&filter=package_name=dns
Bulk delete all jobs not currently running.
POST /api/v1/jobs/?bulk=delete&all=true
Response
204 No Content