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

Méthode de Contrôle_détecteur

Cette méthode vérifie l'existence du répertoire spécifié par la propriété Rép_conf. Le gestionnaire RGM appelle Contrôle_détecteur chaque fois que la méthode de SONDE bascule le service de données sur un nouveau noeud et contrôle les noeuds qui sont potentiellement des noeuds maîtres.


Exemple B–8 Méthode de Contrôle_détecteur_dns

#!/bin/ksh
#
# Méthode de contrôle du détecteur du service de noms de domaine.
#
# Le gestionnaire RGM appelle cette méthode chaque fois que le système de détection
# des pannes bascule le service de données vers un nouveau noeud. Contrôle_détecteur
# appelle la méthode de Validation pour vérifier que le répertoire et les fichiers
# de configuration sont disponibles sur le nouveau noeud.


#pragma ident   “@(#)dns_monitor_check 1.1   00/05/24 SMI”

###############################################################################
# Analysez les 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 lequel la ressource est
      # configurée.
      NOM_GROUPE_RESSOURCES=$OPTARG
      ;;

      T)
      # Nom du type de ressources.
      NOM_TYPE_RESSOURCES=$OPTARG
      ;;

      *)
      logger -p ${SYSLOG_FACILITY}.err \
      -t [$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME]
\
      “ERROR: Option $OPTARG unknown”
      exit 1
      ;;

      esac
   done

}

###############################################################################
# MAIN
##############################################################################

export PATH=/bin:/usr/bin:/usr/cluster/bin:/usr/sbin:/usr/proc/bin:$PATH

# Obtenez la fonction syslog à utiliser pour consigner les messages.
SYSLOG_FACILITY=`scha_cluster_get -O SYSLOG_FACILITY`

# Analysez les arguments qui ont été transmis à cette méthode.
parse_args “$@”

PMF_TAG=$RESOURCE_NAME.named
SYSLOG_TAG=$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME

# Obtenez le nom complet de la méthode de Validation à partir de la
# propriété RÉP_BASE_TR du type de ressources.
RÉP_BASE_TR=`scha_resource_get -O RT_BASEDIR -R $RESOURCE_NAME
\
   -G $RESOURCEGROUP_NAMÈ

# Obtenez le nom de la méthode de Validation de cette ressource.
MÉTHODE_VALIDATION=`scha_resource_get -O VALIDATE \
   -R $RESOURCE_NAME -G $RESOURCEGROUP_NAMÈ

# Obtenez la valeur de la propriété Rép_conf afin de démarrer
# le services de données. Utilisez le nom de ressource et le groupe de ressources
# entrés pour obtenir la valeur Rép_conf définie au moment de l'ajout de la ressource.
config_info=`scha_resource_get -O Extension -R $RESOURCE_NAME
-G $RESOURCEGROUP_NAME Confdir`

# scha_resource_get renvoie le type et la valeur des propriétés d'extension.
# Utilisez awk pour obtenir uniquement la valeur de la propriété d'extension
# RÉP_CONFIG=`echo $config_info | awk `{print $2}'`

# Appelez la méthode de Validation pour pouvoir basculer le service de données
# vers le nouveau noeud.
$RT_BASEDIR/$VALIDATE_METHOD -R $RESOURCE_NAME -G $RESOURCEGROUP_NAME
\
   -T $RESOURCETYPE_NAME -x Confdir=$CONFIG_DIR

# Consignez un message indiquant que le contrôle du détecteur a réussi.
if [ $? -eq 0 ]; then
   logger -p ${SYSLOG_FACILITY}.info -t [$SYSLOG_TAG] \
      “${ARGV0} Monitor check for DNS successful.”
   exit 0
else
   logger -p ${SYSLOG_FACILITY}.err -t [$SYSLOG_TAG] \
      “${ARGV0} Monitor check for DNS not successful.”
   exit 1
fi