Hello Eli Mesika, Omer Frenkel, Arik Hadas,

I'd like you to do a code review.  Please visit

    https://gerrit.ovirt.org/41039

to review the following change.

Change subject: core: Make VmpoolMonitor a BackendService and a CDI bean
......................................................................

core: Make VmpoolMonitor a BackendService and a CDI bean

Change-Id: Icaadcc92ae352e8a775dee321b70db0d3dab11f3
Signed-off-by: Roy Golan <rgo...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmPoolWithVmsCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolMonitor.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendCommandObjectsHandler.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendInternal.java
5 files changed, 38 insertions(+), 25 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/39/41039/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
index c39ef25..a58ac91 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
@@ -104,7 +104,6 @@
     private ErrorTranslator _vdsErrorsTranslator;
     private DateTime _startedAt;
     private static boolean firstInitialization = true;
-    private String poolMonitoringJobId;
     @Inject
     Injector injector;
     @Inject
@@ -200,14 +199,10 @@
         }
         // initialize CDI services
         loadService(CacheManager.class);
-
         // initialize configuration utils to use DB
         Config.setConfigUtils(new DBConfigUtils());
         // we need to initialize os-info before the compensations take place 
because of VmPoolCommandBase#osRepository
         initOsRepository();
-
-        //TODO temporal solution DbFacade in Utils
-        SimpleDependecyInjector.getInstance().bind(dbFacade);
 
         // When getting a proxy to this bean using JBoss embedded, the 
initialize method is called for each method
         // invocation on the proxy, as it is called by setup method which is 
@PostConstruct - the initialized flag
@@ -265,12 +260,7 @@
         // Set start-up time
         _startedAt = DateTime.getNow();
 
-        int vmPoolMonitorIntervalInMinutes = 
Config.<Integer>getValue(ConfigValues.VmPoolMonitorIntervalInMinutes);
-        poolMonitoringJobId =
-                
SchedulerUtilQuartzImpl.getInstance().scheduleAFixedDelayJob(new 
VmPoolMonitor(),
-                        "managePrestartedVmsInAllVmPools", new Class[] {}, new 
Object[] {},
-                        vmPoolMonitorIntervalInMinutes,
-                        vmPoolMonitorIntervalInMinutes, TimeUnit.MINUTES);
+        loadService(VmPoolMonitor.class);
 
         int autoStartVmsRunnerIntervalInSeconds =
                 
Config.<Integer>getValue(ConfigValues.AutoStartVmsRunnerIntervalInSeconds);
@@ -691,12 +681,6 @@
 
     protected QueriesCommandBase<?> createQueryCommand(VdcQueryType 
actionType, VdcQueryParametersBase parameters, EngineContext engineContext) {
         return CommandsFactory.createQueryCommand(actionType, parameters, 
engineContext);
-    }
-
-    @Override
-    @ExcludeClassInterceptors
-    public void triggerPoolMonitoringJob() {
-        SchedulerUtilQuartzImpl.getInstance().triggerJob(poolMonitoringJobId);
     }
 
     private void initVmPropertiesUtils() {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmPoolWithVmsCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmPoolWithVmsCommand.java
index cc1c8d4..e46cc71 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmPoolWithVmsCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmPoolWithVmsCommand.java
@@ -11,11 +11,15 @@
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase;
 
+import javax.inject.Inject;
+
 @DisableInPrepareMode
 @NonTransactiveCommandAttribute(forceCompensation = true)
 public class UpdateVmPoolWithVmsCommand<T extends AddVmPoolWithVmsParameters> 
extends CommonVmPoolWithVmsCommand<T>  implements RenamedEntityInfoProvider{
 
     private VmPool oldPool;
+    @Inject
+    private VmPoolMonitor vmPoolMonitor;
 
     /**
      * Constructor for command creation when compensation is applied on startup
@@ -67,7 +71,7 @@
     @Override
     protected void executeCommand() {
         super.executeCommand();
-        Backend.getInstance().triggerPoolMonitoringJob();
+        vmPoolMonitor.triggerPoolMonitoringJob();
     }
 
     @Override
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolMonitor.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolMonitor.java
index dfb59ba..e65b24b 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolMonitor.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolMonitor.java
@@ -1,9 +1,11 @@
 package org.ovirt.engine.core.bll;
 
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 import org.ovirt.engine.core.bll.job.ExecutionHandler;
 import org.ovirt.engine.core.common.AuditLogType;
+import org.ovirt.engine.core.common.BackendService;
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.RunVmParams;
 import org.ovirt.engine.core.common.action.VdcActionType;
@@ -19,12 +21,36 @@
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector;
 import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase;
+import org.ovirt.engine.core.di.qualifier.InMemory;
 import org.ovirt.engine.core.utils.timer.OnTimerMethodAnnotation;
+import org.ovirt.engine.core.utils.timer.SchedulerUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class VmPoolMonitor {
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+@Singleton
+public class VmPoolMonitor implements BackendService {
     private static final Logger log = 
LoggerFactory.getLogger(VmPoolMonitor.class);
+
+    private String poolMonitoringJobId;
+    @Inject @InMemory
+    private SchedulerUtil schedulerUtil;
+    @PostConstruct
+    private void init() {
+        int vmPoolMonitorIntervalInMinutes = 
Config.<Integer>getValue(ConfigValues.VmPoolMonitorIntervalInMinutes);
+        poolMonitoringJobId =
+                schedulerUtil.scheduleAFixedDelayJob(
+                        this,
+                        "managePrestartedVmsInAllVmPools",
+                        new Class[] {},
+                        new Object[] {},
+                        vmPoolMonitorIntervalInMinutes,
+                        vmPoolMonitorIntervalInMinutes,
+                        TimeUnit.MINUTES);
+    }
 
     /**
      * Goes over each Vmpool, and makes sure there are at least as much 
prestarted Vms as defined in the prestarted_vms
@@ -38,6 +64,10 @@
         }
     }
 
+    public void triggerPoolMonitoringJob() {
+        schedulerUtil.triggerJob(poolMonitoringJobId);
+    }
+
     /**
      * Checks how many prestarted vms are missing in the pool, and attempts to 
prestart either that amount or BATCH_SIZE
      * (the minimum between the two).
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendCommandObjectsHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendCommandObjectsHandler.java
index 6770fae..b7fc080 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendCommandObjectsHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendCommandObjectsHandler.java
@@ -12,7 +12,7 @@
  * is desired that in case a command should be created it should be still done 
by {@link CommandsFactory} at the
  * {@link Backend} bean code.
  */
-public interface BackendCommandObjectsHandler {
+public interface  BackendCommandObjectsHandler {
 
     /**
      * Creates an instance of the action. This should be used by {@code 
CommandBase} to insert place holders for tasks
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendInternal.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendInternal.java
index a34511d..5b82bcf 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendInternal.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendInternal.java
@@ -80,11 +80,6 @@
 
     DateTime getStartedAt();
 
-    /**
-     * Execute the pool monitoring job immediately
-     */
-    void triggerPoolMonitoringJob();
-
     VdcQueryReturnValue runInternalQuery(VdcQueryType queryType, 
VdcQueryParametersBase queryParameters);
 
 }


-- 
To view, visit https://gerrit.ovirt.org/41039
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Icaadcc92ae352e8a775dee321b70db0d3dab11f3
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Roy Golan <rgo...@redhat.com>
Gerrit-Reviewer: Arik Hadas <aha...@redhat.com>
Gerrit-Reviewer: Eli Mesika <emes...@redhat.com>
Gerrit-Reviewer: Omer Frenkel <ofren...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to