Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Personnaliser la sortie RPC YANG sur les périphériques exécutant Junos OS

Vous pouvez créer des RPC personnalisés dans YANG pour les périphériques exécutant Junos OS. Cela vous permet de définir précisément les paramètres et opérations d’entrée, ainsi que les champs de sortie et la mise en forme pour des tâches opérationnelles spécifiques sur les équipements exécutant Junos OS.

Lorsque vous exécutez un RPC sur un périphérique exécutant Junos OS, il renvoie la réponse RPC sous forme de document XML. Le langage de définition de sortie (ODL) de Junos OS définit la transformation des données XML en sortie ASCII formatée qui s’affiche lorsque vous exécutez une commande dans la CLI ou demandez une sortie RPC au format texte. Le module Extensions ODL de Junos OS définit des extensions YANG pour l’ODL de Junos OS, que vous pouvez inclure dans des RPC personnalisés pour spécifier la mise en forme CLI de la sortie. Pour obtenir un résumé de toutes les instructions et de leur placement dans l’instruction RPC, reportez-vous à la section Présentation des extensions YANG de Junos OS pour le formatage de la sortie RPCoutput.

Note:

À partir de Junos OS version 17.3, la mise en forme CLI d’un RPC personnalisé est définie dans l’instruction junos-odl:format extension. Dans les versions antérieures, la mise en forme de l’interface de ligne de commande est définie à l’aide d’un conteneur qui inclut l’instruction junos-odl:cli-format .

Les sections suivantes expliquent comment utiliser les instructions d’extension ODL de Junos OS. Des énoncés étroitement liés sont présentés dans la même section et, dans certains cas, un énoncé peut être inclus dans plus d’une section. Les exemples supposent que le module YANG englobant importe le module d’extensions ODL de Junos OS et le lie au junos-odl préfixe. Les exemples utilisent l’instruction, introduite dans Junos OS version 17.3, pour définir la mise en forme de l’interface format de ligne de commande.

ligne blanche

L’instruction blank-line insère une ligne entre chaque répétition de données lorsque la réponse RPC renvoie le même ensemble d’informations pour plusieurs entités. Par exemple, si la réponse RPC renvoie des données pour plusieurs interfaces, la sortie ASCII formatée insère une ligne vide entre l’ensemble de données de chaque interface.

Pour insérer une ligne vide entre l’ensemble de données de chaque entité, incluez l’instruction directement sous l’instruction blank-line format .

Capitaliser

L’instruction capitalize met une majuscule au premier mot de la valeur d’un nœud dans un champ de sortie. Cela n’affecte pas la mise en majuscules du nom formel d’un nœud. Par exemple, si la sortie RPC inclut un state nœud avec la valeur , l’instruction capitalize entraîne la mise en majuscule de la valeur onlinedans la sortie.

Pour mettre en majuscule le premier mot de la valeur du nœud, incluez l’instruction dans l’instruction capitalize format . L’emplacement de l’instruction détermine la portée de l’instruction et indique si elle affecte un seul champ, tous les champs d’une seule ligne ou toutes les lignes.

format cli

Lorsque vous exécutez un RPC sur un périphérique exécutant Junos OS, il renvoie la réponse RPC sous forme de document XML. Les noeuds Conteneur et Leaf sous l’instruction RPC sont convertis en éléments XML dans la réponse RPC output . Dans les RPC YANG pour périphériques exécutant Junos OS, vous pouvez également définir une sortie ASCII formatée personnalisée qui s’affiche lorsque vous exécutez le RPC sur l’interface de ligne de commande (CLI) de Junos OS ou demander une sortie RPC au format texte.

Dans Junos OS version 17.2 et versions antérieures, pour créer une sortie de commande personnalisée pour un conteneur de sortie RPC spécifique, créez un conteneur enfant qui inclut l’instruction cli-format . L’instruction cli-format indique que le conteneur englobant définit la mise en forme CLI pour le conteneur parent et que ce conteneur ne doit pas être inclus en tant que nœud dans les données XML de la réponse RPC. Dans le conteneur de mise en forme, mappez les données du conteneur parent aux champs de sortie et utilisez les instructions du module d’extensions ODL de Junos OS pour spécifier le mode d’affichage de la sortie de ce conteneur parent.

