Add standardize-nova-image blueprint
Adds blueprint specification for standardizing the nova.image module into nova.image.api in the same way that nova.network.api works. Change-Id: I17b3dc79c0a2286f019506e4869b23f03e15a0e7
This commit is contained in:
125
specs/juno/standardize-nova-image.rst
Normal file
125
specs/juno/standardize-nova-image.rst
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
======================
|
||||||
|
Standardize Nova Image
|
||||||
|
======================
|
||||||
|
|
||||||
|
https://blueprints.launchpad.net/nova/+spec/standardize-nova-image
|
||||||
|
|
||||||
|
Standardize Nova's nova.image module to work like nova.network.api
|
||||||
|
and nova.volume.cinder.
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
|
||||||
|
For some reason, nova.image does things differently than nova.volume and
|
||||||
|
nova.network. Instead of nova.compute.manager instantiating a
|
||||||
|
self.image_api object, like it does for self.network_api and
|
||||||
|
self.volume_api, the compute manager calls an obtuse collection of
|
||||||
|
nova.image.glance module calls.
|
||||||
|
|
||||||
|
This blueprint is around the work to make a new nova.image.api module
|
||||||
|
and have it called like other submodule "internal APIs" in Nova.
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
|
||||||
|
A new nova.image.api module shall be created, following in the style
|
||||||
|
of nova.network.api and nova.volume.cinder. There will be an API class
|
||||||
|
in the nova.image.api module that follows identical conventions as the
|
||||||
|
nova.volume.cinder.API class, with methods for listing (get_all), showing
|
||||||
|
(get), creating (create), updating (update), and removing (delete)
|
||||||
|
images from the backend image store. There will be a nova.image.driver
|
||||||
|
module with a base driver class.
|
||||||
|
|
||||||
|
The nova.image.glance module will be updated to subclass the base driver
|
||||||
|
class.
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
There is a series of patches in review up for Nova that tries to add
|
||||||
|
support for Glance's V2 API operations:
|
||||||
|
|
||||||
|
https://review.openstack.org/#/q/status:open+project:openstack/nova+branch:master+topic:bp/use-glance-v2-api,n,z
|
||||||
|
|
||||||
|
Unfortunately, I believe this patch series further muddies the image
|
||||||
|
service inside Nova instead of making it cleaner and standardized with
|
||||||
|
the rest of Nova's external API interfaces.
|
||||||
|
|
||||||
|
The idea of this blueprint is to lay a good foundation for future V2
|
||||||
|
Glance API work by first standardizing the image API inside of Nova.
|
||||||
|
|
||||||
|
Data model impact
|
||||||
|
-----------------
|
||||||
|
None
|
||||||
|
|
||||||
|
REST API impact
|
||||||
|
---------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Security impact
|
||||||
|
---------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Notifications impact
|
||||||
|
--------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Other end user impact
|
||||||
|
---------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Other deployer impact
|
||||||
|
---------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Developer impact
|
||||||
|
----------------
|
||||||
|
|
||||||
|
See above link to Eddie Sheffield's patch series that would be affected by the
|
||||||
|
code in this blueprint. Hopefully, however, once the image API is brought in
|
||||||
|
line with the other internal-to-external Nova APIs, the work on V2 Glance API
|
||||||
|
should be quite a bit easier.
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
jaypipes
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Create the nova.image.api module that instantiates a driver
|
||||||
|
* Create the base image driver class, modeling after the new
|
||||||
|
nova.network.driver class created by the refactor-network-api blueprint
|
||||||
|
code.
|
||||||
|
* Move the existing glance code into a subclassed driver
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
None
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
None
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
None
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
None
|
||||||
Reference in New Issue
Block a user