重构网络 API

https://blueprints.launchpad.net/nova/+spec/refactor-network-api

为了拥有一个包含所有必需方法的通用 API 网络基础,以便 neutron / nova 网络 api 可以从中继承。

问题描述

目前网络 api 没有从通用基础继承,如果功能未实现,开发者可能会忘记添加该方法。目前的情况是,每次尝试从 API 访问该功能时,都会由于缺少方法而抛出异常,并且返回的错误信息不明确。

提议的变更

这个想法是创建一个 network_base API,定义所有可能的方法,并仅抛出 NotImplementedError,这样下次用户将看到正确的错误消息。

诸如哨兵对象之类的字段也可以直接继承到基础 api 中。

备选方案

目前的方法是手动将缺少的方法添加到 neutronv2 api 中,例如。 每次有人在一个 api 中添加新方法,都必须对其他 api 执行相同的操作,并在不支持时引发 NotImplementedError。

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

如果开发者向 neutronv2 或 nova-network api 添加新方法,他们必须首先在新的网络基础 api 中定义它。

实现

负责人

主要负责人

leandro-i-costantino

工作项

  • 创建包含当前网络 api 所有公共方法的基础网络 api 文件

依赖项

测试

文档影响

参考资料