You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Created by mfriedrich on 2015-07-26 15:48:57 +00:00
Assignee: mfriedrich
Status: Resolved (closed on 2015-07-26 16:00:05 +00:00)
Target Version: 2.4.0
Last Update: 2015-07-26 16:00:05 +00:00 (in Redmine)
Icinga Version: v2.3.0-384-gfa3d380
Backport?: No
Include in Changelog: 0
History
We've recently implemented include_zones, which adds a ZoneFragment registry for all zones and their registered paths. This gets taken into account by the config update sync in apilistener-sync.cpp - introduced with ccd63b9.
We've then reverted the manual inclusion of "include_zones "_etc", "zones.d" being too annoying on upgrades and re-implemented the internal include of zones.d by reverting the change in cli/daemonutility.cpp only
Problem
The problem is now that "etc", "zones.d" is never registered for the cluster config sync, it only gets read on startup but is never copied to /var/lib/icinga2/api/zones//_etc
Steps to reproduce
Add zone "master" and put the local endpoint into it:
object Endpoint "nbmif.int.netways.de" {
}
object Zone "master" {
//this is the local node master named = "master"
endpoints = [ "nbmif.int.netways.de" ]
}
Put a file called tests.conf into the master config.
Allow to call ConfigCompiler::RegisterZone() and statically register the zone before calling GlobRecursive with CollectIncludes inside DaemonUtility's HandleZonesDirRecursive - similar to how ConfigCompiler::HandleIncludeZone() works.
Fix broken cluster config sync w/ latest api changes
Apart from dropping the requirement of adding 'include_zones "etc", "zones.d"'
on upgrade to 2.4, we've forgotten to register the local zone directory into
the new ZoneFragment tree.
This fix adds a new function to register the local zones.d directory.
After that the config sync works again.
fixes #9735
This issue has been migrated from Redmine: https://dev.icinga.com/issues/9735
Created by mfriedrich on 2015-07-26 15:48:57 +00:00
Assignee: mfriedrich
Status: Resolved (closed on 2015-07-26 16:00:05 +00:00)
Target Version: 2.4.0
Last Update: 2015-07-26 16:00:05 +00:00 (in Redmine)
History
We've recently implemented include_zones, which adds a ZoneFragment registry for all zones and their registered paths. This gets taken into account by the config update sync in apilistener-sync.cpp - introduced with ccd63b9.
We've then reverted the manual inclusion of "include_zones "_etc", "zones.d" being too annoying on upgrades and re-implemented the internal include of zones.d by reverting the change in cli/daemonutility.cpp only
Problem
The problem is now that "etc", "zones.d" is never registered for the cluster config sync, it only gets read on startup but is never copied to /var/lib/icinga2/api/zones//_etc
Steps to reproduce
Add zone "master" and put the local endpoint into it:
Put a file called tests.conf into the master config.
Restart icinga2.
Expected result
test.conf gets copied into /var/lib/icinga2/api/zones/master/_etc/test.conf - instead the zone directory is empty.
Proposed Solution
Allow to call ConfigCompiler::RegisterZone() and statically register the zone before calling GlobRecursive with CollectIncludes inside DaemonUtility's HandleZonesDirRecursive - similar to how ConfigCompiler::HandleIncludeZone() works.
Solution tests
Changesets
2015-07-26 15:57:34 +00:00 by (unknown) 0a1dad0
Parent Task: #9083
The text was updated successfully, but these errors were encountered: