Sun Cluster: Guía del desarrollador de los servicios de datos del sistema operativo Solaris

Validación de Confdir

En la función MAIN, Validate establece en primer lugar la variable CONFDIR en una cadena vacía, y UPDATE_PROPERTY y CONFDIR_FOUND en 0.

CONFDIR=""
UPDATE_PROPERTY=0
CONFDIR_FOUND=0

Validate llama a parse_args() para analizar los argumentos transferidos por RGM.

parse_args “$@”

Validate comprueba si se está llamando al método Validate como resultado de la actualización de las propiedades. Validate también comprueba si la propiedad de extensión Confdir se encuentra en la línea de comandos. Validate verifica que la propiedad Confdir tiene un valor y, en caso de no ser así, sale con un estado de fallo y un mensaje de error.

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

# Verify that the Confdir property has a value. If not there is a failure
# and exit with status 1
if [[ -z $CONFDIR ]]; then
         logger -p ${SYSLOG_FACILITY}.err \
            "${ARGV0} Validate method for resource "$RESOURCE_NAME " failed"
         exit 1
fi

Nota –

En concreto, el código anterior comprueba si se está llamando a Validate como resultado de la actualización ($UPDATE_PROPERTY == 1) y si la propiedad no se encuentra en la línea de comandos ( CONFDIR_FOUND == 0). En ese caso, el código recupera el valor existente de Confdir mediante scha_resource_get(). Si Confdir se encuentra en la línea de comandos (CONFDIR_FOUND == 1), el valor de CONFDIR proviene de la función parse_args() y no de scha_resource_get().


El método Validate utiliza el valor de CONFDIRpara comprobar que se puede acceder al directorio. De lo contrario, Validate registra un mensaje de error y sale con un estado de error.

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

Antes de validar la actualización de la propiedad Confdir, Validate realiza una comprobación final para verificar si se encuentra el archivo named.conf. Si no lo está, el método registra un mensaje de error y sale con un estado de error.

# Check that the named.conf file is present in the Confdir directory
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 se supera la comprobación final, Validate registra un mensaje satisfactorio y sale con un estado de éxito.

# Log a message indicating that the Validate method was successful.
logger -p ${SYSLOG_FACILITY}.err \
   -t [$SYSLOG_TAG] \
   "${ARGV0} Validate method for resource "$RESOURCE_NAME \
   " completed successfully"

exit 0