Flavor Extra Spec 和镜像属性验证

https://blueprints.launchpad.net/nova/+spec/flavor-extra-spec-image-property-validation

问题描述

目前 flavor extra-specs 和镜像属性的验证是在不同的地方进行的。如果它们不兼容,实例可能无法启动并进入 ERROR 状态,或者根据 virt 驱动的行为,可能会重新调度未知的次数。

用例

作为最终用户,我希望在 flavor extra spec 或镜像属性无效或彼此不兼容时能够立即获得反馈,以便我能够更正我的配置并重试操作。

提议的变更

我们希望在两者都已知后,尽快验证 flavor extra-specs 和镜像属性的组合。

如果验证失败,则同步向用户返回错误。

我们需要在 flavor 或镜像发生更改的任何地方执行此操作,基本上是实例创建、重建和调整大小。更具体地说,将 _check_requested_image() 重命名为更通用的名称,将其从 _checks_for_create_and_rebuild() 中移除,修改它以检查更多内容,并从所有三个操作(创建、重建和调整大小)调用它。

注意

仅验证与 virt 驱动程序无关的内容。

要添加的验证示例 [1]

  • 调用 hardware.numa_get_constraints 来验证所有各种与 numa 相关的事务。目前这仅在 _create_instance() 中完成,也应为 resize/rebuild 完成。

  • 确保 cpu 策略、cpu 线程策略和模拟器线程策略值有效。

  • 验证实时掩码。

  • 验证串口数量。

  • 验证 cpu 拓扑约束。

  • 验证 flavor 中的 quota:* 设置(不属于 virt 驱动程序特定设置)。

备选方案

数据模型影响

REST API 影响

由于新的验证,用户在创建/重建/调整大小操作中可能会遇到比以前更多的 4xx 错误。

安全影响

通知影响

其他最终用户影响

性能影响

可以忽略不计。

其他部署者影响

开发人员影响

升级影响

实现

负责人

主要负责人

jackding

工作项

  • 主要在 nova/compute/api.py 中添加验证。

  • 添加/更新单元测试。

  • 根据添加的新验证,必要时更新文档/发布说明。

依赖项

测试

将添加单元测试。

文档影响

参考资料

历史

修订

发布名称

描述

Stein

引入