The orchestrator coordinates module builds and is responsible for a number of tasks:
The orchestrator implements a RESTful interface for module build submission and state querying. Not all REST methods are supported. See below for details.
Module submission is done via posting the modulemd SCM URL.
POST /rida/module-builds/
{ "scmurl": "git://pkgs.fedoraproject.org/modules/foo.git/foo.yaml?#f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 }
The response, in case of a successful submission, would include the task ID.
HTTP 201 Created
{ id: 42 }
Once created, the client can query the current build state by requesting the build task's URL. Querying the BPO service might be preferred, however.
GET /rida/module-builds/42
The response, if the task exists, would include various pieces of information about the referenced build task.
HTTP 200 OK
{ "id": 42, "state": "build", "tasks": { "rpms/foo" : "6378/closed", "rpms/bar : "6379/open" } }
"id" is the ID of the task. "state" refers to the orchestrator module build state and might be one of "init", "wait", "build", "done", "failed" or "ready". "tasks" is a dictionary of component names in the format of "type/NVR" and related koji or other supported buildsystem tasks and their states.
The list of all tracked builds and their states can be obtained by querying the "module-builds" resource.
GET /rida/module-builds/
HTTP 200 OK
[ { "id": 41", "state": "done" }, { "id": 42, "state": "build" }, { "id": 43, "state": "init" } ]
Possible response codes are for various requests include: