用项目(projects)取代代码库中的租户(tenants)概念

https://blueprints.launchpad.net/barbican/+spec/replace-concept-of-tenants-for-projects

为了强制执行统一且一致的代码库,有必要以一致的方式使用概念。一个明显的例子是代码库中“租户”和“项目”概念的随意使用。本蓝图提出的建议是最终用一个概念取代另一个概念,从而结束这种不一致性。

问题描述

尽管如此,已经讨论过效仿 Keystone 团队的做法,即开始强制使用“项目”概念而不是“租户”概念;但仅在 Barbican 代码库中,仍然有 580 处“租户”一词的出现(在本蓝图撰写时),而“项目”一词仅出现 103 处。这表明缺乏统一性,降低了代码库的一致性。

提议的变更

因此,为了解决上述问题,我建议将代码库中的所有“租户”实例替换为“项目”,并强制使用“项目”。这样做不仅是为了拥有一个一致的代码库,也是为了与其他项目(如 Keystone)保持一致性。

备选方案

保持代码库不变。

数据模型影响

由于“租户”概念实际上正在数据模型中使用,因此会对数据模型产生影响。因此,Tenant 和 TenantSecret 类将被分别替换为 Project 和 ProjectSecret 类。另一方面,包含带有“tenant”一词的列的表也需要替换,并且需要添加迁移脚本(TenantSecret、Tenant、EncryptedDatum、KEKDatum、Order 和 Container 类/表将受到影响)。

另一方面,keystone_id 也将被从 Tenant(将被称为 Project)替换为“project_id”,因为最初的命名是由于对应该使用“tenant_id”还是“project_id”感到困惑。围绕此的适当业务逻辑,包括更改上下文的填充方式以及将其传递给控制器的的方式,也将反映此更改。总而言之,“keystone_id”也将被“project_id”取代

REST API 影响

安全影响

通知与审计影响

如果在发出通知时使用“租户”一词,则将其更改为“项目”。除此之外,不会有其他影响。

其他最终用户影响

python-barbicanclient 接受的某些参数将因本次更改而改变。

性能影响

其他部署者影响

需要在已部署的系统上运行迁移脚本。否则,不会有其他影响。

开发人员影响

希望开发者停止在 barbican 中使用“租户”一词。

实现

负责人

主要负责人

juan-osorio-robles

工作项

  • 替换代码库中的所有简单实例

  • 替换数据模型中的实例(编写适当的迁移脚本)

  • 替换 python-barbicanclient 中的所有实例

依赖项

测试

当前的单元测试也将被修改以反映此更改。

文档影响

如果术语在 wiki 中存在实例,也应更改这些实例。

参考资料