Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Definir tablas operativas de Junos PyEZ para analizar resultados estructurados

RESUMEN Cree tablas personalizadas que seleccionen elementos específicos de la salida XML RPC para extraer información operativa de un dispositivo Junos.

Las tablas operacionales (op) de Junos PyEZ para salida estructurada extraen datos de la salida XML de un RPC ejecutado en un dispositivo Junos. Esto le permite recuperar y revisar rápidamente la información relevante del estado operativo del dispositivo.

Las tablas PyEZ de Junos se formatean con YAML. Las definiciones de Op Table pueden incluir una serie de parámetros obligatorios y opcionales, que se resumen en la Tabla 1.

Tabla 1: Parámetros en las tablas Op de Junos PyEZ para resultados estructurados

Nombre del parámetro de tabla

Parámetro de tabla

Descripción

Nombre de la tabla

Identificador definido por el usuario para la tabla.

Comando RPC

rpc

Solicite el nombre de etiqueta del RPC que se va a ejecutar.

Argumentos predeterminados de RPC

args

(Opcional) Opciones de comando y argumentos predeterminados para RPC.

Clave de argumento opcional RPC

args_key

(Opcional) Referencia al primer argumento opcional de un comando cuando ese argumento no requiere una palabra clave específica.

Si no incluye esta propiedad, debe especificar la palabra clave, o el nombre de la opción, para los argumentos opcionales que se incluyen en la lista de argumentos del get() método al recuperar los datos operativos.

Elemento de tabla

item

Expresión XPath relativa al elemento de nivel superior del <rpc-reply> elemento que selecciona los elementos que se extraerán de los datos.

Estos elementos se convierten en la referencia para la vista asociada.

Clave del elemento de tabla

key

(Opcional) Expresión XPath o una lista de expresiones XPath que selecciona la etiqueta o etiquetas cuyos valores identifican de forma exclusiva el elemento Table para los elementos que no utilizan el <name> elemento como identificador o para los casos en los que se requieren claves compuestas.

Si el elemento utiliza el <name> elemento para el identificador, puede omitir esta propiedad.

Vista de tabla

view

Vista que se utiliza para extraer datos de campo de los elementos de tabla.

Considere la siguiente tabla op de Junos PyEZ, EthPortTable, que se incluye con la distribución de Junos PyEZ. La tabla extrae información del estado operativo de las interfaces Ethernet en el dispositivo de destino:

En las secciones siguientes se analizan los diferentes componentes de la tabla.

Nombre de la tabla

El nombre de la tabla es un identificador definido por el usuario para la tabla. El archivo o cadena YAML puede contener una o varias tablas. El inicio del documento YAML debe dejarse justificado. Por ejemplo:

Comando RPC (rpc)

Las tablas op de Junos PyEZ para salida estructurada extraen información específica de la salida XML de un RPC. Debe incluir la rpc propiedad en la definición de tabla op para especificar la RPC que se va a ejecutar en un dispositivo.

El rpc valor es la etiqueta de solicitud XML de Junos para un comando. Por ejemplo, el nombre de etiqueta de solicitud para el show interfaces comando es get-interface-information.

La etiqueta de solicitud se puede encontrar mediante uno de los métodos siguientes:

  • Anexar la | display xml rpc opción después del comando en la CLI de Junos OS

  • Ejecución del método de instancia display_xml_rpc('command', format='text') de Junos PyEZ Device

  • Buscar el comando y la etiqueta correspondiente en el Explorador de API XML de Junos

Argumentos predeterminados de RPC (args)

La propiedad opcional args define las opciones de comando y los argumentos predeterminados para la RPC. Se enumeran como pares clave-valor con sangría en args. Un argumento predeterminado se utiliza cuando se llama al método en la get() secuencia de comandos y no proporciona un argumento que invalide ese valor predeterminado.

Si una opción es solo un indicador que no requiere un valor específico, puede incluirla en la lista de argumentos estableciendo el valor de opción en True en la definición de tabla. Por ejemplo, el show interfaces media comando se asigna a la etiqueta request get-interface-information con el argumento media: True. Si una opción requiere un valor, establezca el valor del argumento en el valor que desea usar como valor predeterminado.

Nota:

Si el nombre de la opción en la interfaz de línea de comandos (CLI) de Junos OS tiene guiones, debe cambiar los guiones del nombre a guiones bajos.

De forma predeterminada, Junos PyEZ normaliza todas las claves y valores de tabla, lo que elimina todos los espacios en blanco iniciales y finales y sustituye las secuencias de caracteres de espacio en blanco internos por un único espacio. Para deshabilitar la normalización de una tabla, inclúyala normalize: False en la lista de argumentos.

Clave de argumento opcional RPC (args_key)

La propiedad optional args_key se usa en los casos en que un comando de CLI toma un primer argumento opcional que no requiere que especifique explícitamente un nombre de opción o una palabra clave. En el ejemplo siguiente, el comando toma un nombre de show interfaces interfaz como argumento opcional:

