Le RGM transmet à la méthode de Validation un ensemble de paramètres différent de celui des autres méthodes de rappel, de telle manière que Validation a besoin d'une autre fonction d'analyse des arguments que les autres méthodes. Reportez-vous à la page de manuel rt_callbacks(1HA) pour de plus amples informations sur les paramètres transmis à Validation et aux autres méthodes de rappel. L'exemple suivant montre la fonction Validation parse_args().
#########################################################################
# Analyser les arguments Validation
#
function parse_args # [args...]
{
typeset opt
while getopts 'cur:x:g:R:T:G:' opt
do
case "$opt" in
R)
# Nom de la ressource DNS
NOM_RESSOURCE=$OPTARG
;;
G)
# Nom du groupe dans lequel est configurée
# la ressource.
NOM_GROUPE_RESSOURCE=$OPTARG
;;
T)
# Nom du type de ressource.
NOM_TYPE_RESSOURCE=$OPTARG
;;
r)
# La méthode n'accède pas à des propriétés définies
# par le système. Aucune action.
;;
g)
# La méthode n'accède pas à des propriétés du groupe de
# ressources. Aucune action.
;;
c)
# Indique que la méthode de Validation est appelée lors
# de la création de la ressource. Indicateur sans action.
;;
u)
# Indique la mise à jour d'une propriété quand la
# ressource existe déjà. Si la mise à jour est adressée
# à la propriété Rép_conf, alors Rép_conf doit apparaître dans
# les arguments de ligne de commande. Dans le cas contraire,
# la méthode doit le rechercher à l'aide de scha_resource_get.
UPDATE_PROPERTY=1
;;
x)
# Liste des propriétés d'extension. Séparer les couples propriété et
# valeur en utilisant "=" comme séparateur.
PROPRIÉTÉ=`echo $OPTARG | awk -F= '{print $1}'`
VAL=`echo $OPTARG | awk -F= '{print $2}'`
# Si la propriété d'extension se trouve sur la ligne de
# commande, noter sa valeur.
if [ $PROPERTY == "Confdir" ]; then
RÉP_CONF=$VAL
CONFDIR_FOUND=1
fi
;;
*)
logger -p ${SYSLOG_FACILITY}.err \
-t [$SYSLOG_TAG] \
"ERROR: Option $OPTARG unknown"
exit 1
;;
esac
done
}
|
Comme la fonction parse_args() des autres méthodes, cette fonction propose un indicateur (R) pour capturer le nom de la ressource, (G) pour capturer le nom du groupe de ressources et ( T) pour capturer le type de ressource transmis par le RGM.
Les indicateurs r (propriété définie par le système), g (propriété du groupe de ressources) et c (validation à la création de la ressource) sont ignorés parce que cette méthode est appelée pour valider une propriété d'extension lors de la mise à jour de la ressource.
L'indicateur u définit la variable de shell UPDATE_PROPERTY à 1 (TRUE). Le témoin x capture les noms et les valeurs des propriétés mises à jour. Si Rép_conf est l'une des propriétés mises à jour, sa valeur est placée dans la variable de shell CONFDIR et la variable CONFDIR_FOUND est réglée sur 1 (TRUE).