Ramesh N has uploaded a new change for review.

Change subject: engine: <WIP> event subscribtion support for gluster events
......................................................................

engine: <WIP> event subscribtion support for gluster events

Enabling event subscriber framework for gluster events in
ovirt-engine.

Change-Id: I7c6caa37a75a2bb91b2a4f190d1d99ee7b4586da
Signed-off-by: Ramesh Nachimuthu <rnach...@redhat.com>
---
M backend/manager/dependencies/pom.xml
A 
backend/manager/dependencies/src/main/modules/com/google/common/eventbus/main/module.xml
M backend/manager/modules/bll/pom.xml
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GlusterEvent.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GlusterEventProcessor.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/CreateGlusterVolumeCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendInternal.java
M ear/src/main/resources/META-INF/MANIFEST.MF
9 files changed, 106 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/79/24079/1

diff --git a/backend/manager/dependencies/pom.xml 
b/backend/manager/dependencies/pom.xml
index b393894..70607db 100644
--- a/backend/manager/dependencies/pom.xml
+++ b/backend/manager/dependencies/pom.xml
@@ -75,6 +75,12 @@
       <version>${xmlrpc-client.version}</version>
     </dependency>
 
+       <dependency>
+       <groupId>org.sonatype.sisu</groupId>
+       <artifactId>sisu-guava</artifactId>
+       <version>0.11.1</version>
+       </dependency>
+
     <dependency>
       <groupId>org.ovirt.otopi</groupId>
       <artifactId>otopi</artifactId>
@@ -405,6 +411,12 @@
                 <moduleName>com.woorea.openstack.sdk</moduleName>
               </module>
 
+                        <module>
+                          <groupId>org.sonatype.sisu</groupId>
+                               <artifactId>sisu-guava</artifactId>
+                            <moduleName>com.google.common.eventbus</moduleName>
+                        </module>
+
               <module>
                 <groupId>com.woorea</groupId>
                 <artifactId>quantum-client</artifactId>
diff --git 
a/backend/manager/dependencies/src/main/modules/com/google/common/eventbus/main/module.xml
 
b/backend/manager/dependencies/src/main/modules/com/google/common/eventbus/main/module.xml
new file mode 100644
index 0000000..a142096
--- /dev/null
+++ 
b/backend/manager/dependencies/src/main/modules/com/google/common/eventbus/main/module.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<module xmlns="urn:jboss:module:1.1" name="org.sonatype.sisu">
+
+  <resources>
+    <resource-root path="sisu-guava.jar"/>
+  </resources>
+
+  <dependencies>
+    <module name="com.google.common.eventbus"/>
+  </dependencies>
+
+</module>
\ No newline at end of file
diff --git a/backend/manager/modules/bll/pom.xml 
b/backend/manager/modules/bll/pom.xml
index 1e82e6c..7b9ac71 100644
--- a/backend/manager/modules/bll/pom.xml
+++ b/backend/manager/modules/bll/pom.xml
@@ -99,6 +99,12 @@
       <artifactId>commons-collections</artifactId>
     </dependency>
 
+       <dependency>
+       <groupId>org.sonatype.sisu</groupId>
+       <artifactId>sisu-guava</artifactId>
+       <version>0.11.1</version>
+       </dependency>
+            
     <dependency>
       <groupId>javax.transaction</groupId>
       <artifactId>jta</artifactId>
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 7640521..11fd7ac 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
@@ -20,6 +20,7 @@
 import org.apache.commons.collections.KeyValue;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.exception.ExceptionUtils;
+import org.ovirt.engine.core.bll.attestationbroker.AttestThread;
 import org.ovirt.engine.core.bll.context.CommandContext;
 import 
org.ovirt.engine.core.bll.interceptors.ThreadLocalSessionCleanerInterceptor;
 import org.ovirt.engine.core.bll.interfaces.BackendCommandObjectsHandler;
@@ -74,8 +75,8 @@
 import org.ovirt.engine.core.utils.log.LogFactory;
 import org.ovirt.engine.core.utils.osinfo.OsInfoPreferencesLoader;
 import org.ovirt.engine.core.utils.timer.SchedulerUtilQuartzImpl;
-import org.ovirt.engine.core.bll.attestationbroker.AttestThread;
 
+import com.google.common.eventbus.EventBus;
 // Here we use a Singleton Bean
 // The @Startup annotation is to make sure the bean is initialized on startup.
 // @ConcurrencyManagement - we use bean managed concurrency:
@@ -98,7 +99,7 @@
     private DateTime _startedAt;
     private static boolean firstInitialization = true;
     private String poolMonitoringJobId;
-
+    private EventBus eventBus;
     public static BackendInternal getInstance() {
         return EjbUtils.findBean(BeanType.BACKEND, BeanProxyType.LOCAL);
     }
@@ -197,7 +198,7 @@
         initOsRepository();
         initSearchDependencies();
         initHandlers();
