Create nova v3 api
There are numerous inconsistencies in the existing Nova v2 API, to address these in a non breaking manner we need to create a Nova v3 API. This will: address error code inconsistencies, clean up paging and ordering via api calls, promote a few key extensions, fill in holes where important functions can't be done via API, fix bugs which would otherwise break the existing API.
Blueprint information
- Status:
- Complete
- Approver:
- Russell Bryant
- Priority:
- Undefined
- Drafter:
- Sean Dague
- Direction:
- Needs approval
- Assignee:
- Christopher Yeoh
- Definition:
- Superseded
- Series goal:
- None
- Implementation:
- Started
- Milestone target:
- next
- Started by
- Mauro S M Rodrigues
- Completed by
- John Garbutt
Related branches
Related bugs
Sprints
Whiteboard
* Make v2 deprecated but be sure to keep it working: IN PROGRESS
* Make invalid points responses be: 405: IN PROGRESS
* Make every single api point to respect REST's CRUD principles: TODO
* List expected errors through a decorator and suggest a bug report when it doesn't respect it: TODO
* Set api's return code into decorators: TODO
* Fix return codes: TODO
* check for valid filters in the requests (not sure about this point): TODO
* Fix response format to match between json and xml responses: TODO
* remove volumes extension (it seems useless now): TODO
* remove all unused extensions (based on novaclient - need to ask into ML about it first): TODO
* Promote the follow extensions to core:
- scheduler_hints TODO
- server_start_stop TODO
- keypairs TODO
- console_output TODO
* Demote extensions
- admin_password: TODO
- personalities: TODO
Notes at https:/
Gerrit topic: https:/
Addressed by: https:/
Fixes os-services extension update action
Gerrit topic: https:/
Addressed by: https:/
Port rescue API to v3 Part 1
Addressed by: https:/
Port rescue API to v3 Part 2
Addressed by: https:/
Port evacuate API to v3 Part 1
Addressed by: https:/
Port evacuate API to v3 Part 2
Addressed by: https:/
Port config drive API to v3 Part 1
Addressed by: https:/
Port config_drive API to v3 Part 2
Addressed by: https:/
Port certificates API to v3 Part 1
Addressed by: https:/
Port certificates API to v3 Part 2
Addressed by: https:/
Port scheduler hints extension to v3 API Part 1
Addressed by: https:/
Port cells extension to v3 API Part 2
Addressed by: https:/
Port cells extension to v3 API Part 1
Addressed by: https:/
Port quota classes extension to v3 API Part 1
Addressed by: https:/
Port quota classes extension to v3 API Part 2
Addressed by: https:/
Port fping extension to v3 API Part 1
Addressed by: https:/
Port fping extension to v3 API Part 2
Addressed by: https:/
Port server_diagnostics extension to v3 API Part1
Addressed by: https:/
Port server_diagnostics extension to v3 API Part2
Addressed by: https:/
Porting os-aggregates extensions to API v3 Part 1
Addressed by: https:/
Porting os-aggregates extensions to API v3 Part 2
Addressed by: https:/
Port extended status extension to v3 API Part 1
Addressed by: https:/
Port extended status extension to v3 API Part 2
Addressed by: https:/
Port hide srvr addresses extension to v3 API Pt1
Addressed by: https:/
Port hide srvr addresses extension to v3 API Pt2
Addressed by: https:/
Port extended-
Addressed by: https:/
Port extended-
Addressed by: https:/
Port security groups extension to v3 API Part 1
Addressed by: https:/
Port security groups extension to v3 API Part 2
Addressed by: https:/
Fix to integet cast of length in console output extension
Addressed by: https:/
Port os-console-output extension to API v3 Part 1
Addressed by: https:/
Port os-console-output extension to API v3 Part 2
Addressed by: https:/
Port user_data API to v3 Part 1
Addressed by: https:/
Port user_data API to v3 Part 2
Addressed by: https:/
Port scheduler hints extension to v3 API Part 2
Addressed by: https:/
Port deferredDelete API to v3 Part 2
Addressed by: https:/
Port flavor_access extension to v3 API Part 1
Addressed by: https:/
Port flavor_access extension to v3 API Part 2
Addressed by: https:/
Port server password extension to v3 API Part 1
Addressed by: https:/
Port server password extension to v3 API Part 2
Addressed by: https:/
Fixes for quota_sets v3 extension
Addressed by: https:/
Port flavor_disabled extension to v3 API Part 1
Addressed by: https:/
Port flavor_disabled extension to v3 API Part 2
Addressed by: https:/
Port images functionality to v3 API Part 2
Addressed by: https:/
Merged flavor_swap extension into core API
Addressed by: https:/
Port floating ip pools extension to V3 API
Addressed by: https:/
Port images metadata functionality to v3 API Part 1
Addressed by: https:/
Port images metadata functionality to v3 API Part 2
Addressed by: https:/
Ports image_size extension to v3 API
Addressed by: https:/
Remove project_id from alternate image link path
Addressed by: https:/
Port security_
Addressed by: https:/
Merged flavor_rxtx extension into core API
Addressed by: https:/
Merged flavorextradata extension (ephemeral disk size) into core API
Addressed by: https:/
Fixed tests for flavor swap extension after merging in core API
Addressed by: https:/
Merged flavorsextraspecs extension into core API
Addressed by: https:/
Port used limits extension to v3 API Part 1
Gerrit topic: https:/
Addressed by: https:/
Porting limits core api to API v3 Part 1
Addressed by: https:/
Port multinic extension to v3 API Part 2
Addressed by: https:/
Fix misc issues with os-multinic v3 API extension
Addressed by: https:/
Port flavor_rxtx extension to v3 API Part 1
Addressed by: https:/
Port flavor_rxtx extension to v3 API Part 2
Addressed by: https:/
port Deferred_delete API into v3 part1
Addressed by: https:/
Misc fixes for v3 evacuate API extension
Gerrit topic: https:/
Addressed by: https:/
Sync v2/v3 console_output API extensions
Addressed by: https:/
Allow exceptions to propagate through stevedore map
Addressed by: https:/
Porting server metadata core api to API v3 Part 1
Addressed by: https:/
Add API-v3 merged core API into core API list
Addressed by: https:/
Prevents core API v3 to be black or whitelisted
Addressed by: https:/
Port used limits extension to v3 API Part 2
Addressed by: https:/
Port migrations extension to v3 API
Addressed by: https:/
Port multiple_create extension
Addressed by: https:/
Port ips and servers views to port ips-extended-* extensions Part 1
Addressed by: https:/
Add ips extended information to ips API-v3
Addressed by: https:/
Port migrations extension to v3 API part 2
Addressed by: https:/
Port server_usage API to v3 part 1
Addressed by: https:/
Port server_usage API to v3 part 2
Gerrit topic: https:/
Addressed by: https:/
Port disk_config API to v3 Part 2
Addressed by: https:/
Demote personalities from core of API v3 as extensions os-personality
Addressed by: https:/
Convert CamelCase attribute naming to camel_case for servers V3 API
Gerrit topic: https:/
Addressed by: https:/
Port "Accept is_public=None .." to v3 tree
Addressed by: https:/
Merged flavor_disabled extension into core api
Addressed by: https:/
Fix v3 api images related links
Addressed by: https:/
Convert camelCase attribute naming to camel_case
Addressed by: https:/
Removes V3 API images and image_metadata extensions
Gerrit topic: https:/
Addressed by: https:/
Adds support for security_groups for V3 API server create
Gerrit topic: https:/
Addressed by: https:/
Port os-volumes extension to v3 API Part 1
Addressed by: https:/
Port os-volumes extension to v3 API Part 2
Addressed by: https:/
Port "Make flavors is_public option .." to v3 tree
Addressed by: https:/
Correct the authorizer for extended-volumes v3
Addressed by: https:/
Adds user_data extension to nova.api.
Addressed by: https:/
Port flavormanage extension to v3 API part 1
Addressed by: https:/
Port flavormanage extension to v3 API Part 2
Addressed by: https:/
Sets policy settings so V3 API extensions are discoverable
Addressed by: https:/
Remove dis/associate actions from security_groups v3
Addressed by: https:/
Remove used_limits extension from the V3 API
Addressed by: https:/
Adds API version discovery support for V3
Addressed by: https:/
Make availability_zone optional in create for aggregates v3
Addressed by: https:/
Correct the status code to 201 for create v3
Addressed by: https:/
Makes v3 API keypairs extension core
Addressed by: https:/
Make v3 API console-output extension core
Addressed by: https:/
Make v3 API scheduler_hints and versions extensions core
Addressed by: https:/
Removes fixed ips extension from V3 API
Addressed by: https:/
Fix error messages in v3 aggregate API
Addressed by: https:/
Get parameter from req argument in V3 quota_sets
Addressed by: https:/
Add extension access_ips for v3 API
Addressed by: https:/
Enable extension access_ips for v3 API
Addressed by: https:/
Make v3 admin_pass parameters consistent
Addressed by: https:/
Move get_all_tenants policy enforcement to API
Addressed by: https:/
Fix server action tests for V3 API
Addressed by: https:/
Add flavor-manage to core for V3 API
Addressed by: https:/
Add flavor-access to core for V3 API
Addressed by: https:/
Add flavor-extra-specs to core for V3 API
Addressed by: https:/
Remove V3 API version of coverage extension
Addressed by: https:/
Fix limits v3 follow API v3 rules
Addressed by: https:/
Add decorator expected_errors for flavors_extraspecs v3
Gerrit topic: https:/
Addressed by: https:/
Add API input validation framework
Addressed by: https:/
Add API schema for v3 keypairs
Gerrit topic: https:/
Addressed by: https:/
Alphabetize core list for V3 API extensions
Addressed by: https:/
Add API schema for v3 evacuate
Gerrit topic: https:/
Addressed by: https:/
Use HTTPRequestV3 instead of HTTPRequest in v3 API tests
Addressed by: https:/
Adds ability to disable the V2 API
Addressed by: https:/
No longer display core plugins in V3 API extensions list
Addressed by: https:/
Merges config_drive into servers core for V3 API
Addressed by: https:/
Remove redundant list from v3 attach_interface API
Addressed by: https:/
Port assisted_
Removed from next, as next is now reserved for near misses from the last milestone --johnthetubaguy* Make v2 deprecated but be sure to keep it working: IN PROGRESS
* Make invalid points responses be: 405: IN PROGRESS
* Make every single api point to respect REST's CRUD principles: TODO
* List expected errors through a decorator and suggest a bug report when it doesn't respect it: TODO
* Set api's return code into decorators: TODO
* Fix return codes: TODO
* check for valid filters in the requests (not sure about this point): TODO
* Fix response format to match between json and xml responses: TODO
* remove volumes extension (it seems useless now): TODO
* remove all unused extensions (based on novaclient - need to ask into ML about it first): TODO
* Promote the follow extensions to core:
- scheduler_hints TODO
- server_start_stop TODO
- keypairs TODO
- console_output TODO
* Demote extensions
- admin_password: TODO
- personalities: TODO
Notes at https:/
Gerrit topic: https:/
Addressed by: https:/
Fixes os-services extension update action
Gerrit topic: https:/
Addressed by: https:/
Port rescue API to v3 Part 1
Addressed by: https:/
Port rescue API to v3 Part 2
Addressed by: https:/
Port evacuate API to v3 Part 1
Addressed by: https:/
Port evacuate API to v3 Part 2
Addressed by: https:/
Port config drive API to v3 Part 1
Addressed by: https:/
Port config_drive API to v3 Part 2
Addressed by: https:/
Port certificates API to v3 Part 1
Addressed by: https:/
Port certificates API to v3 Part 2
Addressed by: https:/
Port scheduler hints extension to v3 API Part 1
Addressed by: https:/
Port cells extension to v3 API Part 2
Addressed by: https:/
Port cells extension to v3 API Part 1
Addressed by: https:/
Port quota classes extension to v3 API Part 1
Addressed by: https:/
Port quota classes extension to v3 API Part 2
Addressed by: https:/
Port fping extension to v3 API Part 1
Addressed by: https:/
Port fping extension to v3 API Part 2
Addressed by: https:/
Port server_diagnostics extension to v3 API Part1
Addressed by: https:/
Port server_diagnostics extension to v3 API Part2
Addressed by: https:/
Porting os-aggregates extensions to API v3 Part 1
Addressed by: https:/
Porting os-aggregates extensions to API v3 Part 2
Addressed by: https:/
Port extended status extension to v3 API Part 1
Addressed by: https:/
Port extended status extension to v3 API Part 2
Addressed by: https:/
Port hide srvr addresses extension to v3 API Pt1
Addressed by: https:/
Port hide srvr addresses extension to v3 API Pt2
Addressed by: https:/
Port extended-
Addressed by: https:/
Port extended-
Addressed by: https:/
Port security groups extension to v3 API Part 1
Addressed by: https:/
Port security groups extension to v3 API Part 2
Addressed by: https:/
Fix to integet cast of length in console output extension
Addressed by: https:/
Port os-console-output extension to API v3 Part 1
Addressed by: https:/
Port os-console-output extension to API v3 Part 2
Addressed by: https:/
Port user_data API to v3 Part 1
Addressed by: https:/
Port user_data API to v3 Part 2
Addressed by: https:/
Port scheduler hints extension to v3 API Part 2
Addressed by: https:/
Port deferredDelete API to v3 Part 2
Addressed by: https:/
Port flavor_access extension to v3 API Part 1
Addressed by: https:/
Port flavor_access extension to v3 API Part 2
Addressed by: https:/
Port server password extension to v3 API Part 1
Addressed by: https:/
Port server password extension to v3 API Part 2
Addressed by: https:/
Fixes for quota_sets v3 extension
Addressed by: https:/
Port flavor_disabled extension to v3 API Part 1
Addressed by: https:/
Port flavor_disabled extension to v3 API Part 2
Addressed by: https:/
Port images functionality to v3 API Part 2
Addressed by: https:/
Merged flavor_swap extension into core API
Addressed by: https:/
Port floating ip pools extension to V3 API
Addressed by: https:/
Port images metadata functionality to v3 API Part 1
Addressed by: https:/
Port images metadata functionality to v3 API Part 2
Addressed by: https:/
Ports image_size extension to v3 API
Addressed by: https:/
Remove project_id from alternate image link path
Addressed by: https:/
Port security_
Addressed by: https:/
Merged flavor_rxtx extension into core API
Addressed by: https:/
Merged flavorextradata extension (ephemeral disk size) into core API
Addressed by: https:/
Fixed tests for flavor swap extension after merging in core API
Addressed by: https:/
Merged flavorsextraspecs extension into core API
Addressed by: https:/
Port used limits extension to v3 API Part 1
Gerrit topic: https:/
Addressed by: https:/
Porting limits core api to API v3 Part 1
Addressed by: https:/
Port multinic extension to v3 API Part 2
Addressed by: https:/
Fix misc issues with os-multinic v3 API extension
Addressed by: https:/
Port flavor_rxtx extension to v3 API Part 1
Addressed by: https:/
Port flavor_rxtx extension to v3 API Part 2
Addressed by: https:/
port Deferred_delete API into v3 part1
Addressed by: https:/
Misc fixes for v3 evacuate API extension
Gerrit topic: https:/
Addressed by: https:/
Sync v2/v3 console_output API extensions
Addressed by: https:/
Allow exceptions to propagate through stevedore map
Addressed by: https:/
Porting server metadata core api to API v3 Part 1
Addressed by: https:/
Add API-v3 merged core API into core API list
Addressed by: https:/
Prevents core API v3 to be black or whitelisted
Addressed by: https:/
Port used limits extension to v3 API Part 2
Addressed by: https:/
Port migrations extension to v3 API
Addressed by: https:/
Port multiple_create extension
Addressed by: https:/
Port ips and servers views to port ips-extended-* extensions Part 1
Addressed by: https:/
Add ips extended information to ips API-v3
Addressed by: https:/
Port migrations extension to v3 API part 2
Addressed by: https:/
Port server_usage API to v3 part 1
Addressed by: https:/
Port server_usage API to v3 part 2
Gerrit topic: https:/
Addressed by: https:/
Port disk_config API to v3 Part 2
Addressed by: https:/
Demote personalities from core of API v3 as extensions os-personality
Addressed by: https:/
Convert CamelCase attribute naming to camel_case for servers V3 API
Gerrit topic: https:/
Addressed by: https:/
Port "Accept is_public=None .." to v3 tree
Addressed by: https:/
Merged flavor_disabled extension into core api
Addressed by: https:/
Fix v3 api images related links
Addressed by: https:/
Convert camelCase attribute naming to camel_case
Addressed by: https:/
Removes V3 API images and image_metadata extensions
Gerrit topic: https:/
Addressed by: https:/
Adds support for security_groups for V3 API server create
Gerrit topic: https:/
Addressed by: https:/
Port os-volumes extension to v3 API Part 1
Addressed by: https:/
Port os-volumes extension to v3 API Part 2
Addressed by: https:/
Port "Make flavors is_public option .." to v3 tree
Addressed by: https:/
Correct the authorizer for extended-volumes v3
Addressed by: https:/
Adds user_data extension to nova.api.
Addressed by: https:/
Port flavormanage extension to v3 API part 1
Addressed by: https:/
Port flavormanage extension to v3 API Part 2
Addressed by: https:/
Sets policy settings so V3 API extensions are discoverable
Addressed by: https:/
Remove dis/associate actions from security_groups v3
Addressed by: https:/
Remove used_limits extension from the V3 API
Addressed by: https:/
Adds API version discovery support for V3
Addressed by: https:/
Make availability_zone optional in create for aggregates v3
Addressed by: https:/
Correct the status code to 201 for create v3
Addressed by: https:/
Makes v3 API keypairs extension core
Addressed by: https:/
Make v3 API console-output extension core
Addressed by: https:/
Make v3 API scheduler_hints and versions extensions core
Addressed by: https:/
Removes fixed ips extension from V3 API
Addressed by: https:/
Fix error messages in v3 aggregate API
Addressed by: https:/
Get parameter from req argument in V3 quota_sets
Addressed by: https:/
Add extension access_ips for v3 API
Addressed by: https:/
Enable extension access_ips for v3 API
Addressed by: https:/
Make v3 admin_pass parameters consistent
Addressed by: https:/
Move get_all_tenants policy enforcement to API
Addressed by: https:/
Fix server action tests for V3 API
Addressed by: https:/
Add flavor-manage to core for V3 API
Addressed by: https:/
Add flavor-access to core for V3 API
Addressed by: https:/
Add flavor-extra-specs to core for V3 API
Addressed by: https:/
Remove V3 API version of coverage extension
Addressed by: https:/
Fix limits v3 follow API v3 rules
Addressed by: https:/
Add decorator expected_errors for flavors_extraspecs v3
Gerrit topic: https:/
Addressed by: https:/
Add API input validation framework
Addressed by: https:/
Add API schema for v3 keypairs
Gerrit topic: https:/
Addressed by: https:/
Alphabetize core list for V3 API extensions
Addressed by: https:/
Add API schema for v3 evacuate
Gerrit topic: https:/
Addressed by: https:/
Use HTTPRequestV3 instead of HTTPRequest in v3 API tests
Addressed by: https:/
Adds ability to disable the V2 API
Addressed by: https:/
No longer display core plugins in V3 API extensions list
Addressed by: https:/
Merges config_drive into servers core for V3 API
Addressed by: https:/
Remove redundant list from v3 attach_interface API
Addressed by: https:/
Port assisted_
Removed from next, as next is now reserved for near misses from the last milestone --johnthetubaguy
Apologies, bad script, restoring bp --johnthetubaguy
Work Items
Work items:
Survey of existing error codes returned for success and fail in Nova: TODO
Dependency tree
* Blueprints in grey have been implemented.