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

Análisis de los argumentos de función

RGM invoca todos los métodos de rellamada, salvo Validate, como se indica a continuación.


nombre_método -R nombre_recurso -T nombre_tipo_recurso -G nombre_grupo_recurso

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 al 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, los nombres del directorio básico y del método se especifican como se indica a continuación.


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

Todos los argumentos del método de rellamada se pasan como valores con indicadores, donde -R indica el nombre de la instancia de recursos, -T, el tipo del recurso, y -G, el grupo en el que se configura 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 –

El método Validate se invoca con argumentos adicionales (los valores de la propiedad del recurso y del grupo de recursos en el que se invoca). Consulte Manejo 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 se le pasan. 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.

A continuación se muestra la función parse_args() empleada para los métodos de rellamada en la aplicación de ejemplo.


#########################################################################
# Analizar argumentos del programa.
#
function parse_args # [args ...]
{
      typeset opt

      while getopts 'R:G:T:' opt
      do
             case "$opt" in
             R)
                  # Nombre del recurso de DNS.
                  RESOURCE_NAME=$OPTARG
                  ;;
             G)
                  # Nombre del grupo de recursos en el que se ha configurado
                  # el recurso.
                  RESOURCEGROUP_NAME=$OPTARG
                  ;;
             T)
                  # Nombre del tipo de recurso.
                  RESOURCETYPE_NAME=$OPTARG
                  ;;
             *)
                  logger -p ${SYSLOG_FACILITY}.err \
                  -t [$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME] \
                  "ERROR: Opción $OPTARG desconocida"
                  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 tanto, este método contiene una función de análisis idéntica a la que utilizan otros métodos de rellamada.


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


parse_args “$@”