Application Delivery Management

Mécanisme properties-default-sources

Le mécanisme properties-default-sources est analogue au mécanisme parameters-default-sources. Alors que le mécanisme parameters-default-sources permet la réutilisation de paramètres existants (provenant d’autres StyleBooks) dans un StyleBook, le mécanisme properties-default-sources permet à l’utilisateur de spécifier les propriétés d’un composant à partir de sources existantes.

Les propriétés d’un composant peuvent être réparties dans différentes sections du StyleBook. Par exemple, les propriétés peuvent provenir de paramètres d’objet, de substitutions qui renvoient un objet, de propriétés d’autres composants ou de sorties d’autres composants. Dans de tels cas, vous devez redéfinir les propriétés qui apparaissent dans d’autres sections du StyleBook dans la définition du composant. Il est clair que cela est redondant et peut entraîner des erreurs. Pour résoudre ce problème, le mécanisme properties-default-sources peut être utilisé. Le mécanisme properties-default-sources est une liste où chaque élément identifie une source pour certaines propriétés du composant.

Par exemple, prenons l’exemple d’un composant qui crée une configuration lbvserver. Ce composant doit définir les propriétés de lbvserver comme suit.

parameters:
  -
    name: lb
    type: ns::lbvserver
components:
  -
    name: lb-comp
    type: ns::lbvserver
    properties:
      name: $parameters.lb.name
      ipv46: $parameters.lb.ipv46
      port: $parameters.lb.port
      servicetype: $parameters.lb.servicetype
      lbmethod: $parameters.lb.lbmethod
<!--NeedCopy-->

Dans l’exemple ci-dessus, notez que les valeurs de toutes les propriétés définies dans la section components proviennent de l’objet $parameters.lb. Bien qu’elles proviennent d’une source unique, les propriétés sont à nouveau définies dans le StyleBook. De plus, si un nouveau sous-paramètre à l’objet $parameters.lb pertinent pour la configuration du lbvserver est ajouté, vous devez mettre à jour le composant lb-comp pour ajouter la nouvelle propriété qui correspond au nouveau sous-paramètre.

Pour éviter de redéfinir les propriétés et pour récupérer toutes les propriétés pertinentes d’un composant sans les lister explicitement dans la section properties, le mécanisme properties-default-sources peut être utilisé. L’exemple ci-dessus peut être réécrit comme suit.

parameters:
  -
    name: lb
    type: ns::lbvserver
components:
  -
    name: lb-comp
    type: ns::lbvserver
    properties-default-sources:
      - $parameters.lb
<!--NeedCopy-->

Dans l’exemple ci-dessus, l’utilisation du mécanisme properties-default-sources entraîne une réduction de la taille de la définition du composant, ce qui vous permet de définir un composant de manière concise. De plus, chaque fois que la source des propriétés du composant change, les modifications sont répercutées automatiquement. Par exemple, lorsqu’une nouvelle propriété, par exemple « persistencetype », est ajoutée à l’objet $parameters.lb, cette propriété est ajoutée à la configuration de lb-comp par défaut, car persistencetype est une propriété de lbvserver. Ainsi, le mécanisme properties-default-sources fournit une interface dynamique pour définir les composants sans se soucier des modifications apportées aux sources des propriétés du composant.

Calcul des propriétés du composant

Cette section explique comment les propriétés sont récupérées si le mécanisme properties-default-sources est utilisé dans un composant. Tout d’abord, le compilateur StyleBooks identifie la liste des propriétés d’un composant en fonction de son type (dans l’exemple ci-dessus, lbvserver). Ensuite, le compilateur récupère ces propriétés à partir des multiples sources dans l’ordre où elles sont définies (dans la section properties-default-sources du composant). Si une propriété existe dans plusieurs sources, la propriété apparaissant dans la dernière source a priorité sur les autres. Enfin, une propriété récupérée à l’aide du mécanisme properties-default-sources peut être remplacée dans la section properties du composant. Il est important de noter que la définition d’une section de composant doit au moins contenir une section properties-default-sources ou une section properties. Elle peut contenir les deux.

Mécanisme properties-default-sources