Configuración de StyleBook

Funciones integradas

Las expresiones en StyleBooks pueden usar funciones integradas.

Por ejemplo, puedes usar la función integrada str() para transformar un número en una cadena de texto.

str($parameters.order)

O bien, puedes usar la función integrada int() para transformar una cadena de texto en un número entero.

int($parameters.priority)

A continuación, se muestra la lista de funciones integradas compatibles con las expresiones de StyleBook, con ejemplos de cómo puedes usarlas:

str()

La función str() transforma el argumento de entrada en un valor de cadena de texto.

Tipos de argumento permitidos:

  • string
  • number
  • tcp-port
  • boolean
  • ipaddress

Ejemplos:

  • La función "set-" + str(10) devuelve "set-10".
  • La función str(10) devuelve 10.
  • La función str(1.1.1.1) devuelve 1.1.1.1.
  • La función str(True) devuelve "True".
  • La función str(NetScaler Console) devuelve "NetScaler Console".

int()

La función int() toma una cadena de texto, un número, una dirección IP o un tcpport como argumento y devuelve un número entero.

Ejemplos:

  • La función int("10") devuelve 10.
  • La función int(10) devuelve 10.
  • La función int(ip('0.0.4.1')) devuelve 1025.

bool()

La función bool() toma cualquier tipo como argumento. Si el valor del argumento es false, está vacío o ausente, esta función devuelve false.

De lo contrario, devuelve true.

Ejemplos:

  • La función bool(true) devuelve true.
  • La función bool(false) devuelve false.
  • La función bool($parameters.a) devuelve false si $parameters.a es false, está vacío o ausente.

len()

La función len() toma una cadena de texto o una lista como argumento y devuelve el número de caracteres de una cadena de texto o el número de elementos de una lista.

Ejemplo 1:

Si defines una sustitución de la siguiente manera:

items: ["123", "abc", "xyz"]

La función len($substitutions.items) devuelve 3

Ejemplo 2:

La función len("NetScaler Console") devuelve 10.

Ejemplo 3:

Si $parameters.vips tiene los valores ['1.1.1.1', '1.1.1.2', '1.1.1.3'], la función len($parameters.vips) devuelve 3.

min()

La función min() toma una lista o una serie de números o puertos TCP como argumentos y devuelve el elemento más pequeño.

Ejemplos con una serie de números o puertos TCP:

  • La función min(80, 100, 1000) devuelve 80.
  • La función min(-20, 100, 400) devuelve -20.
  • La función min(-80, -20, -10) devuelve -80.
  • La función min(0, 100, -400) devuelve -400.

Ejemplos con una lista de números o puertos TCP:

  • Supongamos que $parameters.ports es una lista de puertos TCP y tiene los valores: [80, 81, 8080].

    La función min($parameters.ports) devuelve 80.

max()

La función max() toma una lista o una serie de números o puertos TCP como argumentos y devuelve el elemento más grande.

Ejemplos con una serie de números o puertos TCP:

  • La función max(80, 100, 1000) devuelve 1000.
  • La función max(-20, 100, 400) devuelve 400.
  • La función max(-80, -20, -10) devuelve -10.
  • La función max(0, 100, -400) devuelve 100.

Ejemplos con una lista de números o puertos TCP:

  • Supongamos que $parameters.ports es una lista de puertos TCP y tiene los valores: [80, 81, 8080].

    La función max($parameters.ports) devuelve 8080.

bin()

La función bin() toma un número como argumento y devuelve una cadena de texto que representa el número en formato binario.

Ejemplos de expresiones:

La función bin(100) devuelve 0b1100100.

oct()

La función oct() toma un número como argumento y devuelve una cadena de texto que representa el número en formato octal.

Ejemplos de expresiones:

La función oct(100) devuelve 0144.

hex()

La función hex() toma un número como argumento y devuelve una cadena de texto en minúsculas que representa el número en formato hexadecimal.

Ejemplos de expresiones:

La función hex(100) devuelve 0x64.

