Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Analysieren der Funktionsargumente

RGM führt alle Rückmeldemethoden mit Ausnahme von Validate wie folgt aus:

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. In der RTR-Datei des Beispieldatendienstes sind das Basisverzeichnis und die Methodennamen wie folgt angegeben:

RT_basedir=/opt/SUNWsample/bin;
Start = dns_svc_start;
Stop =  dns_svc_stop;
...

Alle Argumente für Rückmeldemethoden werden wie folgt als Flag-Werte übergeben: Das Argument -R gibt den Namen der Ressourceninstanz an. Das Argument -T gibt den Ressourcentyp an. Das Argument -G gibt die Gruppe an, 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, die Eigenschaftswerte der Ressource und Ressourcengruppe, für die sie aufgerufen wird. Weitere Informationen finden Sie im Abschnitt Bearbeiten von Eigenschaftsaktualisierungen.


Jede Rückmeldemethode benötigt eine Funktion zum Analysieren der Argumente, mit denen die Funktion übergeben wird. 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 Beispiel wird die parse_args()-Funktion dargestellt, die für die Rückmeldemethoden in der Beispielanwendung verwendet wird.

#########################################################################
# Parse program arguments.
#
function parse_args # [args ...]
{
      typeset opt

      while getopts 'R:G:T:' opt
      do
             case "$opt" in
             R)
                  # Name of the DNS resource.
                  RESOURCE_NAME=$OPTARG
                  ;;
             G)
                  # Name of the resource group in which the resource is
                  # configured.
                  RESOURCEGROUP_NAME=$OPTARG
                  ;;
             T)
                  # Name of the resource type.
                  RESOURCETYPE_NAME=$OPTARG
                  ;;
             *)
                  logger -p ${SYSLOG_FACILITY}.err \
                  -t [$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME] \
                  "ERROR: Option $OPTARG unknown"
                  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. Deshalb enthält diese Methode eine Analysefunktion, die mit derjenigen identisch ist, die von den anderen Rückmeldemethoden verwendet wird.


Die Analysefunktion wird in MAIN wie folgt aufgerufen:

parse_args “$@”