Add apply for to the language reference documentation

fixes #10409
This commit is contained in:
Michael Friedrich 2015-10-22 17:01:59 +02:00
parent b2fb4546df
commit bd5d3440c1
2 changed files with 38 additions and 2 deletions

View File

@ -411,6 +411,42 @@ Any valid config attribute can be accessed using the `host` and `service`
variables. For example, `host.address` would return the value of the host's
"address" attribute - or null if that attribute isn't set.
More usage examples are documented in the [monitoring basics](3-monitoring-basics.md#using-apply-expressions)
chapter.
## <a id="apply-for"></a> Apply For
[Apply](20-language-reference.md#apply) rules can be extended with the
[for loop](20-language-reference.md#for-loops) keyword.
apply Service "prefix-" for (key => value in host.vars.dictionary) to Host {
import "generic-service"
check_command = "ping4"
vars.host_value = value
}
Any valid config attribute can be accessed using the `host` and `service`
variables. The attribute must be of the Array or Dictionary type. In this example
`host.vars.dictionary` is of the Dictionary type which needs a key-value-pair
as iterator.
In this example all generated service object names consist of `prefix-` and
the value of the `key` iterator. The prefix string can be omitted if not required.
The `key` and `value` variables can be used for object attribute assignment, e.g. for
setting the `check_command` attribute or custom attributes as command parameters.
`apply for` rules are first evaluated against all objects matching the `for loop` list
and afterwards the `assign where` and `ignore where` conditions are evaluated.
It is not necessary to check attributes referenced in the `for loop` expression
for their existance using an additional `assign where` condition.
More usage examples are documented in the [monitoring basics](3-monitoring-basics.md#using-apply-for)
chapter.
## <a id="group-assign"></a> Group Assign
Group objects can be assigned to specific member objects using the `assign where`

View File

@ -615,8 +615,8 @@ Detailed examples can be found in the [recurring downtimes](5-advanced-topics.md
### <a id="using-apply-for"></a> Using Apply For Rules
Next to the standard way of using [apply rules](3-monitoring-basics.md#using-apply)
there is the requirement of generating apply rules objects based on set (array or
dictionary).
there is the requirement of applying objects based on a set (array or
dictionary) using [apply for](20-language-reference.md#apply-for) expressions.
The sample configuration already includes a detailed example in [hosts.conf](4-configuring-icinga-2.md#hosts-conf)
and [services.conf](4-configuring-icinga-2.md#services-conf) for this use case.