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