La args_key propiedad permite utilizar este argumento opcional al recuperar datos operativos sin tener que especificar explícitamente la palabra clave o el nombre de la opción.

Si incluye la propiedad en la definición de args_key tabla, puede especificar el valor del argumento, pero omitir el nombre de la opción al recuperar los datos.

Si omite la propiedad en la definición de args_key tabla, debe especificar explícitamente el nombre de la opción si desea incluir este parámetro al recuperar los datos.

Elemento de tabla (elemento)

La propiedad Table item , que es necesaria en todas las definiciones de tabla op, identifica los datos que se van a extraer de la salida RPC. El item valor es una expresión XPath relativa al elemento de nivel superior de la <rpc-reply> etiqueta que selecciona los elementos deseados. Estos elementos se convierten en la referencia para la vista asociada.

En el ejemplo siguiente se muestra la salida del comando CLI truncado de ejemplo:

Para seleccionar los <physical-interface> elementos de esta salida, incluya la item propiedad y especifique el XPath que selecciona el elemento. En este caso, el <physical-interface> elemento es un elemento secundario directo del elemento de nivel <interface-information> superior y la expresión XPath para el item valor es simplemente el nombre del elemento.

Estos elementos se convierten en la referencia para la vista asociada.

Diferentes dispositivos pueden emitir diferentes elementos de salida para el mismo RPC. Como resultado, el XPath del elemento podría variar según el sistema. La item propiedad admite el uso del operador de canalización ( | ) para especificar una "o" implícita para seleccionar entre varios nodos posibles. Cuando la item propiedad incluye este operador, la key propiedad debe utilizar una lista. Por ejemplo:

Clave de elemento de tabla (clave)

La propiedad opcional key es una expresión XPath o una lista de expresiones XPath que selecciona qué etiqueta o etiquetas se utilizan para identificar de forma exclusiva un elemento de tabla para aquellos elementos que no utilizan el <name> elemento como identificador o para los casos en los que desea utilizar claves compuestas.

En la siguiente salida de comando, cada <physical-interface> elemento se identifica de forma única por su <name> elemento secundario:

Si la propiedad Table item selecciona los <physical-interface> elementos, puede omitir la key propiedad de la definición Table si desea utilizar el <name> elemento como clave de forma predeterminada.

Por el contrario, considere el siguiente show route brief resultado de comando:

Al seleccionar los elementos, no hay ningún elemento correspondiente <name> para identificar de forma exclusiva cada entrada de route-table/rt ruta. Cuando el <name> identificador está ausente, la key propiedad puede especificar qué etiqueta o etiquetas identifican de forma exclusiva cada elemento. En este caso, puede identificar de forma exclusiva cada route-table/rt elemento utilizando <rt-destination> como clave.

Además, a partir de Junos PyEZ versión 2.3.0, se puede definir key: Null una tabla para indicar que no se requiere una clave. En este caso, la tabla y la vista devuelven los datos como un diccionario simple en lugar de uno anidado con claves.

Los elementos de tabla se pueden definir mediante una clave que consta de un solo elemento o de varios elementos. Las claves de un solo elemento utilizan una expresión XPath simple para el valor de la key propiedad. Las claves compuestas se definen mediante una lista de expresiones XPath. Considere la siguiente definición de tabla:

La clave compuesta para esta definición de tabla puede ser similar a la siguiente:

Si una clave compuesta hace referencia a un elemento que falta, Junos PyEZ reemplaza el valor de la clave por None.

Nota:

La key propiedad debe utilizar una lista cuando la item propiedad incluye el operador de canalización ( | ).

La key propiedad también admite el operador de canalización ( | ), que permite a Table seleccionar entre varios nodos posibles. El operador le permite utilizar la misma tabla incluso en los casos en que diferentes sistemas emiten diferentes elementos de salida para el mismo RPC. Por ejemplo, LLDPNeighborTable, que se muestra aquí como referencia, puede seleccionar el lldp-local-interface elemento o lldp-local-port-id como su clave:

Cuando la key propiedad utiliza el | operador, cada clave presente en la respuesta RPC se agrega a la lista de claves. El operador se puede utilizar para especificar una "o" implícita y es útil en situaciones en las que hay diferentes nombres de etiqueta presentes para diferentes tipos de configuraciones o versiones. Por ejemplo, si el RPC devuelve lldp-local-interface como identificador de un dispositivo y el mismo RPC devuelve lldp-local-port-id como identificador de otro dispositivo, la tabla selecciona automáticamente la clave adecuada.

Vista de tabla (ver)

La view propiedad asocia la definición de tabla con una vista determinada. Una vista asigna los nombres de campo definidos por el usuario a elementos de los elementos de tabla seleccionados mediante expresiones XPath. Puede personalizar la vista para seleccionar solo los elementos necesarios de los elementos de tabla.