Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Considérations de conception pour les scripts de validation

Une fois que vous avez déjà examiné les données de configuration Junos OS en XML, la création de scripts de validation est assez simple. Cette section fournit des conseils et des modèles courants pour le développement de scripts de validation à l’aide de XSLT.

Le XSLT est un langage interprété, ce qui fait de la performance un facteur important. Pour des performances optimales, réduisez les traversées de nœuds et les tests effectués sur chaque nœud. Si possible, utilisez l’attribut select sur une invocation récursive <xsl:apply-templates> pour limiter la partie de la hiérarchie de documents visitée.

Par exemple, l’attribut suivant select limite les nœuds à évaluer en spécifiant les interfaces SONET/SDH dont la inet famille de protocoles (IPv4) est activée :

L’exemple suivant contient deux <xsl:apply-templates> instructions qui limitent la portée du script aux import instructions configurées au niveau et [edit protocols isis] de la [edit protocols ospf] hiérarchie :

Dans une langue interprétée, faire n’importe quoi plus d’une fois peut affecter les performances. Si le script doit référencer un nœud ou un ensemble de nœuds à plusieurs reprises, créez une variable qui contient l’ensemble de nœuds, puis faites plusieurs références à la variable. Par exemple, la déclaration de variable suivante crée une variable appelée mpls qui se résout au niveau hiérarchique [edit protocols mpls] . Cela permet au script de traverser la /protocols/ hiérarchie pour rechercher le mpls/ nœud une seule fois.

Les variables sont également importantes lors de l’utilisation d’instructions <xsl:for-each> , car le nœud de contexte actuel examine chaque nœud sélectionné par l’instruction <xsl:for-each> . Par exemple, le script suivant utilise plusieurs variables pour stocker et se référer aux valeurs lorsque l’instruction <xsl:for-each> évalue les interfaces E1 configurées sur toutes les interfaces STM1 canalisées (cstm1-) :

Si vous canalisez une interface cstm1-0/1/0 en 17 interfaces E1, le script fait apparaître le message d’erreur suivant lorsque vous envoyez la commit commande. (Pour plus d’informations sur cet exemple, voir Exemple : Limiter le nombre d’interfaces E1.)