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 49cef4e907
commit f298314216

View File

@ -442,12 +442,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({