]> granicus.if.org Git - icinga2/commitdiff
Move ConvertTimestamp functionality into DB IDO
authorMichael Friedrich <michael.friedrich@icinga.com>
Wed, 6 Dec 2017 15:18:26 +0000 (16:18 +0100)
committerMichael Friedrich <michael.friedrich@icinga.com>
Mon, 15 Jan 2018 12:39:34 +0000 (13:39 +0100)
This is the only place where the timestamp is split into
sec and usec.

lib/db_ido/dbevents.cpp
lib/db_ido/dbevents.hpp
lib/icinga/compatutility.cpp
lib/icinga/compatutility.hpp

index 24ffd0ce1cea9adfe42c950c7c81210955b29fb2..4620803f33bffea186a277e50a8d5857ce34cabe 100644 (file)
@@ -155,9 +155,8 @@ void DbEvents::FlappingChangedHandler(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 = CompatUtility::ConvertTimestamp(now);
-       std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(notification->GetNextNotification());
+       std::pair<unsigned long, unsigned long> now_bag = ConvertTimestamp(Utility::GetTime());
+       std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(notification->GetNextNotification());
 
        Host::Ptr host;
        Service::Ptr service;
@@ -411,8 +410,7 @@ void DbEvents::RemoveCommentInternal(std::vector<DbQuery>& queries, const Commen
        queries.emplace_back(std::move(query1));
 
        /* History - update deletion time for service/host */
-       double now = Utility::GetTime();
-       std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
+       std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
 
        DbQuery query2;
        query2.Table = "commenthistory";
@@ -490,7 +488,7 @@ void DbEvents::AddDowntimeInternal(std::vector<DbQuery>& queries, const Downtime
 
        /* flexible downtimes are started at trigger time */
        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_usec", time_bag.second);
                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));
 
        /* 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 = CompatUtility::ConvertTimestamp(now);
+       std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
 
        DbQuery query3;
        query3.Table = "downtimehistory";
@@ -650,8 +647,7 @@ void DbEvents::TriggerDowntime(const Downtime::Ptr& downtime)
 {
        Checkable::Ptr checkable = downtime->GetCheckable();
 
-       double now = Utility::GetTime();
-       std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
+       std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
 
        /* Status */
        DbQuery query1;
@@ -735,8 +731,7 @@ void DbEvents::AddAcknowledgementHistory(const Checkable::Ptr& checkable, const
        Log(LogDebug, "DbEvents")
                << "add acknowledgement history for '" << checkable->GetName() << "'";
 
-       double now = Utility::GetTime();
-       std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
+       std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
 
        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() << "'";
 
        /* start and end happen at the same time */
-       double now = Utility::GetTime();
-       std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
+       std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
 
        DbQuery query1;
        query1.Table = "notifications";
@@ -916,7 +910,7 @@ void DbEvents::AddStateChangeHistory(const Checkable::Ptr& checkable, const Chec
                << "add state change history for '" << checkable->GetName() << "'";
 
        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;
        query1.Table = "statehistory";
@@ -1252,8 +1246,7 @@ void DbEvents::AddLogHistory(const Checkable::Ptr& checkable, const String& buff
        Log(LogDebug, "DbEvents")
                << "add log entry history for '" << checkable->GetName() << "'";
 
-       double now = Utility::GetTime();
-       std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
+       std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
 
        DbQuery query1;
        query1.Table = "logentries";
@@ -1286,8 +1279,7 @@ void DbEvents::AddFlappingChangedHistory(const Checkable::Ptr& checkable)
        Log(LogDebug, "DbEvents")
                << "add flapping history for '" << checkable->GetName() << "'";
 
-       double now = Utility::GetTime();
-       std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
+       std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
 
        DbQuery query1;
        query1.Table = "flappinghistory";
@@ -1333,8 +1325,7 @@ void DbEvents::AddEnableFlappingChangedHistory(const Checkable::Ptr& checkable)
        Log(LogDebug, "DbEvents")
                << "add flapping history for '" << checkable->GetName() << "'";
 
-       double now = Utility::GetTime();
-       std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
+       std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
 
        DbQuery query1;
        query1.Table = "flappinghistory";
@@ -1401,10 +1392,10 @@ void DbEvents::AddCheckableCheckHistory(const Checkable::Ptr& checkable, const C
        fields1->Set("state_type", checkable->GetStateType());
 
        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();
-       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();
 
@@ -1448,8 +1439,7 @@ void DbEvents::AddEventHandlerHistory(const Checkable::Ptr& checkable)
        Log(LogDebug, "DbEvents")
                << "add eventhandler history for '" << checkable->GetName() << "'";
 
-       double now = Utility::GetTime();
-       std::pair<unsigned long, unsigned long> time_bag = CompatUtility::ConvertTimestamp(now);
+       std::pair<unsigned long, unsigned long> time_bag = ConvertTimestamp(Utility::GetTime());
 
        DbQuery query1;
        query1.Table = "eventhandlers";
@@ -1520,3 +1510,12 @@ void DbEvents::AddExternalCommandHistory(double time, const String& command, con
        query1.Fields = fields1;
        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);
+}
+
index db52ccf1b2253e574a9dea3c2ab2d4a67713e8d6..52523ba471c683ce11a059953dc7127e747cba9a 100644 (file)
@@ -132,6 +132,8 @@ private:
        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 EnableChangedHandlerInternal(const Checkable::Ptr& checkable, const String& fieldName, bool enabled);
+
+       static std::pair<unsigned long, unsigned long> ConvertTimestamp(double time);
 };
 
 }
index ba7d566ea880125ed8435dbb4ad929fe1856002a..12cd063c0fc97645bfb50d4932d90ddb5151fc88 100644 (file)
@@ -507,14 +507,6 @@ String CompatUtility::UnEscapeString(const String& str)
        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)
 {
        switch (type) {
index 25f827fec777586c12f97f642171ee6c80ee5706..bc4226392cfa815e4f0c087448ba93b82e8a184b 100644 (file)
@@ -84,8 +84,6 @@ public:
        static String GetCheckResultPerfdata(const CheckResult::Ptr& cr);
 
        /* misc */
-       static std::pair<unsigned long, unsigned long> ConvertTimestamp(double time);
-
        static int MapNotificationReasonType(NotificationType type);
        static int MapExternalCommandType(const String& name);