Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Génération d’un message d’avertissement, d’erreur ou de journal système personnalisé dans les scripts de validation

Les scripts de validation de Junos OS peuvent générer des messages d’avertissement, d’erreur ou de journal système personnalisés lors d’une opération de validation pour vous alerter lorsque la configuration n’est pas conforme aux règles de configuration personnalisées. La génération d’une erreur entraîne également l’échec de l’opération de validation. Pour générer un message d’avertissement, d’erreur ou de journal système personnalisé dans un script de validation :

  1. Incluez le modèle standard de script de validation approprié à partir du modèle standard requis pour les scripts de validation. Il est reproduit ici pour des raisons de commodité :

    Passe-partout XSLTPasse-partout SLAXPython Passe-partout
  2. À la position indiquée par le commentaire « insert your code here, » inclure une ou plusieurs instructions de programmation XSLT ou leurs équivalents SLAX ou Python. Les constructions XSLT couramment utilisées sont les suivantes :

    • <xsl:choose> <xsl:when> <xsl:otherwise>: construction conditionnelle qui permet de traiter différentes instructions dans différentes circonstances. L’instruction <xsl:choose> contient un ou plusieurs <xsl:when> éléments, chacun d’entre eux testant une expression XPath. Si le test est évalué comme vrai, le processeur XSLT exécute les instructions de l’élément<xsl:when>. Le processeur XSLT ne traite que les instructions contenues dans le premier <xsl:when> élément dont test l’attribut est évalué comme true. Si aucun des attributs des <xsl:when> éléments n’est considéré comme vrai, le contenu de l’élément<xsl:otherwise>, s’il test y en a un, est traité.

    • <xsl:for-each select="xpath-expression">—Instruction de programmation qui indique au processeur XSLT de rassembler un ensemble de nœuds et de les traiter un par un. Les noeuds sont sélectionnés par l’expression XPath (Extensible Markup Language) XML (Extensible Markup Language) dans l’attribut select . Chacun des nœuds est ensuite traité selon les instructions contenues dans l’instruction <xsl:for-each> . Le code à l’intérieur d’une <xsl:for-each> instruction est évalué récursivement pour chaque nœud qui correspond à l’expression XPath. Le contexte est déplacé vers le nœud à chaque passe.

    • <xsl:if test="xpath-expression">: construction conditionnelle qui entraîne le traitement des instructions si l’expression XPath de l’attribut test a la valeur .true

      Par exemple, l’instruction de programmation suivante est évaluée comme vraie lorsque l’instruction n’est host-name pas incluse au niveau de la [edit system] hiérarchie :

      Dans SLAX, la if construction ressemble à ceci :

      De même en Python :

  3. Incluez les constructions appropriées pour générer un message d’avertissement, d’erreur ou de journal système.

    Dans les scripts SLAX et XSLT, incluez <xnm:warning>, <xnm:error>ou <syslog> les éléments avec un <message> élément enfant qui spécifie le contenu du message. Pour les messages d’avertissement et d’erreur, vous pouvez inclure plusieurs autres éléments enfants, tels que les jcs:edit-path modèles et jcs:statement , ce qui permet au message d’avertissement ou d’erreur d’inclure la hiérarchie de configuration et les informations d’instruction appropriées, comme illustré dans les exemples suivants.

    Dans les scripts Python, incluez jcs.emit_warning(), jcs.emit_error()ou jcs.syslog() des fonctions, et incluez la chaîne de message dans la liste des arguments.

    Par exemple, lorsqu’un script de validation XSLT génère un avertissement à l’aide de l’élément suivant <xnm:warning> :

    Il émet la sortie suivante pendant l’opération commit :

    De même, lorsqu’un script de validation XSLT génère une erreur à l’aide de l’élément suivant <xnm:error> :

    Il émet la sortie suivante pendant l’opération commit :

    Note:

    Dans les scripts SLAX et XSLT, si vous incluez un message d’avertissement en conjonction avec une modification de configuration générée par un script, vous pouvez générer l’avertissement en incluant le message paramètre avec le jcs:emit-change modèle. Le paramètre message entraîne l’appel <xnm:warning> du jcs:emit-change modèle, qui envoie une notification d’avertissement à l’interface de ligne de commande. (Pour plus d’informations, reportez-vous à la section Présentation de la génération de modifications de configuration persistantes ou transitoires à l’aide de scripts de validation.)

    Pour les messages du journal système, le seul élément enfant pris en charge est <message>:

    Pour obtenir une description de toutes les balises et attributs XSLT que vous pouvez inclure, consultez Éléments de balise de script de validation SLAX et XSLT à utiliser lors de la génération de messages.

    Pour connaître les versions SLAX de ces constructions, reportez-vous à la section Exemple : Générer un message d’avertissement personnalisé, Exemple : Générer un message d’erreur personnalisé et Exemple : Générer un message de journal système personnalisé.

  4. Enregistrez le script avec un nom significatif.

  5. Copiez le script dans le répertoire /var/db/scripts/commit sur le disque dur ou dans le répertoire /config/scripts/commit sur la clé USB.

    Pour plus d’informations sur la définition de l’emplacement de stockage des scripts de validation, reportez-vous aux sections Stocker et activer des scripts Junos Automation et Stocker des scripts dans la mémoire flash.

  6. Activez le script en incluant l’instruction file filename au niveau de la [edit system scripts commit] hiérarchie.

  7. Si le script est écrit en Python, activez l’exécution de scripts Python non signés.

  8. Validez la configuration.

    Note:

    Si l’appareil dispose de deux moteurs de routage et que vous souhaitez que le script prenne effet sur les deux, vous pouvez exécuter la commit synchronize scripts commande pour synchroniser la configuration et copier les scripts dans l’autre moteur de routage dans le cadre de l’opération de validation.