Pour créer une sortie de commande personnalisée pour un conteneur de sortie RPC spécifique dans Junos OS version 17.3 et versions ultérieures, reportez-vous à la section format.

deux-points, nom formel et interlignage

Le nom formel d’un noeud, ou étiquette, est le texte qui précède le contenu d’un noeud dans la sortie lorsque l’instruction leading est incluse dans les instructions de mise en forme du champ de sortie de ce noeud. Pour créer une étiquette pour un noeud, vous devez inclure l’instruction formal-name dans la définition du nœud leaf. Dans l’exemple suivant, le noeud a le version nom Versionformel :

L’instruction colon insère un deux-points après l’étiquette du noeud dans un champ de sortie. Si les instructions de mise en forme incluent à la fois les colon instructions et , l’étiquette du noeud et leading un signe deux-points sont insérés avant la valeur du noeud dans la sortie. Par exemple :

Pour insérer l’étiquette et les deux-points dans le champ de sortie, incluez les leading instructions et colon dans l’instruction format . L’emplacement des instructions détermine la portée et indique si elles affectent un seul champ, tous les champs d’une seule ligne ou toutes les lignes.

Lorsque vous exécutez le RPC, l’étiquette et un deux-points sont inclus dans la sortie de ce champ.

Virgule

L’instruction comma ajoute une virgule à la valeur du noeud dans la sortie. Il est utilisé en conjonction avec l’instruction space pour créer des champs séparés par des virgules dans une ligne de sortie. Par exemple :

Pour générer une virgule et un espace après la valeur d’un noeud dans le champ de sortie, incluez les comma instructions et space dans l’instruction format . L’emplacement des instructions dans l’instruction format détermine la portée. Le fait de placer les instructions dans un seul champ génère une virgule et un espace pour ce champ uniquement. Le fait de placer les instructions directement sous la déclaration applique la format mise en forme à tous les champs.

Si vous omettez l’instruction comma dans les instructions de mise en forme de cet exemple, les champs sont séparés par un espace uniquement. Junos OS omet automatiquement la virgule et l’espace après le dernier champ d’une ligne de sortie.

texte_par défaut

L’instruction default-text spécifie le texte à afficher lorsque le noeud correspondant à un champ de sortie est manquant.

Pour définir la chaîne à afficher dans la sortie ASCII mise en forme lorsque le noeud mappé à un champ est manquant, incluez l’instruction et la chaîne dans l’instruction default-text field de ce noeud.

Lorsque le noeud est manquant dans la réponse RPC, la sortie CLI affiche le texte par défaut.

Note:

L’appareil n’affiche le texte par défaut que lorsque le noeud est manquant. Il n’affiche pas le texte des noeuds présents mais vides.

Explicite

L’instruction explicit est uniquement utilisée dans les RPC Junos OS et ne peut pas être incluse dans les RPC personnalisés.

Champ et ligne

Les line instructions et définissent les lignes de la sortie ASCII formatée du RPC et field les champs qu’elles contiennent. Ces instructions peuvent également être utilisées avec l’instruction picture pour créer un tableau plus structuré qui définit des largeurs de colonne strictes et une justification textuelle.

Pour définir une ligne dans la sortie ASCII formatée, incluez l’instruction dans l’instruction line format. Dans l’instruction, incluez des instructions qui mappent field les noeuds feuilles de l’arborescence line en sortie aux champs de la ligne. L’argument de l’instruction field est l’identificateur de feuille. Les champs doivent être émis dans le même ordre que celui dans lequel vous avez défini les instructions leaf.

La sortie CLI pour le RPC suivant est une ligne unique avec trois valeurs. Notez que vous pouvez inclure d’autres instructions ODL dans les field instructions et line pour personnaliser la mise en forme d’un seul champ ou de tous les champs de cette ligne, respectivement.

retour à la ligne et retour à la ligne

Les fieldwrap instructions et wordwrap vous permettent d’envelopper le contenu de manière plus logique lorsque la largeur d’une ligne est supérieure à la largeur de l’affichage. Par défaut, le contenu qui s’étend au-delà du bord de l’écran est renvoyé à la ligne à l’endroit où il rencontre la marge de droite, sans se soucier des limites des mots.

