Neutron/LibraryAPIBreakage
< Neutron
此页面旨在记录所有潜在的和实际的 neutron 库 API 破坏,这些破坏被合并到代码树中。
历史记录
从 Kilo 版本开始,Neutron 开始将高级服务(LBaaS、VPNaaS、FWaaS)和厂商插件以及 ml2 驱动程序拆分为独立的 git 仓库。 已经拆分的代码仍然大量使用 neutron.* 命名空间中的符号,假定 neutron 是一个具有稳定 API 的库。 但实际上并非如此,因此代码树中的更改可能会破坏使用这些符号的外部代码(*aas、厂商库)。
这个想法是最终稳定 neutron 代码树的某些部分,并将它们转换为具有某种 API 稳定性保证的公共库。 也就是说,这不会立即发生,因此短期内预计会出现破坏。
破坏情况
通用说明:出于多种原因,任何插件都不应依赖 neutron.openstack.* 内容。 主要原因是,这些内容随时可能被删除。 相反,要么直接使用成熟的 oslo 库,要么将 oslo-incubator 文件复制到您的仓库中。
| 日期 | 导致破坏的补丁 | 更改的简要描述 | 可能的解决方案 | 严重程度 |
|---|---|---|---|---|
| 07/02/15 | 已合并 | 简化 COMMON_PREFIX 的使用 | 切换到使用声明式属性,如 此处所示。 | 高(您的 CI 应该可以捕获到它) |
| 07/01/15 | 已合并 | 采用 oslo.service | 切换到使用 oslo_service.* 命名空间。 停止使用任何 neutron.openstack.* 内容 | 低(已检测到,插件不应依赖该子树) |
| 05/07/15 | 已合并 | 在 DB 方法中重用调用者的会话 | 将 context 添加到参数并重用 | 高(大部分未检测到,因为第三方 CI 仅运行 Tempest 测试) |
| 03/13/15 | 已合并 | 切换到 oslo.log,移除 neutron.openstack.common.log | a) 切换到 oslo.log;b) 将 log 模块复制到您的树中并使用它(由于模块和 oslo.log 配置选项之间的冲突,可能无法工作) | 高(大多数 CI 系统受到影响) |
| 04/06/15 | 已合并 | 实现 reorganize-unit-test-tree 规范 | 受影响的代码需要更新现有的单元测试以反映新的位置。 | 高(大部分未检测到,因为第三方 CI 仅运行 Tempest 测试)。 |
| 04/20/15 | 已合并 | 移除 linux/ovs_lib 兼容层 | 切换到使用 neutron/agent/common/ovs_lib.py | 高(大多数 CI 系统受到影响) |