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

Reply via email to