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

分析函数参数

RGM 运行所有的回调方法(除了 Validate),如下所示:

method-name -R resource-name -T resource-type-name -G resource-group-name

方法名是实现回调方法的程序的路径名。数据服务指定 RTR 文件中各个方法的路径名。这些路径名与 RT_basedir 属性(也在 RTR 文件中)指定的目录有关。例如,在数据服务样例的 RTR 文件中,基目录和方法名按以下方式指定:

RT_basedir=/opt/SUNWsample/bin;
Start = dns_svc_start;
Stop =  dns_svc_stop;
...

所有回调方法参数都将作为带标志的值传递。参数 -R 表示资源实例的名称。参数 -T 表示资源的类型。参数 -G 表示资源配置到的组。有关回调方法的更多信息,请参见 rt_callbacks(1HA) 手册页。


注 –

Validate 方法与其他参数(即,在其上调用该方法的资源和资源组的属性值)一起调用。有关更多信息,请参见处理属性更新


每个回调方法都需要一个函数来解析传递该函数的参数。因为所有回调方法都传送相同的参数,所以数据服务提供了一个用于应用程序中所有回调方法的分析函数。

以下样例显示了样例应用程序中的回调方法所使用的 parse_args() 函数。

#########################################################################
# Parse program arguments.
#
function parse_args # [args ...]
{
      typeset opt

      while getopts 'R:G:T:' opt
      do
             case "$opt" in
             R)
                  # Name of the DNS resource.
                  RESOURCE_NAME=$OPTARG
                  ;;
             G)
                  # Name of the resource group in which the resource is
                  # configured.
                  RESOURCEGROUP_NAME=$OPTARG
                  ;;
             T)
                  # Name of the resource type.
                  RESOURCETYPE_NAME=$OPTARG
                  ;;
             *)
                  logger -p ${SYSLOG_FACILITY}.err \
                  -t [$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME] \
                  "ERROR: Option $OPTARG unknown"
                  exit 1
                      ;;
             esac
    done
}

注 –

虽然应用程序样例中的 PROBE 方法是用户定义的(不是 Sun Cluster 回调方法),但是也使用与调用回调方法相同的变量来调用该方法。因此,该方法包含一个与另一个回调方法使用的解析函数相同的解析函数。


分析函数在 MAIN 中调用,如下所示:

parse_args “$@”