mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-23 21:55:03 +02:00
parent
d264a0dab8
commit
0145a32e58
@ -107,7 +107,11 @@ Value ApiListener::ConfigUpdateObjectAPIHandler(const MessageOrigin::Ptr& origin
|
|||||||
|
|
||||||
String config = params->Get("config");
|
String config = params->Get("config");
|
||||||
|
|
||||||
|
bool newObject = false;
|
||||||
|
|
||||||
if (!object && !config.IsEmpty()) {
|
if (!object && !config.IsEmpty()) {
|
||||||
|
newObject = true;
|
||||||
|
|
||||||
/* object does not exist, create it through the API */
|
/* object does not exist, create it through the API */
|
||||||
Array::Ptr errors = new Array();
|
Array::Ptr errors = new Array();
|
||||||
|
|
||||||
@ -136,8 +140,8 @@ Value ApiListener::ConfigUpdateObjectAPIHandler(const MessageOrigin::Ptr& origin
|
|||||||
if (!object)
|
if (!object)
|
||||||
return Empty;
|
return Empty;
|
||||||
|
|
||||||
/* update object attributes if version was changed */
|
/* update object attributes if version was changed or if this is a new object */
|
||||||
if (objVersion <= object->GetVersion()) {
|
if (newObject || objVersion <= object->GetVersion()) {
|
||||||
Log(LogNotice, "ApiListener")
|
Log(LogNotice, "ApiListener")
|
||||||
<< "Discarding config update for object '" << object->GetName()
|
<< "Discarding config update for object '" << object->GetName()
|
||||||
<< "': Object version " << std::fixed << object->GetVersion()
|
<< "': Object version " << std::fixed << object->GetVersion()
|
||||||
@ -337,8 +341,14 @@ void ApiListener::UpdateConfigObject(const ConfigObject::Ptr& object, const Mess
|
|||||||
|
|
||||||
if (client)
|
if (client)
|
||||||
JsonRpc::SendMessage(client->GetStream(), message);
|
JsonRpc::SendMessage(client->GetStream(), message);
|
||||||
else
|
else {
|
||||||
|
Zone::Ptr target = static_pointer_cast<Zone>(object->GetZone());
|
||||||
|
|
||||||
|
if (!target)
|
||||||
|
target = Zone::GetLocalZone();
|
||||||
|
|
||||||
RelayMessage(origin, object, message, false);
|
RelayMessage(origin, object, message, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -379,8 +389,14 @@ void ApiListener::DeleteConfigObject(const ConfigObject::Ptr& object, const Mess
|
|||||||
|
|
||||||
if (client)
|
if (client)
|
||||||
JsonRpc::SendMessage(client->GetStream(), message);
|
JsonRpc::SendMessage(client->GetStream(), message);
|
||||||
else
|
else {
|
||||||
RelayMessage(origin, object, message, false);
|
Zone::Ptr target = static_pointer_cast<Zone>(object->GetZone());
|
||||||
|
|
||||||
|
if (!target)
|
||||||
|
target = Zone::GetLocalZone();
|
||||||
|
|
||||||
|
RelayMessage(origin, target, message, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initial sync on connect for new endpoints */
|
/* Initial sync on connect for new endpoints */
|
||||||
|
@ -164,6 +164,12 @@ void ApiListener::Start(bool runtimeCreated)
|
|||||||
OnMasterChanged(true);
|
OnMasterChanged(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ApiListener::Stop(bool runtimeDeleted)
|
||||||
|
{
|
||||||
|
boost::mutex::scoped_lock lock(m_LogLock);
|
||||||
|
CloseLogFile();
|
||||||
|
}
|
||||||
|
|
||||||
ApiListener::Ptr ApiListener::GetInstance(void)
|
ApiListener::Ptr ApiListener::GetInstance(void)
|
||||||
{
|
{
|
||||||
return m_Instance;
|
return m_Instance;
|
||||||
|
@ -104,6 +104,7 @@ protected:
|
|||||||
virtual void OnConfigLoaded(void) override;
|
virtual void OnConfigLoaded(void) override;
|
||||||
virtual void OnAllConfigLoaded(void) override;
|
virtual void OnAllConfigLoaded(void) override;
|
||||||
virtual void Start(bool runtimeCreated) override;
|
virtual void Start(bool runtimeCreated) override;
|
||||||
|
virtual void Stop(bool runtimeDeleted) override;
|
||||||
|
|
||||||
virtual void ValidateTlsProtocolmin(const String& value, const ValidationUtils& utils) override;
|
virtual void ValidateTlsProtocolmin(const String& value, const ValidationUtils& utils) override;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user