Guide des développeurs pour les services de données Sun Cluster pour SE Solaris

Validation de Confdir

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

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


parse_args “$@”

Validate vérifie alors si Validate est appelée à la suite d'une mise à jour des propriétés et si la propriété d'extension Confdir se trouvait sur la ligne de commande. Validate vérifie alors si la propriété Confdir 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
         config_info=`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 Validate 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 Confdir à l'aide de scha_resource_get (). Si Confdir a été trouvé dans la ligne de commande (CONFDIR_FOUND == 1), la valeur de CONFDIR provient de la fonction parse_args(), et non de scha_resource_get ().


La méthode Validate utilise alors la valeur de CONFDIR pour vérifier si le répertoire est accessible. Si ce n'est pas le cas, Validate 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é Confdir, Validate 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 Confdir
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, Validate consigne un message indiquant une réussite et se ferme avec un état de réussite.


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

exit 0