-
Notifications
You must be signed in to change notification settings - Fork 10
REST: Scheduled jobs management
Path:/rest/jobs-stat
Type: GET
Example results:
{"links":[],
"items": [
{
"projectId":1,
"scheduledJobs":2,
"failedJobs":1,
"links":
[{"href":"http://localhost:8080/rest/projects/1/jobs",
"rel":"self",
"type":"application/vnd.griddynamics.genesis.ScheduledJobDetails+json",
"methods":["get"]}]
}
]
}
Path:/rest/projects/(projectId)/jobs
Type: GET
Path parameters
Parameter | Type | Description |
---|---|---|
projectId | Number | id of the project credentials belong to |
Example results:
{
"failed": [{
"item": {
"id": "1",
"projectId": 1,
"envId": 1,
"date": 1363763640000,
"workflow": "another",
"variables": {
"count": "1"
},
"scheduledBy": "Scheduler / genesis",
"failureDescription": "Workflow execution failed",
"workflowId": 2
},
"links": [{
"href": "http://localhost:8080/rest/projects/1/envs/1/failedJobs/1",
"rel": "self",
"type": "application/vnd.griddynamics.genesis.ScheduledJobDetails+json",
"methods": ["delete"]
}
]
}
],
"requested": [{
"item": {
"id": "execution-destroy-env-1",
"projectId": 1,
"envId": 1,
"date": 1364368327497,
"workflow": "destroy",
"variables": {},
"scheduledBy": "genesis"
},
"links": [{
"href": "http://localhost:8080/rest/projects/1/envs/1/jobs/execution-destroy-env-1",
"rel": "self",
"type": "application/vnd.griddynamics.genesis.ScheduledJobDetails+json",
"methods": ["put", "delete"]
}
]
}, {
"item": {
"id": "execution-destroy-env-2",
"projectId": 1,
"envId": 2,
"date": 1364373126772,
"workflow": "destroy",
"variables": {},
"scheduledBy": "genesis"
},
"links": [{
"href": "http://localhost:8080/rest/projects/1/envs/2/jobs/execution-destroy-env-2",
"rel": "self",
"type": "application/vnd.griddynamics.genesis.ScheduledJobDetails+json",
"methods": ["put", "delete"]
}
]
}
]
}
Path:/rest/projects/(projectId)/envs/(envId)/jobs
Type: GET
Path parameters
Parameter | Type | Description |
---|---|---|
projectId | Number | id of the project credentials belong to |
envId | Number | id of the environment |
Example results:
{
"links": [{
"href": "http://localhost:8080/rest/projects/1/envs/2/jobs",
"rel": "self",
"type": "application/vnd.griddynamics.genesis.ScheduledJobDetails+json",
"methods": ["get", "post"]
}
],
"items": [{
"id": "execution-destroy-env-2",
"projectId": 1,
"envId": 2,
"date": 1364373126772,
"workflow": "destroy",
"variables": {},
"scheduledBy": "genesis",
"links": [{
"href": "http://localhost:8080/rest/projects/1/envs/2/jobs/execution-destroy-env-2",
"rel": "self",
"type": "application/vnd.griddynamics.genesis.ScheduledJobDetails+json",
"methods": ["put", "delete"]
}
]
}
]
}
Path:/rest/projects/(projectId)/jobs/(jobId)
Type: DELETE
Path parameters
Parameter | Type | Description |
---|---|---|
projectId | Number | id of the project credentials belong to |
envId | Number | id of the environemnt |
jobId | String | id of the job to be removed (can be obtained from list env jobs request) |
Example results:
{"result":"execution-another-env-1","isSuccess":true}
Path:/rest/projects/(projectId)/envs/(envId)/failedJobs
Type: GET
Path parameters
Parameter | Type | Description |
---|---|---|
projectId | Number | id of the project credentials belong to |
envId | Number | id of the environment |
Example results:
{
"links": [{
"href": "http://localhost:8080/rest/projects/1/envs/1/failedJobs",
"rel": "self",
"type": "application/vnd.griddynamics.genesis.ScheduledJobDetails+json",
"methods": ["get"]
}
],
"items": [{
"id": "1",
"projectId": 1,
"envId": 1,
"date": 1363763640000,
"workflow": "another",
"variables": {
"count": "1"
},
"scheduledBy": "Scheduler / genesis",
"failureDescription": "Workflow execution failed",
"workflowId": 2,
"links": [{
"href": "http://localhost:8080/rest/projects/1/envs/1/failedJobs/1",
"rel": "self",
"type": "application/vnd.griddynamics.genesis.ScheduledJobDetails+json",
"methods": ["delete"]
}
]
}
]
}
Path:/rest/projects/(projectId)/failedJobs/(jobId)
Type: DELETE
Path parameters
Parameter | Type | Description |
---|---|---|
projectId | Number | id of the project credentials belong to |
envId | Number | id of the environemnt |
jobId | String | id of the job to be removed (can be obtained from list env jobs request) |
Example results:
{"result":"1","isSuccess":true}
Path:/rest/projects/(projectId)/envs/(envId)/jobs
Type: POST
Path parameters
Parameter | Type | Description |
---|---|---|
projectId | Number | id of the project credentials belong to |
envId | Number | id of the environment |
**Request body structure**
Request body consists form a single JSON map contains the following entries:
Entry name | Entry predefined value | Type | Description |
---|---|---|---|
parameters | В | JSON object | parameters used by execution action |
Parameters JSON object structure:
Entry name | Type | Description |
---|---|---|
workflow | String | Name of the workflow to be executed |
parameters | Map of String pairs | Workflow variable values customized by user |
executionDate | Number | execution date timestamp |
schedule | String | (Optional) Expression describing job execution schedule. Could be either full unix-like cron expression(see Quartz cron expressions) or duration interval expression. If not specified then job is run only once at executionDate |
Request example
{
"workflow":"another",
"executionDate":1364642100000,
"schedule": "0 0 14-6 ? * FRI-MON",
"parameters":{"count":"1"}}
Response example
{"result":"2013-03-30T11:15:00Z","isSuccess":true}
Path:/rest/projects/(projectId)/envs/(envId)/jobs/(jobId)
Type: PUT
Path parameters
Parameter | Type | Description |
---|---|---|
projectId | Number | id of the project credentials belong to |
envId | Number | id of the environment |
jobId | String | id of the job |
Request body structure
Request body consists form a single JSON map contains the following entries:
Entry name | Entry predefined value | Type | Description |
---|---|---|---|
parameters | В | JSON object | parameters used by execution action |
Parameters JSON object structure:
Entry name | Type | Description |
---|---|---|
workflow | String | Name of the workflow to be executed |
parameters | Map of String pairs | Workflow variable values customized by user |
executionDate | Number | execution date timestamp. In case of no schedule or interval schedule job is (first) executed at specified time. In case of cron schedule - the timestamp specifies when the schedule first comes into affect |
schedule | String | (Optional) Expression describing job execution schedule. Could be either full unix-like cron expression(see Quartz cron expressions) or duration interval expression. If not specified then job is run only once at executionDate |
Interval expression syntax
Duration syntax is N followed by one of the characters 'm', 'h', 'd', 'w'. Where
- N is positive integer value specifying number of units.
Final letter specifies unit:
- m - minute
- h - hour
- d - day
- w - week.
For example: to execute job weekly(starting at start date) specify:
1w
Request example
{
"workflow":"another",
"executionDate":1364642100000,
"schedule": "1d",
"parameters":{"count":"1"}}
Response example
{"result":"2013-03-30T11:15:00Z","isSuccess":true}