mirror of https://github.com/Icinga/icinga2.git
Implemented the external commands SCHEDULE_SVC_CHECK and SCHEDULE_FORCED_SVC_CHECK.
This commit is contained in:
parent
7e31cb639f
commit
9ed49bd6e1
|
@ -29,6 +29,8 @@ int ExternalCommand::Execute(double time, const String& command, const vector<St
|
||||||
if (!m_Initialized) {
|
if (!m_Initialized) {
|
||||||
RegisterCommand("HELLO_WORLD", &ExternalCommand::HelloWorld);
|
RegisterCommand("HELLO_WORLD", &ExternalCommand::HelloWorld);
|
||||||
RegisterCommand("PROCESS_SERVICE_CHECK_RESULT", &ExternalCommand::ProcessServiceCheckResult);
|
RegisterCommand("PROCESS_SERVICE_CHECK_RESULT", &ExternalCommand::ProcessServiceCheckResult);
|
||||||
|
RegisterCommand("SCHEDULE_SVC_CHECK", &ExternalCommand::ScheduleSvcCheck);
|
||||||
|
RegisterCommand("SCHEDULE_FORCED_SVC_CHECK", &ExternalCommand::ScheduleForcedSvcCheck);
|
||||||
|
|
||||||
m_Initialized = true;
|
m_Initialized = true;
|
||||||
}
|
}
|
||||||
|
@ -78,3 +80,39 @@ int ExternalCommand::ProcessServiceCheckResult(double time, const vector<String>
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ExternalCommand::ScheduleSvcCheck(double time, const vector<String>& arguments)
|
||||||
|
{
|
||||||
|
if (arguments.size() < 3)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (!Service::Exists(arguments[1]))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
Service::Ptr service = Service::GetByName(arguments[1]);
|
||||||
|
|
||||||
|
double planned_check = arguments[2].ToDouble();
|
||||||
|
|
||||||
|
if (planned_check > service->GetNextCheck())
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
service->SetNextCheck(planned_check);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ExternalCommand::ScheduleForcedSvcCheck(double time, const vector<String>& arguments)
|
||||||
|
{
|
||||||
|
if (arguments.size() < 3)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (!Service::Exists(arguments[1]))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
Service::Ptr service = Service::GetByName(arguments[1]);
|
||||||
|
|
||||||
|
// TODO: force checks (once we have time periods)
|
||||||
|
|
||||||
|
service->SetNextCheck(arguments[2].ToDouble());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,8 @@ public:
|
||||||
|
|
||||||
static int HelloWorld(double time, const vector<String>& arguments);
|
static int HelloWorld(double time, const vector<String>& arguments);
|
||||||
static int ProcessServiceCheckResult(double time, const vector<String>& arguments);
|
static int ProcessServiceCheckResult(double time, const vector<String>& arguments);
|
||||||
|
static int ScheduleSvcCheck(double time, const vector<String>& arguments);
|
||||||
|
static int ScheduleForcedSvcCheck(double time, const vector<String>& arguments);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
typedef function<int (double time, const vector<String>& arguments)> Callback;
|
typedef function<int (double time, const vector<String>& arguments)> Callback;
|
||||||
|
|
Loading…
Reference in New Issue