mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-22 05:04:30 +02:00
Fix persistent comments for Acknowledgements
fixes #4818 Signed-off-by: Michael Friedrich <michael.friedrich@icinga.com>
This commit is contained in:
parent
a4dbc83748
commit
273ca6a2cc
@ -905,13 +905,14 @@ are disabled.
|
|||||||
|
|
||||||
Send a `POST` request to the URL endpoint `/v1/actions/acknowledge-problem`.
|
Send a `POST` request to the URL endpoint `/v1/actions/acknowledge-problem`.
|
||||||
|
|
||||||
Parameter | Type | Description
|
Parameter | Type | Description
|
||||||
----------|-----------|--------------
|
---------------------|-----------|--------------
|
||||||
author | string | **Required.** Name of the author, may be empty.
|
author | string | **Required.** Name of the author, may be empty.
|
||||||
comment | string | **Required.** Comment text, may be empty.
|
comment | string | **Required.** Comment text, may be empty.
|
||||||
expiry | timestamp | **Optional.** Whether the acknowledgement will be removed at the timestamp.
|
expiry | timestamp | **Optional.** Whether the acknowledgement will be removed at the timestamp.
|
||||||
sticky | boolean | **Optional.** Whether the acknowledgement will be set until the service or host fully recovers. Defaults to `false`.
|
sticky | boolean | **Optional.** Whether the acknowledgement will be set until the service or host fully recovers. Defaults to `false`.
|
||||||
notify | boolean | **Optional.** Whether a notification of the `Acknowledgement` type will be sent. Defaults to `false`.
|
notify | boolean | **Optional.** Whether a notification of the `Acknowledgement` type will be sent. Defaults to `false`.
|
||||||
|
persistent | boolean | **Optional.** When the comment is of type `Acknowledgement` and this is set to `true`, the comment will remain after the acknowledgement recovers or expires. Defaults to `false`.
|
||||||
|
|
||||||
In addition to these parameters a [filter](12-icinga2-api.md#icinga2-api-filters) must be provided. The valid types for this action are `Host` and `Service`.
|
In addition to these parameters a [filter](12-icinga2-api.md#icinga2-api-filters) must be provided. The valid types for this action are `Host` and `Service`.
|
||||||
|
|
||||||
|
@ -252,6 +252,7 @@ Configuration Attributes:
|
|||||||
entry_time | **Optional.** The unix timestamp when this comment was added.
|
entry_time | **Optional.** The unix timestamp when this comment was added.
|
||||||
entry_type | **Optional.** The comment type (`User` = 1, `Downtime` = 2, `Flapping` = 3, `Acknowledgement` = 4).
|
entry_type | **Optional.** The comment type (`User` = 1, `Downtime` = 2, `Flapping` = 3, `Acknowledgement` = 4).
|
||||||
expire_time | **Optional.** The comment's expire time as unix timestamp.
|
expire_time | **Optional.** The comment's expire time as unix timestamp.
|
||||||
|
persistent | **Optional.** Only evaluated for `entry_type` Acknowledgement. `true` does not remove the comment when the acknowledgement is removed.
|
||||||
|
|
||||||
## <a id="objecttype-compatlogger"></a> CompatLogger
|
## <a id="objecttype-compatlogger"></a> CompatLogger
|
||||||
|
|
||||||
|
@ -354,7 +354,7 @@ void DbEvents::AddCommentInternal(std::vector<DbQuery>& queries, const Comment::
|
|||||||
fields1->Set("comment_time", DbValue::FromTimestamp(entry_time)); /* same as entry_time */
|
fields1->Set("comment_time", DbValue::FromTimestamp(entry_time)); /* same as entry_time */
|
||||||
fields1->Set("author_name", comment->GetAuthor());
|
fields1->Set("author_name", comment->GetAuthor());
|
||||||
fields1->Set("comment_data", comment->GetText());
|
fields1->Set("comment_data", comment->GetText());
|
||||||
fields1->Set("is_persistent", 1);
|
fields1->Set("is_persistent", comment->GetPersistent() ? 1 : 0);
|
||||||
fields1->Set("comment_source", 1); /* external */
|
fields1->Set("comment_source", 1); /* external */
|
||||||
fields1->Set("expires", (comment->GetExpireTime() > 0) ? 1 : 0);
|
fields1->Set("expires", (comment->GetExpireTime() > 0) ? 1 : 0);
|
||||||
fields1->Set("expiration_time", DbValue::FromTimestamp(comment->GetExpireTime()));
|
fields1->Set("expiration_time", DbValue::FromTimestamp(comment->GetExpireTime()));
|
||||||
|
@ -194,12 +194,15 @@ Dictionary::Ptr ApiActions::AcknowledgeProblem(const ConfigObject::Ptr& object,
|
|||||||
|
|
||||||
AcknowledgementType sticky = AcknowledgementNormal;
|
AcknowledgementType sticky = AcknowledgementNormal;
|
||||||
bool notify = false;
|
bool notify = false;
|
||||||
|
bool persistent = false;
|
||||||
double timestamp = 0.0;
|
double timestamp = 0.0;
|
||||||
|
|
||||||
if (params->Contains("sticky") && HttpUtility::GetLastParameter(params, "sticky"))
|
if (params->Contains("sticky") && HttpUtility::GetLastParameter(params, "sticky"))
|
||||||
sticky = AcknowledgementSticky;
|
sticky = AcknowledgementSticky;
|
||||||
if (params->Contains("notify"))
|
if (params->Contains("notify"))
|
||||||
notify = HttpUtility::GetLastParameter(params, "notify");
|
notify = HttpUtility::GetLastParameter(params, "notify");
|
||||||
|
if (params->Contains("persistent"))
|
||||||
|
persistent = HttpUtility::GetLastParameter(params, "persistent");
|
||||||
if (params->Contains("expiry"))
|
if (params->Contains("expiry"))
|
||||||
timestamp = HttpUtility::GetLastParameter(params, "expiry");
|
timestamp = HttpUtility::GetLastParameter(params, "expiry");
|
||||||
else
|
else
|
||||||
@ -218,7 +221,7 @@ Dictionary::Ptr ApiActions::AcknowledgeProblem(const ConfigObject::Ptr& object,
|
|||||||
}
|
}
|
||||||
|
|
||||||
Comment::AddComment(checkable, CommentAcknowledgement, HttpUtility::GetLastParameter(params, "author"),
|
Comment::AddComment(checkable, CommentAcknowledgement, HttpUtility::GetLastParameter(params, "author"),
|
||||||
HttpUtility::GetLastParameter(params, "comment"), timestamp);
|
HttpUtility::GetLastParameter(params, "comment"), persistent, timestamp);
|
||||||
checkable->AcknowledgeProblem(HttpUtility::GetLastParameter(params, "author"),
|
checkable->AcknowledgeProblem(HttpUtility::GetLastParameter(params, "author"),
|
||||||
HttpUtility::GetLastParameter(params, "comment"), sticky, notify, timestamp);
|
HttpUtility::GetLastParameter(params, "comment"), sticky, notify, timestamp);
|
||||||
|
|
||||||
@ -254,7 +257,7 @@ Dictionary::Ptr ApiActions::AddComment(const ConfigObject::Ptr& object,
|
|||||||
|
|
||||||
String commentName = Comment::AddComment(checkable, CommentUser,
|
String commentName = Comment::AddComment(checkable, CommentUser,
|
||||||
HttpUtility::GetLastParameter(params, "author"),
|
HttpUtility::GetLastParameter(params, "author"),
|
||||||
HttpUtility::GetLastParameter(params, "comment"), 0);
|
HttpUtility::GetLastParameter(params, "comment"), false, 0);
|
||||||
|
|
||||||
Comment::Ptr comment = Comment::GetByName(commentName);
|
Comment::Ptr comment = Comment::GetByName(commentName);
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ void ApiEvents::FlappingChangedHandler(const Checkable::Ptr& checkable, const Me
|
|||||||
|
|
||||||
void ApiEvents::AcknowledgementSetHandler(const Checkable::Ptr& checkable,
|
void ApiEvents::AcknowledgementSetHandler(const Checkable::Ptr& checkable,
|
||||||
const String& author, const String& comment, AcknowledgementType type,
|
const String& author, const String& comment, AcknowledgementType type,
|
||||||
bool notify, double expiry, const MessageOrigin::Ptr& origin)
|
bool notify, bool persistent, double expiry, const MessageOrigin::Ptr& origin)
|
||||||
{
|
{
|
||||||
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("AcknowledgementSet");
|
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("AcknowledgementSet");
|
||||||
|
|
||||||
@ -206,6 +206,7 @@ void ApiEvents::AcknowledgementSetHandler(const Checkable::Ptr& checkable,
|
|||||||
result->Set("comment", comment);
|
result->Set("comment", comment);
|
||||||
result->Set("acknowledgement_type", type);
|
result->Set("acknowledgement_type", type);
|
||||||
result->Set("notify", notify);
|
result->Set("notify", notify);
|
||||||
|
result->Set("persistent", persistent);
|
||||||
result->Set("expiry", expiry);
|
result->Set("expiry", expiry);
|
||||||
|
|
||||||
for (const EventQueue::Ptr& queue : queues) {
|
for (const EventQueue::Ptr& queue : queues) {
|
||||||
|
@ -46,7 +46,7 @@ public:
|
|||||||
|
|
||||||
static void AcknowledgementSetHandler(const Checkable::Ptr& checkable,
|
static void AcknowledgementSetHandler(const Checkable::Ptr& checkable,
|
||||||
const String& author, const String& comment, AcknowledgementType type,
|
const String& author, const String& comment, AcknowledgementType type,
|
||||||
bool notify, double expiry, const MessageOrigin::Ptr& origin);
|
bool notify, bool persistent, double expiry, const MessageOrigin::Ptr& origin);
|
||||||
static void AcknowledgementClearedHandler(const Checkable::Ptr& checkable, const MessageOrigin::Ptr& origin);
|
static void AcknowledgementClearedHandler(const Checkable::Ptr& checkable, const MessageOrigin::Ptr& origin);
|
||||||
|
|
||||||
static void CommentAddedHandler(const Comment::Ptr& comment);
|
static void CommentAddedHandler(const Comment::Ptr& comment);
|
||||||
|
@ -38,6 +38,10 @@ void Checkable::RemoveAllComments(void)
|
|||||||
void Checkable::RemoveCommentsByType(int type)
|
void Checkable::RemoveCommentsByType(int type)
|
||||||
{
|
{
|
||||||
for (const Comment::Ptr& comment : GetComments()) {
|
for (const Comment::Ptr& comment : GetComments()) {
|
||||||
|
/* Do not remove persistent comments from an acknowledgement */
|
||||||
|
if (comment->GetEntryType() == CommentAcknowledgement && comment->GetPersistent())
|
||||||
|
continue;
|
||||||
|
|
||||||
if (comment->GetEntryType() == type)
|
if (comment->GetEntryType() == type)
|
||||||
Comment::RemoveComment(comment->GetName());
|
Comment::RemoveComment(comment->GetName());
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ using namespace icinga;
|
|||||||
REGISTER_TYPE_WITH_PROTOTYPE(Checkable, Checkable::GetPrototype());
|
REGISTER_TYPE_WITH_PROTOTYPE(Checkable, Checkable::GetPrototype());
|
||||||
INITIALIZE_ONCE(&Checkable::StaticInitialize);
|
INITIALIZE_ONCE(&Checkable::StaticInitialize);
|
||||||
|
|
||||||
boost::signals2::signal<void (const Checkable::Ptr&, const String&, const String&, AcknowledgementType, bool, double, const MessageOrigin::Ptr&)> Checkable::OnAcknowledgementSet;
|
boost::signals2::signal<void (const Checkable::Ptr&, const String&, const String&, AcknowledgementType, bool, bool, double, const MessageOrigin::Ptr&)> Checkable::OnAcknowledgementSet;
|
||||||
boost::signals2::signal<void (const Checkable::Ptr&, const MessageOrigin::Ptr&)> Checkable::OnAcknowledgementCleared;
|
boost::signals2::signal<void (const Checkable::Ptr&, const MessageOrigin::Ptr&)> Checkable::OnAcknowledgementCleared;
|
||||||
|
|
||||||
void Checkable::StaticInitialize(void)
|
void Checkable::StaticInitialize(void)
|
||||||
@ -122,7 +122,7 @@ bool Checkable::IsAcknowledged(void) const
|
|||||||
return const_cast<Checkable *>(this)->GetAcknowledgement() != AcknowledgementNone;
|
return const_cast<Checkable *>(this)->GetAcknowledgement() != AcknowledgementNone;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Checkable::AcknowledgeProblem(const String& author, const String& comment, AcknowledgementType type, bool notify, double expiry, const MessageOrigin::Ptr& origin)
|
void Checkable::AcknowledgeProblem(const String& author, const String& comment, AcknowledgementType type, bool notify, bool persistent, double expiry, const MessageOrigin::Ptr& origin)
|
||||||
{
|
{
|
||||||
SetAcknowledgementRaw(type);
|
SetAcknowledgementRaw(type);
|
||||||
SetAcknowledgementExpiry(expiry);
|
SetAcknowledgementExpiry(expiry);
|
||||||
@ -130,7 +130,7 @@ void Checkable::AcknowledgeProblem(const String& author, const String& comment,
|
|||||||
if (notify && !IsPaused())
|
if (notify && !IsPaused())
|
||||||
OnNotificationsRequested(this, NotificationAcknowledgement, GetLastCheckResult(), author, comment, MessageOrigin::Ptr());
|
OnNotificationsRequested(this, NotificationAcknowledgement, GetLastCheckResult(), author, comment, MessageOrigin::Ptr());
|
||||||
|
|
||||||
OnAcknowledgementSet(this, author, comment, type, notify, expiry, origin);
|
OnAcknowledgementSet(this, author, comment, type, notify, persistent, expiry, origin);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Checkable::ClearAcknowledgement(const MessageOrigin::Ptr& origin)
|
void Checkable::ClearAcknowledgement(const MessageOrigin::Ptr& origin)
|
||||||
|
@ -98,7 +98,7 @@ public:
|
|||||||
|
|
||||||
AcknowledgementType GetAcknowledgement(void);
|
AcknowledgementType GetAcknowledgement(void);
|
||||||
|
|
||||||
void AcknowledgeProblem(const String& author, const String& comment, AcknowledgementType type, bool notify = true, double expiry = 0, const MessageOrigin::Ptr& origin = MessageOrigin::Ptr());
|
void AcknowledgeProblem(const String& author, const String& comment, AcknowledgementType type, bool notify = true, bool persistent = false, double expiry = 0, const MessageOrigin::Ptr& origin = MessageOrigin::Ptr());
|
||||||
void ClearAcknowledgement(const MessageOrigin::Ptr& origin = MessageOrigin::Ptr());
|
void ClearAcknowledgement(const MessageOrigin::Ptr& origin = MessageOrigin::Ptr());
|
||||||
|
|
||||||
virtual int GetSeverity(void) const override;
|
virtual int GetSeverity(void) const override;
|
||||||
@ -139,7 +139,7 @@ public:
|
|||||||
const NotificationType&, const CheckResult::Ptr&, const String&,
|
const NotificationType&, const CheckResult::Ptr&, const String&,
|
||||||
const String&, const MessageOrigin::Ptr&)> OnNotificationSentToAllUsers;
|
const String&, const MessageOrigin::Ptr&)> OnNotificationSentToAllUsers;
|
||||||
static boost::signals2::signal<void (const Checkable::Ptr&, const String&, const String&, AcknowledgementType,
|
static boost::signals2::signal<void (const Checkable::Ptr&, const String&, const String&, AcknowledgementType,
|
||||||
bool, double, const MessageOrigin::Ptr&)> OnAcknowledgementSet;
|
bool, bool, double, const MessageOrigin::Ptr&)> OnAcknowledgementSet;
|
||||||
static boost::signals2::signal<void (const Checkable::Ptr&, const MessageOrigin::Ptr&)> OnAcknowledgementCleared;
|
static boost::signals2::signal<void (const Checkable::Ptr&, const MessageOrigin::Ptr&)> OnAcknowledgementCleared;
|
||||||
static boost::signals2::signal<void (const Checkable::Ptr&)> OnNextCheckUpdated;
|
static boost::signals2::signal<void (const Checkable::Ptr&)> OnNextCheckUpdated;
|
||||||
static boost::signals2::signal<void (const Checkable::Ptr&)> OnEventCommandExecuted;
|
static boost::signals2::signal<void (const Checkable::Ptr&)> OnEventCommandExecuted;
|
||||||
|
@ -445,7 +445,7 @@ Value ClusterEvents::ForceNextNotificationChangedAPIHandler(const MessageOrigin:
|
|||||||
|
|
||||||
void ClusterEvents::AcknowledgementSetHandler(const Checkable::Ptr& checkable,
|
void ClusterEvents::AcknowledgementSetHandler(const Checkable::Ptr& checkable,
|
||||||
const String& author, const String& comment, AcknowledgementType type,
|
const String& author, const String& comment, AcknowledgementType type,
|
||||||
bool notify, double expiry, const MessageOrigin::Ptr& origin)
|
bool notify, bool persistent, double expiry, const MessageOrigin::Ptr& origin)
|
||||||
{
|
{
|
||||||
ApiListener::Ptr listener = ApiListener::GetInstance();
|
ApiListener::Ptr listener = ApiListener::GetInstance();
|
||||||
|
|
||||||
@ -510,7 +510,7 @@ Value ClusterEvents::AcknowledgementSetAPIHandler(const MessageOrigin::Ptr& orig
|
|||||||
|
|
||||||
checkable->AcknowledgeProblem(params->Get("author"), params->Get("comment"),
|
checkable->AcknowledgeProblem(params->Get("author"), params->Get("comment"),
|
||||||
static_cast<AcknowledgementType>(static_cast<int>(params->Get("acktype"))),
|
static_cast<AcknowledgementType>(static_cast<int>(params->Get("acktype"))),
|
||||||
params->Get("notify"), params->Get("expiry"), origin);
|
params->Get("notify"), params->Get("persistent"), params->Get("expiry"), origin);
|
||||||
|
|
||||||
return Empty;
|
return Empty;
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ public:
|
|||||||
static Value ForceNextNotificationChangedAPIHandler(const MessageOrigin::Ptr& origin, const Dictionary::Ptr& params);
|
static Value ForceNextNotificationChangedAPIHandler(const MessageOrigin::Ptr& origin, const Dictionary::Ptr& params);
|
||||||
|
|
||||||
static void AcknowledgementSetHandler(const Checkable::Ptr& checkable, const String& author, const String& comment, AcknowledgementType type,
|
static void AcknowledgementSetHandler(const Checkable::Ptr& checkable, const String& author, const String& comment, AcknowledgementType type,
|
||||||
bool notify, double expiry, const MessageOrigin::Ptr& origin);
|
bool notify, bool persistent, double expiry, const MessageOrigin::Ptr& origin);
|
||||||
static Value AcknowledgementSetAPIHandler(const MessageOrigin::Ptr& origin, const Dictionary::Ptr& params);
|
static Value AcknowledgementSetAPIHandler(const MessageOrigin::Ptr& origin, const Dictionary::Ptr& params);
|
||||||
|
|
||||||
static void AcknowledgementClearedHandler(const Checkable::Ptr& checkable, const MessageOrigin::Ptr& origin);
|
static void AcknowledgementClearedHandler(const Checkable::Ptr& checkable, const MessageOrigin::Ptr& origin);
|
||||||
|
@ -150,7 +150,7 @@ int Comment::GetNextCommentID(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
String Comment::AddComment(const Checkable::Ptr& checkable, CommentType entryType, const String& author,
|
String Comment::AddComment(const Checkable::Ptr& checkable, CommentType entryType, const String& author,
|
||||||
const String& text, double expireTime, const String& id, const MessageOrigin::Ptr& origin)
|
const String& text, bool persistent, double expireTime, const String& id, const MessageOrigin::Ptr& origin)
|
||||||
{
|
{
|
||||||
String fullName;
|
String fullName;
|
||||||
|
|
||||||
@ -163,6 +163,7 @@ String Comment::AddComment(const Checkable::Ptr& checkable, CommentType entryTyp
|
|||||||
|
|
||||||
attrs->Set("author", author);
|
attrs->Set("author", author);
|
||||||
attrs->Set("text", text);
|
attrs->Set("text", text);
|
||||||
|
attrs->Set("persistent", persistent);
|
||||||
attrs->Set("expire_time", expireTime);
|
attrs->Set("expire_time", expireTime);
|
||||||
attrs->Set("entry_type", entryType);
|
attrs->Set("entry_type", entryType);
|
||||||
attrs->Set("entry_time", Utility::GetTime());
|
attrs->Set("entry_time", Utility::GetTime());
|
||||||
@ -247,8 +248,13 @@ void Comment::CommentsExpireTimerHandler(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (const Comment::Ptr& comment : comments) {
|
for (const Comment::Ptr& comment : comments) {
|
||||||
/* Only remove comment which are activated after daemon start. */
|
/* Only remove comments which are activated after daemon start. */
|
||||||
if (comment->IsActive() && comment->IsExpired())
|
if (comment->IsActive() && comment->IsExpired()) {
|
||||||
|
/* Do not remove persistent comments from an acknowledgement */
|
||||||
|
if (comment->GetEntryType() == CommentAcknowledgement && comment->GetPersistent())
|
||||||
|
continue;
|
||||||
|
|
||||||
RemoveComment(comment->GetName());
|
RemoveComment(comment->GetName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ public:
|
|||||||
static int GetNextCommentID(void);
|
static int GetNextCommentID(void);
|
||||||
|
|
||||||
static String AddComment(const intrusive_ptr<Checkable>& checkable, CommentType entryType,
|
static String AddComment(const intrusive_ptr<Checkable>& checkable, CommentType entryType,
|
||||||
const String& author, const String& text, double expireTime,
|
const String& author, const String& text, bool persistent, double expireTime,
|
||||||
const String& id = String(), const MessageOrigin::Ptr& origin = MessageOrigin::Ptr());
|
const String& id = String(), const MessageOrigin::Ptr& origin = MessageOrigin::Ptr());
|
||||||
|
|
||||||
static void RemoveComment(const String& id, const MessageOrigin::Ptr& origin = MessageOrigin::Ptr());
|
static void RemoveComment(const String& id, const MessageOrigin::Ptr& origin = MessageOrigin::Ptr());
|
||||||
|
@ -87,6 +87,7 @@ class Comment : ConfigObject < CommentNameComposer
|
|||||||
};
|
};
|
||||||
[config, required] String author;
|
[config, required] String author;
|
||||||
[config, required] String text;
|
[config, required] String text;
|
||||||
|
[config] bool persistent;
|
||||||
[config] Timestamp expire_time;
|
[config] Timestamp expire_time;
|
||||||
[state] int legacy_id;
|
[state] int legacy_id;
|
||||||
};
|
};
|
||||||
|
@ -621,6 +621,7 @@ void ExternalCommandProcessor::AcknowledgeSvcProblem(double, const std::vector<S
|
|||||||
{
|
{
|
||||||
bool sticky = (Convert::ToLong(arguments[2]) == 2 ? true : false);
|
bool sticky = (Convert::ToLong(arguments[2]) == 2 ? true : false);
|
||||||
bool notify = (Convert::ToLong(arguments[3]) > 0 ? true : false);
|
bool notify = (Convert::ToLong(arguments[3]) > 0 ? true : false);
|
||||||
|
bool persistent = (Convert::ToLong(arguments[4]) > 0 ? true : false);
|
||||||
|
|
||||||
Service::Ptr service = Service::GetByNamePair(arguments[0], arguments[1]);
|
Service::Ptr service = Service::GetByNamePair(arguments[0], arguments[1]);
|
||||||
|
|
||||||
@ -633,14 +634,15 @@ void ExternalCommandProcessor::AcknowledgeSvcProblem(double, const std::vector<S
|
|||||||
Log(LogNotice, "ExternalCommandProcessor")
|
Log(LogNotice, "ExternalCommandProcessor")
|
||||||
<< "Setting acknowledgement for service '" << service->GetName() << "'" << (notify ? "" : ". Disabled notification");
|
<< "Setting acknowledgement for service '" << service->GetName() << "'" << (notify ? "" : ". Disabled notification");
|
||||||
|
|
||||||
Comment::AddComment(service, CommentAcknowledgement, arguments[5], arguments[6], 0);
|
Comment::AddComment(service, CommentAcknowledgement, arguments[5], arguments[6], persistent, 0);
|
||||||
service->AcknowledgeProblem(arguments[5], arguments[6], sticky ? AcknowledgementSticky : AcknowledgementNormal, notify);
|
service->AcknowledgeProblem(arguments[5], arguments[6], sticky ? AcknowledgementSticky : AcknowledgementNormal, persistent, notify);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExternalCommandProcessor::AcknowledgeSvcProblemExpire(double, const std::vector<String>& arguments)
|
void ExternalCommandProcessor::AcknowledgeSvcProblemExpire(double, const std::vector<String>& arguments)
|
||||||
{
|
{
|
||||||
bool sticky = (Convert::ToLong(arguments[2]) == 2 ? true : false);
|
bool sticky = (Convert::ToLong(arguments[2]) == 2 ? true : false);
|
||||||
bool notify = (Convert::ToLong(arguments[3]) > 0 ? true : false);
|
bool notify = (Convert::ToLong(arguments[3]) > 0 ? true : false);
|
||||||
|
bool persistent = (Convert::ToLong(arguments[4]) > 0 ? true : false);
|
||||||
double timestamp = Convert::ToDouble(arguments[5]);
|
double timestamp = Convert::ToDouble(arguments[5]);
|
||||||
|
|
||||||
Service::Ptr service = Service::GetByNamePair(arguments[0], arguments[1]);
|
Service::Ptr service = Service::GetByNamePair(arguments[0], arguments[1]);
|
||||||
@ -654,8 +656,8 @@ void ExternalCommandProcessor::AcknowledgeSvcProblemExpire(double, const std::ve
|
|||||||
Log(LogNotice, "ExternalCommandProcessor")
|
Log(LogNotice, "ExternalCommandProcessor")
|
||||||
<< "Setting timed acknowledgement for service '" << service->GetName() << "'" << (notify ? "" : ". Disabled notification");
|
<< "Setting timed acknowledgement for service '" << service->GetName() << "'" << (notify ? "" : ". Disabled notification");
|
||||||
|
|
||||||
Comment::AddComment(service, CommentAcknowledgement, arguments[6], arguments[7], timestamp);
|
Comment::AddComment(service, CommentAcknowledgement, arguments[6], arguments[7], persistent, timestamp);
|
||||||
service->AcknowledgeProblem(arguments[6], arguments[7], sticky ? AcknowledgementSticky : AcknowledgementNormal, notify, timestamp);
|
service->AcknowledgeProblem(arguments[6], arguments[7], sticky ? AcknowledgementSticky : AcknowledgementNormal, notify, persistent, timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExternalCommandProcessor::RemoveSvcAcknowledgement(double, const std::vector<String>& arguments)
|
void ExternalCommandProcessor::RemoveSvcAcknowledgement(double, const std::vector<String>& arguments)
|
||||||
@ -680,6 +682,7 @@ void ExternalCommandProcessor::AcknowledgeHostProblem(double, const std::vector<
|
|||||||
{
|
{
|
||||||
bool sticky = (Convert::ToLong(arguments[1]) == 2 ? true : false);
|
bool sticky = (Convert::ToLong(arguments[1]) == 2 ? true : false);
|
||||||
bool notify = (Convert::ToLong(arguments[2]) > 0 ? true : false);
|
bool notify = (Convert::ToLong(arguments[2]) > 0 ? true : false);
|
||||||
|
bool persistent = (Convert::ToLong(arguments[3]) > 0 ? true : false);
|
||||||
|
|
||||||
Host::Ptr host = Host::GetByName(arguments[0]);
|
Host::Ptr host = Host::GetByName(arguments[0]);
|
||||||
|
|
||||||
@ -692,14 +695,15 @@ void ExternalCommandProcessor::AcknowledgeHostProblem(double, const std::vector<
|
|||||||
if (host->GetState() == HostUp)
|
if (host->GetState() == HostUp)
|
||||||
BOOST_THROW_EXCEPTION(std::invalid_argument("The host '" + arguments[0] + "' is OK."));
|
BOOST_THROW_EXCEPTION(std::invalid_argument("The host '" + arguments[0] + "' is OK."));
|
||||||
|
|
||||||
Comment::AddComment(host, CommentAcknowledgement, arguments[4], arguments[5], 0);
|
Comment::AddComment(host, CommentAcknowledgement, arguments[4], arguments[5], persistent, 0);
|
||||||
host->AcknowledgeProblem(arguments[4], arguments[5], sticky ? AcknowledgementSticky : AcknowledgementNormal, notify);
|
host->AcknowledgeProblem(arguments[4], arguments[5], sticky ? AcknowledgementSticky : AcknowledgementNormal, persistent, notify);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExternalCommandProcessor::AcknowledgeHostProblemExpire(double, const std::vector<String>& arguments)
|
void ExternalCommandProcessor::AcknowledgeHostProblemExpire(double, const std::vector<String>& arguments)
|
||||||
{
|
{
|
||||||
bool sticky = (Convert::ToLong(arguments[1]) == 2 ? true : false);
|
bool sticky = (Convert::ToLong(arguments[1]) == 2 ? true : false);
|
||||||
bool notify = (Convert::ToLong(arguments[2]) > 0 ? true : false);
|
bool notify = (Convert::ToLong(arguments[2]) > 0 ? true : false);
|
||||||
|
bool persistent = (Convert::ToLong(arguments[3]) > 0 ? true : false);
|
||||||
double timestamp = Convert::ToDouble(arguments[4]);
|
double timestamp = Convert::ToDouble(arguments[4]);
|
||||||
|
|
||||||
Host::Ptr host = Host::GetByName(arguments[0]);
|
Host::Ptr host = Host::GetByName(arguments[0]);
|
||||||
@ -713,8 +717,8 @@ void ExternalCommandProcessor::AcknowledgeHostProblemExpire(double, const std::v
|
|||||||
if (host->GetState() == HostUp)
|
if (host->GetState() == HostUp)
|
||||||
BOOST_THROW_EXCEPTION(std::invalid_argument("The host '" + arguments[0] + "' is OK."));
|
BOOST_THROW_EXCEPTION(std::invalid_argument("The host '" + arguments[0] + "' is OK."));
|
||||||
|
|
||||||
Comment::AddComment(host, CommentAcknowledgement, arguments[5], arguments[6], timestamp);
|
Comment::AddComment(host, CommentAcknowledgement, arguments[5], arguments[6], persistent, timestamp);
|
||||||
host->AcknowledgeProblem(arguments[5], arguments[6], sticky ? AcknowledgementSticky : AcknowledgementNormal, notify, timestamp);
|
host->AcknowledgeProblem(arguments[5], arguments[6], sticky ? AcknowledgementSticky : AcknowledgementNormal, notify, persistent, timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExternalCommandProcessor::RemoveHostAcknowledgement(double, const std::vector<String>& arguments)
|
void ExternalCommandProcessor::RemoveHostAcknowledgement(double, const std::vector<String>& arguments)
|
||||||
@ -1286,7 +1290,7 @@ void ExternalCommandProcessor::AddHostComment(double, const std::vector<String>&
|
|||||||
|
|
||||||
Log(LogNotice, "ExternalCommandProcessor")
|
Log(LogNotice, "ExternalCommandProcessor")
|
||||||
<< "Creating comment for host " << host->GetName();
|
<< "Creating comment for host " << host->GetName();
|
||||||
(void) Comment::AddComment(host, CommentUser, arguments[2], arguments[3], 0);
|
(void) Comment::AddComment(host, CommentUser, arguments[2], arguments[3], false, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExternalCommandProcessor::DelHostComment(double, const std::vector<String>& arguments)
|
void ExternalCommandProcessor::DelHostComment(double, const std::vector<String>& arguments)
|
||||||
@ -1310,7 +1314,7 @@ void ExternalCommandProcessor::AddSvcComment(double, const std::vector<String>&
|
|||||||
|
|
||||||
Log(LogNotice, "ExternalCommandProcessor")
|
Log(LogNotice, "ExternalCommandProcessor")
|
||||||
<< "Creating comment for service " << service->GetName();
|
<< "Creating comment for service " << service->GetName();
|
||||||
(void) Comment::AddComment(service, CommentUser, arguments[3], arguments[4], 0);
|
(void) Comment::AddComment(service, CommentUser, arguments[3], arguments[4], false, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExternalCommandProcessor::DelSvcComment(double, const std::vector<String>& arguments)
|
void ExternalCommandProcessor::DelSvcComment(double, const std::vector<String>& arguments)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user