icinga2/lib/remote/consolehandler.hpp
Johannes Schmidt 749a4b0c89 Remove extra parameters from HTTP handler signature
These parameters are no longer needed since they were only used
by EventsHandler which was refactored in the other commit.
2025-07-14 10:36:59 +02:00

45 lines
997 B
C++

/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
#ifndef CONSOLEHANDLER_H
#define CONSOLEHANDLER_H
#include "remote/httphandler.hpp"
#include "base/scriptframe.hpp"
namespace icinga
{
struct ApiScriptFrame
{
double Seen{0};
int NextLine{1};
std::map<String, String> Lines;
Dictionary::Ptr Locals;
};
class ConsoleHandler final : public HttpHandler
{
public:
DECLARE_PTR_TYPEDEFS(ConsoleHandler);
bool HandleRequest(
const WaitGroup::Ptr& waitGroup,
HttpRequest& request,
HttpResponse& response,
boost::asio::yield_context& yc
) override;
static std::vector<String> GetAutocompletionSuggestions(const String& word, ScriptFrame& frame);
private:
static bool ExecuteScriptHelper(HttpRequest& request, HttpResponse& response,
const String& command, const String& session, bool sandboxed);
static bool AutocompleteScriptHelper(HttpRequest& request, HttpResponse& response,
const String& command, const String& session, bool sandboxed);
};
}
#endif /* CONSOLEHANDLER_H */