Zarządzanie zadaniami przy użyciu interfejsu REST, który pozwala uruchomić nowe zadanie używając qsub, monitorować ich status, pobierać wyprodukowane rezultaty, bądź też zatrzymywać (kasować) uruchomione/skończone zadania.
PROXY
oraz wartością certyfikatu proxy zakodowanego przy użyciu Base64 (wpierany jest jedynie certyfikat proxy podpisany przez SimpleCA).
URL | /api/jobs |
---|---|
Metoda | POST |
Parametry zapytania | Brak |
Ciało żądania |
JSON: { "host": [string (wymagane)], "working_directory": [string (opcjonalne)], "script": [string (wymagane)] "tag": [string (optionalne)] }
Uwaga! Domyślnie wartość working_directory jest ustawiana na katalog domowy użytkownika. W rezultacie, jeśli dwa lub więcej zadań zostanie uruchomionych z domyślna wartością zmiennej working_directory wtedy wartość skryptu zadania zostanie nadpisana.
Przykład:
{ "host": "prometheus.cyfronet.pl", "working_directory": "/people/username/testjob", "script": "#!/bin/bash\necho hello\nexit 0" } |
Odpowiedź |
Kod: 201 Przykład: { "job_id":"50463091.batch.grid.cyf-kr.edu.pl", "stdout_path":"/stdout/path", "stderr_path":"/stderr/path", "status":"QUEUED", "tag":null } |
Wystąpienie błędu |
Wystąpienie błędu: 408 | 422 | 500 Przykład: { "status":"error", "exit_code":-1, "standard_output":"whatever was printed before timeout", "error_output":"", "error_message":"timeout occurred...", "tag":null } |
Przykładowe wywołanie |
Bash (z użyciem komend base64, tr oraz 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://rimrock.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://rimrock.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://rimrock.plgrid.pl/api/jobs |
Uwagi | Brak |
URL | /api/jobs?tag={tag}&format={short}&job_id={id1}&job_id={id2}) |
---|---|
Metoda | GET |
Parametry zapytania |
|
Ciało żądania | Brak |
Odpowiedź |
Kod: 200
Uwaga! Informacje o parametrach uruchomienia zadania (atrybuty: nodes, cores, start_time, end_time, wall_time, queue_time) mogą zostać uzupełnione do jednej minuty od zakończenia.
Przykład:
[ { "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" } ] |
Wystąpienie błędu |
Wystąpienie błędu: 408 | 404 | 500 Przykład: { "status": "error", "exit_code": 0, "standard_output": "", "error_output": "", "error_message": "Job with 1234.batch.grid.cyf-kr.edu.pl not found", "tag":null } |
Przykładowe wywołanie |
Bash (z użyciem komend base64, tr oraz curl) proxy="`cat {path-to-proxy-file} | base64 | tr -d '\n'`" curl -k -X GET --header "PROXY:$proxy" https://rimrock.plgrid.pl/api/jobs |
Uwagi | Brak |
URL | /api/jobs/{job_id} |
---|---|
Metoda | GET |
Parametry zapytania | job_id - Identyfikator zadania |
Ciało żądania | Brak |
Odpowiedź |
Kod: 200
Uwaga! Informacje o parametrach uruchomienia zadania (atrybuty: nodes, cores, start_time, end_time, wall_time, queue_time) mogą zostać uzupełnione do jednej minuty od zakończenia.
Przykład:
{ "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" } |
Wystąpienie błędu |
Wystąpienie błędu: 408 | 404 | 500 Przykład: { "status": "error", "exit_code": 0, "standard_output": "", "error_output": "", "error_message": "Job with 1234.batch.grid.cyf-kr.edu.pl not found", "tag":null } |
Przykładowe wywołanie |
Bash (z użyciem komend base64, tr oraz curl) proxy="`cat {path-to-proxy-file} | base64 | tr -d '\n'`" curl -k -X GET --header "PROXY:$proxy" https://rimrock.plgrid.pl/api/jobs/50463091.batch.grid.cyf-kr.edu.pl |
Uwagi | None |
URL | /api/jobs/{job_id} |
---|---|
Metoda | DELETE |
Parametry zapytania | job_id - Identyfikator zadania |
Ciało żądania | Brak |
Odpowiedź | Kod: 204 |
Wystąpienie błędu |
Wystąpienie błędu: 408 | 404 | 500 Przykład: { "status": "error", "exit_code": 0, "standard_output": "", "error_output": "", "error_message": "Job with 1234.batch.grid.cyf-kr.edu.pl not found", "tag":null } |
Przykładowe wywołanie |
Bash (z użyciem komend base64, tr oraz curl) proxy="`cat {path-to-proxy-file} | base64 | tr -d '\n'`" curl -k -X DELETE --header "PROXY:$proxy" https://rimrock.plgrid.pl/api/jobs/50463091.batch.grid.cyf-kr.edu.pl |
Uwagi | Brak |
URL | /api/jobs/{job_id} |
---|---|
Metoda | PUT |
Parametry zapytania | job_id - Identyfikator zadania |
Ciało żądania |
JSON: { "action": [string (wymagane)] } Przykład: { "action": "abort" } |
Odpowiedź | Kod: 204 |
Wystąpienie błędu |
Wystąpienie błędu: 408 | 404 | 500 Przykład: { "status": "error", "exit_code": 0, "standard_output": "", "error_output": "", "error_message": "Job with 1234.batch.grid.cyf-kr.edu.pl not found", "tag":null } |
Przykładowe wywołanie |
Bash (z użyciem komend base64, tr oraz 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://rimrock.plgrid.pl/api/jobs/50463091.batch.grid.cyf-kr.edu.pl |
Uwagi | Brak |