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

Validation de Confdir

Dans sa fonction MAIN, Validate définit d'abord la variable CONFDIR sur la chaîne vide et UPDATE_PROPERTY et CONFDIR_FOUND sur 0.

CONFDIR=""
UPDATE_PROPERTY=0
CONFDIR_FOUND=0

Validate appelle parse_args() pour analyser les arguments passés par le RGM.

parse_args “$@”

Validate vérifie si Validate est appelée en conséquence d'une mise à jour des propriétés. Validate vérifie également si la propriété d'extension Confdir était sur la ligne de commande. Validate s'assure que la propriété Confdir a une valeur et, dans le cas contraire, se termine avec un état d'échec et 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érifie que la propriété Confdir a une valeur. Sinon, c'est un échec
# et la fonction se termine 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 –

spécifiquement, le code précédent vérifie si Validate est appelée en conséquence d'une mise à jour ($UPDATE_PROPERTY == 1) et si la propriété n'a pas été trouvée sur la ligne de commande ( CONFDIR_FOUND == 0). Dans ce cas, le code récupère la valeur existante de Confdir en utilisant scha_resource_get(). Si Confdir est présent sur la ligne de commande (CONFDIR_FOUND == 1), la valeur de CONFDIR est obtenue par la fonction parse_args(), non par scha_resource_get().


La méthode Validate utilise la valeur de CONFDIR pour vérifier que le répertoire est accessible. Si le répertoire n'est pas accessible, Validate consigne un message d'erreur et se termine avec un état d'erreur.

# 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 le fichier n'est pas présent, la méthode consigne un message d'erreur et se termine avec un état d'erreur.

# 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 la vérification finale réussit, Validate consigne un message indiquant le succès et se termine avec un état de succès.

# 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