Move ConvertTimestamp functionality into DB IDO

This is the only place where the timestamp is split into
sec and usec.
This commit is contained in:
Michael Friedrich 2017-12-06 16:18:26 +01:00
parent f2fe165ccb
commit 2478c4d053
4 changed files with 26 additions and 35 deletions

View File

@ -155,9 +155,8 @@ void DbEvents::FlappingChangedHandler(const Checkable::Ptr& checkable)
void DbEvents::LastNotificationChangedHandler(const Notification::Ptr& notification, const Checkable::Ptr& checkable) void DbEvents::LastNotificationChangedHandler(const Notification::Ptr& notification, const Checkable::Ptr& checkable)
{ {
double now = Utility::GetTime(); std::pair<unsigned long, unsigned long> now_bag = ConvertTimestamp(Utility::GetTime());
std::pair<unsigned long, unsigned long> now_bag = CompatUtility::ConvertTimestamp(now); std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(notification->GetNextNotification());
std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(notification->GetNextNotification());
Host::Ptr host; Host::Ptr host;
Service::Ptr service; Service::Ptr service;
@ -411,8 +410,7 @@ void DbEvents::RemoveCommentInternal(std::vector<DbQuery>& queries, const Commen
queries.emplace_back(std::move(query1)); queries.emplace_back(std::move(query1));
/* History - update deletion time for service/host */ /* History - update deletion time for service/host */
double now = Utility::GetTime(); std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
DbQuery query2; DbQuery query2;
query2.Table = "commenthistory"; query2.Table = "commenthistory";
@ -490,7 +488,7 @@ void DbEvents::AddDowntimeInternal(std::vector<DbQuery>& queries, const Downtime
/* flexible downtimes are started at trigger time */ /* flexible downtimes are started at trigger time */
if (downtime->GetFixed()) { if (downtime->GetFixed()) {
std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(downtime->GetStartTime()); std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(downtime->GetStartTime());
fields1->Set("actual_start_time", DbValue::FromTimestamp(time_bag.first)); fields1->Set("actual_start_time", DbValue::FromTimestamp(time_bag.first));
fields1->Set("actual_start_time_usec", time_bag.second); fields1->Set("actual_start_time_usec", time_bag.second);
fields1->Set("was_started", ((downtime->GetStartTime() <= Utility::GetTime()) ? 1 : 0)); fields1->Set("was_started", ((downtime->GetStartTime() <= Utility::GetTime()) ? 1 : 0));
@ -587,8 +585,7 @@ void DbEvents::RemoveDowntimeInternal(std::vector<DbQuery>& queries, const Downt
queries.emplace_back(std::move(query1)); queries.emplace_back(std::move(query1));
/* History - update actual_end_time, was_cancelled for service (and host in case) */ /* History - update actual_end_time, was_cancelled for service (and host in case) */
double now = Utility::GetTime(); std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
DbQuery query3; DbQuery query3;
query3.Table = "downtimehistory"; query3.Table = "downtimehistory";
@ -650,8 +647,7 @@ void DbEvents::TriggerDowntime(const Downtime::Ptr& downtime)
{ {
Checkable::Ptr checkable = downtime->GetCheckable(); Checkable::Ptr checkable = downtime->GetCheckable();
double now = Utility::GetTime(); std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
/* Status */ /* Status */
DbQuery query1; DbQuery query1;
@ -735,8 +731,7 @@ void DbEvents::AddAcknowledgementHistory(const Checkable::Ptr& checkable, const
Log(LogDebug, "DbEvents") Log(LogDebug, "DbEvents")
<< "add acknowledgement history for '" << checkable->GetName() << "'"; << "add acknowledgement history for '" << checkable->GetName() << "'";
double now = Utility::GetTime(); std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
unsigned long end_time = static_cast<long>(expiry); unsigned long end_time = static_cast<long>(expiry);
@ -835,8 +830,7 @@ void DbEvents::AddNotificationHistory(const Notification::Ptr& notification, con
<< "add notification history for '" << checkable->GetName() << "'"; << "add notification history for '" << checkable->GetName() << "'";
/* start and end happen at the same time */ /* start and end happen at the same time */
double now = Utility::GetTime(); std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
DbQuery query1; DbQuery query1;
query1.Table = "notifications"; query1.Table = "notifications";
@ -916,7 +910,7 @@ void DbEvents::AddStateChangeHistory(const Checkable::Ptr& checkable, const Chec
<< "add state change history for '" << checkable->GetName() << "'"; << "add state change history for '" << checkable->GetName() << "'";
double ts = cr->GetExecutionEnd(); double ts = cr->GetExecutionEnd();
std::pair<unsigned long, unsigned long> state_time_bag = CompatUtility::ConvertTimestamp(ts); std::pair<unsigned long, unsigned long> state_time_bag = ConvertTimestamp(ts);
DbQuery query1; DbQuery query1;
query1.Table = "statehistory"; query1.Table = "statehistory";
@ -1252,8 +1246,7 @@ void DbEvents::AddLogHistory(const Checkable::Ptr& checkable, const String& buff
Log(LogDebug, "DbEvents") Log(LogDebug, "DbEvents")
<< "add log entry history for '" << checkable->GetName() << "'"; << "add log entry history for '" << checkable->GetName() << "'";
double now = Utility::GetTime(); std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
DbQuery query1; DbQuery query1;
query1.Table = "logentries"; query1.Table = "logentries";
@ -1286,8 +1279,7 @@ void DbEvents::AddFlappingChangedHistory(const Checkable::Ptr& checkable)
Log(LogDebug, "DbEvents") Log(LogDebug, "DbEvents")
<< "add flapping history for '" << checkable->GetName() << "'"; << "add flapping history for '" << checkable->GetName() << "'";
double now = Utility::GetTime(); std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
DbQuery query1; DbQuery query1;
query1.Table = "flappinghistory"; query1.Table = "flappinghistory";
@ -1333,8 +1325,7 @@ void DbEvents::AddEnableFlappingChangedHistory(const Checkable::Ptr& checkable)
Log(LogDebug, "DbEvents") Log(LogDebug, "DbEvents")
<< "add flapping history for '" << checkable->GetName() << "'"; << "add flapping history for '" << checkable->GetName() << "'";
double now = Utility::GetTime(); std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
DbQuery query1; DbQuery query1;
query1.Table = "flappinghistory"; query1.Table = "flappinghistory";
@ -1401,10 +1392,10 @@ void DbEvents::AddCheckableCheckHistory(const Checkable::Ptr& checkable, const C
fields1->Set("state_type", checkable->GetStateType()); fields1->Set("state_type", checkable->GetStateType());
double start = cr->GetExecutionStart(); double start = cr->GetExecutionStart();
std::pair<unsigned long, unsigned long> time_bag_start = CompatUtility::ConvertTimestamp(start); std::pair<unsigned long, unsigned long> time_bag_start = ConvertTimestamp(start);
double end = cr->GetExecutionEnd(); double end = cr->GetExecutionEnd();
std::pair<unsigned long, unsigned long> time_bag_end = CompatUtility::ConvertTimestamp(end); std::pair<unsigned long, unsigned long> time_bag_end = ConvertTimestamp(end);
double execution_time = cr->CalculateExecutionTime(); double execution_time = cr->CalculateExecutionTime();
@ -1448,8 +1439,7 @@ void DbEvents::AddEventHandlerHistory(const Checkable::Ptr& checkable)
Log(LogDebug, "DbEvents") Log(LogDebug, "DbEvents")
<< "add eventhandler history for '" << checkable->GetName() << "'"; << "add eventhandler history for '" << checkable->GetName() << "'";
double now = Utility::GetTime(); std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
DbQuery query1; DbQuery query1;
query1.Table = "eventhandlers"; query1.Table = "eventhandlers";
@ -1520,3 +1510,12 @@ void DbEvents::AddExternalCommandHistory(double time, const String& command, con
query1.Fields = fields1; query1.Fields = fields1;
DbObject::OnQuery(query1); DbObject::OnQuery(query1);
} }
std::pair<unsigned long, unsigned long> DbEvents::ConvertTimestamp(double time)
{
unsigned long time_sec = static_cast<long>(time);
unsigned long time_usec = (time - time_sec) * 1000 * 1000;
return std::make_pair(time_sec, time_usec);
}

View File

@ -132,6 +132,8 @@ private:
static void AddDowntimeInternal(std::vector<DbQuery>& queries, const Downtime::Ptr& downtime, bool historical); static void AddDowntimeInternal(std::vector<DbQuery>& queries, const Downtime::Ptr& downtime, bool historical);
static void RemoveDowntimeInternal(std::vector<DbQuery>& queries, const Downtime::Ptr& downtime); static void RemoveDowntimeInternal(std::vector<DbQuery>& queries, const Downtime::Ptr& downtime);
static void EnableChangedHandlerInternal(const Checkable::Ptr& checkable, const String& fieldName, bool enabled); static void EnableChangedHandlerInternal(const Checkable::Ptr& checkable, const String& fieldName, bool enabled);
static std::pair<unsigned long, unsigned long> ConvertTimestamp(double time);
}; };
} }

View File

@ -507,14 +507,6 @@ String CompatUtility::UnEscapeString(const String& str)
return result; return result;
} }
std::pair<unsigned long, unsigned long> CompatUtility::ConvertTimestamp(double time)
{
unsigned long time_sec = static_cast<long>(time);
unsigned long time_usec = (time - time_sec) * 1000 * 1000;
return std::make_pair(time_sec, time_usec);
}
int CompatUtility::MapNotificationReasonType(NotificationType type) int CompatUtility::MapNotificationReasonType(NotificationType type)
{ {
switch (type) { switch (type) {

View File

@ -84,8 +84,6 @@ public:
static String GetCheckResultPerfdata(const CheckResult::Ptr& cr); static String GetCheckResultPerfdata(const CheckResult::Ptr& cr);
/* misc */ /* misc */
static std::pair<unsigned long, unsigned long> ConvertTimestamp(double time);
static int MapNotificationReasonType(NotificationType type); static int MapNotificationReasonType(NotificationType type);
static int MapExternalCommandType(const String& name); static int MapExternalCommandType(const String& name);