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

Validate 方法的用途

RGM 使用传递给其他方法的其他参数调用 Validate,包括要更新的属性和值。因此,数据服务样例中的此方法必须执行不同的 parse_args() 函数以处理其他参数。

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


注 –

由于在 DNS 运行时不能更改配置目录,所以 Confdir 属性在 RTR 文件中被声明为 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 的值。Validate 执行同样的检查,验证配置目录是否可访问并且是否包含非空文件 named.conf

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