L’instruction fieldwrap renvoie le contenu complet d’un champ à la ligne suivante lorsque la ligne actuelle est si longue qu’elle s’étend au-delà du bord droit de l’affichage. Si vous n’utilisez pas cette instruction, la chaîne s’enroule automatiquement, mais sans tenir compte des sauts de mots appropriés ou de la marge dominante.

Considérez les lignes de sortie suivantes :

Si l’affichage est plus étroit que d’habitude, la ligne peut être renvoyée à la ligne au milieu d’un mot, comme illustré dans l’exemple de sortie suivant :

Lorsque l’instruction fieldwrap est incluse pour un champ, le champ entier est déplacé vers la ligne suivante.

L’instruction wordwrap n’est utilisée que sur la colonne la plus à droite d’un tableau pour renvoyer des sections d’une valeur de plusieurs mots aux lignes suivantes lorsque la ligne actuelle est trop longue. Cela crée effectivement une colonne de texte. Dans l’exemple suivant, l’instruction wordwrap divise la chaîne de description au niveau des limites des mots :

Pour améliorer le comportement d’habillage dans la sortie ASCII formatée du RPC, incluez l’instruction dans les fieldwrap instructions de mise en forme de chaque champ. Pour envelopper la colonne la plus à droite d’un tableau, incluez l’instruction wordwrap dans les instructions de mise en forme du champ le plus à droite.

float, header, image et tronquer

Vous pouvez créer des tables dans la sortie ASCII mise en forme du RPC en définissant une instruction, une instruction et une header picture ou plusieurs line instructions. L’instruction facultative header définit les en-têtes de colonne d’un tableau, mais elle peut aussi simplement définir le texte général. L’instruction picture représente graphiquement le placement, la justification et la largeur des colonnes d’une table. Les line instructions et définissent les lignes de la table et field leurs champs.

L’argument de l’instruction picture est une chaîne qui inclut les symboles at (@), inférieur à (<), supérieur à (>) et vertical (|) pour définir le placement, la justification et la largeur des colonnes du tableau. Le symbole @ définit la position la plus à gauche d’une colonne qu’une valeur d’un champ peut occuper. Les <, > et | Les symboles indiquent respectivement la justification à gauche, à droite et au centre. Répétition de l'<, de l'> ou du | définit la largeur de la colonne. Le tableau 1 récapitule les symboles. Vous pouvez également insérer un ou plusieurs espaces vides entre les colonnes.

Tableau 1 : Symboles d’énoncé de l’image

Symbole

Description

@

Définit la position la plus à gauche d’une colonne qu’une valeur d’un champ peut occuper.

|

Permet de centrer le contenu du champ. Les symboles répétés définissent la largeur de la colonne.

<

Gauche justifie le contenu du champ. Les symboles répétés définissent la largeur de la colonne.

>

Le droit justifie le contenu du champ. Les symboles répétés définissent la largeur de la colonne.

L’instruction suivante picture définit une colonne justifiée à gauche, une colonne centrée et une colonne justifiée à droite qui ont chacune une largeur de six caractères et sont séparées par un seul espace :

Pour définir une ligne de table, incluez l’instruction line et mappez les noeuds de la feuille aux champs de la ligne. L’argument de l’instruction field est l’identificateur de feuille.

Lorsqu’un champ de table doit inclure l’une des valeurs mutuellement exclusives, vous pouvez répéter le symbole @ dans l’instruction pour chaque valeur potentielle et inclure l’instruction dans l’instruction picture float field pour chaque valeur mutuellement exclusive après la première valeur. Ensuite, si le premier élément n’a pas de valeur, les éléments suivants avec l’instruction sont testés jusqu’à ce qu’une float valeur soit renvoyée. La valeur flotte dans la position définie par le premier symbole @ au lieu de laisser un champ vide.

Par exemple, l’instruction suivante picture entraîne l’inclusion de l’une des deux valeurs mutuellement exclusives dans la deuxième colonne dans la sortie :