-
+        initEventBus();
         final String AppErrorsFileName = "bundles/AppErrors.properties";
         final String VdsErrorsFileName = "bundles/VdsmErrors.properties";
         errorsTranslator = new ErrorTranslatorImpl(AppErrorsFileName, 
VdsErrorsFileName);
@@ -247,6 +248,15 @@
                 1, quotaCacheIntervalInMinutes, TimeUnit.MINUTES);
         //initializes attestation
         initAttestation();
+    }
+
+    private void initEventBus() {
+        this.eventBus = new EventBus("EventBus");
+        initializeGlusterEventSubscriber();
+    }
+
+    private void initializeGlusterEventSubscriber() {
+        this.eventBus.register(new GlusterEventProcessor());
     }
 
     private void initAttestation() {
@@ -675,5 +685,10 @@
         return runAction(action, true, 
ExecutionHandler.createDefaultContexForTasks(executionContext));
     }
 
+    @Override
+    public EventBus getEventBus() {
+        return eventBus;
+    }
+
     private static final Log log = LogFactory.getLog(Backend.class);
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GlusterEvent.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GlusterEvent.java
new file mode 100644
index 0000000..de81049
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GlusterEvent.java
@@ -0,0 +1,34 @@
+package org.ovirt.engine.core.bll;
+
+public class GlusterEvent {
+
+    private String eventName;
+    private String eventType;
+    private Object eventEntity;
+
+    public GlusterEvent(String eventName, String eventType, Object 
eventEntity) {
+        super();
+        this.eventName = eventName;
+        this.eventType = eventType;
+        this.eventEntity = eventEntity;
+    }
+
+    public Object getEventEntity() {
+        return eventEntity;
+    }
+    public void setEventEntity(Object eventEntity) {
+        this.eventEntity = eventEntity;
+    }
+    public String getEventType() {
+        return eventType;
+    }
+    public void setEventType(String eventType) {
+        this.eventType = eventType;
+    }
+    public String getEventName() {
+        return eventName;
+    }
+    public void setEventName(String eventName) {
+        this.eventName = eventName;
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GlusterEventProcessor.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GlusterEventProcessor.java
new file mode 100644
index 0000000..76ef1de
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GlusterEventProcessor.java
@@ -0,0 +1,11 @@
+package org.ovirt.engine.core.bll;
+
+import com.google.common.eventbus.Subscribe;
+
+public class GlusterEventProcessor {
+
+    @Subscribe
+    public void handleGlusterEvents(GlusterEvent event) {
+        Object eventEntity = event.getEventEntity();
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/CreateGlusterVolumeCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/CreateGlusterVolumeCommand.java
index d19d3d3..bb8411a 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/CreateGlusterVolumeCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/CreateGlusterVolumeCommand.java
@@ -5,6 +5,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.ovirt.engine.core.bll.GlusterEvent;
 import org.ovirt.engine.core.bll.LockIdNameAttribute;
 import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute;
 import org.ovirt.engine.core.bll.context.CommandContext;
@@ -173,6 +174,11 @@
         setVolumeOptions(createdVolume);
 
         getReturnValue().setActionReturnValue(createdVolume.getId());
+        raiseGlusterEvent(createdVolume);
+    }
+
+    private void raiseGlusterEvent(GlusterVolumeEntity createdVolume) {
+        getBackend().getEventBus().post(new GlusterEvent("VOLUME_CREATED", 
"VOLUME_EVENT", createdVolume));
     }
 
     private void setVolumeType(GlusterVolumeEntity createdVolume) {
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 5377f94..e7bc777 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
@@ -13,6 +13,8 @@
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.DateTime;
 
+import com.google.common.eventbus.EventBus;
+
 public interface BackendInternal extends BackendLocal {
 
     VdcReturnValueBase runInternalAction(VdcActionType actionType, 
VdcActionParametersBase parameters);
@@ -82,4 +84,6 @@
     ArrayList<VdcReturnValueBase> runInternalMultipleActions(VdcActionType 
actionType,
             ArrayList<VdcActionParametersBase> parameters,
             ExecutionContext executionContext);
+
+    EventBus getEventBus();
 }
diff --git a/ear/src/main/resources/META-INF/MANIFEST.MF 
b/ear/src/main/resources/META-INF/MANIFEST.MF
index 0e2ecec..64ae51b 100644
--- a/ear/src/main/resources/META-INF/MANIFEST.MF
+++ b/ear/src/main/resources/META-INF/MANIFEST.MF
@@ -6,6 +6,7 @@
  org.apache.commons.collections,
  org.apache.commons.httpclient,
  org.apache.commons.lang,
+ com.google.common.eventbus,
  org.apache.log4j,
  org.apache.mina,
  org.apache.xmlrpc,
@@ -24,4 +25,4 @@
  org.quartz,
  org.springframework,
  com.woorea.openstack.sdk services,
- org.yaml.snakeyaml
+ org.yaml.snakeyaml
\ No newline at end of file


-- 
To view, visit http://gerrit.ovirt.org/24079
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7c6caa37a75a2bb91b2a4f190d1d99ee7b4586da
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ramesh N <rnach...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to