refactor-datasource-driver-framework¶
https://blueprints.launchpad.net/congress/+spec/refactor-datasource-driver-framework
目前 congress 数据源驱动程序仍然比较复杂。此蓝图旨在简化它。
问题描述¶
问题详细描述
目前 `convert_obj()` 方法中包含大量逻辑,用于将数据加载到数据源驱动程序中。这些逻辑的大部分用于验证表模式是否有效。我们只需要在数据源驱动程序加载时执行一次即可。
目前,如果列出数据源驱动程序的表,它们并非总是通过 `__init__ self.state[table_name] = set()` 填充。我希望在 DatasourceDriver 基类中添加一个 `load_translator()` 方法,该方法允许通过数据源驱动程序的 `__init__` 传递转换器。这将在此处验证模式。
提议的变更¶
如所述,将 `load_translator()` 添加到数据源驱动程序基类。此外,在完成此工作时,进行其他重构。
备选方案¶
N/A
策略¶
N/A
使用 Congress datalog 语法,根据 https://wiki.openstack.org/wiki/Congress#Policy_Language 编写一个使用示例策略
示例
- error(vm) :-
nova:virtual_machine(vm), ids:ip_packet(src_ip, dst_ip), neutron:port(vm, src_ip), //找出拥有 VM IP 的端口 ids:ip_blacklist(dst_ip).
策略操作¶
不适用 描述策略活动,包括监控、响应式、主动式以及其他解释策略如何实现其期望状态的方式。
数据源¶
不适用 描述数据来自哪些项目和/或服务
数据模型影响¶
不适用 需要修改数据模型的变化通常会对系统产生更广泛的影响。社区通常对数据模型应该如何演进持有强烈的意见,从功能和性能的角度来看都是如此。因此,尽早捕获并达成共识对于任何拟议的数据模型更改至关重要。
本节需要解决的问题包括
这将需要哪些新的数据对象和/或数据库模式更改?
哪些数据库迁移将伴随此更改。
如何生成初始的新数据对象集,例如,如果您需要考虑现有实例,或修改其他现有数据,请描述如何操作。
REST API 影响¶
N/A
安全影响¶
N/A
通知影响¶
N/A
其他最终用户影响¶
N/A
性能影响¶
N/A
其他部署者影响¶
N/A
开发者影响¶
N/A
依赖项¶
N/A
测试¶
将提供单元测试和 tempest 测试来确认其按预期工作。
文档影响¶
将更新文档以说明其现在的运作方式。
参考资料¶
N/A