Hello Tomer Saban,
I'd like you to do a code review. Please visit
https://gerrit.ovirt.org/40990
to review the following change.
Change subject: core: Start a service to solve affinity role breakage
......................................................................
core: Start a service to solve affinity role breakage
TODO actual implementation of the service will follow. This is the base
service foundation
Change-Id: Id748b2e3c51d30d9b217ccd11adc7a858eb1c0d0
Bug-Url: https://bugzilla.redhat.com/1112332
Signed-off-by: Roy Golan <[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/scheduling/AresService.java
A
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/di/qualifier/Created.java
A
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/di/qualifier/Deleted.java
A
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/di/qualifier/Updated.java
M
backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java
6 files changed, 82 insertions(+), 2 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/90/40990/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 0ee566e..4845b6a 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
@@ -16,6 +16,7 @@
import org.ovirt.engine.core.bll.job.ExecutionHandler;
import org.ovirt.engine.core.bll.network.macpoolmanager.MacPoolPerDcSingleton;
import org.ovirt.engine.core.bll.pm.PmHealthCheckManager;
+import org.ovirt.engine.core.bll.scheduling.AresService;
import org.ovirt.engine.core.bll.scheduling.MigrationHandler;
import org.ovirt.engine.core.bll.scheduling.SchedulingManager;
import org.ovirt.engine.core.bll.storage.StoragePoolStatusHandler;
@@ -47,12 +48,12 @@
@Inject
private PmHealthCheckManager pmHealthCheckManager;
-
@Inject
private EngineBackupAwarenessManager engineBackupAwarenessManager;
-
@Inject
private HostDeviceManager hostDeviceManager;
+ @Inject
+ private AresService aresService;
/**
* This method is called upon the bean creation as part
diff --git
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/AresService.java
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/AresService.java
new file mode 100644
index 0000000..635aa13
--- /dev/null
+++
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/AresService.java
@@ -0,0 +1,57 @@
+package org.ovirt.engine.core.bll.scheduling;
+
+import org.ovirt.engine.core.common.businessentities.VDSGroup;
+import org.ovirt.engine.core.common.di.qualifier.Created;
+import org.ovirt.engine.core.common.di.qualifier.Deleted;
+import org.ovirt.engine.core.common.di.qualifier.Updated;
+import org.ovirt.engine.core.common.scheduling.AffinityGroup;
+import org.ovirt.engine.core.utils.timer.OnTimerMethodAnnotation;
+import org.ovirt.engine.core.utils.timer.SchedulerUtilQuartzImpl;
+
+import javax.annotation.PostConstruct;
+import javax.enterprise.event.Observes;
+import javax.inject.Singleton;
+import java.util.concurrent.TimeUnit;
+
+@Singleton
+public class AresService {
+
+ private String jobId;
+
+ @PostConstruct
+ private void init() {
+
+ long x = 3000; //TODO take from config -
ConfigValues.AresServiceInterval
+ long y = 3000; //TODO take from config -
ConfigValues.AresServiceInterval
+
+ /* initialize structures */
+ scheduleJobs(x, y);
+
+ }
+
+ @OnTimerMethodAnnotation("refresh")
+ public void refresh() {
+ //
+ }
+
+ public void onChange(@Observes @Updated @Created @Deleted AffinityGroup
affinityGroup) {
+ // handle affinity group changes
+ }
+
+ public void onChange(@Observes @Updated @Created @Deleted VDSGroup
cluster) {
+ // handle cluster changes
+ }
+
+ private void scheduleJobs(long x, long y) {
+ /* start the interval refreshing */
+ jobId = SchedulerUtilQuartzImpl.getInstance().scheduleAFixedDelayJob(
+ this,
+ "onTimer",
+ new Class[0],
+ new Object[0],
+ x,
+ y,
+ TimeUnit.MILLISECONDS);
+ }
+
+}
diff --git
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/di/qualifier/Created.java
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/di/qualifier/Created.java
new file mode 100644
index 0000000..4dc6cab
--- /dev/null
+++
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/di/qualifier/Created.java
@@ -0,0 +1,7 @@
+package org.ovirt.engine.core.common.di.qualifier;
+
+import javax.inject.Qualifier;
+
+@Qualifier
+public @interface Created {
+}
diff --git
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/di/qualifier/Deleted.java
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/di/qualifier/Deleted.java
new file mode 100644
index 0000000..897fc1a
--- /dev/null
+++
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/di/qualifier/Deleted.java
@@ -0,0 +1,7 @@
+package org.ovirt.engine.core.common.di.qualifier;
+
+import javax.inject.Qualifier;
+
+@Qualifier
+public @interface Deleted {
+}
diff --git
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/di/qualifier/Updated.java
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/di/qualifier/Updated.java
new file mode 100644
index 0000000..b388b8b
--- /dev/null
+++
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/di/qualifier/Updated.java
@@ -0,0 +1,7 @@
+package org.ovirt.engine.core.common.di.qualifier;
+
+import javax.inject.Qualifier;
+
+@Qualifier
+public @interface Updated {
+}
diff --git
a/backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java
b/backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java
index 95619ac..f4d26ad 100644
---
a/backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java
+++
b/backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java
@@ -35,6 +35,7 @@
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
@ConcurrencyManagement(ConcurrencyManagementType.BEAN)
public class SchedulerUtilQuartzImpl extends SchedulerUtilBaseImpl {
+
/**
* This method is called upon the bean creation as part
* of the management Service bean lifecycle.
--
To view, visit https://gerrit.ovirt.org/40990
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Id748b2e3c51d30d9b217ccd11adc7a858eb1c0d0
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Roy Golan <[email protected]>
Gerrit-Reviewer: Tomer Saban <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches