Application Delivery Management

Das Konstrukt properties-default-sources

Das Konstrukt properties-default-sources ist analog zum Konstrukt parameters-default-sources. Während das Konstrukt parameters-default-sources die Wiederverwendung bestehender Parameter (aus anderen StyleBooks) in einem StyleBook ermöglicht, erlaubt das Konstrukt properties-default-sources dem Benutzer, Eigenschaften einer Komponente basierend auf bestehenden Quellen anzugeben.

Die Eigenschaften einer Komponente können über verschiedene Abschnitte des StyleBooks verteilt sein. Beispielsweise können die Eigenschaften von Objektparametern, Substitutionen, die ein Objekt zurückgeben, Eigenschaften anderer Komponenten oder Ausgaben anderer Komponenten stammen. In solchen Fällen müssen Sie die Eigenschaften, die in anderen Abschnitten des StyleBooks vorkommen, in der Definition der Komponente neu definieren. Dies ist offensichtlich redundant und kann zu Fehlern führen. Um dieses Problem zu beheben, kann das Konstrukt properties-default-sources verwendet werden. Das Konstrukt properties-default-sources ist eine Liste, wobei jedes Element eine Quelle für bestimmte Eigenschaften der Komponente identifiziert.

Betrachten Sie beispielsweise eine Komponente, die eine lbvserver-Konfiguration erstellt. Diese Komponente sollte die Eigenschaften des lbvserver wie folgt definieren.

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

Im obigen Beispiel ist zu beachten, dass die Werte für alle im Abschnitt components definierten Eigenschaften aus dem Objekt $parameters.lb stammen. Obwohl sie aus einer einzigen Quelle stammen, werden die Eigenschaften im StyleBook erneut definiert. Wenn zusätzlich ein neuer Unterparameter zum Objekt $parameters.lb hinzugefügt wird, der für die Konfiguration des lbvserver relevant ist, müssen Sie die Komponente lb-comp aktualisieren, um die neue Eigenschaft hinzuzufügen, die dem neuen Unterparameter entspricht.

Um die Neudefinition von Eigenschaften zu vermeiden und alle relevanten Eigenschaften einer Komponente abzurufen, ohne sie explizit im Abschnitt properties aufzulisten, kann das Konstrukt properties-default-sources verwendet werden. Das obige Beispiel kann wie folgt geschrieben werden.

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

Im obigen Beispiel führt die Verwendung des Konstrukts properties-default-sources zu einer Reduzierung der Größe der Komponentendefinition, wodurch Sie eine Komponente prägnant definieren können. Darüber hinaus werden Änderungen automatisch übernommen, jedes Mal, wenn sich die Quelle der Eigenschaften der Komponente ändert. Wenn beispielsweise eine neue Eigenschaft, sagen wir „persistencetype“, im Objekt $parameters.lb hinzugefügt wird, wird diese Eigenschaft standardmäßig zur Konfiguration von lb-comp hinzugefügt, da persistencetype eine Eigenschaft von lbvserver ist. Somit bietet das Konstrukt properties-default-sources eine dynamische Schnittstelle zur Definition der Komponenten, ohne sich um Änderungen an den Quellen der Eigenschaften der Komponente kümmern zu müssen.

Berechnung der Eigenschaften der Komponente

Dieser Abschnitt erläutert, wie die Eigenschaften abgerufen werden, wenn das Konstrukt properties-default-sources in einer Komponente verwendet wird. Zuerst identifiziert der StyleBooks-Compiler die Liste der Eigenschaften für eine Komponente basierend auf ihrem Typ (im obigen Beispiel lbvserver). Als Nächstes ruft der Compiler diese Eigenschaften aus den verschiedenen Quellen in der Reihenfolge ab, in der sie definiert sind (im Abschnitt properties-default-sources der Komponente). Wenn eine Eigenschaft in mehreren Quellen existiert, hat die Eigenschaft, die in der letzten Quelle erscheint, Vorrang vor anderen. Schließlich kann eine Eigenschaft, die mithilfe des Konstrukts properties-default-sources abgerufen wird, im Abschnitt properties der Komponente überschrieben werden. Es ist wichtig zu beachten, dass die Definition eines Komponentenabschnitts mindestens einen properties-default-sources-Abschnitt oder einen properties-Abschnitt haben sollte. Es kann auch beide haben.

Das Konstrukt properties-default-sources