标准化 Nova 镜像¶
https://blueprints.launchpad.net/nova/+spec/standardize-nova-image
将 Nova 的 nova.image 模块标准化,使其工作方式与 nova.network.api 和 nova.volume.cinder 类似。
问题描述¶
由于某种原因,nova.image 的处理方式与其他 nova.volume 和 nova.network 不同。Nova.compute.manager 不像实例化 self.network_api 和 self.volume_api 那样实例化 self.image_api 对象,而是调用 nova.image.glance 模块的一系列晦涩的函数。
此蓝图围绕着创建新的 nova.image.api 模块,并使其像 Nova 中的其他子模块“内部 API”一样被调用。
提议的变更¶
将创建一个新的 nova.image.api 模块,风格上遵循 nova.network.api 和 nova.volume.cinder。nova.image.api 模块中将包含一个 API 类,其约定与 nova.volume.cinder.API 类完全相同,具有用于列出(get_all)、显示(get)、创建(create)、更新(update)和删除(delete)后端镜像存储中镜像的方法。将有一个 nova.image.driver 模块,其中包含一个基础驱动程序类。
nova.image.glance 模块将被更新,以继承基础驱动程序类。
备选方案¶
目前有一系列补丁正在 Nova 中审查,试图添加对 Glance V2 API 操作的支持
不幸的是,我认为这组补丁进一步模糊了 Nova 内部的镜像服务,而不是使其更清晰和标准化,与 Nova 的其余外部 API 接口保持一致。
此蓝图的想法是首先标准化 Nova 内部的镜像 API,为未来的 V2 Glance API 工作奠定良好的基础。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
请参阅上面链接到 Eddie Sheffield 的补丁系列,该系列将受到此蓝图中的代码影响。然而,希望一旦镜像 API 与其他 Nova 内部到外部 API 保持一致,V2 Glance API 的工作应该会容易得多。
实现¶
负责人¶
- 主要负责人
jaypipes
工作项¶
创建 nova.image.api 模块,该模块实例化一个驱动程序
创建基础镜像驱动程序类,模仿 refactor-network-api 蓝图代码创建的新 nova.network.driver 类。
将现有的 glance 代码移动到子类化的驱动程序中
依赖项¶
无
测试¶
无
文档影响¶
无
参考资料¶
无