diff --git a/doc/82-Changelog.md b/doc/82-Changelog.md index 8884dbc9..9cf35591 100644 --- a/doc/82-Changelog.md +++ b/doc/82-Changelog.md @@ -16,6 +16,7 @@ v1.10.0 (unreleased) ### Import and Sync * FEATURE: clone a row for nested Dictionary/Hash entries (#2555) +* FEATURE: Sync in "override" mode now preserves Self Service API keys (#2590) ### Configuration Baskets * BREAKING: configuration baskets no longer contain originalId (#2549) diff --git a/library/Director/Import/Sync.php b/library/Director/Import/Sync.php index 23d267d8..5704d756 100644 --- a/library/Director/Import/Sync.php +++ b/library/Director/Import/Sync.php @@ -704,7 +704,13 @@ class Sync switch ($policy) { case 'override': - $this->objects[$key]->replaceWith($object); + if ($object instanceof IcingaHost + && !in_array('api_key', $this->rule->getSyncProperties()) + ) { + $this->objects[$key]->replaceWith($object, ['api_key']); + } else { + $this->objects[$key]->replaceWith($object); + } break; case 'merge':