diff --git a/components/livestatus/downtimestable.cpp b/components/livestatus/downtimestable.cpp index 2f6f3df4a..19e8d81e4 100644 --- a/components/livestatus/downtimestable.cpp +++ b/components/livestatus/downtimestable.cpp @@ -152,5 +152,5 @@ Value DowntimesTable::TriggeredByAccessor(const Value& row) { Downtime::Ptr downtime = static_cast(row); - return downtime->GetTriggeredBy(); + return downtime->GetTriggeredByLegacyId(); } diff --git a/lib/icinga/downtime.ti b/lib/icinga/downtime.ti index c68812aea..69f91ec4b 100644 --- a/lib/icinga/downtime.ti +++ b/lib/icinga/downtime.ti @@ -12,6 +12,7 @@ class Downtime [state] double trigger_time; [state] bool fixed; [state] double duration; + [state] int triggered_by_legacy_id; [state] String triggered_by; [state] String scheduled_by; [state] Dictionary::Ptr triggers { diff --git a/lib/icinga/service-downtime.cpp b/lib/icinga/service-downtime.cpp index f014ab262..313792515 100644 --- a/lib/icinga/service-downtime.cpp +++ b/lib/icinga/service-downtime.cpp @@ -70,6 +70,11 @@ String Service::AddDowntime(const String& author, const String& comment, downtime->SetTriggeredBy(triggeredBy); downtime->SetScheduledBy(scheduledBy); + if (!triggeredBy.IsEmpty()) { + Downtime::Ptr triggerDowntime = GetDowntimeByID(triggeredBy); + downtime->SetTriggeredByLegacyId(triggerDowntime->GetLegacyId()); + } + int legacy_id; {