为每个 CDM 定义定制的 Scoper¶
https://blueprints.launchpad.net/watcher/+spec/cdm-scoping
问题描述¶
存储集群数据模型是在 Pike 周期中引入的。由于该模型与计算数据模型不同,当前的单个 CDM scoper 对该模型不起作用。
用例¶
作为 Watcher 用户,我希望限制存储集群数据模型的范围。
提议的变更¶
在 BaseClusterDataModelCollector 中添加 _audit_scope 实例属性,并在实例化时进行初始化。
从当前的 BaseStrategy 中移除 audit_scope_handler,并将其移动到 BaseClusterDataModelCollector 中。
将 audit_scope 参数添加到 CollectorManager 的 get_cluster_model_collector 方法中。
更改 compute_model 方法以使用 Collector 的 audit_scope_handler。
更改原始 DefaultScope。
get_scoped_model 简单地返回 cluster_model。
为了表示 JSON schema 的多数据模型,我们将 DEFAULT_SCHEMA 更改为如下所示
DEFAULT_SCHEMA = { "$schema": "https://schema.json.js.cn/draft-04/schema#", "type": "object", "properties": { "compute": { # current JSON schema moved to NovaClusterDataModelCollector # retrieved from NovaClusterDataModelCollector }, "storage": { # retrieved from CinderClusterDatamodelCollector }, ....... } }
属性将从 collector 插件中动态检索。
根据上述更改更新 AuditTemplatePostType 中的 validate 方法。
将 DefaultScope 重命名为 ComputeScope,并在 Compute Collector 中覆盖 audit_scope_handler 属性。
更改 python-watcherclient 中的 audit template 帮助消息。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
根据 DEFAULT_SCHEMA 的更改,来自请求体的 audit template POST 数据的 Scope JSON schema 定义将被更改。
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
最终用户通过在每个 audit template 中指定带有 –scope 选项的 yaml 或 json 文件来定义 audit 范围。文件格式将根据 JSON schema 的更改而更改。
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
<nakamura-h>
- 其他贡献者
<None>
工作项¶
在基类中添加或移除 audit_scope 和 audit_scope_handler。
更改原始 DefaultScope。
更改 Compute Collector 以使用 ComputeScope 代替 DefaultScope。
更改 python-watcherclient。
依赖项¶
无
测试¶
将更新单元测试。
文档影响¶
没有,但最好添加更多。