Configuración de StyleBook

Condiciones de los parámetros

En una definición de StyleBook, los parámetros definen la entrada que los usuarios de StyleBook proporcionan para crear un paquete de configuración. En ocasiones, es posible que quiera modificar el comportamiento de los parámetros de la siguiente manera:

  • Mostrar algunos parámetros a un usuario solo si se cumple una condición.
  • Los valores permitidos de un parámetro dependen de otro parámetro.
  • Defina un parámetro como obligatorio solo bajo ciertas condiciones.

En estos casos, utilice la sección parameters-conditions para definir las condiciones de los parámetros. Una condición de parámetro tiene los siguientes atributos:

Nota

Actualmente, las condiciones de los parámetros no se pueden aplicar a los parámetros de los objetos de lista.

‘show’ o ‘hide’

Cuando la acción es show y la condición especificada devuelve True, el parámetro target aparece en la GUI.

Cuando la acción es hide y la condición especificada devuelve True, el parámetro de destino desaparece de la interfaz gráfica de usuario.

Ejemplo:

parameters-conditions:
  -
   target: $parameters.security-settings.cert-details
   action: show
   condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->

Al principio, los detalles del certificado se ocultan para el parámetro security-settings. Cuando un usuario selecciona protocolos SSL o puente SSL, aparecen los detalles del certificado.

‘set-default’

Cuando la acción es set-default y la condición especificada devuelve True, el valor del parámetro de destino se establece en el valor predeterminado.

Ejemplo 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
<!--NeedCopy-->

Ejemplo 2:

parameters-conditions:
  -
   target: $parameters.port
   action: set-default-value
   value: if-then-else($parameters.protocol == "SSL", 443, 80)
<!--NeedCopy-->

Cuando un usuario selecciona el protocolo SSL, el valor de puerto predeterminado se establece en 443. Para otros protocolos, el valor de puerto predeterminado se establece en 80. Los ejemplos 1 y 2 dan el mismo resultado.

‘set-required’

Cuando la acción es set-required y la condición especificada devuelve True, el parámetro de destino se convierte en un campo obligatorio para crear un paquete de configuración.

parameters-conditions:
  -
   target: $parameters.security-settings.cert-details
   action: set-required
   condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->

Al principio, es posible que los detalles del certificado no sean necesarios para el parámetro security-settings. Cuando un usuario selecciona protocolos SSL o puente SSL, los detalles del certificado se convierten en un campo obligatorio para crear un paquete de configuración.

‘set-allowed-values’

Cuando la acción es set-allowed-values y la condición especificada devuelve True, el parámetro target le permite seleccionar solo los valores especificados.

Ejemplo 1:

parameters-conditions:
  -
   target: $parameters.app-name
   action: set-allowed-values
   value:
    - "SSL"
   condition: $parameters.lb-virtual-port ==  443
<!--NeedCopy-->

Cuando un usuario especifica 443 como puerto virtual de equilibrador de carga, el nombre de la aplicación solo permite la opción SSL.

Ejemplo 2;

parameters:
    -
      name: root-certificates
      label: "Root Certificates"
      type: object[]
      parameters:
        -
          name: certkey-name
          label: "SSL Root CertKey Name"
          type: string
          required: true
    -
      name: im-certificates
      label: "Intermediate Certificates"
      type: object[]
      parameters:
        -
          name: certkey-name
          label: "Name of Intermediate CertKey"
          type: string
          required: true
        -
          name: link-options
          label: "Link to Root or Intermediate CertKey?"
          type: string
          allowed-values:
            - Root
            - Intermediate
          default: Root
          required: true
        -
          name: link-certkey
          label: "Linked to Root/Intermediate CertKey Name"
          type: string
          required: true