Vous pouvez également utiliser l’instruction lorsque vous savez qu’une balise correspondant à un champ de table spécifique peut être manquante dans certaines situations et que vous souhaitez éliminer l’espace float vide supplémentaire.

L’instruction truncate garantit que la valeur d’un champ n’excède pas la largeur de la colonne définie par l’instruction picture . L’instruction truncate fait en sorte que la sortie omette tous les caractères dans la valeur du nœud qui l’amèneraient à dépasser la largeur du champ. Si l’instruction truncate est omise et que la sortie dépasse la largeur du champ, le contenu complet est affiché, ce qui peut fausser la table. Vous devez utiliser cette instruction avec précaution, en particulier avec les nombres, car la sortie ne fournit aucune indication que la valeur est tronquée.

La mise en forme CLI du RPC suivant définit une petite table avec deux colonnes. Le comment champ inclut les float instructions ettruncate. Si l’élément state de sortie contient une valeur, celle-ci est placée dans la deuxième colonne. Toutefois, si l’élément de sortie est vide, la valeur du comment nœud, s’il state en existe une, est incluse dans la table et déplacée dans la deuxième colonne. Si le commentaire dépasse la largeur de cette colonne, il est tronqué pour s’adapter à la largeur de la colonne.

Format

Lorsque vous exécutez un RPC sur un périphérique exécutant Junos OS, il renvoie la réponse RPC sous forme de document XML. Les noeuds Conteneur et Leaf sous l’instruction RPC sont convertis en éléments XML dans la réponse RPC output . Dans les RPC YANG pour périphériques exécutant Junos OS, vous pouvez également définir une sortie ASCII formatée personnalisée qui s’affiche lorsque vous exécutez le RPC sur l’interface de ligne de commande (CLI) de Junos OS ou demander une sortie RPC au format texte.

À partir de Junos OS version 17.3, pour créer une sortie de commande personnalisée pour un conteneur de sortie RPC spécifique, définissez l’instruction format . L’instruction format définit la mise en forme CLI pour le conteneur parent et n’est pas incluse en tant que nœud dans les données XML de la réponse RPC. Dans l’instruction, mappez les données du conteneur parent aux champs de sortie et utilisez les instructions du module d’extensions ODL de Junos OS pour spécifier le mode d’affichage format de la sortie de ce conteneur parent.

Pour créer une sortie de commande personnalisée pour un conteneur de sortie RPC spécifique dans Junos OS version 17.2 et versions antérieures, reportez-vous à la section cli-format.

header et header-group

L’instruction header vous permet de définir une chaîne d’en-tête qui précède un ensemble de champs dans la sortie ASCII mise en forme du RPC, et l’instruction entraîne uniquement l’émission header-group de la première chaîne d’en-tête lorsque deux en-têtes ou plus dans le même groupe d’en-têtes seraient inclus dans la sortie.

Pour définir une chaîne d’en-tête et l’associer à un groupe d’en-têtes, incluez respectivement les header instructions et header-group dans l’instruction format . L’argument header-group est une chaîne définie par l’utilisateur qui identifie un groupe d’en-tête particulier. Chaque format instruction qui inclut l’instruction avec le même identificateur appartient au même groupe d’en-têtes header-group . L’exemple suivant définit une format instruction associée au groupe color-tagsd’en-têtes .

Lorsque plusieurs instructions sont associées au même groupe d’en-têtes et que les balises émises par deux ou plusieurs format de ces instructions sont présentes dans la sortie, la sortie CLI n’émet que le premier en-tête qu’elle rencontre et supprime tous les en-têtes suivants appartenant à ce groupe d’en-têtes.

Pour n’émettre que la première chaîne d’en-tête d’un groupe d’en-têtes dans la sortie CLI du RPC, incluez l’instruction et l’identificateur dans toutes les format instructions appartenant à ce groupe d’en-têtesheader-group. L’exemple d’instruction RPC output suivant associe deux conteneurs et leurs instructions de format au groupe color-tagsd’en-têtes .

Prenons l’exemple d’une réponse RPC avec les balises XML suivantes :

