Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Analysieren der Funktionsargumente

RGM ruft alle Rückmeldemethoden — mit Ausnahme der Validate-Methode — folgendermaßen auf.


Methodenname -R Ressourcenname -T Ressourcentypname -G Ressourcengruppenname 

Der Methodenname ist der Pfadname des Programms, das die Rückmeldemethode implementiert. Ein Datendienst gibt den Pfadnamen für jede Methode in der RTR-Datei an. Diese Pfadnamen beziehen sich auf das Verzeichnis, das ebenfalls in der RTR-Datei von der Rt_basedir-Eigenschaft angegeben wird. Zum Beispiel werden das Basisverzeichnis und die Methodennamen in der RTR-Datei des Beispieldatendienstes wie folgt angegeben.


RT_BASEDIR=/opt/SUNWsample/bin;
START = dns_svc_start;
STOP =  dns_svc_stop;
...

Alle Rückmeldemethodenargumente werden als Werte mit Flags übergeben, wobei -R den Namen der Ressourceninstanz, -T den Ressourcentyp und -G die Gruppe angibt, in der die Ressource konfiguriert wird. Weitere Informationen zu Rückmeldemethoden finden Sie in der Online-Dokumentation unter rt_callbacks(1HA).


Hinweis –

Die Validate-Methode wird mit zusätzlichen Argumenten aufgerufen, das heißt, mit den Eigenschaftswerten der Ressource und Ressourcengruppe, in denen sie aufgerufen wird. Weitere Informationen finden Sie unter Bearbeiten von Eigenschaftsaktualisierungen.


Jede Rückmeldemethode benötigt eine Funktion zum Analysieren der Argumente, die ihr übergeben werden. Da an alle Rückmeldemethoden die gleichen Argumente übergeben werden, stellt der Datendienst eine einzige Analysefunktion bereit, die für alle Rückmeldungen in der Anwendung eingesetzt wird.

Im Folgenden wird die parse_args()-Funktion gezeigt, die für alle Rückmeldemethoden in der Beispielanwendung verwendet wird.


#########################################################################
# Programmargumente analysieren.
#
function parse_args # [args ...]
{
      typeset opt

      while getopts 'R:G:T:' opt
      do
             case "$opt" in
             R)
                  # Name der DNS-Ressource.
                  RESOURCE_NAME=$OPTARG
                  ;;
             G)
                  # Name der Ressourcengruppe, in der die Ressource
                  # konfiguriert ist.
                  RESOURCEGROUP_NAME=$OPTARG
                  ;;
             T)
                  # Name des Ressourcentyps.
                  RESOURCETYPE_NAME=$OPTARG
                  ;;
             *)
                  logger -p ${SYSLOG_FACILITY}.err \
                  -t [$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME] \
                  "FEHLER: Option $OPTARG unbekannt"
                  exit 1
                      ;;
             esac
    done
}


Hinweis –

Die PROBE-Methode in der Beispielanwendung ist zwar benutzerdefiniert, also keine Sun Cluster-Rückmeldemethode, wird jedoch mit den gleichen Argumenten wie die Rückmeldemethoden aufgerufen. Daher enthält diese Methode genau die gleiche Analysefunktion wie die anderen Rückmeldemethoden.


Die Analysefunktion wird in MAIN wie folgt aufgerufen:


parse_args “$@”