|
|
* Features to have:
|
|
|
|
|
|
1. Effective bulk operations
|
|
|
3. Support for versioning
|
|
|
1. Effective bulk operations: with http v2, will require httpv2 development for HED, this feature can be postponed
|
|
|
2. Support for versioning: via url paths like https://arc.zero:443/arex/rest/v1.0/info
|
|
|
3. Usable with simple tools (wget, curl)
|
|
|
4. Accessible through Web Browser
|
|
|
4. Accessible through Web Browser: not the most important
|
|
|
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. Bulk operations
|
|
|
10. ...
|
|
|
9. support different response formats: html, xml and later json
|
|
|
|
|
|
|
|
|
* Possible design.
|
... | ... | @@ -26,10 +25,8 @@ Delegation functionality: |
|
|
|
|
|
Delegation as resource
|
|
|
<base URL>/delegation/<delegation id>
|
|
|
- Retrieve delegation (needed?)
|
|
|
- Update delegation (method?)
|
|
|
|
|
|
|
|
|
Job control functionality:
|
|
|
<base URL>/jobs
|
|
|
- Initiate new job(s) (POST, should PUT into subdir also create new job?)
|
... | ... | @@ -38,19 +35,18 @@ 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)
|
|
|
- Use <base URL>/jobs for bulk operations with additional parameters for specifying jobs? Or use HTTP 2.0 multiplexing?
|
|
|
|
|
|
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?)
|
|
|
- Multiplexing for bulk operation or provide alternative way to do everything through POST?
|
|
|
|
|
|
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?
|
|
|
|
|
|
<base URL>/jobs/<job id>/info/<information type>
|
|
|
- just follow controldir layout
|
|
|
- read-only.
|
|
|
|
|
|
Information about all jobs of a cluster (for a job monitor):
|
|
|
TO BE DISCUSSED
|
|
|
|
|
|
* Web browser compatibility - GET with "Accept: text/html" on each resource returns HTML with some useful information. |