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

服务器池存储

https://blueprints.launchpad.net/designate/+spec/server-pools-storage

本规范概述了支持服务器池所需的中央、存储和兼容性更改。

问题描述

对于服务器池,需要一个新的对象来封装池。当本规范实施后,池对象将由后端驱动程序用于获取名称服务器,作为兼容性更改。中央将继续调用后端驱动程序。其他的服务器池规范将解决使用整个池对象的问题。这是这些其他规范的基础。

提议的变更

当数据库首次初始化时,将创建一个名为“default”的池。这是默认池。默认池将没有 also-notify 主机,也没有名称服务器。将向中央添加新的方法来创建、查找、获取、更新和删除池,这些方法在中央更改部分中描述。支持池所需的数据库更改在存储更改部分中描述。最后,可以使用兼容性更改部分中描述的 V1 服务器端点将名称服务器添加到默认池。

API 变更

Central 变更

Designate 配置的 [service:central] 部分将有一个新的选项

参数

默认值

必需

注意事项

default_pool_name

‘default’

默认池的池名称

此值需要设置为默认池的池名称,即‘default’。

将实现池对象。

中央服务中为池对象实现的新方法是

create_pool(context, pool)

参数

描述

必需

context

安全上下文信息。

pool

designate 池对象。

返回值

创建的池。

find_pools(context, criterion, marker, limit, sort_key, sort_dir)

参数

描述

必需

context

安全上下文信息。

criterion

搜索标准。

marker

请求页面后将开始的资源 ID。

limit

请求页面后标记后的对象数量限制。

sort_key

用于排序的键。

sort_dir

使用 sort_key 排序的方向。

返回值

找到的池。

get_pool(context, pool_id)

参数

描述

必需

context

安全上下文信息。

pool_id

池 ID。

返回值

请求的池。

update_pool(context, pool)

参数

描述

必需

context

安全上下文信息。

pool

designate 池对象。

返回值

更新的池。

delete_pool(context, pool_id)

参数

描述

必需

context

安全上下文信息。

pool_id

池 ID。

返回值

无返回值。

Storage 变更

需要一个新的池表。另一个新的表 pool_attributes 将用于存储 also-notify 和名称服务器值,以及支持服务器池的未来增强功能。domains 表将被修改以支持池。

新表 - pools

类型

可为空?

唯一?

注意事项

id

CHAR(32)

PK

created_at

DATETIME

创建 UTC 时间

updated_at

DATETIME

上次更新 UTC 时间

version

INT(11)

Designate API 版本

name

VARCHAR(50)

服务器池名称

description

VARCHAR(255)

服务器池描述

project_id

VARCHAR(36)

创建池的租户 ID

provisioner

ENUM

目前仅支持 ‘unmanaged’ provisioner

新表 - pool_attributes

类型

可为空?

唯一?

注意事项

id

CHAR(32)

PK

VARCHAR(255)

池属性键(also-notify、名称服务器等)

value

VARCHAR(255)

池属性值

pool_id

CHAR(32)

FK 到 pools 表上的 ID

修改表 - domains

类型

可为空?

唯一?

注意事项

操作

pool_id

CHAR(32)

FK 到 pools 表上的 ID

添加

兼容性更改

在使用 V1 服务器端点添加名称服务器时,将在 pool_attributes 表中为名称服务器创建一个条目。使用的列和值将是

‘name_server’

value

<名称服务器的 FQDN>

pool_id

<默认池 ID>

在使用 V1 domains 端点创建域时,domains 表条目将包含默认池的池 ID。

后端驱动程序将被修改为使用 pool_attributes 表中默认池定义的名称服务器,而不是 servers 表。

中央服务器的所有方法都将被删除。

servers 表将被删除,并且存储的所有 servers 方法都将被删除。

现有的服务器对象将被删除。

其他变更

替代方案

实现

负责人

主要负责人

https://launchpad.net/~rjrjr

附加负责人

https://launchpad.net/~darshan104

里程碑

完成目标里程碑

Kilo-1

工作项

  • 中央更改

  • 存储更改

  • 兼容性更改

依赖项