Merge pull request #7120 from Icinga/bugfix/cluster-ignore-non-configured-zones

Ignore synced config zones where no config item exists
This commit is contained in:
Michael Friedrich 2019-04-16 11:08:15 +02:00 committed by GitHub
commit ab9b4b7786
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 0 deletions

View File

@ -31,6 +31,15 @@ static void IncludeZoneDirRecursive(const String& path, const String& package, b
{
String zoneName = Utility::BaseName(path);
/* We don't have an activated zone object yet. We may forcefully guess from configitems
* to not include this specific synced zones directory.
*/
if(!ConfigItem::GetByTypeAndName(Type::GetByName("Zone"), zoneName)) {
Log(LogWarning, "config")
<< "Ignoring directory '" << path << "' for unknown zone '" << zoneName << "'.";
return;
}
/* register this zone path for cluster config sync */
ConfigCompiler::RegisterZoneDir("_etc", path, zoneName);
@ -48,6 +57,15 @@ static void IncludeNonLocalZone(const String& zonePath, const String& package, b
String zoneName = Utility::BaseName(zonePath);
/* We don't have an activated zone object yet. We may forcefully guess from configitems
* to not include this specific synced zones directory.
*/
if(!ConfigItem::GetByTypeAndName(Type::GetByName("Zone"), zoneName)) {
Log(LogWarning, "config")
<< "Ignoring directory '" << zonePath << "' for unknown zone '" << zoneName << "'.";
return;
}
/* Check whether this node already has an authoritative config version
* from zones.d in etc or api package directory, or a local marker file)
*/