Expressions
$parameters.appname + "-mon"
appname, and concatenates it with the string -mon.
Arithmetic expressions
-
Addition (+)
-
Subtraction (-)
-
Multiplication (*)
-
Division (/)
-
Modulo (%)
-
Adding two numbers: $parameters.a + $parameters.b
-
Multiplying two numbers: $parameters.a * 10
-
Finding the remainder after division of one number by another:
15%10 Results in 5
String expressions
-
Concatenate two strings (+)
List expressions
Relational expressions
-
== : Tests if two operands are equal and returns true if they are equal, else returns false.
-
!= : Tests if two operands are different and returns true if they are different, else returns false.
-
\> : Returns true if the first operand is greater than the second operand, else returns false.
-
\>= : Returns true if the first operand is greater than or equal to the second operand, else returns false.
-
\< : Returns true if the first operand is lesser than the second operand, else returns false.
-
\<= : Returns true if the first operand is lesser than or equal to the second operand, else returns false.
-
Use of Equality operator:
$parameters.name = = "abcd" -
Use of Inequality operator:
$parameters.name != "default" -
Examples for other relational operators
-
10 > 9
-
10 >= 10
-
0 < 9
-
10 <= 9
-
10 == 10
-
10 != 1
-
Logical expressions - boolean
-
and: The logical 'and' operator. If both operands are true, the result is true, else it is false.
-
or: The logical 'or' operator. If one of the operands is true, the result is true, else it is false.
-
not: The unary operator. If the operand is true, the result is false, and the opposite way.
-
in: Tests whether the first argument is a substring of the second argument
-
in: Tests if an item is part of a list
tcp-port to a number, and an IP address can be cast to a string.
-
Before an operator:
space,tab,comma,(,),[,] -
After an operator:
space,tab,(,[
-
abc + def -
100 % 10 -
10 > 9
Verbatim string expressions
~{string}~
}~ in an input string because this sequence indicates the end of a verbatim string.
~{HTTP.REQ.COOKIE.VALUE("jsessionid") ALT HTTP.REQ.URL.BEFORE_STR("=").AFTER_STR(";jsessionid=") ALT HTTP.REQ.URL.AFTER_STR(";jsessionid=")}~
Target expressions
$current-target expression to refer to the current target NetScaler instance. To specifically refer to the IP address of the target NetScaler instance, use this expression as follows:
$current-target.ip
components:
-
name: lb-comp
type: ns::lbvserver
properties:
name: $current-target.ip + "-lbvserver"
lbvserver is constructed with the IP address of the target NetScaler instance.
Expression Type Validation
lbvserver StyleBook is tcp-port. In NetScaler Console, the type validations happen at compile-time (import-time). The compiler finds that string and tcp-port are not compatible types and therefore, the StyleBook compiler displays an error and fails to import or migrate a StyleBook.
components:
-
name: lbvserver-comp
type: ns::lbvserver
properties:
name: mylb
ipv46: 10.102.190.15
port: str("80")
servicetype: HTTP
port: 80
lb-sg-binding-comp component is: $components.lbvserver-comp.properties.lbvservername. However, there is no property called lbvservername in component lbvserver-comp. In earlier NetScaler Console releases, the compiler would have allowed this expression and successfully imported it. The actual failure would happen when a user wants to create a config pack using this StyleBook. However now, this kind of error is identified during import and the StyleBook is not imported to NetScaler Console. Manually correct such errors and import the StyleBooks.
Components:
-
name: lbvserver-comp
type: ns::lbvserver
properties:
name: mylb
ipv46: 10.102.190.15
port: 80
servicetype: HTTP
-
name: sg-comp
type: ns::servicegroup
properties:
servicegroupname: mysg
servicetype: HTTP
-
name: lb-sg-binding-comp
type: ns::lbvserver_servicegroup_binding
condition: $parameters.create-binding
properties:
name: $components.lbvserver-comp.properties.lbvservername
servicegroupname: $components.sg-comp.properties.servicegroupname
Indexing Lists
| Expression | Description |
$components.test-lbs[0] |
Refers to the first item in test-lbs component |
$components.test-lbs[0].properties.p1 |
Refers to property p1 of the first item in test-lbs component |
$components.lbcomps[0].outputs.servicegroups[1].properties.servicegroupname |
Refers to property servicegroupname of the second item in servicegroups component, which is an output from the first item of lbcomps component |