Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Définir des tables opérationnelles Junos PyEZ pour analyser les résultats structurés

Tables opérationnelles (op) Junos PyEZ pour extraire des données de sortie structurées à partir de la sortie XML d’un RPC exécuté sur un équipement Junos. Vous pouvez ainsi rapidement récupérer et consulter les informations pertinentes sur l’état opérationnel de l’équipement.

Les tables Junos PyEZ sont formatées à l’aide de YAML. Les définitions des tables op peuvent inclure un certain nombre de paramètres requis et facultatifs, qui sont résumés dans le tableau 1.

Tableau 1 : Paramètres des tables Op Junos PyEZ pour les résultats structurés

Nom du paramètre de la table

Paramètre de table

Description

Nom de la table

Identifiant défini par l’utilisateur pour la table.

Commande RPC

rpc

Demandez le nom de la balise RPC à exécuter.

Arguments RPC par défaut

args

(Facultatif) Options de commande et arguments par défaut pour le RPC.

Clé d’argument RPC optionnelle

args_key

(Facultatif) Référence au premier argument optionnel d’une commande lorsque cet argument ne nécessite pas de mot-clé spécifique.

Si vous n’incluez pas cette propriété, vous devez spécifier le mot-clé ou le nom de l’option pour les arguments facultatifs inclus dans la liste d’arguments de méthode get() lorsque vous récupérez les données opérationnelles.

Élément de table

item

Expression XPath relative à l’élément de niveau supérieur de l’élément <rpc-reply> qui sélectionne les éléments à extraire des données.

Ces éléments deviennent la référence pour la vue associée.

Clé d’élément de tableau

key

(Facultatif) Expression XPath ou une liste d’expressions XPath qui sélectionne la ou les balises dont les valeurs identifient de manière unique l’élément Table pour les éléments qui n’utilisent pas l’élément <name> comme identifiant ou pour les cas où des clés composites sont requises.

Si l’élément utilise l’élément <name> pour l’identifiant, vous pouvez omettre cette propriété.

Vue du tableau

view

Vue utilisée pour extraire des données de terrain à partir des éléments de la table.

Prenons la table op Junos PyEZ suivante, EthPortTablequi est incluse avec la distribution Junos PyEZ. Le tableau extrait les informations sur l’état opérationnel des interfaces Ethernet sur l’équipement cible :

Les sections suivantes abordent les différents composants de la table.

Nom de la table

Le nom de la table est un identifiant défini par l’utilisateur pour la table. Le fichier ou la chaîne YAML peut contenir une ou plusieurs tables. Le début du document YAML doit être laissé justifié. Par exemple :

Commande RPC (rpc)

Junos PyEZ Op Tables pour la sortie structurée extraient des informations spécifiques à partir de la sortie XML d’un RPC. Vous devez inclure la rpc propriété dans la définition de la table op pour spécifier le RPC à exécuter sur un équipement.

La rpc valeur est la balise de requête Junos XML pour une commande. Par exemple, le nom de la balise de demande pour la show interfaces commande est get-interface-information.

La balise de demande peut être trouvée à l’aide de l’une des méthodes suivantes :

  • Ajout de l’option | display xml rpc après la commande dans la CLI Junos OS

  • Exécution de la méthode d’instance display_xml_rpc('command', format='text') Junos PyEZ Device

  • Recherche de la commande et de la balise correspondante dans l’Explorateur d’API XML Junos

  • Recherche de la commande et de la balise correspondante dans l’API Junos XML Operational Developer Reference

Arguments RPC par défaut (args)

La propriété facultative args définit les options de commande et les arguments par défaut pour le RPC. Ces paires sont répertoriées sous la forme de paires clé-valeur qui sont en retrait sous args. Un argument par défaut est utilisé lorsque vous appelez la get() méthode dans votre script et que vous ne fournissez pas d’argument qui remplace cette méthode par défaut.

Si une option n’est qu’un indicateur qui ne nécessite pas de valeur spécifique, vous pouvez l’inclure dans la liste d’arguments en définissant la valeur de l’option dans True la définition de table. Par exemple, la show interfaces media commande mappe à la balise de get-interface-information demande avec l’argument media: True. Si une option nécessite une valeur, définissez la valeur de l’argument sur la valeur que vous souhaitez utiliser comme valeur par défaut.

Note:

Si le nom de l’option dans l’interface de ligne de commande (CLI) Junos OS est trait d’union, vous devez remplacer les tirets du nom en traits de soulignement.

Par défaut, Junos PyEZ normalise toutes les clés et valeurs de la table, ce qui supprime tous les espaces de direction et de fin et remplace les séquences de caractères d’espace blanc internes par un seul espace. Pour désactiver la normalisation d’une table, incluez normalize: False dans la liste d’arguments.

Clé d’argument RPC facultative (args_key)

Vous utilisez la propriété facultative args_key dans les cas où une commande CLI prend un premier argument facultatif qui ne vous oblige pas à spécifier explicitement un nom d’option ou un mot-clé. Dans l’exemple suivant, la commande prend le show interfaces nom d’une interface comme argument facultatif :

