From e980485e237a516afee82ff7a3631c9d8630875d Mon Sep 17 00:00:00 2001 From: "Alexander A. Klimov" Date: Wed, 6 Jun 2018 12:31:41 +0200 Subject: [PATCH] RedisWriter: Explicitly checksum Zone#endpoints --- lib/redis/rediswriter-objects.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/redis/rediswriter-objects.cpp b/lib/redis/rediswriter-objects.cpp index 6c3642277..497c969a1 100644 --- a/lib/redis/rediswriter-objects.cpp +++ b/lib/redis/rediswriter-objects.cpp @@ -172,6 +172,23 @@ void RedisWriter::SendConfigUpdate(const ConfigObject::Ptr& object, bool useTran checkSums->Set("groups_checksum", CalculateCheckSumGroups(service->GetGroups())); else checkSums->Set("groups_checksum", CalculateCheckSumGroups(host->GetGroups())); + } else { + Zone::Ptr zone = dynamic_pointer_cast(object); + + if (zone) { + propertiesBlacklist.emplace("endpoints"); + + auto endpointObjects = zone->GetEndpoints(); + Array::Ptr endpoints = new Array(); + endpoints->Resize(endpointObjects.size()); + + Array::SizeType i = 0; + for (auto& endpointObject : endpointObjects) { + endpoints->Set(i++, endpointObject->GetName()); + } + + checkSums->Set("endpoints_checksum", CalculateCheckSumGroups(endpoints)); + } } //TODO: Move this somewhere else.