Allows for easy job management via a REST interface. User is able to start, monitor, get the results and delete running or finished jobs.
PROXY
name and a Base64 encoded proxy as the value.
URL | /api/jobs |
---|---|
Method | POST |
URL params | None |
Data params |
JSON: { "host": [string (required)], "working_directory": [string (optional)], "script": [string (required)] "tag": [string (optional)] }
Warning! By default working_directory is set to user home directory. As a consequence when two or more jobs are started with default working_directory value at the same time then job script may be overwritten.
Example:
{ "host": "prometheus.cyfronet.pl", "working_directory": "/people/username/testjob", "script": "#!/bin/bash\necho hello\nexit 0" } |
Success response |
Code: 201 Example: { "job_id":"50463091.batch.grid.cyf-kr.edu.pl", "stdout_path":"/stdout/path", "stderr_path":"/stderr/path", "status":"QUEUED", "tag":null } |
Error response |
Error response: 408 | 422 | 500 Example: { "status":"error", "exit_code":-1, "standard_output":"whatever was printed before timeout", "error_output":"", "error_message":"timeout occurred...", "tag":null } |
Sample call |
Bash (with base64, tr and curl) proxy="`cat {path-to-proxy-file} | base64 | tr -d '\n'`" curl -k -X POST --data '{"host":"prometheus.cyfronet.pl", "script":"#!/bin/bash\n#SBATCH -A {grantid}\necho hello\nexit 0"}' \ --header "Content-Type:application/json" --header "PROXY:$proxy" https://submit.plgrid.pl/api/jobs curl -k -X POST --data '{"host":"ares.cyfronet.pl", "script":"#!/bin/bash\n#SBATCH -A {grantid}\necho hello\nexit 0"}' \ --header "Content-Type:application/json" --header "PROXY:$proxy" https://submit.plgrid.pl/api/jobs curl -k -X POST --data '{"host":"athena.cyfronet.pl", "script":"#!/bin/bash\n#SBATCH -A {grantid}\necho hello\nexit 0"}' \ --header "Content-Type:application/json" --header "PROXY:$proxy" https://submit.plgrid.pl/api/jobs |
Notes | None |
URL | /api/jobs?tag={tag}&format={short}&job_id={id1}&job_id={id2}) |
---|---|
Method | GET |
URL params |
|
Data params | None |
Success response |
Code: 200
Warning! Job runtime information (attributes: nodes, cores, start_time, end_time, wall_time, queue_time) is available up to one minute after job completes.
Example:
[ { "job_id":"50463091.batch.grid.cyf-kr.edu.pl", "stdout_path":"/stdout/path", "stderr_path":"/stderr/path", "status":"QUEUED", "tag":null }, { "job_id":"61473291.batch.grid.cyf-kr.edu.pl", "stdout_path":"/stdout/path", "stderr_path":"/stderr/path", "status":"FINISHED", "tag":null }, { "job_id":"34532479.batch.grid.cyf-kr.edu.pl", "stdout_path":"/stdout/path", "stderr_path":"/stderr/path", "status":"FINISHED", "tag":null, "nodes": "1", "cores": "12", "start_time": "2015-01-07 15:00:11", "end_time": "2015-01-07 15:01:11", "wall_time": "00:01:00", "queue_time": "00:10:00" } ] |
Error response |
Error response: 408 | 404 | 500 Example: { "status": "error", "exit_code": 0, "standard_output": "", "error_output": "", "error_message": "Job with 1234.batch.grid.cyf-kr.edu.pl not found", "tag":null } |
Sample call |
Bash (with base64, tr and curl) proxy="`cat {path-to-proxy-file} | base64 | tr -d '\n'`" curl -k -X GET --header "PROXY:$proxy" https://submit.plgrid.pl/api/jobs |
Notes | None |
URL | /api/jobs/{job_id} |
---|---|
Method | GET |
URL params | job_id - Job identifier |
Data params | None |
Success response |
Code: 200
Warning! Job runtime information (attributes: nodes, cores, start_time, end_time, wall_time, queue_time) is available up to one minute after job completes.
Example:
{ "job_id":"50463091.batch.grid.cyf-kr.edu.pl", "stdout_path":"/stdout/path", "stderr_path":"/stderr/path", "status":"QUEUED", "tag":null, "nodes": "1", "cores": "12", "start_time": "2015-01-07 15:00:11", "end_time": "2015-01-07 15:01:11", "wall_time": "00:01:00", "queue_time": "00:10:00" } |
Error response |
Error response: 408 | 404 | 500 Example: { "status": "error", "exit_code": 0, "standard_output": "", "error_output": "", "error_message": "Job with 1234.batch.grid.cyf-kr.edu.pl not found", "tag":null } |
Sample call |
Bash (with base64, tr and curl) proxy="`cat {path-to-proxy-file} | base64 | tr -d '\n'`" curl -k -X GET --header "PROXY:$proxy" https://submit.plgrid.pl/api/jobs/50463091.batch.grid.cyf-kr.edu.pl |
Notes | None |
URL | /api/jobs/{job_id} |
---|---|
Method | DELETE |
URL params | job_id - Job identifier |
Data params | None |
Success response | Code: 204 |
Error response |
Error response: 408 | 404 | 500 Example: { "status": "error", "exit_code": 0, "standard_output": "", "error_output": "", "error_message": "Job with 1234.batch.grid.cyf-kr.edu.pl not found", "tag":null } |
Sample call |
Bash (with base64, tr and curl) proxy="`cat {path-to-proxy-file} | base64 | tr -d '\n'`" curl -k -X DELETE --header "PROXY:$proxy" https://submit.plgrid.pl/api/jobs/50463091.batch.grid.cyf-kr.edu.pl |
Notes | None |
URL | /api/jobs/{job_id} |
---|---|
Method | PUT |
URL params | job_id - Job identifier |
Data params |
JSON: { "action": [string (required)] } Example: { "action": "abort" } |
Success response | Code: 204 |
Error response |
Error response: 408 | 404 | 500 Example: { "status": "error", "exit_code": 0, "standard_output": "", "error_output": "", "error_message": "Job with 1234.batch.grid.cyf-kr.edu.pl not found", "tag":null } |
Sample call |
Bash (with base64, tr and curl) proxy="`cat {path-to-proxy-file} | base64 | tr -d '\n'`" curl -k -X PUT --data '{"action":"abort"}' --header "Content-Type:application/json" --header "PROXY:$proxy" https://submit.plgrid.pl/api/jobs/50463091.batch.grid.cyf-kr.edu.pl |
Notes | None |