Utiliser des modèles nommés dans les scripts d’automatisation de Junos OS
Junos OS fournit plusieurs modèles nommés qui peuvent être utilisés dans les scripts de validation, d’opération, d’événement et SNMP afin d’accomplir plus facilement des tâches de script sur les périphériques exécutant Junos OS. Les sections suivantes expliquent comment importer et utiliser les modèles pour différents langages de script :
Utilisation de modèles nommés dans les scripts SLAX et XSLT
Pour utiliser les modèles nommés dans les scripts SLAX et XSLT, le script doit importer le fichier junos.xsl et déclarer l’URI (Uniform Resource Identifier ) approprié dans la déclaration de la feuille de style. Les modèles nommés Junos OS sont définis dans l’espace de noms avec l’URI http://xml.juniper.net/junos/commit-scripts/1.0
associé.
Importez le fichier junos.xsl dans le script en incluant l’élément <xsl:import/>
tag dans les scripts XSLT ou l’instruction import
dans les scripts SLAX et en spécifiant l’emplacement du fichier junos.xsl .
Les scripts SLAX et XSLT mappent généralement le jcs
préfixe à l’URI pour éviter les conflits de noms avec les modèles XSLT standard ou définis par l’utilisateur. Les scripts qualifient ensuite les modèles nommés avec le préfixe approprié, qui est développé dans sa référence d’URI associée pendant le traitement. Mappez le jcs
préfixe à l’URI en incluant l’attribut xmlns:jcs
dans l’élément de balise d’ouverture <xsl:stylesheet>
pour les scripts XSLT ou en incluant l’instruction dans les ns jcs
scripts SLAX.
Pour appeler un modèle nommé dans un script, incluez l’élément <xsl:call-template name="template-name">
dans les scripts XSLT ou l’instruction dans les call
scripts SLAX et transmettez tous les paramètres requis ou facultatifs. Les paramètres du modèle sont attribués par nom et peuvent apparaître dans n’importe quel ordre. Cela diffère des fonctions où les arguments doivent être passés dans la fonction dans l’ordre précis spécifié par la définition de la fonction.
L’exemple suivant importe le fichier junos.xsl dans un script et mappe le jcs
préfixe à l’espace de noms identifié par l’URI http://xml.juniper.net/junos/commit-scripts/1.0. Le script illustre un appel au jcs:edit-path
modèle.
Syntaxe XSLT
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0"> <xsl:import href="../import/junos.xsl"/> ... <xsl:for-each select="interfaces/interface[starts-with(name, 'so-')]"> <xnm:warning> <xsl:call-template name="jcs:edit-path"/> <message>interface configured</message> </xnm:warning> </xsl:for-each> ... </xsl: stylesheet>
Syntaxe SLAX
version 1.2; ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0"; import "../import/junos.xsl"; ... for-each ( interfaces/interface[starts-with(name,'so-') ) { <xnm:warning> { call jcs:edit-path(); <message> “interface configured”; } } ...
Utilisation de la fonctionnalité de modèle nommé dans les scripts Python
Les scripts Python qui importent le jcs
module peuvent exécuter des fonctions qui sont l’équivalent Python des modèles nommés utilisés dans les scripts SLAX et XSLT. Les fonctions fournissent essentiellement les mêmes fonctionnalités dans le script Python que le modèle nommé correspondant dans un script SLAX ou XSLT. Pour déterminer quels modèles nommés ont des fonctionnalités prises en charge dans les scripts Python, reportez-vous à la section Présentation des modèles nommés dans les scripts d’automatisation Junos OS.
Pour appeler la fonction équivalente à un modèle nommé dans un script Python, incluez toutes les déclarations de variables requises, appelez la fonction et transmettez tous les arguments requis ou facultatifs. Notez que dans les scripts Python, les noms de fonction doivent utiliser des traits de soulignement au lieu de traits d’union. Par exemple:
Syntaxe Python
import jcs if __name__ == '__main__': script = "system-check.py" change_xml = """<system><scripts><op> <file><name>{0}</name></file></op> </scripts></system>""".format(script) jcs.emit_change(change_xml, "change", "xml")