Merge pull request #9841 from WuerthPhoenix/fix-9840-lock-console-api-during-reload

This commit is contained in:
Alexander Aleksandrovič Klimov 2023-11-21 10:36:26 +01:00 committed by GitHub
commit 7fc7d054af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 0 deletions

View File

@ -1,5 +1,6 @@
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */ /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
#include "remote/configobjectslock.hpp"
#include "remote/consolehandler.hpp" #include "remote/consolehandler.hpp"
#include "remote/httputility.hpp" #include "remote/httputility.hpp"
#include "remote/filterutility.hpp" #include "remote/filterutility.hpp"
@ -88,6 +89,13 @@ bool ConsoleHandler::HandleRequest(
bool sandboxed = HttpUtility::GetLastParameter(params, "sandboxed"); bool sandboxed = HttpUtility::GetLastParameter(params, "sandboxed");
ConfigObjectsSharedLock lock (std::try_to_lock);
if (!lock) {
HttpUtility::SendJsonError(response, params, 503, "Icinga is reloading.");
return true;
}
if (methodName == "execute-script") if (methodName == "execute-script")
return ExecuteScriptHelper(request, response, params, command, session, sandboxed); return ExecuteScriptHelper(request, response, params, command, session, sandboxed);
else if (methodName == "auto-complete-script") else if (methodName == "auto-complete-script")