Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Consideraciones de diseño para scripts de confirmación

Después de tener cierta experiencia viendo los datos de configuración de Junos OS en XML, crear scripts de confirmación es bastante sencillo. En esta sección, se proporcionan algunos consejos y patrones comunes para desarrollar scripts de confirmación mediante XSLT.

El XSLT es un lenguaje interpretado, lo que hace que el rendimiento sea una consideración importante. Para obtener el mejor rendimiento, minimice los recorridos de nodos y las pruebas realizadas en cada nodo. Cuando sea posible, utilice el select atributo en una invocación recursiva <xsl:apply-templates> para limitar la parte de la jerarquía del documento que se visita.

Por ejemplo, el atributo siguiente select limita los nodos que se evaluarán especificando interfaces SONET/SDH que tengan habilitada la inet familia de protocolo (IPv4):

El siguiente ejemplo contiene dos <xsl:apply-templates> instrucciones que limitan el alcance de la secuencia de comandos a las import instrucciones configuradas en los [edit protocols ospf] niveles y [edit protocols isis] jerarquía:

En un lenguaje interpretado, hacer algo más de una vez puede afectar el rendimiento. Si la secuencia de comandos necesita hacer referencia a un nodo o un nodo establecido repetidamente, realice una variable que mantenga el conjunto de nodos y, a continuación, haga varias referencias a la variable. Por ejemplo, la siguiente declaración de variable crea una variable llamada mpls que se resuelve en el [edit protocols mpls] nivel jerárquico. Esto permite que el script atraviese la /protocols/ jerarquía buscando el mpls/ nodo solo una vez.

Las variables también son importantes cuando se utilizan <xsl:for-each> instrucciones, ya que el nodo de contexto actual examina cada nodo seleccionado por la <xsl:for-each> instrucción. Por ejemplo, la siguiente secuencia de comandos usa varias variables para almacenar y hacer referencia a valores a medida que la <xsl:for-each> instrucción evalúa las interfaces E1 que están configuradas en todas las interfaces STM1 canalizadas (cstm1-):

Si canaliza una interfaz cstm1-0/1/0 en 17 interfaces E1, el script hace que aparezca el siguiente mensaje de error cuando se emite el commit comando. (Para obtener más información acerca de este ejemplo, consulte Ejemplo: Limitar el número de interfaces E1.)