Sun Cluster 数据服务开发者指南(适用于 Solaris OS)

Validate 概述

RGM 通过不同于传送到其它方法的变量的附加变量(包括所更新的特性和值)调用 Validate。 因此,在数据服务样例中此方法必须实现一个不同的 parse_args() 函数以处理附加变量。

数据服务样例中的 Validate 方法用来检验单个特性 Confdir 扩展特性。 此特性指向 DNS 配置目录,这对于能否成功地进行 DNS 操作来说至关重要。


注意:

因为在 DNS 运行时无法更改配置目录,RTR 文件中 Confdir 特性被声明为 TUNABLE = AT_CREATION。 因此,进行更新后将永远不会调用 Validate 方法来检验 Confdir 特性,仅当创建数据服务资源时才会调用。


如果 Confdir 是 RGM 传送到 Validate 的特性之一,则 parse_args() 函数将进行检索并保存其值。 然后 Validate 将检验通过 Confdir 的新值所指向的目录是否可以存取,并检验在该目录中 named.conf 文件是否存在并包含有数据。

如果 parse_args() 函数无法从 RGM 传送的命令行变量中检索到 Confdir 的值,Validate 仍将尝试验证 Confdir 特性。 Validate 使用 scha_resource_get() 从静态配置中获取 Confdir 的值。 然后它将执行相同的检查操作,以检验该配置目录是否可以存取并包含非空的 named.conf 文件。

如果 Validate 在失败状态下退出,所有特性(而不仅仅是 Confdir)的更新或创建操作都将失败。