Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Validieren von Confdir

In der MAIN-Funktion setzt Validate zunächst die CONFDIR-Variable auf die leere Zeichenkette sowie UPDATE_PROPERTY und CONFDIR_FOUND auf 0.


CONFDIR=""
UPDATE_PROPERTY=0
CONFDIR_FOUND=0

Anschließend ruft Validate die parse_args()-Funktion auf, um die von RGM übergebenen Argumente zu analysieren.


parse_args “$@”

Dann prüft Validate, ob Validate als Ergebnis der Aktualisierung von Eigenschaften aufgerufen wird und ob die Confdir-Erweiterungseigenschaft an der Befehlszeile stand. Dann überprüft Validate, ob die Confdir-Eigenschaft einen Wert hat. Andernfalls wird mit 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

# Überprüfen, ob die Confdir-Eigenschaft einen Wert hat. Andernfalls Fehlschlag,
# und mit Status 1 beenden
if [[ -z $CONFDIR ]]; then
         logger -p ${SYSLOG_FACILITY}.err \
            "${ARGV0} Validate-Method für Ressource "$RESOURCE_NAME " fehlgeschlagen"
         exit 1
fi


Hinweis –

Der obige Code prüft vor allem, ob Validate als Ergebnis einer Aktualisierung aufgerufen wird ($UPDATE_PROPERTY == 1) und ob die Eigenschaft nicht an der Befehlszeile gefunden wurde (CONFDIR_FOUND == 0); in diesem Fall wird der vorhandene Wert von Confdir mithilfe von scha_resource_get() abgerufen. Wenn Confdir an der Befehlszeile gefunden wurde (CONFDIR_FOUND == 1), stammt der Wert für CONFDIR von der parse_args()-Funktion, nicht von scha_resource_get().


Die Validate-Methode verwendet dann den Wert von CONFDIR, um zu überprüfen, ob auf das Verzeichnis zugegriffen werden kann. Wenn kein Zugriff möglich ist, protokolliert Validate eine Fehlermeldung und wird mit Fehlerstatus beendet.


# Prüfen, ob Zugriff auf $CONFDIR möglich ist.
if [ ! -d $CONFDIR ]; then
   logger -p ${SYSLOG_FACILITY}.err \
         -t [$SYSLOG_TAG] \
         "${ARGV0} Verzeichnis $CONFDIR fehlt oder ist nicht eingehängt."
   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. Andernfalls protokolliert die Methode eine Fehlermeldung und wird mit Fehlerstatus beendet.


# Prüfen, od die named.conf-Datei im Confdir-Verzeichnis vorhanden ist
if [ ! -s $CONFDIR/named.conf ]; then
         logger -p ${SYSLOG_FACILITY}.err \
            -t [$SYSLOG_TAG] \
            "${ARGV0} Datei $CONFDIR/named.conf fehlt oder ist leer"
         exit 1
fi

Wenn diese letzte Prüfung erfolgreich war, protokolliert Validate eine Erfolgsmeldung und wird mit Erfolgsstatus beendet.


# Meldung protokollieren, die angibt, dass die Validate-Methode erfolgreich war.
logger -p ${SYSLOG_FACILITY}.err \
   -t [$SYSLOG_TAG] \
   "${ARGV0} Validate-Methode für Ressource "$RESOURCE_NAME \
   " erfolgreich beendet"

exit 0