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 l’analyse de sorties structurées

RÉSUMÉ Créez des tables personnalisées qui sélectionnent des éléments spécifiques à partir de la sortie XML RPC pour extraire des informations opérationnelles d’un équipement Junos.

Tables opérationnelles (op) Junos PyEZ pour la sortie structurée extraient des données de la sortie XML d’un RPC exécuté sur un périphérique Junos. Cela vous permet de récupérer et de consulter rapidement les informations pertinentes sur l’état opérationnel de l’appareil.

Les tables Junos PyEZ sont mises en forme à l’aide de YAML. Les définitions de table peuvent inclure un certain nombre de paramètres obligatoires et facultatifs, qui sont résumés dans le tableau 1.

Tableau 1 : Paramètres dans les tables d’opérations Junos PyEZ pour la sortie structurée

Nom du paramètre de la table

Paramètre de table

Description

Nom de la table

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

Commande RPC

rpc

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

Arguments RPC par défaut

args

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

Clé d’argument facultative RPC

args_key

(Facultatif) Référence au premier argument facultatif 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 qui sont inclus dans la liste des arguments de méthode get() lorsque vous récupérez les données opérationnelles.

Élément de table

item

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

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

Clé de l’élément de table

key

(Facultatif) XPath expression 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 comme identificateur ou pour les cas où des <name> clés composites sont requises.

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

Affichage du tableau

view

Vue utilisée pour extraire les données de champ des éléments de la table.

Prenons l’exemple de la table d’opération Junos PyEZ suivante, EthPortTable, qui est incluse dans la distribution Junos PyEZ. Le tableau extrait les informations sur l’état de fonctionnement des interfaces Ethernet sur l’équipement cible :

Les sections suivantes traitent des différentes composantes du tableau.

Nom de la table

Le nom de la table est un identificateur 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 justifié à gauche. Par exemple :

Commande RPC (rpc)

Les tables d’opération Junos PyEZ pour la sortie structurée extraient des informations spécifiques 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 périphérique.

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

La balise de requête 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 l’interface de ligne de commande 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

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. Celles-ci sont répertoriées sous forme de paires clé-valeur qui sont mises en retrait sous args. Un argument default est utilisé lorsque vous appelez la get() méthode dans votre script et que vous ne fournissez pas d’argument qui remplace cette valeur 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 des arguments en définissant la valeur de l’option sur True dans la définition de la table. Par exemple, la show interfaces media commande est mappée à la get-interface-information balise request 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 par défaut.

Note:

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

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

Clé d’argument facultative RPC (args_key)

La propriété facultative args_key est utilisée dans les cas où une commande CLI utilise un premier argument facultatif qui ne nécessite pas que vous spécifiiez explicitement un nom d’option ou un mot-clé. Dans l’exemple suivant, la commande prend un nom d’interface show interfaces 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 définition de args_key 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 lors de la récupération des données.

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

La propriété Table item , qui est requise dans toutes les définitions d’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 dans la <rpc-reply> balise qui sélectionne les éléments souhaités. Ces éléments deviennent la référence de 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 à partir de 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 est simplement le nom de l’élément.

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

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

Clé de l’élément de table (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 identificateur 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 Table si vous souhaitez utiliser l’élément <name> comme clé par défaut.

En revanche, considérez la sortie de commande suivante show route brief :

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

De plus, à partir de la version 2.3.0 de Junos PyEZ, une table peut être définie key: Null pour indiquer qu’aucune clé n’est requise. Dans ce cas, la table et la vue renvoient les données sous la forme d’un dictionnaire simple plutôt que d’un dictionnaire imbriqué avec des clés.

Les éléments de table peuvent être définis par une clé composée d’un seul élément ou de 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. Considérez la définition suivante du tableau :

La clé composite de cette définition de table peut être similaire à ce qui suit :

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 lorsqu’elle item inclut l’opérateur pipe ( | ).

La key propriété prend également en charge l’opérateur pipe ( | ), 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, LLDPNeighborTable, qui est affiché ici à titre de référence, peut sélectionner l’élément lldp-local-interface or 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 en tant qu’identificateur pour un périphérique et que le même RPC renvoie lldp-local-port-id en tant qu’identificateur pour un autre périphérique, la table sélectionne automatiquement la clé appropriée.

Vue tabulaire (vue)

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