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.
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 tasks exists, would include various pieces of information about the build task.
HTTP 200 OK
{ "id": 42, "state": "building", "tasks": { "rpms/foo-1.23" : "6378/closed", "rpms/bar-5.0" : "6379/open" } }
"id" is the ID of the task. "state" refers to the module build state and might be one of "init", "building", "done", "failed" or "locked". "tasks" is a dictionary of component names in the format of "type/NVR" and related koji 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": "building" }, { "id": 43, "state": "init" } ]
Possible response codes are for various requests include: