Guide des développeurs pour les services de données Sun Cluster 3.1 10/03

Analyse des arguments de la fonction

Le RGM appelle toutes les méthodes de rappel, à l'exception de Validation, de la manière suivante :


nom_méthode -R nom_ressource -T nom_type_ressource -G nom_groupe_ressources

Le nom de la méthode correspond au nom de chemin d'accès du programme mettant en oeuvre la méthode de rappel. Un service de données spécifie le nom de chemin d'accès de chaque méthode du fichier RTR. Ces noms dépendent du répertoire spécifié par la propriété rép_base_TR, également dans le fichier RTR. Par exemple, dans le fichier RTR du service de données modèle, le répertoire de base et les noms des méthodes sont spécifiés de la manière suivante :


RÉP_BASE_TR=/opt/SUNWsample/bin;
DÉMARRAGE = démarrage_svc_dns;
ARRÊT = arrêt_svc_dns;
...

Tous les arguments des méthodes de rappel sont transmis comme des valeurs marquées, avec - R indiquant le nom de l'instance de la ressource, -T indiquant le type de la ressource et -G indiquant le groupe dans lequel est configurée la ressource. Reportez-vous à la page de manuel rt_callbacks(1HA) pour de plus amples informations sur les méthodes de rappel.


Remarque :

la méthode de Validation est appelée avec des arguments supplémentaires (les valeurs des propriétés de la ressource et du groupe de ressources sources de l'appel). Reportez-vous à la rubriqueGestion des mises à jour des propriétés pour de plus amples informations.


Chaque méthode de rappel a besoin d'une fonction pour analyser les arguments transmis. Étant donné que tous les rappels sont transmis avec les mêmes arguments, le service de données fournit une seule fonction d'analyse employée dans tous les rappels de l'application.

L'exemple suivant montre l'utilisation de la fonction parse_args() pour les méthodes de rappel de l'application modèle.


#########################################################################
# Analyse des arguments du programme.
#
function parse_args # [args ...]
{
      typeset opt

      while getopts 'R:G:T:' opt
      do
             case "$opt" in
             R)
                  # Nom de la ressource DNS.
                  NOM_RESSOURCE=$OPTARG
                  ;;
             G)
                  # Nom du groupe de ressources dans laquelle est
                  # configurée la ressource.
                  NOM_GROUPE_RESSOURCE=$OPTARG
                  ;;
             T)
                  # Nom du type de ressource.
                  NOM_TYPE_RESSOURCE=$OPTARG
                  ;;
             *)
                  logger -p ${SYSLOG_FACILITY}.err \
                  -t [$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME] \
                  "ERROR: Option $OPTARG unknown"
                  exit 1
                      ;;
             esac
    done
}


Remarque :

bien que la méthode de SONDE de l'application modèle soit définie par l'utilisateur (et qu'il ne s'agisse pas d'une méthode de rappel de Sun Cluster), elle est appelée avec les mêmes arguments que les méthodes de rappel. Par conséquent, cette méthode contient une fonction d'analyse identique à celle employée par les autres méthodes de rappel.


La fonction d'analyse est appelée dans MAIN sous la forme :


parse_args “$@”