Application Delivery Management

Répétitions imbriquées

Avec la construction répétitive imbriquée, vous pouvez avoir plusieurs constructions répétées dans chaque composant en fonction de la définition du composant. Envisagez une répétition imbriquée de deux niveaux. Pour chaque élément de la liste extérieure (première liste de répétitions), vous pouvez créer une liste de répétition pour tous les éléments de la liste intérieure (deuxième liste de répétitions). Le compilateur StyleBook prend en charge jusqu’à trois répétitions imbriquées. Chaque niveau de répétition est associé à des attributs repeat-item et repeat-index. Les attributs repeat-item et repeat-index sont tous deux facultatifs. En outre, chaque répétition peut également spécifier une condition de répétition.

Exemple :


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-->

Dans l’exemple ci-dessus, pour chaque élément de $parameters.vips, nous procédons à une itération sur tous les éléments de $parameters.vip-ports. Ainsi, pour chaque adresse IP spécifiée dans $parameters.vips, nous créons des objets de configuration lbvserver pour tous les ports spécifiés dans $parameters.vip-ports. La section des propriétés définit le nom de l’objet avec « lb » comme préfixe pour la combinaison de l’adresse IP et du port. Par conséquent, pour chaque itération, $ip + $port définit une combinaison unique d’adresse IP et de numéro de port.

Si l’attribut repeat-item n’est pas fourni, le compilateur génère une valeur par défaut pour celui-ci. Les valeurs par défaut pour repeat-item sont : $repeat-item, $repeat-item-1, $repeat-item-2 respectivement pour chaque niveau de répétition. De même, si l’attribut repeat-index n’est pas fourni, le compilateur génère une valeur par défaut pour celui-ci. Les valeurs par défaut pour repeat-index sont : $repeat-index, $repeat-index-1 et $repeat-index-2 respectivement pour chaque niveau de répétition.

L’exemple suivant décrit la convention de dénomination en l’absence d’attributs repeat-item et repeat-index dans un objet de répétition imbriqué.

Exemple :


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-->
Répétitions imbriquées