Fix scheduling of downtimes for all services on child hosts

The loop iterated over the services of the wrong host resulting in duplicate
downtimes scheduled for services of the parent host instead of downtimes for
services of the child host.
This commit is contained in:
Julian Brost 2021-09-02 16:18:55 +02:00 committed by Alexander A. Klimov
parent 93c1e313bc
commit 2de9904676

View File

@ -458,12 +458,12 @@ Dictionary::Ptr ApiActions::ScheduleDowntime(const ConfigObject::Ptr& object,
if (allServices && !childService) {
ArrayData childServiceDowntimes;
for (const Service::Ptr& hostService : host->GetServices()) {
for (const Service::Ptr& childService : childHost->GetServices()) {
Log(LogNotice, "ApiActions")
<< "Creating downtime for service " << hostService->GetName() << " on child host " << host->GetName();
<< "Creating downtime for service " << childService->GetName() << " on child host " << childHost->GetName();
Downtime::Ptr serviceDowntime = Downtime::AddDowntime(hostService, author, comment, startTime, endTime,
fixed, triggerName, duration);
Downtime::Ptr serviceDowntime = Downtime::AddDowntime(childService, author, comment, startTime, endTime,
fixed, triggerName, duration, String(), String(), childDowntimeName);
String serviceDowntimeName = serviceDowntime->GetName();
childServiceDowntimes.push_back(new Dictionary({