mirror of https://github.com/Icinga/icinga2.git
Fix that HA enabled objects are started before config validation has finished
fixes #12460
This commit is contained in:
parent
5c0b3c58bd
commit
87bc291a55
|
@ -156,6 +156,11 @@ void ApiListener::Start(bool runtimeCreated)
|
|||
m_ReconnectTimer->Start();
|
||||
m_ReconnectTimer->Reschedule(0);
|
||||
|
||||
m_AuthorityTimer = new Timer();
|
||||
m_AuthorityTimer->OnTimerExpired.connect(boost::bind(&ApiListener::UpdateObjectAuthority));
|
||||
m_AuthorityTimer->SetInterval(30);
|
||||
m_AuthorityTimer->Start();
|
||||
|
||||
OnMasterChanged(true);
|
||||
}
|
||||
|
||||
|
|
|
@ -116,6 +116,7 @@ private:
|
|||
std::set<HttpServerConnection::Ptr> m_HttpClients;
|
||||
Timer::Ptr m_Timer;
|
||||
Timer::Ptr m_ReconnectTimer;
|
||||
Timer::Ptr m_AuthorityTimer;
|
||||
Endpoint::Ptr m_LocalEndpoint;
|
||||
|
||||
static ApiListener::Ptr m_Instance;
|
||||
|
|
|
@ -21,14 +21,10 @@
|
|||
#include "remote/apilistener.hpp"
|
||||
#include "base/configtype.hpp"
|
||||
#include "base/utility.hpp"
|
||||
#include "base/initialize.hpp"
|
||||
#include "base/timer.hpp"
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
using namespace icinga;
|
||||
|
||||
static Timer::Ptr l_AuthorityTimer;
|
||||
|
||||
static bool ObjectNameLessComparer(const ConfigObject::Ptr& a, const ConfigObject::Ptr& b)
|
||||
{
|
||||
return a->GetName() < b->GetName();
|
||||
|
@ -70,7 +66,7 @@ void ApiListener::UpdateObjectAuthority(void)
|
|||
continue;
|
||||
|
||||
BOOST_FOREACH(const ConfigObject::Ptr& object, dtype->GetObjects()) {
|
||||
if (object->GetHAMode() != HARunOnce)
|
||||
if (!object->IsActive() || object->GetHAMode() != HARunOnce)
|
||||
continue;
|
||||
|
||||
bool authority;
|
||||
|
@ -84,13 +80,3 @@ void ApiListener::UpdateObjectAuthority(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void StaticInitialize(void)
|
||||
{
|
||||
l_AuthorityTimer = new Timer();
|
||||
l_AuthorityTimer->OnTimerExpired.connect(boost::bind(&ApiListener::UpdateObjectAuthority));
|
||||
l_AuthorityTimer->SetInterval(30);
|
||||
l_AuthorityTimer->Start();
|
||||
}
|
||||
|
||||
INITIALIZE_ONCE(StaticInitialize);
|
||||
|
|
Loading…
Reference in New Issue