Guide des développeurs pour les services de données Sun Cluster pour SE Solaris

Fonction d'analyse de la méthode Validation

Le RGM transmet à la méthode 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 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.
                  PROPERTY=`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
                           CONFDIR=$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).