Martin Peřina has uploaded a new change for review.

Change subject: core: Adds scheduled job DwhHeartBeat
......................................................................

core: Adds scheduled job DwhHeartBeat

Adds DwhHeartBeatInterval option to ConfigValues.
Adds scheduled job DwhHeartBeat that periodically updates dwhHeart
variable in dwh_history_timekeeping table.
DwhHeartBeatInterval is editable in engine-config.

Change-Id: Ib0db94681e678f10af40e2ffd3399231e0b8e421
Bug-Url: https://bugzilla.redhat.com/962177
Signed-off-by: Martin Perina <mper...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/dwh/DwhHeartBeat.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
M packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
M packaging/etc/engine-config/engine-config.properties
5 files changed, 75 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/28/19828/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java
index 3886002..2e89bf3 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java
@@ -8,6 +8,7 @@
 import javax.ejb.Singleton;
 import javax.ejb.Startup;
 
+import org.ovirt.engine.core.bll.dwh.DwhHeartBeat;
 import org.ovirt.engine.core.bll.gluster.GlusterJobsManager;
 import org.ovirt.engine.core.bll.job.ExecutionHandler;
 import org.ovirt.engine.core.bll.network.MacPoolManager;
@@ -88,6 +89,8 @@
         }
 
         SchedulingManager.getInstance().init();
+
+        new DwhHeartBeat().init();
     }
 
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/dwh/DwhHeartBeat.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/dwh/DwhHeartBeat.java
new file mode 100644
index 0000000..ccacb02
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/dwh/DwhHeartBeat.java
@@ -0,0 +1,64 @@
+package org.ovirt.engine.core.bll.dwh;
+
+import java.util.Date;
+import java.util.concurrent.TimeUnit;
+
+import org.ovirt.engine.core.common.businessentities.DwhHistoryTimekeeping;
+import 
org.ovirt.engine.core.common.businessentities.DwhHistoryTimekeepingVariable;
+import org.ovirt.engine.core.common.config.Config;
+import org.ovirt.engine.core.common.config.ConfigValues;
+import org.ovirt.engine.core.dal.dbbroker.DbFacade;
+import org.ovirt.engine.core.utils.log.Log;
+import org.ovirt.engine.core.utils.log.LogFactory;
+import org.ovirt.engine.core.utils.timer.OnTimerMethodAnnotation;
+import org.ovirt.engine.core.utils.timer.SchedulerUtilQuartzImpl;
+
+/**
+ * Job notifies DWH, that engine is up and running
+ */
+public class DwhHeartBeat {
+    /**
+     * Name of method to execute periodically
+     */
+    private static final String DWH_HEART_BEAT_METHOD = 
"engineIsRunningNotification";
+
+    /**
+     * Logger instance
+     */
+    private static Log log = LogFactory.getLog(DwhHeartBeat.class);
+
+    /**
+     * Instance of heartBeat variable
+     */
+    private DwhHistoryTimekeeping heartBeatVar;
+
+    /**
+     * Update {@code dwh_history_timekeeping} table to notify DWH, that engine 
is up an running
+     */
+    @OnTimerMethodAnnotation(DWH_HEART_BEAT_METHOD)
+    public void engineIsRunningNotification() {
+        try {
+            heartBeatVar.setDateTime(new Date());
+            
DbFacade.getInstance().getDwhHistoryTimekeepingDao().save(heartBeatVar);
+        } catch (Exception ex) {
+            log.error("Error updating DWH Heart Beat: ", ex);
+        }
+    }
+
+    /**
+     * Starts up DWH Heart Beat as a periodic job
+     */
+    public void init() {
+        log.info("Initializing DWH Heart Beat");
+        heartBeatVar = new DwhHistoryTimekeeping();
+        heartBeatVar.setVariable(DwhHistoryTimekeepingVariable.HEART_BEAT);
+
+        SchedulerUtilQuartzImpl.getInstance().scheduleAFixedDelayJob(this,
+                DWH_HEART_BEAT_METHOD,
+                new Class[] {},
+                new Object[] {},
+                0,
+                Config.<Integer> GetValue(ConfigValues.DwhHeartBeatInterval),
+                TimeUnit.SECONDS);
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
index 4b701fb..18d3d1a 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
@@ -1517,6 +1517,10 @@
     @DefaultValueAttribute("true")
     UseFqdnForRdpIfAvailable(539),
 
+    @TypeConverterAttribute(Integer.class)
+    @DefaultValueAttribute("30")
+    DwhHeartBeatInterval(540),
+
     Invalid(65535);
 
     private int intValue;
diff --git a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql 
b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
index 5c9d5a1..22d8f3c 100644
--- a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
+++ b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
@@ -621,6 +621,8 @@
 select fn_db_add_config_value('ExternalSchedulerEnabled','false','general');
 select 
fn_db_add_config_value('ExternalSchedulerResponseTimeout','120000','general');
 
+select fn_db_add_config_value('DwhHeartBeatInterval', '30', 'general');
+
 
------------------------------------------------------------------------------------
 --                  Update with override section
 
------------------------------------------------------------------------------------
diff --git a/packaging/etc/engine-config/engine-config.properties 
b/packaging/etc/engine-config/engine-config.properties
index 9fb2088..7a2b2bd 100644
--- a/packaging/etc/engine-config/engine-config.properties
+++ b/packaging/etc/engine-config/engine-config.properties
@@ -336,3 +336,5 @@
 ExternalSchedulerEnabled.type=Boolean
 ExternalSchedulerResponseTimeout.description=The response timeout of the 
external scheduler proxy
 ExternalSchedulerResponseTimeout.type=Integer
+DwhHeartBeatInterval.description="Interval after which DWH is informed that 
engine is running (in seconds)"
+DwhHeartBeatInterval.type=Integer


-- 
To view, visit http://gerrit.ovirt.org/19828
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib0db94681e678f10af40e2ffd3399231e0b8e421
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.3
Gerrit-Owner: Martin Peřina <mper...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to