mirror of https://github.com/Icinga/icinga2.git
ido: Fix timeperiods with more than one segment.
This commit is contained in:
parent
a14e72c292
commit
cf3298f130
|
@ -97,8 +97,13 @@ void TimePeriodDbObject::OnConfigUpdate(void)
|
||||||
}
|
}
|
||||||
#endif /* _MSC_VER */
|
#endif /* _MSC_VER */
|
||||||
|
|
||||||
tm begin, end;
|
Array::Ptr segments = boost::make_shared<Array>();
|
||||||
LegacyTimePeriod::ProcessTimeRangeRaw(value, &reference, &begin, &end);
|
LegacyTimePeriod::ProcessTimeRanges(value, &reference, segments);
|
||||||
|
|
||||||
|
BOOST_FOREACH(const Value& vsegment, segments) {
|
||||||
|
Dictionary::Ptr segment = vsegment;
|
||||||
|
int begin = segment->Get("begin");
|
||||||
|
int end = segment->Get("end");
|
||||||
|
|
||||||
DbQuery query;
|
DbQuery query;
|
||||||
query.Table = GetType()->GetTable() + "_timeranges";
|
query.Table = GetType()->GetTable() + "_timeranges";
|
||||||
|
@ -107,8 +112,9 @@ void TimePeriodDbObject::OnConfigUpdate(void)
|
||||||
query.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
query.Fields->Set("instance_id", 0); /* DbConnection class fills in real ID */
|
||||||
query.Fields->Set("timeperiod_id", DbValue::FromObjectInsertID(tp));
|
query.Fields->Set("timeperiod_id", DbValue::FromObjectInsertID(tp));
|
||||||
query.Fields->Set("day", wday);
|
query.Fields->Set("day", wday);
|
||||||
query.Fields->Set("start_sec", begin.tm_hour * 3600 + begin.tm_min * 60 + begin.tm_sec);
|
query.Fields->Set("start_sec", begin % 86400);
|
||||||
query.Fields->Set("end_sec", end.tm_hour * 3600 + end.tm_min * 60 + end.tm_sec);
|
query.Fields->Set("end_sec", end % 86400);
|
||||||
OnQuery(query);
|
OnQuery(query);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue