Sun Cluster: Guía del desarrollador de los servicios de datos del sistema operativo Solaris

Análisis de los argumentos de función

RGM ejecuta todos los métodos de rellamada, excepto Validate, como se indica a continuación:

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

El nombre del método es el de la ruta del programa que implementa el método de rellamada. Un servicio de datos especifica el nombre de la ruta de cada método en el archivo RTR. Estos nombres de ruta son relativos en relación con el directorio especificado por la propiedad Rt_basedir, también en el archivo RTR. Por ejemplo, en el archivo RTR del servicio de datos de ejemplo, el directorio básico y los nombres de métodos se especifican de la siguiente forma:

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

Todos los argumentos de los métodos de rellamada se pasan como valores marcados. El argumento -R indica el nombre de la instancia del recurso. El argumento -T indica el tipo de recurso. El argumento -G indica el grupo en el que se ha configurado el recurso. Consulte la página de comando man rt_callbacks(1HA) para obtener más información sobre los métodos de rellamada.


Nota –

Se llama al método Validate con argumentos adicionales, es decir, los valores de propiedades del recurso y el grupo de recursos. Consulte Administración de las actualizaciones de propiedades para obtener más información.


Cada método de rellamada necesita una función para analizar los argumentos que ésta transfiere. Dado que las rellamadas pasan siempre por los mismos argumentos, el servicio de datos proporciona una única función de análisis para todas las rellamadas de la aplicación.

El siguiente ejemplo muestra la función parse_args() utilizada para los métodos de rellamada en la aplicación de ejemplo.

#########################################################################
# 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
}

Nota –

Aunque el método PROBE de la aplicación de ejemplo está definido por el usuario (no es un método de rellamada de Sun Cluster), se invoca con los mismos argumentos que los métodos de rellamada. Por lo tanto, este método contiene una función de análisis idéntica a la utilizada por los otros métodos de rellamada.


La función de análisis se invoca en MAIN como:

parse_args “$@”