领域配额驱动程序的 APIs
简介
Nova 中现有的 DbQuotaDriver 允许在项目/租户和用户级别设置配额。但也有必要在领域级别强制执行配额。一个新的驱动程序,称为“领域配额驱动程序”,可用于在 Nova 中强制执行领域配额。要使用此驱动程序,需要一组新的 APIs 来执行领域、项目和用户级别的配额 CRUD 操作。
Nova 中的配额
当前,OpenStack 服务使用配额来限制项目或用户的资源。例如,“实例”配额表示可以在项目或用户中创建的实例数量。通过领域配额驱动程序,相同的配额选项在领域上下文中可用。要了解有关领域配额驱动程序的更多信息并查看可用的配额选项,请查看 https://wiki.openstack.org/wiki/DomainQuotaDriver
实现
V2 APIs
请查看下表,了解分别管理领域、项目和用户配额的 APIs。这些 APIs 可以由管理员(即具有管理员角色)用来获取任何领域/项目/用户的配额限制。非管理员用户只能使用这些 APIs 来查看其所属的领域的配额或其作为成员的项目中的配额。此外,非管理员用户可以查看其自身的配额限制。为此,需要使用 Keystone V3 身份验证令牌。令牌提供的上下文分别具有 domain_id、project_id 和 user_id。
| 方式 | URI | 描述 |
|---|---|---|
| GET | v2/{tenant_id}/os-domain-quota-sets/{domain_id} | 显示域的配额 |
| GET | v2/{tenant_id}/os-domain-quota-sets/{domain_id}/defaults | 显示域的默认配额 |
| GET | v2/{tenant_id}/os-domain-quota-sets/{domain_id}?project_id={project_id} | 显示项目的配额 |
| GET | v2/{tenant_id}/os-domain-quota-sets/{domain_id}?project_id={project_id}&user_id={user_id} | 显示项目中用户的配额 |
| DELETE | v2/{tenant_id}/os-domain-quota-sets/{domain_id} | 删除域的配额以及该域中的所有项目的配额(此外,还删除项目中所有用户的配额) |
| DELETE | v2/{tenant_id}/os-domain-quota-sets/{domain_id}?project_id={project_id} | 删除项目的配额以及该项目中的所有用户的配额 |
| DELETE | v2/{tenant_id}/os-domain-quota-sets/{domain_id}?project_id={project_id}&user_id={user_id} | 删除项目中用户的配额 |
| PUT | v2/{tenant_id}/os-domain-quota-sets/{domain_id} | 创建或更新域的配额 |
| PUT | v2/{tenant_id}/os-domain-quota-sets/{domain_id}?project_id={project_id} | 创建或更新项目的配额 |
| PUT | v2/{tenant_id}/os-domain-quota-sets/{domain_id}?project_id={project_id}&user_id={user_id} | 创建或更新项目中用户的配额 |
V3 APIs
| 方式 | URI | 描述 |
|---|---|---|
| GET | v3/os-domain-quota-sets/{domain_id} | 显示域的配额 |
| GET | v3/os-domain-quota-sets/{domain_id}/defaults | 显示域的默认配额 |
| GET | v3/os-domain-quota-sets/{domain_id}?project_id={project_id} | 显示项目的配额 |
| GET | v3/os-domain-quota-sets/{domain_id}?project_id={project_id}&user_id={user_id} | 显示项目中用户的配额 |
| DELETE | v3/os-domain-quota-sets/{domain_id} | 删除域的配额以及该域中的所有项目的配额(此外,还删除项目中所有用户的配额) |
| DELETE | v3/os-domain-quota-sets/{domain_id}?project_id={project_id} | 删除项目的配额以及该项目中的所有用户的配额 |
| DELETE | v3/os-domain-quota-sets/{domain_id}?project_id={project_id}&user_id={user_id} | 删除项目中用户的配额 |
| PUT | v3/os-domain-quota-sets/{domain_id} | 创建或更新域的配额 |
| PUT | v3/os-domain-quota-sets/{domain_id}?project_id={project_id} | 创建或更新项目的配额 |
| PUT | v3/os-domain-quota-sets/{domain_id}?project_id={project_id}&user_id={user_id} | 创建或更新项目中用户的配额 |