Lorsque la réponse RPC est rendue dans l’interface de ligne de commande et que la même header-group instruction est présente dans chaque format instruction, seule la première chaîne d’en-tête est émise dans la sortie, qui dans ce cas est la chaîne d’en-tête définie dans l’instruction avec l’identificateur format red-format.

Si vous omettez l’instruction de l’instruction header-group format , la chaîne d’en-tête définie pour chaque ensemble de champs est incluse dans la sortie.

Tiret

L’instruction indent entraîne l’indentation de toutes les lignes de la portée de l’instruction, à l’exception de la ligne d’en-tête, du nombre de caractères spécifié.

Pour mettre des lignes en retrait, incluez l’instruction et le nombre d’espaces pour mettre en retrait les lignes au niveau supérieur de l’instruction indent format La sortie ASCII formatée pour le RPC suivant affiche une ligne en retrait de 10 espaces dans la sortie.

Lorsque vous exécutez le RPC, l’en-tête est justifié à gauche et la ligne contenant les deux champs est en retrait de dix espaces.

pas de saut de ligne

L’instruction no-line-break est utilisée pour afficher plusieurs valeurs sur la même ligne dans le cas où la sortie émet plusieurs entités avec les mêmes noms de balise. Lorsque vous incluez l’instruction no-line-break , les formats répétés sont placés sur la même ligne. Si vous omettez l’instruction, les formats répétés sont placés sur des lignes séparées.

Par exemple, vous pouvez afficher toutes les erreurs SONET ensemble sur la même ligne.

Pour placer les balises de plusieurs entités dans la même ligne de sortie, incluez l’instruction dans l’instruction no-line-break format de ce conteneur.

Si la sortie RPC renvoie plusieurs entités, elle place chaque ensemble répété de champs sur la même ligne.

Si vous omettez l’instruction no-line-break , la sortie place chaque ensemble répété de champs sur sa propre ligne.

Espace

L’instruction space ajoute un espace à la valeur du noeud dans la sortie ASCII formatée du RPC. Par exemple :

L’instruction space est souvent utilisée en conjonction avec l’instruction pour délimiter les champs d’une comma ligne de sortie avec une virgule suivie d’un espace.

Pour générer un espace après une valeur dans le champ en sortie, incluez l’instruction dans l’instruction space format . L’emplacement d’une instruction détermine la portée de l’instruction. Le fait de placer l’instruction dans un seul champ génère un espace après ce champ uniquement.

Style

L’instruction style définit l’un des nombreux formats pour la sortie RPC. Pour plus d’informations sur l’utilisation de l’instruction style pour créer différents niveaux de sortie, reportez-vous à la section Définition de différents niveaux de sortie dans les RPC YANG personnalisés pour les périphériques Junos.

Modèle

L’instruction template définit explicitement le format d’un champ de sortie pour un noeud donné, y compris la chaîne de sortie et le placement de la valeur du noeud dans la chaîne. Si l’instruction template est définie pour un nœud Leaf, le champ de sortie correspondant utilise automatiquement la chaîne de modèle.

Pour créer une chaîne de modèle pour un nœud, vous devez inclure l’instruction template dans la définition du nœud et définir la chaîne. Les espaces réservés %s et dans la chaîne définissent le type et %d l’emplacement de la valeur du nœud. Permet %s d’insérer une valeur de chaîne et %d d’insérer une valeur entière. Par exemple :

Si vous définissez une template instruction pour un noeud, le champ de sortie de ce noeud utilise automatiquement le texte du modèle.

Lorsque vous exécutez le RPC, le modèle est utilisé dans la sortie de ce champ.

Note:

Si une instruction leaf définit à la fois a et une instruction, et que l’instruction est incluse dans les instructions de mise en forme de ce champ, la sortie utilise le texte défini pour l’instruction et non le texte défini pour l’instruction leading template formal-name.formal-name template

Tableau de l’historique des versions
Libération
Description
17.3R1
À partir de Junos OS version 17.3, la mise en forme CLI d’un RPC personnalisé est définie dans l’instruction junos-odl:format extension. Dans les versions antérieures, la mise en forme de l’interface de ligne de commande est définie à l’aide d’un conteneur qui inclut l’instruction junos-odl:cli-format .