mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-21 12:44:58 +02:00
Implemented the external commands "ENABLE_SERVICEGROUP_SVC_CHECKS", "DISABLE_SERVICEGROUP_SVC_CHECKS" and parts of "ENABLE_HOSTGROUP_SVC_CHECKS", "DISABLE_HOSTGROUP_SVC_CHECKS".
This commit is contained in:
parent
ad5256588d
commit
ab66fbfc88
@ -41,7 +41,10 @@ void ExternalCommand::Execute(double time, const String& command, const vector<S
|
|||||||
RegisterCommand("ACKNOWLEDGE_SVC_PROBLEM", &ExternalCommand::AcknowledgeSvcProblem);
|
RegisterCommand("ACKNOWLEDGE_SVC_PROBLEM", &ExternalCommand::AcknowledgeSvcProblem);
|
||||||
RegisterCommand("ACKNOWLEDGE_SVC_PROBLEM_EXPIRE", &ExternalCommand::AcknowledgeSvcProblemExpire);
|
RegisterCommand("ACKNOWLEDGE_SVC_PROBLEM_EXPIRE", &ExternalCommand::AcknowledgeSvcProblemExpire);
|
||||||
RegisterCommand("REMOVE_SVC_ACKNOWLEDGEMENT", &ExternalCommand::RemoveSvcAcknowledgement);
|
RegisterCommand("REMOVE_SVC_ACKNOWLEDGEMENT", &ExternalCommand::RemoveSvcAcknowledgement);
|
||||||
|
RegisterCommand("ENABLE_HOSTGROUP_SVC_CHECKS", &ExternalCommand::EnableHostgroupSvcChecks);
|
||||||
|
RegisterCommand("DISABLE_HOSTGROUP_SVC_CHECKS", &ExternalCommand::DisableHostgroupSvcChecks);
|
||||||
|
RegisterCommand("ENABLE_SERVICEGROUP_SVC_CHECKS", &ExternalCommand::EnableServicegroupSvcChecks);
|
||||||
|
RegisterCommand("DISABLE_SERVICEGROUP_SVC_CHECKS", &ExternalCommand::DisableServicegroupSvcChecks);
|
||||||
|
|
||||||
m_Initialized = true;
|
m_Initialized = true;
|
||||||
}
|
}
|
||||||
@ -315,3 +318,65 @@ void ExternalCommand::RemoveSvcAcknowledgement(double time, const vector<String>
|
|||||||
service->SetAcknowledgementExpiry(0);
|
service->SetAcknowledgementExpiry(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ExternalCommand::EnableHostgroupSvcChecks(double time, const vector<String>& arguments)
|
||||||
|
{
|
||||||
|
if (arguments.size() < 1)
|
||||||
|
throw_exception(invalid_argument("Expected 1 argument."));
|
||||||
|
|
||||||
|
if (!HostGroup::Exists(arguments[0]))
|
||||||
|
throw_exception(invalid_argument("The host group '" + arguments[0] + "' does not exist."));
|
||||||
|
|
||||||
|
HostGroup::Ptr hg = HostGroup::GetByName(arguments[0]);
|
||||||
|
|
||||||
|
BOOST_FOREACH(const Host::Ptr& host, hg->GetMembers()) {
|
||||||
|
// TODO: finish implementing this (#3566)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ExternalCommand::DisableHostgroupSvcChecks(double time, const vector<String>& arguments)
|
||||||
|
{
|
||||||
|
if (arguments.size() < 1)
|
||||||
|
throw_exception(invalid_argument("Expected 1 argument."));
|
||||||
|
|
||||||
|
if (!HostGroup::Exists(arguments[0]))
|
||||||
|
throw_exception(invalid_argument("The host group '" + arguments[0] + "' does not exist."));
|
||||||
|
|
||||||
|
HostGroup::Ptr hg = HostGroup::GetByName(arguments[0]);
|
||||||
|
|
||||||
|
BOOST_FOREACH(const Host::Ptr& host, hg->GetMembers()) {
|
||||||
|
// TODO: finish implementing this (#3566)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ExternalCommand::EnableServicegroupSvcChecks(double time, const vector<String>& arguments)
|
||||||
|
{
|
||||||
|
if (arguments.size() < 1)
|
||||||
|
throw_exception(invalid_argument("Expected 1 argument."));
|
||||||
|
|
||||||
|
if (!ServiceGroup::Exists(arguments[0]))
|
||||||
|
throw_exception(invalid_argument("The service group '" + arguments[0] + "' does not exist."));
|
||||||
|
|
||||||
|
ServiceGroup::Ptr sg = ServiceGroup::GetByName(arguments[0]);
|
||||||
|
|
||||||
|
BOOST_FOREACH(const Service::Ptr& service, sg->GetMembers()) {
|
||||||
|
Logger::Write(LogInformation, "icinga", "Enabling checks for service '" + service->GetName() + "'");
|
||||||
|
service->SetEnableChecks(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ExternalCommand::DisableServicegroupSvcChecks(double time, const vector<String>& arguments)
|
||||||
|
{
|
||||||
|
if (arguments.size() < 1)
|
||||||
|
throw_exception(invalid_argument("Expected 1 argument."));
|
||||||
|
|
||||||
|
if (!ServiceGroup::Exists(arguments[0]))
|
||||||
|
throw_exception(invalid_argument("The service group '" + arguments[0] + "' does not exist."));
|
||||||
|
|
||||||
|
ServiceGroup::Ptr sg = ServiceGroup::GetByName(arguments[0]);
|
||||||
|
|
||||||
|
BOOST_FOREACH(const Service::Ptr& service, sg->GetMembers()) {
|
||||||
|
Logger::Write(LogInformation, "icinga", "Disabling checks for service '" + service->GetName() + "'");
|
||||||
|
service->SetEnableChecks(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -42,6 +42,10 @@ public:
|
|||||||
static void AcknowledgeSvcProblem(double time, const vector<String>& arguments);
|
static void AcknowledgeSvcProblem(double time, const vector<String>& arguments);
|
||||||
static void AcknowledgeSvcProblemExpire(double time, const vector<String>& arguments);
|
static void AcknowledgeSvcProblemExpire(double time, const vector<String>& arguments);
|
||||||
static void RemoveSvcAcknowledgement(double time, const vector<String>& arguments);
|
static void RemoveSvcAcknowledgement(double time, const vector<String>& arguments);
|
||||||
|
static void EnableHostgroupSvcChecks(double time, const vector<String>& arguments);
|
||||||
|
static void DisableHostgroupSvcChecks(double time, const vector<String>& arguments);
|
||||||
|
static void EnableServicegroupSvcChecks(double time, const vector<String>& arguments);
|
||||||
|
static void DisableServicegroupSvcChecks(double time, const vector<String>& arguments);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
typedef function<void (double time, const vector<String>& arguments)> Callback;
|
typedef function<void (double time, const vector<String>& arguments)> Callback;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user