lower()

La función lower() toma una cadena de texto como argumento y devuelve la misma cadena de texto en minúsculas.

Ejemplo:

La función lower("NetScaler Console") devuelve NetScaler Console.

upper()

La función upper() toma una cadena de texto como argumento y devuelve la misma cadena de texto en mayúsculas.

Ejemplo:

La función upper("NetScaler Console") devuelve NetScaler Console.

sum()

La función sum() toma una lista de números o tcpports como argumentos y devuelve la suma de los números de la lista.

Ejemplo 1:

Si defines una sustitución de la siguiente manera: substitutions:

list-of-numbers = [11, 22, 55]

La función sum($substitutions.list-of-numbers) devuelve 88.

Ejemplo 2:

Si $parameters.ports es [80, 81, 82], la función sum($parameters.ports) devuelve 243.

pow()

La función pow() toma dos números como argumentos y devuelve un número que representa el primer argumento elevado a la potencia del segundo.

Ejemplo:

La función pow(3,2) devuelve 9.

ip()

La función ip() toma un número entero, una cadena de texto o una dirección IP como argumento y devuelve la dirección IP según el valor de entrada.

Ejemplos:

  • Especifica una dirección IP en la función ip:

    La función ip(3.1.1.1) devuelve 3.1.1.1.

  • Especifica una cadena de texto en la función ip:

    La función ip('2.1.1.1') devuelve 2.1.1.1

  • Especifica un número entero en la función ip:

    • La función ip(12) devuelve 0.0.0.12.

    • Cuando especificas un número entero como cadena de texto en la función ip, devuelve una dirección IP equivalente a la entrada.

      La función ip('1025') devuelve 0.0.4.1.

    Esta función también admite las operaciones de suma y resta de números enteros y devuelve una dirección IP resultante.

    • Suma: La función ip(1025) + ip(12) devuelve 0.0.4.13.

    • Resta: La función ip('1025') - ip(12) devuelve 0.0.3.245.

    • Combinar suma y resta: La función ip('1.1.1.1') + ip('1.1.1.1') – ip(2) devuelve 2.2.2.0.

ip_network()

La función ip_network toma la dirección IP y la longitud de la máscara de red como argumentos y devuelve una notación de red IP.

Ejemplo 1:

La función ip_network(1.1.1.1, 28) devuelve 1.1.1.1/28.

Ejemplo 2:

Considera el valor 1.1.1.1 para $parameters.ipaddr. La función ip_network($parameters.ipaddr, 30) devuelve 1.1.1.1/30.

Ejemplo 3:

Considera el valor 24 para $parameters.netmask-len. La función ip_network(23.1.12.76, $parameters.netmask-len) devuelve 23.1.12.76/24.

network_ip()

La función network_ip() devuelve la primera dirección IP de la red IP especificada.

Ejemplo:

La función network_ip(1.1.1.1/28) devuelve 1.1.1.0. En este ejemplo, 1.1.1.0 es la primera dirección IP de la red dada.

subnets()

La función subnets() devuelve la lista de subredes de la red IP y la longitud de máscara de red especificadas.

Ejemplo:

La función subnets(1.1.1.1/28, 30) devuelve la lista de subredes de la red IP y la longitud de máscara de red dadas. La salida puede ser la siguiente:

