Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Validieren von Confdir

In ihrer MAIN-Funktion setzt Validate die CONFDIR-Variable auf die leere Zeichenkette und UPDATE_PROPERTY und CONFDIR_FOUND auf 0.

CONFDIR=""
UPDATE_PROPERTY=0
CONFDIR_FOUND=0

Validate ruft parse_args() auf, um die Argumente zu analysieren, die von RGM übergeben werden.

parse_args “$@”

Validate prüft, ob Validate als Ergebnis einer Eigenschaftenaktualisierung aufgerufen wird. Validate prüft auch, ob die Confdir-Erweiterungseigenschaft in der Befehlszeile angegeben wurde. Validate prüft, ob die Confdir-Eigenschaft einen Wert enthält. Ist dies nicht der Fall, wird sie mit einem Fehlerstatus und einer Fehlermeldung beendet.

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

Hinweis –

Der oben stehende Code prüft insbesondere, ob Validate als Ergebnis einer Aktualisierung aufgerufen wird ($UPDATE_PROPERTY == 1) und ob die Eigenschaft auch nicht in der Befehlszeile angegeben ist ( CONFDIR_FOUND == 0). In diesem Fall ruft der Code den bereits vorhandenen Wert von Confdir unter Verwendung von scha_resource_get() ab. Wenn Confdir in der Befehlszeile gefunden wird (CONFDIR_FOUND == 1), stammt der Wert von CONFDIR von der parse_args()-Funktion, nicht von scha_resource_get().


Die Validate-Methode verwendet den Wert von CONFDIR, um zu prüfen, ob auf das Verzeichnis zugegriffen werden kann. Ist dies nicht der Fall, protokolliert Validate eine Fehlermeldung und wird mit einem Fehlerstatus beendet.

# 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

Vor dem Validieren der Aktualisierung der Confdir-Eigenschaft führt Validate eine letzte Prüfung durch, um festzustellen, ob die named.conf-Datei vorhanden ist. Ist die Datei nicht vorhanden, protokolliert die Methode eine Fehlermeldung und wird mit einem Fehlerstatus beendet.

# 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

Wenn die endgültige Prüfung vorüber ist, protokolliert Validate eine Meldung, die einen Erfolg ausweist und wird mit einem Erfolgsstatus beendet.

# 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