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

Validación de Confdir

En su función MAIN, Validate establece primero la variable CONFDIR en la secuencia vacía y UPDATE_PROPERTY y CONFDIR_FOUND en 0.


CONFDIR=""
UPDATE_PROPERTY=0
CONFDIR_FOUND=0

Después, Validate invoca parse_args() para analizar los argumentos que pasa RGM.


parse_args “$@”

Validate comprueba entonces si se está invocando Validate por una actualización de propiedades y si la propiedad de extensión Confdir estaba en la línea de órdenes Validate verifica si la propiedad Confdir tiene un valor y, en caso contrario, 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

# Verificar que la propiedad Confdir tiene un valor. En caso contrario,
# hay un fallo y sale con estado 1
if [[ -z $CONFDIR ]]; then
         logger -p ${SYSLOG_FACILITY}.err \
            "${ARGV0} Método de validar el recurso "$RESOURCE_NAME " no satisfactorio"
         exit 1
fi


Nota –

Específicamente, el código anterior comprueba si una actualización ($UPDATE_PROPERTY == 1) está invocando Validate y si la propiedad no se ha encontrado en la línea de órdenes (CONFDIR_FOUND == 0), en cuyo caso recupera el valor existente de Confdir con scha_resource_get(). Si se encontró Confdir en la línea de órdenes (CONFDIR_FOUND == 1), el valor de CONFDIR proviene de la función parse_args(), no de scha_resource_get().


El método Validate usa el valor de CONFDIR para verificar que el directorio es accesible. Si no lo fuera, Validate registraría un mensaje de error y cerraría con un estado de error.


# Comprobar si $CONFDIR es accesible.
if [ ! -d $CONFDIR ]; then
   logger -p ${SYSLOG_FACILITY}.err \
         -t [$SYSLOG_TAG] \
         "${ARGV0} Directorio $CONFDIR falta o no está montado"
   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. En caso de que no se encuentre, el método registra un mensaje de error y sale con un estado de error.


# Comprobar que el archivo named.conf esté presente en el directorio Confdir
if [ ! -s $CONFDIR/named.conf ]; then
         logger -p ${SYSLOG_FACILITY}.err \
            -t [$SYSLOG_TAG] \
            "${ARGV0} El archivo $CONFDIR/named.conf falta o está vacío"
         exit 1
fi

Si se supera la comprobación final, Validate registra un mensaje que indica que la operación ha sido satisfactoria y sale con estado satisfactorio.


# Registrar un mensaje que indique que el método Validate ha sido satisfactorio.
logger -p ${SYSLOG_FACILITY}.err \
   -t [$SYSLOG_TAG] \
   "${ARGV0} Método de validar para el recurso "$RESOURCE_NAME \
   " se ha completado satisfactoriamente"

exit 0