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。

文档

  • D2. 如果该项目提供 API 扩展,该项目是否具有 api-ref tox 目标,功能正常且持续运行?请提供证明(指向 logs.openstack.org 的链接)。

    否。

  • D3. 该项目是否具有 releasenotes tox 目标,功能正常且持续运行?请提供证明。

    否。

持续集成

  • C1. 该项目是否具有显示所有可用作业的历史趋势的 Grafana 仪表板?请提供证明(指向 grafana.openstack.org 的链接)。

    否。

  • C3. 该项目是否具有功能覆盖率的 CI?如果是,是否包括数据库迁移和同步验证?

    否。

  • C4. 该项目是否具有全栈覆盖率的 CI?

    否。

  • C6. 该项目是否需要 Grenade 覆盖的 CI?

    可能,但目前还没有。

  • C7. 该项目是否提供多节点 CI?

    否。

发行足迹

  • R1. 该项目是否采用语义化版本控制 (semver)?

    是的。

  • 该项目是否与 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 | 否

L1

N

总结:networking-calico 代码库的模块化和成熟度与其它 Neutron 子项目相比明显不足。除了单元覆盖之外缺乏测试至少是一个问题。为提供网络解决方案而选择的一些模式体现了 networking-calico 和 Neutron 核心团队之间的脱节。所需的工作并非不可克服,但需要时间。