mirror of https://github.com/Icinga/icinga2.git
IcingaDB::PrepareObject(): round Notification#times.{begin,end} not to crash Go daemon
The latter expects ints, not floats - not to mention strings. Luckily Icinga already enforces numeric strings so that we can cast it to number.
This commit is contained in:
parent
a3dabde28a
commit
415b810abf
|
@ -1383,8 +1383,16 @@ bool IcingaDB::PrepareObject(const ConfigObject::Ptr& object, Dictionary::Ptr& a
|
||||||
attributes->Set("timeperiod_id", GetObjectIdentifier(timeperiod));
|
attributes->Set("timeperiod_id", GetObjectIdentifier(timeperiod));
|
||||||
|
|
||||||
if (notification->GetTimes()) {
|
if (notification->GetTimes()) {
|
||||||
attributes->Set("times_begin", notification->GetTimes()->Get("begin"));
|
auto begin (notification->GetTimes()->Get("begin"));
|
||||||
attributes->Set("times_end",notification->GetTimes()->Get("end"));
|
auto end (notification->GetTimes()->Get("end"));
|
||||||
|
|
||||||
|
if (begin != Empty) {
|
||||||
|
attributes->Set("times_begin", std::round((double)begin));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (end != Empty) {
|
||||||
|
attributes->Set("times_end", std::round((double)end));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
attributes->Set("notification_interval", notification->GetInterval());
|
attributes->Set("notification_interval", notification->GetInterval());
|
||||||
|
|
Loading…
Reference in New Issue