Configuración de StyleBook

Repeticiones anidadas

Con la construcción de repetición anidada, puede tener más de una construcción de repetición en cada componente, según la definición del componente. Considere una repetición anidada de dos niveles. Para cada elemento de la lista externa (primera lista repetida), puede crear una lista repetida para todos los elementos de la lista interna (segunda lista repetida). El compilador StyleBook admite hasta tres repeticiones anidadas. Cada nivel de repetición tiene asociados los atributos repeat-item y repeat-index. Tanto los atributos repeat-item como repeat-index son opcionales. Además, cada repetición también puede especificar una condición de repetición.

Ejemplo:

parameters:

  -

      name: vips

      type: ipaddress[]

  -

      name: vip-ports

      type: tcp-port[]

components:

  -

      name: lbvservers-comp  

      type: ns::lbvserver

      repeat:

         repeat-list: $parameters.vips

         repeat-item: ip

         repeat:

              repeat-list: $parameters.vip-ports

              repeat-item: port

      properties:

         name: str("lb-") + str($ip) + '-' + str($port)

         servicetype: HTTP

         ipv46: $ip

         port: $port
<!--NeedCopy-->

En este ejemplo, para cada elemento en $parameters.vips, iteramos sobre todos los elementos de $parameters.vip-ports. Por lo tanto, para cada ipaddress especificado en $parameters.vips, creamos objetos de lbvserver configuración para todos los puertos especificados en $parameters.vip-ports. La sección de propiedades define el nombre del objeto con «lb» como prefijo para la combinación de la dirección IP y el puerto. Por lo tanto, para cada iteración, $ip + $port define una combinación única de la dirección IP y el número de puerto.

Si no se proporciona el repeat-item atributo, el compilador genera un valor predeterminado para él. Los valores predeterminados para repetiat-item son: $repeat-item, $repeat-item-1, $repeat-item-2 respectivamente para cada nivel de repetición. Del mismo modo, si no se proporciona el repeat-index atributo, el compilador genera un valor predeterminado para él. Los valores predeterminados para repeat-index son: $repeat-index, $repeat-index-1 y $repeat-index-2 respectivamente para cada nivel de repetición.

El siguiente ejemplo describe la convención de nomenclatura en ausencia de los atributos repeat-item y repeat-index en un objeto repetido anidado.

Ejemplo:

components:

-

     name: lbvservers-comp  

     type: ns::lbvserver

     repeat:

         repeat-list: $parameters.vips

         repeat:

            repeat-list: $parameters.vip-ports

     properties:

        name: str("lb-") + str($repeat-item) + '-' + str($repeat-item-1)

        servicetype: HTTP

        ipv46: $repeat-item

        port: $repeat-item-1
<!--NeedCopy-->
Repeticiones anidadas

En este artículo