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

Validation de Rép_conf

Dans sa fonction MAIN, Validate attribue d'abord une chaîne vide à la variable CONFDIR et une valeur 0 à UPDATE_PROPERTY et à CONFDIR_FOUND.


CONFDIR=""
UPDATE_PROPERTY=0
CONFDIR_FOUND=0

Validation appelle ensuite parse_args() pour analyser les arguments transmis par le RGM.


parse_args “$@”

Validation vérifie alors si Validation est appelée à la suite d'une mise à jour des propriétés et si la propriété d'extension Rép_conf se trouvait sur la ligne de commande. Validation vérifie alors si la propriété Rép_conf a une valeur et, si ce n'est pas le cas, elle se ferme en affichant un état d'échec et émet un message d'erreur.


if ( (( $UPDATE_PROPERTY == 1 )) &&  (( CONFDIR_FOUND == 0 )) ); then
         info_config=`scha_resource_get -O Extension -R $RESOURCE_NAME \
            -G $RESOURCEGROUP_NAME Confdir`
         CONFDIR=`echo $config_info | awk '{print $2}'`
fi

# Vérifier que la propriété Rép_conf possède une valeur. Dans le cas contraire, il y a échec
# et sortie avec l'état 1
if [[ -z $CONFDIR ]]; then
         logger -p ${SYSLOG_FACILITY}.err \
            "${ARGV0} Validate method for resource "$RESOURCE_NAME " failed"
         exit 1
fi


Remarque :

le code précédent vérifie tout spécialement si Validation est appelée à la suite d'une mise à jour ($UPDATE_PROPERTY == 1 ) et si la propriété n'a pas été trouvée dans la ligne de commande (CONFDIR_FOUND == 0), auquel cas il récupère la valeur existante de Rép_conf à l'aide de scha_resource_get (). Si Rép_conf a été trouvé dans la ligne de commande ( CONFDIR_FOUND == 1), la valeur de RÉP_CONF provient de la fonction parse_args(), et non de scha_resource_get().


La méthode de Validation utilise alors la valeur de RÉP_CONF pour vérifier si le répertoire est accessible. Si ce n'est pas le cas, Validation consigne un message d'erreur et se ferme en affichant un état d'échec.


# Vérifier si $CONFDIR est accessible.
if [ ! -d $CONFDIR ]; then
   logger -p ${SYSLOG_FACILITY}.err \
         -t [$SYSLOG_TAG] \
         "${ARGV0} Directory $CONFDIR missing or not mounted"
   exit 1
fi

Avant de valider la mise à jour de la propriété Rép_conf, Validation effectue un contrôle final pour vérifier si le fichier named.conf est présent. Si ce n'est pas le cas, la méthode enregistre un message d'erreur et se ferme en affichant un état d'échec.


# Vérifier si le fichier named.conf est présent dans le répertoire Rép_conf
if [ ! -s $CONFDIR/named.conf ]; then
         logger -p ${SYSLOG_FACILITY}.err \
            -t [$SYSLOG_TAG] \
            "${ARGV0} File $CONFDIR/named.conf is missing or empty"
         exit 1
fi

Si le dernier contrôle réussit, Validation consigne un message indiquant une réussite et se ferme avec un état de réussite.


# Consigner un message indiquant que la méthode de Validation a réussi.
logger -p ${SYSLOG_FACILITY}.err \
   -t [$SYSLOG_TAG] \
   "${ARGV0} Validate method for resource "$RESOURCE_NAME \
   " completed successfully"

exit 0