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.

Change-Id: I779240b3fe6a1e15a54e8bb5d201462092a6f13f
Bug-Url: https://bugzilla.redhat.com/962177
Signed-off-by: Martin Perina <[email protected]>
---
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
4 files changed, 73 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/67/19367/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 6dcab75..3e4a6fc 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
@@ -1513,6 +1513,10 @@
     @DefaultValueAttribute("60")
     AutoStartVmsRunnerIntervalInSeconds(538),
 
+    @TypeConverterAttribute(Integer.class)
+    @DefaultValueAttribute("30")
+    DwhHeartBeatInterval(539),
+
     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 a02d727..5e7e859 100644
--- a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
+++ b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
@@ -619,6 +619,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
 
------------------------------------------------------------------------------------


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I779240b3fe6a1e15a54e8bb5d201462092a6f13f
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Martin Peřina <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to