Excerpts from Dan Callaghan's message of 2012-12-20 14:50:15 +1000:
> First sketch of an HTTP API below. I don't think I've forgotten 
> anything...

I've just uploaded a patch series to Gerrit which implements most of 
this draft API:

    http://gerrit.beaker-project.org/1703
    http://gerrit.beaker-project.org/1704
    http://gerrit.beaker-project.org/1705
    http://gerrit.beaker-project.org/1706

along with a few supporting changes:

    http://gerrit.beaker-project.org/1242
    http://gerrit.beaker-project.org/1701
    http://gerrit.beaker-project.org/1702

As an added bonus, there are also tests covering the existing XML-RPC 
API.

A few things are still missing:

    * recipe synchronization
    * "N/A" result type, and attaching URLs to results (as discussed 
      elsewhere on this thread)
    * API docs for the new harness API
    * release notes for the log storage change

But, I think it's close enough that we could include it as an 
"experimental" API in 1.0, which people developing harnesses can start 
working with. Min, how does that sound to you?

> Excerpts from Dan Callaghan's message of 2012-12-19 16:46:19 +1000:
> > There are four areas the API needs to cover (that I can think of). The 
> > harness needs to be able to:
> > 
> > * find out what to run
> 
> Get recipe XML:
> 
>     GET /recipes/{recipeid}
>     Accept: application/xml
> 
> > * report results and upload logs
> 
> Record a task result:
> 
>     POST /recipes/{recipeid}/tasks/{taskid}/results/
>     Content-type: application/x-www-form-urlencoded
> 
>     path=/the/task/result&result=Pass&score=1234&message=It+worked
> 
> ->  302 See Other
>     Location: /recipes/{recipeid}/tasks/{taskid}/results/{resultid}
> 
> Upload recipe log:
> 
>     PUT /recipes/{recipeid}/logs/{path...}
> 
> Upload task log:
> 
>     PUT /recipes/{recipeid}/tasks/{taskid}/logs/{path...}
> 
> Upload task-result log:
> 
>     PUT /recipes/{recipeid}/tasks/{taskid}/results/{resultid}/logs/{path...}
> 
> These could accept Content-Range (for partial uploads) and Content-Type 
> (which we could store and return later).
> 
> > * extend the watchdog time
> 
> Set watchdog to now + X seconds:
> 
>     POST /recipes/{recipeid}/watchdog
>     Content-type: application/x-www-form-urlencoded
> 
>     seconds=X
> 
> > * synchronize with other recipes in the recipe set
> 
> Block until all other recipes in the recipe set (except guest recipes?) 
> have called this, or until X seconds have elapsed:
> 
>     POST /recipes/{recipeid}/sync-start?timeout=X
> 

-- 
Dan Callaghan <dcall...@redhat.com>
Software Engineer, Infrastructure Engineering and Development
Red Hat, Inc.

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Beaker-devel mailing list
Beaker-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/beaker-devel

Reply via email to