La args_key propriété vous permet d’utiliser cet argument facultatif lors de la récupération de données opérationnelles sans avoir à spécifier explicitement le mot-clé ou le nom de l’option.

Si vous incluez la propriété dans votre args_key définition de table, vous pouvez spécifier la valeur de l’argument, mais omettre le nom de l’option lorsque vous récupérez les données.

Si vous omettez la propriété dans votre args_key définition de table, vous devez spécifier explicitement le nom de l’option si vous souhaitez inclure ce paramètre lorsque vous récupérez les données.

Élément de table (élément)

La propriété Table item , requise dans toutes les définitions op Table, identifie les données à extraire de la sortie RPC. La item valeur est une expression XPath relative à l’élément de niveau supérieur de la <rpc-reply> balise qui sélectionne les éléments souhaités. Ces éléments deviennent la référence pour la vue associée.

L’exemple suivant montre un exemple de sortie de commande CLI tronquée :

Pour sélectionner les <physical-interface> éléments dans cette sortie, incluez la item propriété et spécifiez le XPath qui sélectionne l’élément. Dans ce cas, l’élément <physical-interface> est un enfant direct de l’élément de niveau <interface-information> supérieur, et l’expression XPath de la item valeur n’est que le nom de l’élément.

Ces éléments deviennent la référence pour la vue associée.

Différents équipements peuvent émettre différents éléments de sortie pour le même RPC. En conséquence, le XPath de l’élément peut varier en fonction du système. La item propriété prend en charge l’utilisation de l’opérateur de pipeline ( | ) pour spécifier un « ou » implicite à sélectionner parmi plusieurs nœuds possibles. Lorsque la item propriété inclut cet opérateur, la key propriété doit utiliser une liste. Par exemple :

Clé d’élément de tableau (clé)

La propriété facultative key est une expression XPath ou une liste d’expressions XPath qui sélectionne la ou les balises utilisées pour identifier de manière unique un élément De table pour les éléments qui n’utilisent pas l’élément <name> comme identifiant ou pour les cas où vous souhaitez utiliser des clés composites.

Dans la sortie de commande suivante, chaque <physical-interface> élément est identifié de manière unique par son <name> élément enfant :

Si la propriété Table item sélectionne les <physical-interface> éléments, vous pouvez omettre la key propriété de la définition de table si vous souhaitez utiliser l’élément <name> comme clé par défaut.

En revanche, prenons la sortie de commande suivante show route brief :

Lors de la sélection des route-table/rt éléments, il n’y a pas d’élément correspondant <name> permettant d’identifier de manière unique chaque entrée de route. En l’absence de l’identifiant <name> , la key propriété peut spécifier la ou les balises qui identifient chaque élément de manière unique. Dans ce cas, vous pouvez identifier chaque route-table/rt élément de manière unique en utilisant <rt-destination> comme clé.

En outre, à partir de Junos PyEZ version 2.3.0, une table peut indiquer key: Null qu’une clé n’est pas nécessaire. Dans ce cas, la table et la vue renvoient les données sous la forme d’un simple dictionnaire plutôt que d’un dictionnaire imbriqué avec des clés.

Les éléments de table peuvent être définis par une clé comprenant un seul élément ou plusieurs éléments. Les clés à élément unique utilisent une expression XPath simple pour la valeur de la key propriété. Les clés composites sont définies par une liste d’expressions XPath. Prenons la définition de la table suivante :

La clé composite de cette définition de tableau peut être similaire à la suivante :

Si une clé composite fait référence à un élément manquant, Junos PyEZ remplace la valeur de la clé par None.

Note:

La key propriété doit utiliser une liste lorsque la item propriété inclut l’opérateur de pipeline ( | ).

La key propriété prend également en charge l’opérateur de pipeline ( | ), ce qui permet à la table de sélectionner parmi plusieurs nœuds possibles. L’opérateur vous permet d’utiliser la même table même dans les cas où différents systèmes émettent des éléments de sortie différents pour le même RPC. Par exemple, le tableau LLDPNeighborTable, illustré ici pour référence, peut sélectionner l’élément lldp-local-interface ou lldp-local-port-id comme clé :

Lorsque la key propriété utilise l’opérateur | , chaque clé présente dans la réponse RPC est ajoutée à la liste des clés. L’opérateur peut être utilisé pour spécifier un « ou » implicite et est utile dans les situations où différents noms de balises sont présents pour différents types de configurations ou de versions. Par exemple, si le RPC renvoie lldp-local-interface l’identifiant d’un équipement et le même RPC que lldp-local-port-id l’identifiant d’un autre équipement, la table sélectionne automatiquement la clé appropriée.

Vue du tableau (voir)

La view propriété associe la définition de la table à une vue particulière. A View mappe les noms de champs définis par l’utilisateur aux éléments de la table sélectionnés à l’aide d’expressions XPath. Vous pouvez personnaliser la vue pour sélectionner uniquement les éléments nécessaires dans les éléments de la table.