if (CommentProcessor::IsCommentExpired(comment))
continue;
- /* There's no way for us to dump comments that haven't been
- * assigned a legacy ID yet. */
- if (!comment->Contains("legacy_id"))
- continue;
-
if (!service)
fp << "hostcomment {" << "\n";
else
if (DowntimeProcessor::IsDowntimeExpired(downtime))
continue;
- /* There's no way for us to dump downtimes that haven't been
- * assigned a legacy ID yet. */
- if (!downtime->Contains("legacy_id"))
- continue;
-
if (!service)
fp << "hostdowntime {" << "\n";
else
comment->Set("author", author);
comment->Set("text", text);
comment->Set("expire_time", expireTime);
+ comment->Set("legacy_id", m_NextCommentID++);
Dictionary::Ptr comments = owner->Get("comments");
String id;
Dictionary::Ptr comment;
BOOST_FOREACH(tie(id, comment), comments) {
- int legacy_id;
-
- if (!comment->Contains("legacy_id")) {
- legacy_id = m_NextCommentID;
- m_NextCommentID++;
- comment->Set("legacy_id", legacy_id);
- } else {
- legacy_id = comment->Get("legacy_id");
- }
+ int legacy_id = comment->Get("legacy_id");
if (legacy_id >= m_NextCommentID)
m_NextCommentID = legacy_id + 1;
/* The legacy_id is already in use by another comment;
* this shouldn't usually happen - assign it a new ID */
- legacy_id = m_NextCommentID;
- m_NextCommentID++;
+ legacy_id = m_NextCommentID++;
comment->Set("legacy_id", legacy_id);
+ owner->Touch("comments");
}
m_LegacyCommentCache[legacy_id] = id;
downtime->Set("duration", duration);
downtime->Set("triggered_by", triggeredBy);
downtime->Set("trigger_time", 0);
+ downtime->Set("legacy_id", m_NextDowntimeID++);
Dictionary::Ptr downtimes = owner->Get("downtimes");
BOOST_FOREACH(tie(id, downtime), downtimes) {
double end_time = downtime->Get("end_time");
- int legacy_id;
-
- if (!downtime->Contains("legacy_id")) {
- legacy_id = m_NextDowntimeID;
- m_NextDowntimeID++;
- downtime->Set("legacy_id", legacy_id);
- } else {
- legacy_id = downtime->Get("legacy_id");
- }
+ int legacy_id = downtime->Get("legacy_id");
if (legacy_id >= m_NextDowntimeID)
m_NextDowntimeID = legacy_id + 1;
if (m_LegacyDowntimeCache.find(legacy_id) != m_LegacyDowntimeCache.end()) {
/* The legacy_id is already in use by another downtime;
* this shouldn't usually happen - assign it a new ID. */
- legacy_id = m_NextDowntimeID;
- m_NextDowntimeID++;
+ legacy_id = m_NextDowntimeID++;
downtime->Set("legacy_id", legacy_id);
+ owner->Touch("downtimes");
}
m_LegacyDowntimeCache[legacy_id] = id;