Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Explicación línea a línea de los scripts de confirmación de ejemplo

Aplicación de un cambio a interfaces SONET/SDH

La siguiente secuencia de comandos de confirmación XSLT aplica un cambio transitorio a cada interfaz cuyo nombre comience por so-, estableciendo la encapsulación en ppp. Para obtener más información acerca de los cambios transitorios, consulte Descripción general de la generación de cambios de configuración persistentes o transitorios mediante scripts de confirmación. Para una versión SLAX de este ejemplo, consulte Ejemplo: Generar un cambio transitorio.

Las líneas 1 a 8 son placa de caldera como se describe en La placa de caldera requerida para scripts de confirmación y se omiten aquí por brevedad.

La línea 9 es una <xsl:for-each> instrucción de programación que examina cada nodo de interfaz cuyos nombres comienzan por "so-" y que se ha family inet habilitado en cualquier unidad lógica. (Aparece aquí en dos líneas solo por brevedad.)

La línea 10 es la etiqueta abierta para un cambio transitorio. El contenido posible del <transient-change> elemento es el mismo que el contenido del <configuration> elemento tag en la operación <load-configuration>de protocolo JUnos XML .

Las líneas 11 a 16 representan el contenido del cambio transitorio. La encapsulación se establece en ppp.

Las líneas 17 a 19 cierran todas las etiquetas abiertas de esta plantilla.

La línea 20 cierra la hoja de estilo y la secuencia de comandos de confirmación.

Aplicación de un cambio a interfaces habilitadas para ISO

El siguiente script XSLT de ejemplo garantiza que las interfaces habilitadas para un protocolo de organización internacional de estandarización (ISO) también tengan MPLS habilitada y se incluyan en el [edit protocols mpls interface] nivel jerárquico. Para una versión SLAX de este ejemplo, consulte Ejemplo: Interfaces de CONTROL IS-IS y MPLS.

Las líneas 1 a 8 son placa de caldera como se describe en La placa de caldera requerida para scripts de confirmación y se omiten aquí por brevedad.

La línea 9 guarda una referencia al [edit protocols mpls] nivel de jerarquía para que se pueda hacer referencia en el siguiente for-each bucle.

La línea 10 examina cada unidad de interfaz (interfaz lógica) en la que está habilitada la ISO. Las select paradas en el unit, pero el predicado limita la selección a solo las unidades que contienen un <iso> elemento anidado bajo un <family> elemento.

La línea 11 crea el nombre de interfaz en una variable. En primer lugar, el name atributo de la declaración de variable se establece en ifname. En Junos OS, un nombre de interfaz es la concatenación del nombre del dispositivo, un punto y el número de unidad. En este punto del script, el nodo contextual es el número de unidad, porque la línea 10 cambia el contexto a interfaces/interfaz/unidad. El ../name se refiere al <name> elemento del nodo principal del nodo contextual, que es el nombre del dispositivo (type-fpc/pic/port). El token "name" de la expresión XPath hace referencia al <name> elemento del nodo de contexto, que es el número de unidad (unit-number). Después de realizar la concatenación, la expresión XPath de la línea 11 se resuelve en type-fpc/pic/port.unit-number. A medida que la instrucción de la <xsl:for-each> línea 10 atraviesa la jerarquía y localiza interfaces habilitadas para ISO, los nombres de interfaz se almacenan recursivamente en la ifname variable.

La línea 12 se evalúa como verdadera para cada interfaz habilitada para ISO que no tenga MPLS habilitado.

La línea 13 llama a la jcs:emit-change plantilla, que es una plantilla de ayuda o de conveniencia en el archivo junos.xsl. Esta plantilla se analiza en la plantilla de emisión-cambio (SLAX y XSLT) y emit_change (Python).

Las líneas 14 a 18 usan el message parámetro de la jcs:emit-change plantilla. El parámetro message es un acceso directo que puede usar en lugar de incluir explícitamente los <warning>elementos , <edit-path>y <statement> .

Las líneas 19 a 23 usan el content parámetro de la jcs:emit-change plantilla. El content parámetro especifica el cambio que se debe realizar en relación con el nodo de contexto actual.

Las líneas 24 y 25 cierran las etiquetas abiertas en las líneas 13 y 12, respectivamente.

La línea 26 prueba si MPLS ya está habilitado y si esta interfaz no está configurada en el [edit protocols mpls interface] nivel jerárquico.

Las líneas 27 a 41 contienen otra invocación de la jcs:emit-change plantilla. En esta invocación, la interfaz se agrega en el [edit protocols mpls interface] nivel de jerarquía.

Las líneas 42 a 45 cierran todos los elementos abiertos.