Guide du développeur de services de données Sun Cluster pour SE Solaris

Analyse des arguments de la fonction

Le gestionnaire RGM exécute toutes les méthodes de rappel, à l'exception de Validate, de la façon suivante :

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

Le nom de la méthode correspond au nom de chemin d'accès du programme mettant en œuvre 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é RT_basedir, é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 comme suit :

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

Tous les arguments des méthodes de rappel sont passées en tant que valeurs marquées. L'argument -R indique le nom de l'instance de ressource. L'argument -T indique le type de la ressource. L'argument -G indique le groupe dans lequel la ressource est configurée. Reportez-vous à la page de manuel rt_callbacks(1HA) pour obtenir plus d'informations sur les méthodes de rappel.


Remarque –

la méthode Validate est appelée avec des arguments supplémentaires, à savoir les valeurs de propriété de la ressource et du groupe de ressources pour lesquels elle est appelée. Reportez-vous à la rubrique Gestion des mises à jour des propriétés pour obtenir plus d'informations.


Chaque méthode de rappel a besoin d'une fonction pour analyser les arguments transmis à la fonction. Tous les rappels étant 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 illustre le cas de la fonction parse_args(), utilisée pour les méthodes de rappel dans 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.
                  RESOURCE_NAME=$OPTARG
                  ;;
             G)
                  # Nom du groupe de ressources dans lequel la ressource 
                  # est configurée.
                  RESOURCEGROUP_NAME=$OPTARG
                  ;;
             T)
                  # Nom du type de ressource.
                  RESOURCETYPE_NAME=$OPTARG
                  ;;
             *)
                  logger -p ${SYSLOG_FACILITY}.err \
                  -t [$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME] \
                  "ERROR: Option $OPTARG inconnue"
                  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 qu'utilisent les autres méthodes de rappel.


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

parse_args “$@”