更新驱动到新的基础类结构¶
https://blueprints.launchpad.net/cinder/+spec/abc-driver-update
新的 abc 结构由 bp/abc-volume-drivers [1] 引入。所有驱动程序都需要更新才能受益于新的结构。
问题描述¶
与在运行时引发 NotImplementedErrors 不同,此功能允许在启动时发现驱动程序的特性集,并使其可被 CI/代码检查系统发现。
用例¶
支持矩阵(参见 [2] 获取草案实现)可以提取出来,以查看新功能迁移到所有驱动程序实现的通用函数的过程。
提议的变更¶
所有 cinder 卷驱动程序都需要使用以下方法进行更新
class FooDriver(driver.RetypeVD, driver.TransferVD, driver.ExtendVD,
driver.CloneableVD, driver.CloneableImageVD,
driver.SnapshotVD, driver.BaseVD)
驱动程序必须继承自 BaseVD 并实现基本函数。为了标记驱动程序是否实现进一步的特性集,它必须继承自相应的类。
如果所有驱动程序都实现某个特性集,则这些函数将在最后移动到 BasicVD 中。
备选方案¶
无需移植,否则 [1] 将毫无意义。
数据模型影响¶
无。
REST API 影响¶
无。
安全影响¶
无。
通知影响¶
无。
其他最终用户影响¶
无。
性能影响¶
参见 [1]
其他部署者影响¶
无。
开发人员影响¶
此更改将略微更改所有已实现的驱动程序。功能本身不应更改,但所有驱动程序都需要采用新的类模型。
实现¶
负责人¶
- 主要负责人
Marc Koderer (m-koderer)
- 其他贡献者
所有驱动程序维护者
工作项¶
必要时使用 Etherpad。
依赖项¶
无。
测试¶
需要调整单个驱动程序的单元测试。
文档影响¶
无。
参考资料¶
[1]: https://review.openstack.org/#/c/114168/ [2]: https://review.openstack.org/#/c/160346/