]> granicus.if.org Git - icinga2/commitdiff
Moved calculation of next check timestamp into the cibsync component.
authorGunnar Beutner <gunnar.beutner@netways.de>
Wed, 18 Jul 2012 09:52:22 +0000 (11:52 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Wed, 18 Jul 2012 09:52:22 +0000 (11:52 +0200)
cib/servicestatusmessage.cpp
cib/servicestatusmessage.h
components/checker/checkercomponent.cpp
components/cibsync/cibsynccomponent.cpp

index bfc4687983bfa97054d382b27f63f71acdd8bc5e..02c6a3f16c0807c64b476fba007293b3111b07cd 100644 (file)
@@ -71,21 +71,6 @@ void ServiceStatusMessage::SetCurrentCheckAttempt(long attempt)
        Set("current_attempt", attempt);
 }
 
-bool ServiceStatusMessage::GetNextCheck(time_t *ts) const
-{
-       long value;
-       if (Get("next_check", &value)) {
-               *ts = value;
-               return true;
-       }
-       return false;
-}
-
-void ServiceStatusMessage::SetNextCheck(time_t ts)
-{
-       Set("next_check", static_cast<long>(ts));
-}
-
 bool ServiceStatusMessage::GetCheckResult(CheckResult *cr) const
 {
        Dictionary::Ptr obj;
index 934074a3784a94497e8a17564087d3c651ba60cc..74fca85a98e251304d220711cfb3289b140bc2d3 100644 (file)
@@ -41,9 +41,6 @@ public:
        bool GetCurrentCheckAttempt(long *attempt) const;
        void SetCurrentCheckAttempt(long attempt);
 
-       bool GetNextCheck(time_t *ts) const;
-       void SetNextCheck(time_t ts);
-
        bool GetCheckResult(CheckResult *cr) const;
        void SetCheckResult(CheckResult cr);
 };
index d77d063904380938db845d8154f958bce82ebfee..f4355efc3393a7a2a87e892602709cb44e1649fa 100644 (file)
@@ -104,9 +104,6 @@ void CheckerComponent::CheckCompletedHandler(Service service, const ScriptTask::
 {
        service.RemoveTag("current_task");
 
-       /* figure out when the next check is for this service */
-       service.UpdateNextCheck();
-
        try {
                Variant vresult = task->GetResult();
 
@@ -124,7 +121,6 @@ void CheckerComponent::CheckCompletedHandler(Service service, const ScriptTask::
                        params.SetState(service.GetState());
                        params.SetStateType(service.GetStateType());
                        params.SetCurrentCheckAttempt(service.GetCurrentCheckAttempt());
-                       params.SetNextCheck(service.GetNextCheck());
                        params.SetCheckResult(result);
 
                        rm.SetParams(params);
@@ -138,6 +134,11 @@ void CheckerComponent::CheckCompletedHandler(Service service, const ScriptTask::
                Logger::Write(LogWarning, "checker", msgbuf.str());
        }
 
+       /* figure out when the next check is for this service; the local
+        * cibsync component should've already done this as part of processing
+        * the CheckResult message, but lets do it again to be sure */
+       service.UpdateNextCheck();
+
        /* remove the service from the list of pending services; if it's not in the
         * list this was a manual (i.e. forced) check and we must not re-add the
         * service to the services list because it's already there. */
index b4badb2c215246eb85f09908659cabb428e18c93..de2d7098f51358aa09b5b2b793ade8a7861e3f80 100644 (file)
@@ -91,10 +91,6 @@ void CIBSyncComponent::ServiceStatusRequestHandler(const Endpoint::Ptr& sender,
 
        Service service = Service::GetByName(svcname);
 
-       time_t nextCheck;
-       if (params.GetNextCheck(&nextCheck))
-               service.SetNextCheck(nextCheck);
-
        ServiceState state;
        ServiceStateType stateType;
        if (params.GetState(&state) && params.GetStateType(&stateType)) {
@@ -123,6 +119,8 @@ void CIBSyncComponent::ServiceStatusRequestHandler(const Endpoint::Ptr& sender,
        if (params.GetCheckResult(&cr))
                service.SetLastCheckResult(cr);
 
+       service.UpdateNextCheck();
+
        time_t now;
        time(&now);
        CIB::UpdateTaskStatistics(now, 1);