A simple HTTPS API for Slurm.
$ git clone https://github.com/angt/slurm-https.git
$ cd slurm-https
$ go build$ ./create-cert.sh
$ ./slurm-httpsBy default, the server listen on :8443.
The API is nearly a direct mapping to slurm.h.
| endpoint | description |
|---|---|
| /nodes | get all node configuration information if changed since UpdateTime |
| /node/update | update node's configuration (root only) |
| /licenses | get license information |
| /conf | get control configuration information if changed since UpdateTime |
| /jobs | get all job configuration information if changed since UpdateTime |
| /job/alloc | allocate resources for a job request |
| /job/submit | submit a job for later execution |
| /job/lookup | get info for an existing resource allocation |
| /job/update | update job's configuration |
| /job/notify | send message to the job's stdout (root only) |
| /job/kill | send the specified signal to all steps of an existing job (with flags) |
| /job/signal | send the specified signal to all steps of an existing job |
| /job/complete | note the completion of a job and all of its steps |
| /job/suspend | suspend execution of a job |
| /job/resume | resume execution of a previously suspended job |
| /job/requeue | re-queue a batch job, if already running then terminate it first |
| /job/step/kill | send the specified signal to an existing job step |
| /job/step/signal | send the specified signal to an existing job step |
| /job/step/terminate | terminates a job step |
| /frontends | get all frontend configuration information if changed since UpdateTime |
| /frontend/update | update frontend node's configuration (root only) |
| /topologies | get all switch topology configuration information |
| /partitions | get all partition configuration information if changed since UpdateTime |
| /partition/create | create a new partition (root only) |
| /partition/update | update a partition's configuration (root only) |
| /partition/delete | delete a partition (root only) |
| /reservations | get all reservation configuration information if changed since UpdateTime |
| /reservation/create | create a new reservation (root only) |
| /reservation/update | update a reservation's configuration (root only) |
| /reservation/delete | delete a reservation (root only) |
| /triggers | get all event trigger information |
| /trigger/create | create an event trigger |
| /trigger/delete | delete an event trigger |
| /ping | ping the slurm controller |
| /reconfigure | force the slurm controller to reload its configuration file |
| /shutdown | shutdown the slurm controller |
| /takeover | force the slurm backup controller to take over the primary controller |
$ curl --cert ./client.crt --cacert ./ca.crt --key ./client.key --insecure -d @- https://localhost:8443/conf <<EOF
{
"UpdateTime":0
}
EOF$ curl --cert ./client.crt --cacert ./ca.crt --key ./client.key --insecure -d @- https://localhost:8443/job/submit <<EOF
{
"Name":"test",
"TimeLimit":200,
"MinNodes":1,
"UserId":$(id -u),
"GroupId":$(id -g),
"WorkDir":"${HOME}",
"Script":"#!/bin/sh\nhostname\n"
}
EOF