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.
À 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.
Physical interface: so-1/1/0, Enabled, Physical link is Down Interface index: 11, SNMP ifIndex: 41 ... Active defects : LOL, LOF, LOS, SEF, AIS-L, AIS-P Physical interface: so-1/1/1, Enabled, Physical link is Down Interface index: 12, SNMP ifIndex: 42 ... Active defects : LOL, LOF, LOS, SEF, AIS-L, AIS-P
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 .
rpc get-xyz-information {
output {
container xyz-information {
// leaf definitions
junos-odl:format xyz-information-format {
junos-odl:blank-line;
// CLI formatting
}
}
}
}
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.
State: Online
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.
rpc get-xyz-information {
output {
container xyz-information {
leaf state {
junos-odl:formal-name "State";
type string;
description "Interface state";
}
junos-odl:format xyz-information-format {
junos-odl:header "xyz information\n";
junos-odl:line {
junos-odl:field "state" {
junos-odl:leading;
junos-odl:colon;
junos-odl:capitalize;
}
}
}
}
}
}
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.
rpc get-xyz-information {
output {
container xyz-information {
// leaf definitions
container xyz-information-format {
junos-odl:cli-format;
// CLI formatting for the parent container
}
}
}
}
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 :
rpc get-xyz-information {
output {
container xyz-information {
leaf version {
junos-odl:formal-name "Version";
type string;
description "Version";
}
...
}
}
}
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 :
Version: value
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.
rpc get-xyz-information {
output {
container xyz-information {
leaf version {
junos-odl:formal-name "Version";
type string;
description "Version";
}
junos-odl:format xyz-information-format {
junos-odl:line {
junos-odl:field "version" {
junos-odl:colon;
junos-odl:leading;
}
}
}
}
}
}
Lorsque vous exécutez le RPC, l’étiquette et un deux-points sont inclus dans la sortie de ce champ.
Version: value
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 :
value1, Label2: value2, value3
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.
rpc get-xyz-information {
output {
container xyz-information {
leaf version {
type string;
description "Version";
}
// additional leaf definitions
junos-odl:format xyz-information-format {
junos-odl:comma;
junos-odl:space;
junos-odl:line {
junos-odl:field "version";
// additional fields
}
}
}
}
}
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.
rpc get-xyz-information {
output {
container xyz-information {
leaf my-model {
type string;
description "Model";
}
junos-odl:format xyz-information-format {
junos-odl:line {
junos-odl:field "my-model" {
junos-odl:default-text "Model number not available.";
}
}
}
}
}
}
Lorsque le noeud est manquant dans la réponse RPC, la sortie CLI affiche le texte par défaut.
Model number not available.
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.
rpc get-xyz-information {
output {
container xyz-information {
leaf my-version {
type string;
description "Version";
}
leaf my-model {
type string;
description "Model";
}
leaf comment {
type string;
description "Comment";
}
junos-odl:format xyz-information-format {
junos-odl:comma;
junos-odl:space;
junos-odl:line {
junos-odl:field "my-version" {
junos-odl:capitalize;
}
junos-odl:field "my-model";
junos-odl:field "comment";
}
}
}
}
}
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 :
Output errors: Carrier transitions: 1, Errors: 0, Collisions: 0, Drops: 0, Aged packets: 0
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 :
Output errors: Carrier transitions: 1, Errors: 0, Collisions: 0, Dro ps: 0, Aged packets: 0
Lorsque l’instruction fieldwrap est incluse pour un champ, le champ entier est déplacé vers la ligne suivante.
Output errors: Carrier transitions: 1, Errors: 0, Collisions: 0, Drops: 0, Aged packets: 0
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 :
Packet type Total Last 5 seconds Description
Sent Received Sent Received
Hello 0 0 4 5 Establish and maintain
neighbor relationships.
DbD 20 25 0 0 (Database description packets)
Describe the contents of
the topological database.
LSReq 6 5 0 0 (Link-State Request packets)
Request a precise instance
of the database.
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.
rpc get-xyz-information {
output {
container xyz-information {
leaf version {
type string;
description "Version";
}
leaf desc {
type string;
description "Description";
}
junos-odl:format xyz-information-format {
junos-odl:picture "@<<<<<<<<<<<<<<@<<<<<<<<<<<<<<";
junos-odl:line {
junos-odl:field "version" {
junos-odl:fieldwrap;
}
junos-odl:field "desc" {
junos-odl:wordwrap;
}
}
}
}
}
}
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.
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 :
junos-odl:picture " @<<<<< @||||| @>>>>>";
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.
junos-odl:line {
junos-odl:field "slot";
junos-odl:field "state";
junos-odl:field "comment";
}
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 :
junos-odl:picture " @<<<<< @@<<<<<";
junos-odl:line {
junos-odl:field "slot";
junos-odl:field "state";
junos-odl:field "comment"{
junos-odl:float;
}
}
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.
rpc get-xyz-information {
output {
container xyz-information {
leaf slot {
type string;
description "Slot number";
}
leaf state {
type string;
description "State";
}
leaf comment {
type string;
}
junos-odl:format xyz-information-format {
junos-odl:header "Slot State \n";
junos-odl:picture "@<<<<< @@|||||||||||||||||||";
junos-odl:line {
junos-odl:field "slot";
junos-odl:field "state";
junos-odl:field "comment"{
junos-odl:float;
junos-odl:truncate;
}
}
}
}
}
}
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.
rpc get-xyz-information {
output {
container xyz-information {
// leaf definitions
junos-odl:format xyz-information-format {
// CLI formatting for the parent container
}
}
}
}
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 .
junos-odl:format red-format {
junos-odl:header-group "color-tags";
junos-odl:header "Color tags\n";
...
}
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 .
output {
container red-group {
container red {
leaf redtag1 {
type string;
}
leaf redtag2 {
type string;
}
junos-odl:format red-format {
junos-odl:header-group "color-tags";
junos-odl:header "Color tags\n";
junos-odl:picture "@<<<<<<<<<<<< @<<<<<<<<<<<<";
junos-odl:indent 5;
junos-odl:line {
junos-odl:field "redtag1";
junos-odl:field "redtag2";
}
}
}
}
container blue-group {
container blue {
leaf bluetag1 {
type string;
}
leaf bluetag2 {
type string;
}
junos-odl:format blue-format {
junos-odl:header-group "color-tags";
junos-odl:header "Color tags\n";
junos-odl:picture "@<<<<<<<<<<<< @<<<<<<<<<<<<";
junos-odl:indent 5;
junos-odl:line {
junos-odl:field "bluetag1";
junos-odl:field "bluetag2";
}
}
}
}
}
Prenons l’exemple d’une réponse RPC avec les balises XML suivantes :
<rpc-reply>
<red-group>
<red>
<redtag1>red-1</redtag1>
<redtag2>red-2</redtag2>
</red>
</red-group>
<blue-group>
<blue>
<bluetag1>blue-1</bluetag1>
<bluetag2>blue-2</bluetag2>
</blue>
</blue-group>
</rpc-reply>
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.
Color tags
red-1 red-2
blue-1 blue-2
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.
Color tags
red-1 red-2
Color tags
blue-1 blue-2
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.
rpc get-xyz-information {
output {
container xyz-information {
leaf version {
type string;
description "Version";
}
leaf model {
type string;
description "Model";
}
junos-odl:format xyz-information-format {
junos-odl:header "xyz information\n";
junos-odl:indent 10;
junos-odl:line {
junos-odl:field "version";
junos-odl:field "model";
}
}
}
}
}
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.
xyz information
version model
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.
SONET errors: BPI-B1 0 BIP-B2 0 REI-L 0 BIP-B3 0 REI-P 0
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.
rpc get-sonet-errors {
output {
container sonet-error-information {
container sonet-errors {
leaf sonet-error-name {
type string;
description "SONET error name";
}
leaf sonet-error-count {
type integer;
description "SONET error count";
}
junos-odl:format sonet-errors-format {
junos-odl:no-line-break;
junos-odl:space;
junos-odl:header "SONET errors:\n";
junos-odl:line {
junos-odl:field "sonet-error-name";
junos-odl:field "sonet-error-count";
}
}
}
}
}
}
Si la sortie RPC renvoie plusieurs entités, elle place chaque ensemble répété de champs sur la même ligne.
SONET errors: BPI-B1 0 BIP-B2 0 REI-L 0 BIP-B3 0 REI-P 0
Si vous omettez l’instruction no-line-break , la sortie place chaque ensemble répété de champs sur sa propre ligne.
SONET errors: BPI-B1 0 BIP-B2 0 REI-L 0 BIP-B3 0 REI-P 0
Espace
L’instruction space ajoute un espace à la valeur du noeud dans la sortie ASCII formatée du RPC. Par exemple :
value1 value2 Label3: value3
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.
rpc get-xyz-information {
output {
container xyz-information {
leaf version {
type string;
description "Version";
}
// additional leaf definitions
junos-odl:format xyz-information-format {
junos-odl:space;
junos-odl:line {
junos-odl:field "version";
// additional fields
}
}
}
}
}
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 :
rpc get-xyz-information {
output {
container xyz-information {
leaf version {
junos-odl:template " Version: %s";
type string;
description "Version";
}
}
}
}
Si vous définissez une template instruction pour un noeud, le champ de sortie de ce noeud utilise automatiquement le texte du modèle.
rpc get-xyz-information {
output {
container xyz-information {
leaf version {
junos-odl:template " Version: %s";
type string;
description "Version";
}
junos-odl:format xyz-information-format {
junos-odl:line {
junos-odl:field "version";
// additional fields
}
}
}
}
}
Lorsque vous exécutez le RPC, le modèle est utilisé dans la sortie de ce champ.
Version: value
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
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 .