mirror of
https://github.com/Icinga/icinga2.git
synced 2025-04-08 17:05:25 +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")
|
||||
<< "Executing external command: " << command;
|
||||
|
||||
ExternalCommandProcessor::Execute(command);
|
||||
ExternalCommandProcessor::Execute(this, command);
|
||||
} catch (const std::exception& ex) {
|
||||
Log(LogWarning, "ExternalCommandListener")
|
||||
<< "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;
|
||||
|
||||
void ExternalCommandProcessor::Execute(const String& line)
|
||||
void ExternalCommandProcessor::Execute(const CheckResultProducer::Ptr& producer, const String& line)
|
||||
{
|
||||
if (line.IsEmpty())
|
||||
return;
|
||||
@ -54,10 +54,10 @@ void ExternalCommandProcessor::Execute(const String& line)
|
||||
BOOST_THROW_EXCEPTION(std::invalid_argument("Missing arguments in command: " + line));
|
||||
|
||||
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;
|
||||
|
||||
@ -102,7 +102,7 @@ void ExternalCommandProcessor::Execute(double time, const String& command, const
|
||||
|
||||
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)
|
||||
|
@ -25,8 +25,8 @@ struct ExternalCommandInfo
|
||||
|
||||
class ExternalCommandProcessor {
|
||||
public:
|
||||
static void Execute(const String& line);
|
||||
static void Execute(double time, const String& command, const std::vector<String>& arguments);
|
||||
static void Execute(const CheckResultProducer::Ptr& producer, const String& line);
|
||||
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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user