Networking-calico 评估报告¶
Neutron 集成¶
N0. 该项目是否使用 Neutron REST API,还是依赖于专有后端?
否。该项目实现了 Neutron 插件。
N1. 该项目是否集成了/使用了 neutron-lib?
否。在总共约 200 个导入中,neutron-lib 被导入 0 次,而 Neutron 被导入了数十次。有一些正在进行中,还需要更多。
N2. 项目成员是否积极贡献以帮助 neutron-lib 实现其目标?
否。
N3. 项目成员是否与核心团队合作,通过帮助定义模块化接口,使子项目能够松散地与 Neutron 核心平台集成?
否,正如下一条所演示的。
N4. 该项目如何提供网络服务?它是否使用核心平台提供的模块化接口?
该项目采用了一些值得怀疑的模式。这些模式不仅破坏了模块化的意义,还可能导致极其脆弱的解决方案。团队正在努力解决这个问题。
N5. 如果该项目提供新的 API 扩展,是否已经讨论并接受了这些 API 扩展,并由 Neutron 驱动程序团队批准?如果需要,请提供 API 规范的链接。
看起来该项目没有引入新的 API。
文档¶
D1. 该项目是否具有 doc tox 目标,功能正常且持续运行?请提供证明(指向 logs.openstack.org 的链接)。
是的。
D2. 如果该项目提供 API 扩展,该项目是否具有 api-ref tox 目标,功能正常且持续运行?请提供证明(指向 logs.openstack.org 的链接)。
否。
D3. 该项目是否具有 releasenotes tox 目标,功能正常且持续运行?请提供证明。
否。
D4. 描述可用的文档类型:开发者、最终用户、管理员、部署者。
有一些开发者和部署者文档。正在添加更多。
持续集成¶
C1. 该项目是否具有显示所有可用作业的历史趋势的 Grafana 仪表板?请提供证明(指向 grafana.openstack.org 的链接)。
否。
C2. 该项目是否具有单元覆盖率的 CI?请提供证明(指向 logs.openstack.org 的链接)
是。但是,令人困惑的是,一些测试代码位于非测试模块下,例如 test_election。
C3. 该项目是否具有功能覆盖率的 CI?如果是,是否包括数据库迁移和同步验证?
否。
C4. 该项目是否具有全栈覆盖率的 CI?
否。
C5. 该项目是否具有 Tempest 覆盖率的 CI?如果是,请说明性质(API 和/或场景)。
否,截至撰写本文时。
C6. 该项目是否需要 Grenade 覆盖的 CI?
可能,但目前还没有。
C7. 该项目是否提供多节点 CI?
否。
C8. 该项目是否支持 Python 3.x?请提供证明。
否。正在进行中。
发行足迹¶
R1. 该项目是否采用语义化版本控制 (semver)?
是的。
R2. 该项目是否有发布交付物?请提供在 发布仓库 中可用的证明。
是的。
R3. 该项目是否使用上限约束?
否。正在进行中。
该项目是否与 OpenStack 提案机器人集成以进行需求更新?
否。正在进行中。
稳定的回溯¶
S1. 该项目是否有稳定的分支和/或标签?请提供回溯历史记录。
缺乏稳定的分支以及代码在某种程度上处理分支的方式令人担忧。
客户端库¶
L1. 如果该项目需要客户端库,它是如何实现 CLI 和 API 绑定的?
否。
评分卡¶
评分卡 |
|
|---|---|
N0 | Y |
|
N1 | N |
|
N2 | 否 |
|
N3 | N |
|
N4 | N |
|
N5 | 否 |
|
D1 | 是 |
|
D2 | 否 |
|
D3 | 否 |
|
D4 | 是 |
|
C1 | Y |
|
C2 | 否 |
|
C3 | 否 |
|
C4 | 否 |
|
C5 | 否 |
|
C6 | 否 |
|
C7 | 否 |
|
C8 | 否 |
|
R1 | 是 |
|
R2 | 是 |
|
R3 | 否 |
|
R4 | 否 |
|
S1 | 否 |
|
N |
|
总结:networking-calico 代码库的模块化和成熟度与其它 Neutron 子项目相比明显不足。除了单元覆盖之外缺乏测试至少是一个问题。为提供网络解决方案而选择的一些模式体现了 networking-calico 和 Neutron 核心团队之间的脱节。所需的工作并非不可克服,但需要时间。