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)
devuelve10
. - La función
str(1.1.1.1)
devuelve1.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")
devuelve10
. - La función
int(10)
devuelve10
. - La función
int(ip('0.0.4.1'))
devuelve1025
.
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)
devuelvetrue
. - La función
bool(false)
devuelvefalse
. - La función
bool($parameters.a)
devuelvefalse
si$parameters.a
esfalse
, 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)
devuelve80
. - 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)
devuelve80
.
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)
devuelve1000
. - La función
max(-20, 100, 400)
devuelve400
. - La función
max(-80, -20, -10)
devuelve-10
. - La función
max(0, 100, -400)
devuelve100
.
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)
devuelve8080
.
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)
devuelve3.1.1.1
. -
Especifica una cadena de texto en la función
ip
:La función
ip('2.1.1.1')
devuelve2.1.1.1
-
Especifica un número entero en la función
ip
:-
La función
ip(12)
devuelve0.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')
devuelve0.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)
devuelve0.0.4.13
. -
Resta: La función
ip('1025') - ip(12)
devuelve0.0.3.245
. -
Combinar suma y resta: La función
ip('1.1.1.1') + ip('1.1.1.1') – ip(2)
devuelve2.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, '-')
devuelve81-82-83
. -
Sin argumento delimitador:
La función
join($parameters.ports)
devuelve818283
.
-
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')
devuelveabcxyz
.Todas las ocurrencias de
def
se reemplazan conxyz
. -
replace('abcdefabc', 'def')
devuelveabcabc
.Como no hay argumento 3,
def
se quita de la cadena de texto resultante. -
La función
replace('An#example@to%replace!characters', ['@', '#', '!', '%'], '_')
devuelveAn_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
y10.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 con80
.
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')
devuelveTrue
. - La función
startswith('Citrix', 'iC')
devuelveFalse
- La función
startswith('Citrix', 'Ab')
devuelveFalse
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')
devuelveTrue
. - La función
endswith('Citrix', 'Ix')
devuelveFalse
. - La función
endswith('Citrix', 'ab')
devuelveFalse
.
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')
devuelveTrue
. - La función
contains('Citrix', 'Ci')
devuelveTrue
. - La función
contains('Citrix', 'ti')
devuelveFalse
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ónend_index
.
Ejemplo:
-
La función
substring('Citrix', 2)
devuelvetrix
-
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)
devuelvetr
En este ejemplo, la función extrae los caracteres entre las posiciones de índice 2 y 4.
-
La función
substring('Citrix', -3)
devuelverix
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”)
devuelveTrue
. -
La función
match(“^[A-Z0-9]{2}_[A-Z0-9]{2,10}$”, “a2_b2”)
devuelveFalse
. -
La función
match(“^[A-Z0-9]{2}_[A-Z0-9]{2,10}$”, “a2_B2”, $parameters.ignore_case)
devuelveTrue
.
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 llamadalist_of_keys
que contienename
eip
. -
La sección
substitutions
tiene una lista llamadalist_of_values
que contiene las dos listas siguientes:- Una lista de nombres de servidores virtuales (
string
) - Una lista de direcciones IP (
string
).
- Una lista de nombres de servidores virtuales (
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’].
En este artículo
- str()
- int()
- bool()
- len()
- min()
- max()
- bin()
- oct()
- hex()
- lower()
- upper()
- sum()
- pow()
- ip()
- ip_network()
- network_ip()
- subnets()
- netmask_ip()
- is_netmask_ip()
- broadcast_ip()
- cidr()
- is_cidr()
- is_in_network()
- base64.encode()
- base64.decode()
- exists()
- filter()
- if-then-else()
- join()
- split()
- map()
- quotewrap()
- replace()
- trim()
- truncate()
- distinct()
- url.encode()
- url.decode()
- is-ipv4()
- is-ipv6()
- startswith()
- endswith()
- contains()
- substring()
- match()
- sha256()
- relate()
- multiple()
- reverse()