Hallo zusammen,
ich habe ein merkwürdiges Verhalten mit dem "+=" Operator, welches ich nachfolgend erläutern möchte.
Ich habe in der templates.conf folgendes Template definiert (gekürzt), welches standardmäßig von jedem Host eingebunden wird:
Nun möchte ich die Standardbenachrichtigung für einen Host, um eine neue Gruppe ("support") ergänzen.
Es sollen also die Gruppen "admins", "groupA", und "support" informiert werden.
Diese Schreibweise führt aber dazu, dass die Variable "groups" nicht mit der Gruppe "support" ergänzt wird, sondern nur noch die Gruppe "support" enthält. Das vorherige Array wird damit überschrieben. Ist dies ein Fehler?
Wenn ich nämlich die Schreibweise für Template und Host ändere (siehe unten) funktioniert der Operator wie gewünscht.
Es werden nun alle drei Gruppen benachrichtigt.
Vielen Dank für eure Hilfe!
ich habe ein merkwürdiges Verhalten mit dem "+=" Operator, welches ich nachfolgend erläutern möchte.
Ich habe in der templates.conf folgendes Template definiert (gekürzt), welches standardmäßig von jedem Host eingebunden wird:
![]() |
Quellcode |
1 2 3 4 5 6 7 8 |
template Host "generic-attributes" { vars.host.notification["mail"] = { groups = [ "admins", "groupA" ] users = [ "icingaadmin" ] } } |
Nun möchte ich die Standardbenachrichtigung für einen Host, um eine neue Gruppe ("support") ergänzen.
Es sollen also die Gruppen "admins", "groupA", und "support" informiert werden.
![]() |
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 |
object Host "abc.mydomain.de" { import "generic-attributes" address = "127.0.0.1" vars.host.notification["mail"] += { groups += [ "support" ] } } |
Diese Schreibweise führt aber dazu, dass die Variable "groups" nicht mit der Gruppe "support" ergänzt wird, sondern nur noch die Gruppe "support" enthält. Das vorherige Array wird damit überschrieben. Ist dies ein Fehler?
Wenn ich nämlich die Schreibweise für Template und Host ändere (siehe unten) funktioniert der Operator wie gewünscht.
![]() |
Quellcode |
1 2 3 4 5 6 |
// Generic Host Attributes template Host "generic-attributes" { vars.host.notification.mail.groups = [ "admins", "groupA" ] vars.host.notification.mail.users = [ "icingaadmin" ] } |
![]() |
Quellcode |
1 2 3 4 5 6 7 8 |
object Host "abc.mydomain.de" { import "generic-attributes" address = "127.0.0.1" vars.host.notification.mail.groups += [ "support" ] } |
Es werden nun alle drei Gruppen benachrichtigt.
Vielen Dank für eure Hilfe!