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 online
dans 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 Version
formel :
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-tags
d’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-tags
d’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
.