用项目(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 中存在实例,也应更改这些实例。
参考资料¶
无