From: Gunnar Beutner Date: Mon, 8 Feb 2016 12:15:24 +0000 (+0100) Subject: Make sure the "syncing" attribute is set to false X-Git-Tag: v2.5.0~547 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e224e749949916e7117c3a40ba5bdacdb60ea929;p=icinga2 Make sure the "syncing" attribute is set to false refs #11083 --- diff --git a/lib/icinga/checkable-check.cpp b/lib/icinga/checkable-check.cpp index b0d9faf6b..65747a02f 100644 --- a/lib/icinga/checkable-check.cpp +++ b/lib/icinga/checkable-check.cpp @@ -364,12 +364,6 @@ void Checkable::ProcessCheckResult(const CheckResult::Ptr& cr, const MessageOrig OnNotificationsRequested(this, recovery ? NotificationRecovery : NotificationProblem, cr, "", ""); } -bool Checkable::IsCheckPending(void) const -{ - ObjectLock olock(this); - return m_CheckRunning; -} - void Checkable::ExecuteRemoteCheck(const Dictionary::Ptr& resolvedMacros) { CONTEXT("Executing remote check for object '" + GetName() + "'"); diff --git a/lib/icinga/checkable.hpp b/lib/icinga/checkable.hpp index 9ce25dbd1..cef114733 100644 --- a/lib/icinga/checkable.hpp +++ b/lib/icinga/checkable.hpp @@ -104,8 +104,6 @@ public: Endpoint::Ptr GetCommandEndpoint(void) const; - bool IsCheckPending(void) const; - static double CalculateExecutionTime(const CheckResult::Ptr& cr); static double CalculateLatency(const CheckResult::Ptr& cr); diff --git a/lib/remote/apilistener.cpp b/lib/remote/apilistener.cpp index 37d373034..8c8b894a2 100644 --- a/lib/remote/apilistener.cpp +++ b/lib/remote/apilistener.cpp @@ -412,8 +412,11 @@ void ApiListener::SyncClient(const JsonRpcConnection::Ptr& aclient, const Endpoi Log(LogInformation, "ApiListener") << "Finished sending config updates for endpoint '" << endpoint->GetName() << "'."; - if (!needSync) + if (!needSync) { + ObjectLock olock2(endpoint); + endpoint->SetSyncing(false); return; + } Log(LogInformation, "ApiListener") << "Sending replay log for endpoint '" << endpoint->GetName() << "'."; @@ -422,8 +425,10 @@ void ApiListener::SyncClient(const JsonRpcConnection::Ptr& aclient, const Endpoi Log(LogInformation, "ApiListener") << "Finished sending replay log for endpoint '" << endpoint->GetName() << "'."; - } catch (const std::exception& ex) { + ObjectLock olock2(endpoint); + endpoint->SetSyncing(false); + Log(LogCritical, "ApiListener") << "Error while syncing endpoint '" << endpoint->GetName() << "': " << DiagnosticInformation(ex); } @@ -818,8 +823,11 @@ void ApiListener::ReplayLog(const JsonRpcConnection::Ptr& client) Zone::Ptr target_zone = target_endpoint->GetZone(); - if (!target_zone) + if (!target_zone) { + ObjectLock olock2(endpoint); + endpoint->SetSyncing(false); return; + } for (;;) { boost::mutex::scoped_lock lock(m_LogLock);