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 <[email protected]>
---
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 <[email protected]>
Gerrit-Reviewer: Arik Hadas <[email protected]>
Gerrit-Reviewer: Eli Mesika <[email protected]>
Gerrit-Reviewer: Omer Frenkel <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches