Parameterbedingungen
Parameterbedingungen werden verwendet, um das Verhalten bestimmter Parameter in der StyleBook-Definition zu ändern. Parameter in einer StyleBook-Definition sind die Eingabe, die zum Erstellen eines Konfigurationspakets bereitgestellt wird. Verwenden Sie
parameters-conditions, um eine Parameterbedingung in der Definition zu definieren.
Ein Parameter kann viele Einschränkungen in der StyleBook-Definition haben. Die Parameterbedingungen werden verwendet, um Konflikte zu lösen, wenn ein Benutzer das Parameterverhalten ändert. Wenn ein Benutzer beispielsweise das SSL-Protokoll auswählt, sind die Zertifikatdetails erforderlich, um ein Konfigurationspaket zu erstellen. Die Zertifikatdetails sind jedoch möglicherweise nicht von Anfang an als Pflichtfeld festgelegt.
Die Parameterbedingung hat die folgenden Attribute:
-
target: Geben Sie den Zielparameter an, auf den Sie eine Aktion anwenden möchten. Sie können mehrere Zielparameter angeben. -
action: Geben Sie an, welche Aktion für die Zielparameter ausgeführt werden soll. Parameterbedingungen unterstützen die folgenden Aktionen: -
condition: Optional. Geben Sie eine Bedingung an, um eine Aktion für die angegebenen Zielparameter anzuwenden. Wenn Sie keine Bedingung angeben, wird die Aktion direkt auf die Zielparameter angewendet. -
value: Legen Sie die Werte für das Attribut der Zielparameter in Abhängigkeit von der Aktion fest.
Hinweis:
Derzeit können die Parameterbedingungen nicht für Parameter innerhalb von Listenobjekten angewendet werden.
'augment-allowed-values'
Wenn die Aktion
augment-allowed-values ist, wird der Zielparameter als Dropdown-Menü in der GUI angezeigt. Das Dropdown-Menü wird mit den Werten gefüllt, die im Attribut value der StyleBook-Definition festgelegt sind.
Beispiel:
parameters-conditions:
-
target: $parameters.rewritepolicy.action
action: augment-allowed-values
value: $parameters.rewriteaction
'show' oder 'hide'
Wenn die Aktion
show ist und die angegebene Bedingung True zurückgibt, wird der Zielparameter in der GUI angezeigt.
Wenn die Aktion
hide ist und die angegebene Bedingung True zurückgibt, verschwindet der Zielparameter aus der GUI.
Beispiel:
parameters-conditions:
-
target: $parameters.security-settings.cert-details
action: show
condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
Zunächst sind die Zertifikatsdetails für den Parameter
security-settings ausgeblendet. Wenn ein Benutzer SSL- oder SSL-Bridge-Protokolle auswählt, werden die Zertifikatsdetails angezeigt.
'set-default'
Wenn die Aktion
set-default ist und die angegebene Bedingung True zurückgibt, wird der Wert des Zielparameters auf den Standardwert gesetzt.
Beispiel 1:
parameters-conditions:
-
target: $parameters.port
action: set-default
condition: $parameters.protocol == "SSL"
value: 443
-
target: $parameters.port
action: set-default
condition: $parameters.protocol != "SSL"
value: 80
Beispiel 2:
parameters-conditions:
-
target: $parameters.port
action: set-default
value: if-then-else($parameters.protocol == "SSL", 443, 80)
Wenn ein Benutzer das SSL-Protokoll auswählt, wird der Standard-Portwert auf
443 gesetzt. Für andere Protokolle wird der Standard-Portwert auf 80 gesetzt. Beispiel 1 und 2 liefern das gleiche Ergebnis.
'set-required'
Wenn die Aktion
set-required ist und die angegebene Bedingung True zurückgibt, wird der Zielparameter zu einem Pflichtfeld, um ein Konfigurationspaket zu erstellen.
parameters-conditions:
-
target: $parameters.security-settings.cert-details
action: set-required
condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
Zunächst sind die Zertifikatsdetails für den Parameter
security-settings möglicherweise nicht erforderlich. Wenn ein Benutzer die Protokolle SSL oder SSL-Bridge auswählt, werden die Zertifikatsdetails zu einem Pflichtfeld, um ein Konfigurationspaket zu erstellen.
'set-allowed-values'
Wenn die Aktion
set-allowed-values ist und die angegebene Bedingung True zurückgibt, erlaubt der Zielparameter nur die Auswahl bestimmter Werte.
Beispiel:
parameters-conditions:
-
target: $parameters.app-name
action: set-allowed-values
value:
- "SSL"
condition: $parameters.lb-virtual-port == 443
Wenn ein Benutzer
443 als virtuellen Load-Balancer-Port angibt, erlaubt der Name der Anwendung nur die Option SSL.
'set-label'
Wenn die Aktion
set-label ist und die angegebene Bedingung True zurückgibt, ändert sich die Bezeichnung des Zielparameters in den angegebenen Text.
Beispiel:
parameters-conditions:
-
target: $parameters.app-name
action: set-label
value: if-then-else($parameters.lb-service-type == "TCP", "TCPApp","UDPApp")
Wenn ein Benutzer das Load-Balancer-Protokoll als TCP auswählt, ändert sich die Bezeichnung der Anwendung in TCPApp. Wenn der Benutzer eine andere Option auswählt, ändert sich die Bezeichnung der Anwendung in UDPApp.
'set-description'
Wenn die Aktion
set-description ist und die angegebene Bedingung True zurückgibt, ändert sich die Beschreibung des Zielparameters in den angegebenen Text. Diese Beschreibung wird im Tooltip eines Zielparameters angezeigt.
Beispiel:
parameters-conditions:
-
target: $parameters.app-name
action: set-description
value: if-then-else($parameters.lb-service-type == "TCP", "Select a TCP application name","Select a UDP application name")
Wenn ein Benutzer das Load-Balancer-Protokoll als TCP auswählt, zeigt die QuickInfo der Anwendung einen Text an:
Select a TCP application name. Wenn der Benutzer eine andere Option auswählt, zeigt die Beschreibung der Anwendung Select a UDP application name an.
'collapse-pane' oder 'erweitern-pane'
Wenn die Aktion
collapse-pane ist und die angegebene Bedingung True zurückgibt, wird der Bereich des Zielparameters in der GUI reduziert.
Wenn die Aktion
expand-pane ist und die angegebene Bedingung True zurückgibt, wird der Bereich des Zielparameters in der GUI erweitert.
Beispiel:
parameters-conditions:
-
target: $parameters.security-settings.cert-details
action: expand-pane
condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
Zunächst ist der Bereich für Zertifikatsdetails für den Parameter
security-settings möglicherweise nicht erweitert. Wenn ein Benutzer die Protokolle SSL oder SSL-Bridge auswählt, wird der Bereich für Zertifikatsdetails in der GUI erweitert.
'set-pattern'
Wenn die Aktion
set-pattern ist und die angegebene Bedingung True zurückgibt, wird das Feld des Zielparameters auf das angegebene Muster gesetzt.
Beispiel:
parameters-conditions:
-
target: $parameters.app-name
action: set-pattern
value: "[a-z]+"
In diesem Beispiel erlaubt der Name der Anwendung nur alphabetische Kleinbuchstaben.
Verschachtelte Parameterbedingungen
In einer StyleBook-Definition können Sie eine Parameterbedingung innerhalb einer Parameterbedingung angeben. Diese Bedingungen werden als verschachtelte Parameterbedingungen bezeichnet und verwenden ein Wiederholungskonstrukt, um diese Bedingungen zu definieren. Die verschachtelten Parameterbedingungen sind nützlich, wenn Sie eine Aktion für einen Parameter von einem anderen Parameter aus anwenden möchten.
Beispiel:
parameters-conditions:
-
repeat: $parameters.lbvservers
repeat-item: lbvserver
parameters-conditions:
-
target: $lbvserver.port
action: set-allowed-values
condition: $lbvserver.protocol == "HTTPS"
value: $parameters.ssl-ports
In diesem Beispiel werden, wenn der Benutzer das HTTPS-Protokoll für einen virtuellen Load-Balancing-Server auswählt, die Portwerte dynamisch ausgefüllt. Und dies gilt für jeden virtuellen Load-Balancing-Server in der Liste.