]> granicus.if.org Git - icinga2/commitdiff
Don't allow acknowledgements for services that are OK.
authorGunnar Beutner <gunnar.beutner@netways.de>
Wed, 23 Jan 2013 15:18:58 +0000 (16:18 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Wed, 23 Jan 2013 15:18:58 +0000 (16:18 +0100)
lib/icinga/externalcommand.cpp

index a4edf374549249e2ea0cd1f36caf43a334ebe6f3..6759d73a87ecbd2bf841150cec30f15a0c7fdd0d 100644 (file)
@@ -271,6 +271,9 @@ void ExternalCommand::AcknowledgeSvcProblem(double time, const vector<String>& a
 
        Service::Ptr service = Service::GetByName(arguments[1]);
 
+       if (service->GetState() == StateOK)
+               throw_exception(invalid_argument("The service '" + arguments[1] + "' is OK."));
+
        Logger::Write(LogInformation, "icinga", "Setting acknowledgement for service '" + service->GetName() + "'");
        service->SetAcknowledgement(sticky ? AcknowledgementSticky : AcknowledgementNormal);
        service->SetAcknowledgementExpiry(0);
@@ -289,6 +292,9 @@ void ExternalCommand::AcknowledgeSvcProblemExpire(double time, const vector<Stri
 
        Service::Ptr service = Service::GetByName(arguments[1]);
 
+       if (service->GetState() == StateOK)
+               throw_exception(invalid_argument("The service '" + arguments[1] + "' is OK."));
+
        Logger::Write(LogInformation, "icinga", "Setting timed acknowledgement for service '" + service->GetName() + "'");
        service->SetAcknowledgement(sticky ? AcknowledgementSticky : AcknowledgementNormal);
        service->SetAcknowledgementExpiry(timestamp);