parameters-conditions:
  -
    repeat: $parameters.im-certificates
    repeat-item: imcert
    parameters-conditions:
    -
      target: $imcert.link-certkey
      action: set-allowed-values
      condition: $imcert.link-options == "Root"
      value: $parameters.root-certificates[\*].certkey-name
    -
      target: $imcert.link-certkey
      action: set-allowed-values
      condition: $imcert.link-options == "Intermediate"
      value: $parameters.im-certificates[\*].certkey-name
<!--NeedCopy-->

En este ejemplo se establece un valor para un certificado SSL. La construcción de repetición en las condiciones de los parámetros se repite en todos los certificados intermedios (im-certificates) y comprueba el link-options parámetro de cada certificado.

Si el link-optionsparámetro coincide con un valor determinado, los valores permitidos en el link-certkeyparámetro se agregan a la lista de certificados correspondiente.

Por ejemplo, si el link-optionsparámetro es Root, los valores permitidos del link-certkeyparámetro se añaden a la root-certificatelista.

Las siguientes anotaciones se utilizan para agregar certificados a la lista:

  • Para los certificados raíz:

     $parameters.root-certificates[*].certkey-name
     <!--NeedCopy-->
    
  • Para certificados intermedios:

     $parameters.im-certificates[*].certkey-name
     <!--NeedCopy-->
    

‘set-label’

Cuando la acción es set-label y la condición especificada devuelve True, la etiqueta del parámetro de destino cambia al texto especificado.

Ejemplo:

parameters-conditions:
  -
   target: $parameters.app-name
   action: set-label
   value: if-then-else($parameters.lb-service-type == "TCP", "TCPApp","UDPApp")
<!--NeedCopy-->

Cuando un usuario selecciona el protocolo de equilibrador de carga como TCP, la etiqueta de la aplicación cambia a TCPApp. Si el usuario selecciona una opción diferente, la etiqueta de la aplicación cambia a UDPApp.

‘set-description’

Cuando la acción es set-description y la condición especificada devuelve True, la descripción del parámetro de destino cambia al texto especificado. Esta descripción aparece en la información de herramientas de un parámetro de objetivo.

Ejemplo:

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")
<!--NeedCopy-->

Cuando un usuario selecciona el protocolo de equilibrador de carga como TCP, la información sobre herramientas de la aplicación muestra un texto: Select a TCP application name. Si el usuario selecciona una opción diferente, se muestra la descripción de la aplicación Select a UDP application name.

‘collapse-pane’ o ‘expand-pane’

Cuando la acción es collapse-pane y la condición especificada devuelve True, el panel del parámetro de destino se contrae en la GUI.

Cuando la acción es expand-pane y la condición especificada devuelve True, el panel del parámetro de destino se expande en la GUI.

Ejemplo:

parameters-conditions:
  -
    target: $parameters.security-settings.cert-details
    action: expand-pane
    condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->

Al principio, es posible que el panel de detalles del certificado no se expanda para el parámetro security-settings. Cuando un usuario selecciona protocolos SSL o puente SSL, el panel de detalles del certificado se expande en la GUI.

‘set-pattern’

Cuando la acción es set-pattern y la condición especificada devuelve True, el campo del parámetro de destino se establece en el patrón especificado.

Ejemplo:

parameters-conditions:
  -
    target: $parameters.app-name
    action: set-pattern
    value: "[a-z]+"
<!--NeedCopy-->

En este ejemplo, el nombre de la aplicación solo permite caracteres alfabéticos en minúsculas.

Condiciones de parámetros anidados

En una definición de StyleBook, puede especificar una condición de parámetro dentro de una condición de parámetro. Estas condiciones se denominan condiciones de parámetros anidados y utilizan una construcción de repetición para definir estas condiciones. Las condiciones de parámetros anidados son útiles cuando se quiere aplicar una acción para un parámetro de otro parámetro.

Ejemplo:

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

En este ejemplo, cuando el usuario selecciona el protocolo HTTPS para un servidor virtual de equilibrio de carga, los valores del puerto se rellenan dinámicamente. Además, se aplica a cada uno de los servidores virtuales de equilibrio de carga de la lista.

Condiciones de los parámetros