mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-26 23:24:09 +02:00
Checkable#ClearAcknowledgement(): OnAcknowledgementCleared() at most once
This commit is contained in:
parent
798ea54173
commit
da6a9174d1
@ -138,14 +138,28 @@ void Checkable::AcknowledgeProblem(const String& author, const String& comment,
|
|||||||
|
|
||||||
void Checkable::ClearAcknowledgement(const String& removedBy, const MessageOrigin::Ptr& origin)
|
void Checkable::ClearAcknowledgement(const String& removedBy, const MessageOrigin::Ptr& origin)
|
||||||
{
|
{
|
||||||
|
ObjectLock oLock (this);
|
||||||
|
|
||||||
|
bool wasAcked;
|
||||||
|
|
||||||
|
if (GetAcknowledgementRaw() == AcknowledgementNone) {
|
||||||
|
wasAcked = false;
|
||||||
|
} else {
|
||||||
|
double expiry = GetAcknowledgementExpiry();
|
||||||
|
|
||||||
|
wasAcked = expiry == 0 || expiry >= Utility::GetTime();
|
||||||
|
}
|
||||||
|
|
||||||
SetAcknowledgementRaw(AcknowledgementNone);
|
SetAcknowledgementRaw(AcknowledgementNone);
|
||||||
SetAcknowledgementExpiry(0);
|
SetAcknowledgementExpiry(0);
|
||||||
|
|
||||||
Log(LogInformation, "Checkable")
|
Log(LogInformation, "Checkable")
|
||||||
<< "Acknowledgement cleared for checkable '" << GetName() << "'.";
|
<< "Acknowledgement cleared for checkable '" << GetName() << "'.";
|
||||||
|
|
||||||
|
if (wasAcked) {
|
||||||
OnAcknowledgementCleared(this, removedBy, origin);
|
OnAcknowledgementCleared(this, removedBy, origin);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Endpoint::Ptr Checkable::GetCommandEndpoint() const
|
Endpoint::Ptr Checkable::GetCommandEndpoint() const
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user