本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode

区域和记录总数

https://blueprints.launchpad.net/designate/+spec/zone-and-record-totalcount

问题描述

当用户请求区域或记录列表时,提供与给定查询匹配的区域或记录的总数。 理想情况下,当用户请求类似 /zones 或 /records 的内容时,将提供计数(以减少发出多个查询的需求)。

提议的变更

API 变更

此变更不会添加任何新的端点,但会修改现有端点呈现的数据。

以下示例演示了通用“资源”集合的 total_entries 值。 实现后,此功能将由区域和记录集集合支持。

GET /v2/resources

示例请求

GET /v2/resources HTTP/1.1
Accept: application/json
Content-Type: application/json

示例响应

HTTP/1.1 200 OK
Content-Type: application/json

{
  "resources": [{
    "id": "fdd7b0dc-52a3-491e-829f-41d18e1d3ada",
    "created_at": "2014-06-23T18:39:32.000000",
    "....": "...."
  }, {
    "id": "a86dba58-0043-4cc6-a1bb-69d5e86f3ca3",
    "created_at": "2014-07-08T20:28:19.000000",
    "....": "...."
  }, {
    "id": "460f7531-e381-4773-aff3-06a12fad096d",
    "created_at": "2014-06-04t19:09:17.000000",
    "....": "...."
  }, {
    "id": "40ced622-fc70-498d-9f28-3d3021b19685",
    "created_at": "2014-07-08T16:47:32.000000",
    "....": "...."
  }],
  "links": {
    "self": "https://dns.provider.com/v2/resources?sort_key=id&sort_dir=desc"
  },
  "meta": {
    "total_entries": 4
  }
}

Central 变更

将添加一个 PagedListObjectMixin 类,该类将支持与列表分页相关的元数据。 此类将作为 ZonesList 和 RecordsList 类的超类添加。

Storage 变更

任何对 find_domains 的调用也会在内部调用 count_domains,并将此计数添加到返回的 DomainsList 对象中。

任何对 find_records 的调用也会在内部调用 count_records,并将此计数添加到返回的 RecordsList 对象中。

其他变更

替代方案

实现

负责人

主要负责人:jordan-cazamias

里程碑

完成目标里程碑

Juno-2

工作项

  • 同意 API 格式规范

  • 实施变更

依赖项

https://review.openstack.org/#/c/105021/