]> granicus.if.org Git - icinga2/commitdiff
Update documentation.
authorGunnar Beutner <gunnar.beutner@netways.de>
Wed, 19 Mar 2014 19:00:05 +0000 (20:00 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Wed, 19 Mar 2014 19:00:18 +0000 (20:00 +0100)
Refs #5789

doc/1-about.md
doc/4.1-configuration-syntax.md

index cf04f6156bd9232f89a28b4faa868de1437c3d7a..067ba11e1457c151303c68b0b9ad8af7f4d9969a 100644 (file)
@@ -39,7 +39,7 @@ the support overview page at [https://support.icinga.org].
 
 #### Changes
 * {host,service}_dependencies attributes have been changed to [Dependency](#objecttype-dependency)
-objects supporting new attributes: `disable_checks`, 'disable_notifications`, `state_filter`,
+objects supporting new attributes: `disable_checks`, `disable_notifications`, `state_filter`,
 `period`. For better readability, there is `parent_service` and `child_service` for example.
 
 > **Note**
index cd0b3313662d73c5d012cc17f6d11fc92353f697..56823b111aa3e38e71db7fa1806341d1d5fdb0dc 100644 (file)
@@ -27,6 +27,11 @@ Each object is uniquely identified by its type (`Host`) and name
 property declarations. The following data types are available for
 property values:
 
+### Expressions
+
+The following expressions can be used in the right-hand side of dictionary
+values.
+
 #### <a id="numeric-literals"></a> Numeric Literals
 
 A floating-point number.
@@ -140,10 +145,61 @@ Example:
 > An array may simultaneously contain values of different types, such as
 > strings and numbers.
 
-### <a id="operators"></a> Operators
+#### <a id="constant-expressions"></a> Operators
+
+The following operators are supported in expressions:
+
+Operator | Examples (Result)                             | Description
+---------|-----------------------------------------------|--------------------------------
+!, ~     | ~true (false)                                 | Bitwise negation of the operand
++        | 1 + 3 (4), "hello " + "world" ("hello world") | Adds two numbers; concatenates strings
+-        | 3 - 1 (2)                                     | Subtracts two numbers
+*        | 5m * 10 (3000)                                | Multiplies two numbers
+/        | 5m / 5 (60)                                   | Divides two numbers
+&        | 7 & 3 (3)                                     | Binary AND
+\|       | 2 \| 3 (3)                                    | Binary OR
+<        | 3 < 5 (true)                                  | Less than
+>        | 3 > 5 (false)                                 | Greater than
+<=       | 3 <= 3 (true)                                 | Less than or equal
+>=       | 3 >= 3 (true)                                 | Greater than or equal
+<<       | 4 << 8 (1024)                                 | Left shift
+>>       | 1024 >> 4 (64)                                | Right shift
+==       | "hello" == "hello" (true), 3 == 5 (false)     | Equal to
+!=       | "hello" != "world" (true), 3 != 3 (false)     | Not equal to
+in       | "foo" in [ "foo", "bar" ] (true)              | Element contained in array
+!in      | "foo" !in [ "bar", "baz" ] (true)             | Element not contained in array
+()       | (3 + 3) * 5                                   | Groups sub-expressions
+
+Constants may be used in constant expressions:
+
+    const MyCheckInterval = 10m
+
+    ...
+
+    {
+      check_interval = MyCheckInterval / 2.5
+    }
+
+#### Function Calls
+
+Functions can be called using the `()` operator:
+
+    const MyGroups = [ "test1", "test" ]
+
+    {
+      check_interval = len(MyGroups) * 1m
+    }
+
+Function             | Description
+---------------------|-----------------------
+regex(pattern, text) | Returns true if the regex pattern matches the text, false otherwise.
+match(pattern, text) | Returns true if the wildcard pattern matches the text, false otherwise.
+len(value)           | Returns the length of the value, i.e. the number of elements for an array or dictionary, or the length of the string in bytes.
+
+### <a id="operators"></a> Dictionary Operators
 
 In addition to the `=` operator shown above a number of other operators
-to manipulate configuration objects are supported. Here's a list of all
+to manipulate dictionary elements are supported. Here's a list of all
 available operators:
 
 #### <a id="operator-assignment"></a> Operator =
@@ -312,36 +368,6 @@ Constants cannot be changed once they are set.
 > in order to provide compatibility with older versions. Their use is
 > deprecated.
 
-### <a id="constant-expressions"></a> Constant Expressions
-
-Simple calculations can be performed using the constant expression syntax:
-
-    {
-      check_interval = 30 + 60
-    }
-
-Valid operators include ~, !, +, -, *, /, >, >=, <, <=, ==,  !=, in and !in. The default precedence rules can be
-overridden by grouping expressions using parentheses:
-
-    {
-      check_interval = (30 + 60) / 2
-    }
-
-Global constants may be used in constant expressions.
-
-    var MyCheckInterval = 10m
-
-    ...
-
-    {
-      check_interval = MyCheckInterval / 2.5
-    }
-
-> **Note**
->
-> Constant expressions in attributes and variable definitions are evaluated as
-> soon as they're encountered in the configuration file.
-
 ### <a id="apply"></a> Apply
 
 The `apply` keyword can be used to associate a template with another group of