|
|
* Features to have:
|
|
|
|
|
|
1. Effective bulk operations
|
|
|
3. Support for versioning
|
|
|
3. Usable with simple tools (wget, curl)
|
|
|
4. Accessible through Web Browser
|
|
|
5. Friendly to common HTTP REST frameworks
|
|
|
6. Interactive support to session directory (with proper protection and WebDAV basic support)
|
|
|
7. Machine readable error/result codes/messages
|
|
|
8. Re-use of existing software modules (no drastic changes to information representation and jobs handling)
|
|
|
9. ...
|
|
|
|
|
|
|
|
|
* Possible design.
|
|
|
|
|
|
Functionality as resource.
|
|
|
Access to general functionality of the CE through URL :
|
|
|
<base URL>/cluster
|
|
|
Operations:
|
|
|
- retrieve generic information about cluster (GET command)
|
|
|
|
|
|
Delegation functionality:
|
|
|
<base URL>/delegation
|
|
|
- Initiate delegation, perform delegation (POST or GET/PUT combination)
|
|
|
|
|
|
Delegation as resource
|
|
|
<base URL>/delegation/<delegation id>
|
|
|
- Retrieve delegation (needed?)
|
|
|
- Update delegation (method?)
|
|
|
|
|
|
|
|
|
Job control functionality:
|
|
|
<base URL>/jobs
|
|
|
- Initiate new job (POST, should PUT into subdir also create new job?)
|
|
|
|
|
|
Job as resource. Each job is represented by URL
|
|
|
<base URL>/jobs/<job id>
|
|
|
- Modify job - cancel, pause, resume (POST, similar to new job creation?)
|
|
|
- Clean job (DELETE)
|
|
|
|
|
|
Sub-resources of the job.
|
|
|
Session directory:
|
|
|
<base URL>/jobs/<job id>/session
|
|
|
- store, modify, retrieve files in session directory (PUT, GET, DELETE, maybe use POST for altering part of the file?)
|
|
|
|
|
|
Information about job:
|
|
|
<base URL>/jobs/<job id>/control/<information type>
|
|
|
- just follow controldir layout or develop new one?
|
|
|
- read-only or modify job by PUT'ing content there?
|
|
|
|
|
|
|
|
|
|
|
|
Web browser compatibility - GET with "Accept: text/html" on each resource returns HTML with some useful information. |