mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-31 01:24:19 +02:00
ExternalCommandProcessor::Execute(): take CheckResultProducer::Ptr
This commit is contained in:
parent
8dfa24fcec
commit
4ea07bd880
@ -139,7 +139,7 @@ void ExternalCommandListener::CommandPipeThread(const String& commandPath)
|
|||||||
Log(LogInformation, "ExternalCommandListener")
|
Log(LogInformation, "ExternalCommandListener")
|
||||||
<< "Executing external command: " << command;
|
<< "Executing external command: " << command;
|
||||||
|
|
||||||
ExternalCommandProcessor::Execute(command);
|
ExternalCommandProcessor::Execute(this, command);
|
||||||
} catch (const std::exception& ex) {
|
} catch (const std::exception& ex) {
|
||||||
Log(LogWarning, "ExternalCommandListener")
|
Log(LogWarning, "ExternalCommandListener")
|
||||||
<< "External command failed: " << DiagnosticInformation(ex, false);
|
<< "External command failed: " << DiagnosticInformation(ex, false);
|
||||||
|
@ -27,7 +27,7 @@ using namespace icinga;
|
|||||||
|
|
||||||
boost::signals2::signal<void(double, const String&, const std::vector<String>&)> ExternalCommandProcessor::OnNewExternalCommand;
|
boost::signals2::signal<void(double, const String&, const std::vector<String>&)> ExternalCommandProcessor::OnNewExternalCommand;
|
||||||
|
|
||||||
void ExternalCommandProcessor::Execute(const String& line)
|
void ExternalCommandProcessor::Execute(const CheckResultProducer::Ptr& producer, const String& line)
|
||||||
{
|
{
|
||||||
if (line.IsEmpty())
|
if (line.IsEmpty())
|
||||||
return;
|
return;
|
||||||
@ -54,10 +54,10 @@ void ExternalCommandProcessor::Execute(const String& line)
|
|||||||
BOOST_THROW_EXCEPTION(std::invalid_argument("Missing arguments in command: " + line));
|
BOOST_THROW_EXCEPTION(std::invalid_argument("Missing arguments in command: " + line));
|
||||||
|
|
||||||
std::vector<String> argvExtra(argv.begin() + 1, argv.end());
|
std::vector<String> argvExtra(argv.begin() + 1, argv.end());
|
||||||
Execute(ts, argv[0], argvExtra);
|
Execute(producer, ts, argv[0], argvExtra);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExternalCommandProcessor::Execute(double time, const String& command, const std::vector<String>& arguments)
|
void ExternalCommandProcessor::Execute(const CheckResultProducer::Ptr& producer, double time, const String& command, const std::vector<String>& arguments)
|
||||||
{
|
{
|
||||||
ExternalCommandInfo eci;
|
ExternalCommandInfo eci;
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ void ExternalCommandProcessor::Execute(double time, const String& command, const
|
|||||||
|
|
||||||
OnNewExternalCommand(time, command, realArguments);
|
OnNewExternalCommand(time, command, realArguments);
|
||||||
|
|
||||||
eci.Callback(time, realArguments);
|
eci.Callback(producer, time, realArguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExternalCommandProcessor::RegisterCommand(const String& command, const ExternalCommandCallback& callback, size_t minArgs, size_t maxArgs)
|
void ExternalCommandProcessor::RegisterCommand(const String& command, const ExternalCommandCallback& callback, size_t minArgs, size_t maxArgs)
|
||||||
|
@ -25,8 +25,8 @@ struct ExternalCommandInfo
|
|||||||
|
|
||||||
class ExternalCommandProcessor {
|
class ExternalCommandProcessor {
|
||||||
public:
|
public:
|
||||||
static void Execute(const String& line);
|
static void Execute(const CheckResultProducer::Ptr& producer, const String& line);
|
||||||
static void Execute(double time, const String& command, const std::vector<String>& arguments);
|
static void Execute(const CheckResultProducer::Ptr& producer, double time, const String& command, const std::vector<String>& arguments);
|
||||||
|
|
||||||
static boost::signals2::signal<void(double, const String&, const std::vector<String>&)> OnNewExternalCommand;
|
static boost::signals2::signal<void(double, const String&, const std::vector<String>&)> OnNewExternalCommand;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user