[1.1.1.0/30', '1.1.1.4/30', '1.1.1.8/30', '1.1.1.12/30']

netmask_ip()

La función netmask_ip() devuelve la dirección IP de la máscara de red para la red IP especificada.

Ejemplo:

La función netmask_ip(1.1.1.1/28) devuelve 255.255.255.240. Para la red IP dada, 255.255.255.240 es la dirección IP de la máscara de red.

is_netmask_ip()

La función is_netmask_ip() acepta una ipaddress como entrada y devuelve True si el valor especificado es una dirección IP de máscara de red válida.

Ejemplo 1:

La función is_netmask_ip(255.255.255.240) devuelve True porque el valor especificado es una dirección IP de máscara de red válida.

Ejemplo 2:

La función is_netmask_ip(255.255.255.232) devuelve False porque el valor especificado no es una dirección IP de máscara de red válida.

broadcast_ip()

La función broadcast_ip() devuelve la dirección IP de difusión para la red IP especificada.

Ejemplo:

La función broadcast_ip(1.1.1.1/28) devuelve 1.1.1.15. Para la red IP dada, 1.1.1.15 es la dirección IP de difusión.

cidr()

La función cidr() devuelve la notación CIDR para la red IP especificada.

Ejemplo:

La función cidr(1.1.1.1/28) devuelve 1.1.1.0/28. Para la red IP dada, 1.1.1.0/28 es la notación CIDR.

is_cidr()

La función is_cidr() acepta una ipnetwork como entrada y devuelve True si el valor especificado coincide con la notación CIDR de la red IP.

Ejemplo 1:

La función is_cidr(1.1.1.0/24) devuelve True porque el valor especificado es la notación CIDR de la red dada.

Ejemplo 2:

La función is_cidr(1.1.1.1/28) devuelve False porque la notación CIDR de la red dada es diferente del valor especificado.

is_in_network()

La función is_in_network() acepta valores de ipnetwork y ipaddress y devuelve True si la dirección IP especificada existe en la red IP especificada.

Ejemplo 1:

La función is_in_network(1.1.1.1/24, 1.1.1.121) devuelve True porque la dirección 1.1.1.121 forma parte de la red 1.1.1.1/24.

Ejemplo 2:

La función is_in_network(1.1.1.1/28, 2.1.1.1) devuelve False porque la dirección 2.1.1.1 no forma parte de la red 1.1.1.1/28.

base64.encode()

La función base64.encode() toma un argumento de cadena de texto y devuelve la cadena de texto codificada en base64.

Ejemplo:

La función base64.encode("abcd") devuelve YWJjZA==.

base64.decode()

La función base64.decode toma una cadena de texto codificada en base64 como argumento y devuelve la cadena de texto decodificada.

Ejemplo:

La función base64.decode("YWJjZA==") devuelve abcd.

exists()

La función exists() toma un argumento de cualquier tipo y devuelve un valor booleano. El valor devuelto es True si la entrada tiene algún valor. El valor devuelto es False si el argumento de entrada no tiene ningún valor (es decir, ningún valor).

Considera que $parameters.monitor es un parámetro opcional. Si proporcionas un valor a este parámetro al crear un paquete de configuración, la función ($parameters.monitor) devuelve True.

De lo contrario, devuelve False.

filter()

La función filter() toma dos argumentos.

Argumento 1: una función de sustitución que toma un argumento y devuelve un valor booleano.

Argumento 2: una lista.

La función devuelve un subconjunto de la lista original donde cada elemento se evalúa como True cuando se pasa a la función de sustitución en el primer argumento.

Ejemplo:

Supongamos que hemos definido una función de sustitución de la siguiente manera.

Substitutions:

x(a): $a != 81

Esta función devuelve True si el valor de entrada no es igual a 81. De lo contrario, devuelve False.

Supongamos que $parameters.ports es [81, 80, 81, 89].

La función filter($substitutions.x, $parameters.ports) devuelve [80, 89] al quitar todas las ocurrencias de 81 de la lista.

if-then-else()

La función if-then-else() toma tres argumentos.

Argumento 1: una expresión booleana

Argumento 2: cualquier expresión

Argumento 3: cualquier expresión (opcional)

Si la expresión del argumento 1 se evalúa como True, la función devuelve el valor de la expresión proporcionada como argumento 2.

De lo contrario, si se proporciona el argumento 3, la función devuelve el valor de la expresión del argumento 3.

Si no se proporciona el argumento 3, la función devuelve no.

Ejemplo 1:

La función if-then-else($parameters.servicetype == HTTP, 80, 443) devuelve 80 si $parameters.servicetype tiene el valor HTTP. De lo contrario, la función devuelve 443.

Ejemplo 2:

La función if-then-else($parameters.servicetype == HTTP, $parameters.hport, $parameters.sport) devuelve el valor de $parameters.hport si $parameters.servicetype tiene el valor HTTP.

De lo contrario, la función devuelve el valor de $parameters.sport.

Ejemplo 3:

La función if-then-else($parameters.servicetype == HTTP, 80) devuelve 80 si $parameters.servicetype tiene el valor HTTP.

De lo contrario, la función no devuelve ningún valor.

join()

La función join() toma dos argumentos:

Argumento 1: una lista de number, tcp-port, string, ipaddress

Argumento 2: una cadena de texto delimitadora (opcional)

Esta función une los elementos de la lista proporcionada como argumento 1 en una cadena de texto, donde cada elemento está separado por la cadena de texto delimitadora proporcionada como argumento 2. Si no se proporciona el argumento 2, los elementos de la lista se unen como una sola cadena de texto.

Ejemplo:

  • $parameters.ports es [81, 82, 83].

    • Con argumento delimitador:

      La función join($parameters.ports, '-') devuelve 81-82-83.

    • Sin argumento delimitador:

      La función join($parameters.ports) devuelve 818283.

split()

La función split() divide una cadena de texto de entrada en varias listas, según los separadores especificados. Si no se especifica ningún separador o se especifica un separador en blanco (''), esta función considera el espacio como separador y divide la cadena de texto en listas.

Ejemplos:

  • La función split('Example_string_split', 's') devuelve ['Example_','tring_','plit'].

  • La función split('Example string split') devuelve ['Example','string','split'].

  • La función split('Example string split', '') devuelve ['Example','string','split'].

  • La función split('Example string') devuelve ['Example','string'].

    Esta función considera los espacios continuos como un solo espacio.

map()

La función map() toma dos argumentos:

Argumento 1: cualquier función

Argumento 2: una lista de elementos

La función devuelve una lista donde cada elemento de la lista es el resultado de aplicar la función map() (argumento 1) al elemento correspondiente del argumento 2.

Funciones permitidas en el argumento 1:

  • Funciones integradas que toman un argumento:

    base64.encode, base64.decode, bin, bool, exists, hex, int, ip, len, lower, upper, oct, quotewrap, str, trim, upper, url.encode, url.decode

  • Funciones de sustitución que toman al menos un argumento.

Ejemplo:

Supongamos que $parameters.nums es [81, 82, 83].

  • Asignar usando una función integrada, str

    La función map(str, $parameters.nums) devuelve ["81", "82", "83"]

    El resultado de la función map es la lista de cadenas de texto donde cada elemento de la cadena de texto se calcula aplicando la función str al elemento correspondiente de la lista de entrada ($parameters.nums).

  • Asignar usando una función de sustitución

    • Substitutions:

      add-10(port): $port + 10

    • Expresión:

      La función map($substitutions.add-10, $parameters.nums) devuelve una lista de números: [ 91, 92, 93 ]

El resultado de esta función map es una lista de números. Cada elemento se calcula aplicando la función de sustitución $substitutions.add-10 al elemento correspondiente de la lista de entrada ($parameters.nums).

quotewrap()

La función quotewrap() toma una cadena de texto como argumento y devuelve una cadena de texto después de agregar un carácter de comillas dobles antes y después del valor de entrada.

Ejemplo:

La función quotewrap("NetScaler Console") devuelve "NetScaler Console"

replace()

La función replace() toma tres argumentos:

Argumento 1: una string o lista de los siguientes tipos integrados:

  • string
  • number
  • ipaddress
  • tcp-port
  • boolean

Argumento 2: un único valor o una lista de valores cuyo tipo coincide con el tipo especificado en el argumento 1

Argumento 3: un único valor del mismo tipo que el especificado en el argumento 1 (opcional)

La función replace() reemplaza todas las ocurrencias del argumento 2 con el argumento 3 en el argumento 1.

Si no se proporciona el argumento 3, todas las ocurrencias del argumento 2 se quitan del argumento 1.

Ejemplo:

  • La función replace('abcdef', 'def', 'xyz') devuelve abcxyz.

    Todas las ocurrencias de def se reemplazan con xyz.

  • replace('abcdefabc', 'def') devuelve abcabc.

    Como no hay argumento 3, def se quita de la cadena de texto resultante.

  • La función replace('An#example@to%replace!characters', ['@', '#', '!', '%'], '_') devuelve An_example_to_replace_characters.

    La cadena de texto de salida tiene un guion bajo (_) en lugar de los caracteres especificados en ['@', '#', '!', '%'].

  • La función replace([10.10.10.1, 10.10.10.2, 10.10.10.3, 10.10.10.4], [10.10.10.2, 10.10.10.4]) devuelve [10.10.10.1, 10.10.10.3].

    Como no hay argumento 3, 10.10.10.2 y 10.10.10.4 se quitan de la lista resultante de direcciones IP.

  • La función replace([8080, 8081, 8082, 8083, 8084], 8083, 80) devuelve [8080, 8081, 8082, 80, 8084].

    Todas las ocurrencias de 8083 se reemplazan con 80.

trim()

La función trim() devuelve una cadena de texto donde se eliminan los espacios en blanco iniciales y finales de la cadena de texto de entrada.

Ejemplo:

La función trim(' abc ') devuelve abc.

truncate()

La función truncate() toma dos argumentos:

Argumento 1: una cadena de texto

Argumento 2: un número

La función devuelve una cadena de texto donde la cadena de texto de entrada del argumento 1 se trunca a la longitud especificada por el argumento 2.

Ejemplo:

La función truncate('Stylebooks', 6) devuelve Styleb.

distinct()

La función distinct() extrae elementos únicos de una lista de entrada.

Ejemplos: Si $parameters.input_list es ['ADC', 'VPX', 'ADC', 'CPX'], la función distinct($parameters.input_list) devuelve ['ADC', 'VPX', 'CPX'].

url.encode()

La función url.encode() devuelve una cadena de texto donde los caracteres se transforman utilizando el juego de caracteres ASCII según la RFC 3986.

Ejemplo:

La función url.encode("a/b/c") devuelve a%2Fb%2Fc.

url.decode()

La función url.decode() devuelve una cadena de texto donde el argumento codificado en URL se decodifica en una cadena de texto normal según la RFC 3986.

Ejemplo:

La función url.decode("a%2Fb%2Fc") devuelve a/b/c.

is-ipv4()

La función is-ipv4() toma una dirección IP como argumento y devuelve el valor booleano True si la dirección IP tiene formato IPv4.

La función is-ipv4(10.10.10.10) devuelve True

is-ipv6()

La función is-ipv6() toma una dirección IP como argumento y devuelve el valor booleano True si la dirección IP tiene formato IPv6.

La función is-ipv6(2001:DB8::) devuelve True

startswith()

La función startswith() determina si una cadena de texto comienza con un prefijo dado. Esta función requiere dos argumentos de cadena de texto obligatorios.

startswith(str, sub_str)

Esta función devuelve True cuando la cadena de texto (str) comienza con la subcadena (sub_str).

Ejemplos:

  • La función startswith('Citrix', 'Ci') devuelve True.
  • La función startswith('Citrix', 'iC') devuelve False
  • La función startswith('Citrix', 'Ab') devuelve False

endswith()

La función endswith() determina si una cadena de texto termina con un sufijo dado. Esta función requiere dos argumentos de cadena de texto obligatorios.

endswith(str, sub_str)

Esta función devuelve True cuando la cadena de texto (str) termina con la subcadena (sub_str).

Ejemplos:

  • La función endswith('Citrix', 'ix') devuelve True.
  • La función endswith('Citrix', 'Ix') devuelve False.
  • La función endswith('Citrix', 'ab') devuelve False.

contains()

La función contains() determina si una cadena de texto contiene una subcadena dada. Esta función requiere dos argumentos de cadena de texto obligatorios.

Tipos de argumento permitidos:

  • string
  • number
  • tcp-port
  • boolean
  • ipaddress

contains(str, sub_str)

Esta función devuelve True cuando la subcadena (sub_str) está contenida en cualquier parte de la cadena de texto (str).

Ejemplos:

  • La función contains('Citrix', 'tri') devuelve True.
  • La función contains('Citrix', 'Ci') devuelve True.
  • La función contains('Citrix', 'ti') devuelve False

También puedes usar esta función para comprobar si un elemento dado pertenece a la lista.

Ejemplo:

list_of_strings = [“Citrix”, “Core”, ”Values”, ”Integrity”]

contains($parameters.list_of_strings, “Values”)
<!--NeedCopy-->

En este ejemplo, la función contains() devuelve True porque la lista contiene el elemento Values.

substring()

Usa la función substring() para extraer una subcadena de una cadena de texto.

substring(str, start_index, end_index)

Esta función requiere los dos argumentos obligatorios y un argumento entero opcional.

  • str (Obligatorio)
  • start_index (Obligatorio)
  • end_index (Opcional)

Esta función devuelve la subcadena de la cadena de texto (str) que se encuentra entre las posiciones de índice especificadas. Si no especificas la posición del índice final, la función extrae la subcadena desde el índice inicial hasta el final de la cadena de texto.

Nota

Cuando especificas end_index, la subcadena excluye el carácter en la posición end_index.

Ejemplo:

  • La función substring('Citrix', 2) devuelve trix

  • La función substring('Citrix', 10) devuelve (")

    En este ejemplo, la función devuelve una cadena de texto en blanco porque tiene una posición start_index no válida.

  • La función substring('Citrix', 2, 4) devuelve tr

    En este ejemplo, la función extrae los caracteres entre las posiciones de índice 2 y 4.

  • La función substring('Citrix', -3) devuelve rix

    Si quieres extraer caracteres que están al final de la cadena de texto, especifica un valor negativo para el argumento start_index.

    En este ejemplo, la función extrae la subcadena que incluye los tres últimos caracteres de la cadena de texto.

match()

La función match() comprueba si una cadena de texto de entrada coincide con el patrón de expresión regular definido. Esta función acepta patrones de expresión regular y cadenas de texto de búsqueda como argumentos. Opcionalmente, también puedes especificar un tipo booleano para ignorar los patrones que distinguen entre mayúsculas y minúsculas.

Ejemplos:

  • La función match(“^[A-Z0-9]{2}_[A-Z0-9]{2,10}$”, “A2_B2”) devuelve True.

  • La función match(“^[A-Z0-9]{2}_[A-Z0-9]{2,10}$”, “a2_b2”) devuelve False.

  • La función match(“^[A-Z0-9]{2}_[A-Z0-9]{2,10}$”, “a2_B2”, $parameters.ignore_case) devuelve True.

sha256()

Usa esta función para calcular el hash SHA-256 de cualquier cadena de texto. Esta función acepta una cadena de texto de entrada de cualquier longitud y devuelve una cadena de hash de longitud fija (64 caracteres).

Ejemplo:

components:
    -
        name: lbvserver-comp
        type: ns::lbvserver
        properties:
            name: sha256(lbserver-name)
            servicetype: SSL
            ipv46: 10.10.10.10
<!--NeedCopy-->

En este ejemplo, lbserver-name aparece como una cadena de hash en el objeto NetScaler.

Esta función también puede aceptar expresiones como entrada.

Ejemplo:

components:
    -
        name: lbvserver-comp
        type: ns::lbvserver
        properties:
            name: sha256($parameters.lb-appname)
            servicetype: SSL
            ipv46: 10.10.10.10
<!--NeedCopy-->

relate()

La función relate() forma una lista de objetos de diccionario a partir de un conjunto de listas.

Toma dos argumentos:

Argumento 1: una lista de cadenas de texto que representan nombres de clave.

Argumento 2: una lista de listas, donde cada lista tiene los valores de los nombres de clave correspondientes en el argumento 1. Cada lista del argumento 2 debe tener la misma longitud. El número de listas del argumento 2 debe ser igual al número de cadenas de texto del argumento 1.

Ejemplo:

name: test_relate_3
description: "Hello World StyleBook."
namespace: com.citrix.adc.stylebooks
schema-version: "1.0"
version: "1.1"

import-stylebooks:
    -
        namespace: netscaler.nitro.config
        prefix: ns
        version: "10.5"
    -
        namespace: com.citrix.adc.stylebooks
        prefix: stlb
        version: "1.0"
        parameters:
    -
        name: namesofservers
        description: "Provide the names of LB VServers"
        type: string[]
    -
        name: listofips
        description: "Provide the list of IP Addresses"
        type: string[]
    -
        name: list_of_keys
        type: string[]
        default:
        -  "name"
        -  "ip"

    substitutions:
        list_of_values: [$parameters.namesofservers,$parameters.listofips]
    components:
    -
        name: svc-comp
        type: object
        properties:
        svcdetails: relate($parameters.list_of_keys,$substitutions.list_of_values)

    -
        name: lb-comp
        type: ns::lbvserver
        repeat: $components.svc-comp.properties.svcdetails
        repeat-item: svcd
        properties:
            name: $svcd['name']
            servicetype: HTTP
            ipv46: $svcd['ip']
            port: 80
<!--NeedCopy-->

En este ejemplo:

  • La sección parameters tiene una lista llamada list_of_keys que contiene name e ip.

  • La sección substitutions tiene una lista llamada list_of_values que contiene las dos listas siguientes:

    • Una lista de nombres de servidores virtuales (string)
    • Una lista de direcciones IP (string).

La función integrada relate() acepta list_of_keys y list_of_values como argumentos. A continuación, la función crea una lista de objetos de diccionario donde cada objeto tiene un nombre de la primera lista y una dirección IP de la segunda lista.

Si proporcionas la siguiente lista de servidores virtuales:

["lb1","lb2"]
<!--NeedCopy-->

y una lista de direcciones IP de servidores virtuales como:

["1.1.1.1","2.2.3.3"]
<!--NeedCopy-->

La función relate() devuelve las siguientes listas:

[\{"name": "lb1", "ip": "1.1.1.1"},\{"name": "lb2", "ip": "2.2.3.3"}]
<!--NeedCopy-->

El StyleBook itera sobre esta lista de objetos de diccionario, en la sección components, para crear los servidores virtuales correspondientes.

multiple()

La función multiple() toma dos argumentos:

Argumento 1: un number, string, boolean, ipaddress, tcp-port o password

Argumento 2: un number

La función multiple(argument1, argument2) devuelve una lista con muchas copias del argumento 1. El número de copias es igual al número pasado al argumento 2.

Ejemplos:

  • La función multiple(10.10.10.10, 3) devuelve [10.10.10.10, 10.10.10.10, 10.10.10.10].

  • La función multiple(8080, 4) devuelve [8080, 8080, 8080, 8080].

reverse()

La función reverse() toma una lista de elementos como argumento y devuelve una lista con los mismos elementos, pero enumerados en orden inverso.

El argumento puede ser una lista de los siguientes tipos integrados:

  • string
  • number
  • ipaddress
  • ipnetwork
  • tcp-port
  • boolean
  • password
  • object
  • file
  • certfile
  • keyfile
  • certkey

Ejemplos:

  • reverse([10.102.20.1, 10.102.20.2, 10.102.20.3]) devuelve [10.102.20.3, 10.102.20.2, 10.102.20.1].
  • reverse([80,81,82,81]) devuelve [81,82,81,80].
  • reverse([‘app-mx’,’app-cx’,’conf-27’,’app3’]) devuelve [‘app3’,’conf-27’,’app-cx’,’app-mx’].