Define stable v2 REST API
Goal of the v2 API is a consistent and clean evolution of the v1.0 and v1.1 APIs.
Ideas from https:/
=======
##
## plugins
##
# list plugins, from config
@rest.get(
# get details for a plugin
@rest.get(
# get details for a specific plugin version
@rest.get(
##
## images
##
# list registered images
@rest.get(
# register or update an image (change username / tags)
# note - <id> must be a glance image id
@rest.put(
# get details of a registered image
@rest.get(
# unregister an image
@rest.delete(
##
## node group templates
##
# list node group templates
@rest.get(
# create a node group template
@rest.post(
# get details of a node group template
@rest.get(
# modify a node group template
@rest.put(
# delete a node group template
@rest.delete(
##
## cluster templates
##
# list cluster templates
@rest.get(
# create a cluster template
@rest.post(
# get details of a cluster template
@rest.get(
# modify a cluster template
@rest.put(
# delete a cluster template
@rest.delete(
##
## clusters
##
# list clusters
@rest.get(
# create a cluster
@rest.post(
# get details of a cluster
@rest.get(
# scale a cluster
@rest.put(
# delete a cluster
@rest.delete(
##
## data sources
##
# list data sources
@rest.get(
# create a data source
@rest.post(
# get details of a data source
@rest.get(
# delete a data source
@rest.delete(
##
## job binaries
##
# list job binaries
@rest.get(
# create a job binary
@rest.post(
# get details of a job binary
@rest.get(
# download the job binary data, proxied by savanna api service
@rest.get(
# delete a job binary
@rest.delete(
##
## job binary data, private savanna db storage, use swift instead
##
# list stored job binary data
@rest.get(
# store new job binary data
@rest.post_
# delete stored job binary data
@rest.delete(
##
## job templates
##
# list job templates
@rest.get(
# create a job template
@rest.post(
# get details of a job template
@rest.get(
# delete a job template
@rest.delete(
##
## jobs
##
# list jobs
@rest.get('/jobs')
# create a new job
@rest.post('/jobs')
# get details of a job
@rest.get(
# delete a job
@rest.delete(
=======
$ grep @rest savanna/api/v10.py | mattf
OK - @rest.get(
OK - @rest.get(
OK - @rest.get(
FIX - @rest.post_
OK - @rest.get(
OK - @rest.post(
OK - @rest.get(
OK - @rest.put(
OK - @rest.delete(
OK - @rest.get(
OK - @rest.get(
OK - @rest.post(
OK - @rest.put(
OK - @rest.delete(
OK - @rest.get(
OK - @rest.post(
OK - @rest.get(
OK - @rest.put(
OK - @rest.delete(
OK - @rest.get(
FIX - @rest.post(
OK - @rest.get(
FIX - @rest.post(
FIX - @rest.post(
OK - @rest.delete(
=======
$ grep @rest savanna/api/v11.py | mattf
OK - @rest.get(
OK - @rest.post(
OK - @rest.get(
OK - @rest.delete(
RENAME to /job-templates
FIX - @rest.get(
OK - @rest.get('/jobs') - list jobs
OK - @rest.post('/jobs') - create job
OK - @rest.get(
FIX - @rest.post(
OK - @rest.delete(
OK - @rest.get(
OK - @rest.post(
OK - @rest.get(
OK - @rest.get(
OK - @rest.delete(
DEPRECATE in the future, prefer upload to Swift or HDFS
OK - @rest.get(
FIX - @rest.put_
FIX - @rest.get(
REMOVE - @rest.get(
OK - @rest.delete(
RENAME to /jobs
OK - @rest.get(
OK - @rest.get(
REMOVE - @rest.get(
REMOVE - @rest.get(
OK - @rest.delete(
Blueprint information
- Status:
- Complete
- Approver:
- Sergey Lukjanov
- Priority:
- Undefined
- Drafter:
- Matthew Farrellee
- Direction:
- Needs approval
- Assignee:
- Matthew Farrellee
- Definition:
- Superseded
- Series goal:
- Accepted for future
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
- Michael McCune
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Create v2 API structure
Gerrit topic: https:/
The plan is to polish v2 api definition in early J and make it stable for J integrated release.
[SL]: moved to the Drafting state due to the need to re-iterate on API schema design.
Work Items
Work items:
Review RESTfulness of v1.0 API: DONE
Review RESTfulness of v1.1 API: DONE
Solicit feedback from openstack-dev: DONE
Use CLI effort to evaluate API completeness: DONE
Use Horizon plugin to evaluate API completeness: TODO
Propose v2 API: DONE
File blueprints for v2 API implementation: DONE
Dependency tree
* Blueprints in grey have been implemented.