Vitrage 多租户支持¶
当一个租户使用 Vitrage API 时,我们希望只向他展示与他相关的数据。
问题描述¶
Vitrage 需要在其 API 和 CLI 中只显示与该租户相关的数据(由于每个租户的无关性和隐私性,不能显示所有数据)。因此,对于每个数据源和实体,我们需要知道要向该租户显示哪些相关数据。我们还希望如果有人添加 `all_tenants` 属性,则显示所有数据。
提议的变更¶
以下是每个 Vitrage API 如何为每个租户表现的描述
- 获取告警
查找具有请求的 `project_id` 的所有告警(如果项目是 admin,则也显示没有 `project_id` 属性的告警)
查找具有请求的 `project_id` 的所有资源,并返回附加到它们的告警。
合并来自上一步的结果并返回。
- 获取根本原因分析 (RCA)
递归查找此告警导致的所有告警。当到达 `project_id` 不相同(或资源 `project_id` 相同)的告警时,停止递归,并将此最后一个告警包含在响应中。
递归查找导致此告警的所有告警。当到达 `project_id` 不相同(或资源 `project_id` 相同)的告警时,停止递归,并将此最后一个告警包含在响应中。
合并来自上一步的结果并返回。
- 获取拓扑
查找 `project_id` 的所有连通分量。
对于每个分量,选择一个实体并找到所有通往“openstack.cluster”实体的路径(无环)。将路径中的所有顶点添加到该分量中。
合并所有分量并返回。
备注:API 和 CLI 需要表现相同。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
流水线影响¶
无
其他最终用户影响¶
无
性能/可扩展性影响¶
无
其他部署者影响¶
无
开发者影响¶
无
实现¶
负责人¶
- 主要负责人
alexey_weyl <alexey.weyl@alcatel-lucent.com>
工作项¶
无
未来生命周期¶
无
依赖项¶
无
测试¶
无
文档影响¶
无
参考资料¶
无