Piotr Kliczewski has uploaded a new change for review.

Change subject: jsonrpc: Stomp changes in vdsbroker
......................................................................

jsonrpc: Stomp changes in vdsbroker

Stomp reactor used in vdsbroker.


Bug-Url: https://bugzilla.redhat.com/1081049
Change-Id: If78de6620ba6891543531ac8ddd633b67828a89c
Signed-off-by: pkliczewski <[email protected]>
---
M backend/manager/dependencies/pom.xml
A 
backend/manager/dependencies/src/main/modules/org/apache/qpid-proton-j/main/module.xml
M 
backend/manager/dependencies/src/main/modules/org/ovirt/vdsm-jsonrpc-java/main/module.xml
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcUtils.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java
M 
backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcIntegrationTest.java
A 
backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/jsonrpc/ProtonIntegrationTest.java
M pom.xml
10 files changed, 139 insertions(+), 15 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/83/26783/1

diff --git a/backend/manager/dependencies/pom.xml 
b/backend/manager/dependencies/pom.xml
index 8abaf59..ec896df 100644
--- a/backend/manager/dependencies/pom.xml
+++ b/backend/manager/dependencies/pom.xml
@@ -100,6 +100,12 @@
     </dependency>
 
     <dependency>
+        <groupId>org.apache.qpid</groupId>
+        <artifactId>proton-j</artifactId>
+        <version>${proton-j.version}</version>
+    </dependency>
+
+    <dependency>
       <groupId>org.quartz-scheduler</groupId>
       <artifactId>quartz</artifactId>
       <version>${quartz.version}</version>
@@ -334,6 +340,12 @@
               </module>
 
               <module>
+                <groupId>org.apache.qpid</groupId>
+                <artifactId>proton-j</artifactId>
+                <moduleName>org.apache.qpid-proton-j</moduleName>
+              </module>
+
+              <module>
                 <groupId>org.quartz-scheduler</groupId>
                 <artifactId>quartz</artifactId>
                 <moduleName>org.quartz</moduleName>
diff --git 
a/backend/manager/dependencies/src/main/modules/org/apache/qpid-proton-j/main/module.xml
 
b/backend/manager/dependencies/src/main/modules/org/apache/qpid-proton-j/main/module.xml
new file mode 100644
index 0000000..0cc20b2
--- /dev/null
+++ 
b/backend/manager/dependencies/src/main/modules/org/apache/qpid-proton-j/main/module.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<module xmlns="urn:jboss:module:1.1" name="org.apache.qpid-proton-j">
+
+  <resources>
+    <resource-root path="proton-j.jar"/>
+  </resources>
+
+  <!-- dependencies>
+    <module name="javax.api"/>
+    <module name="org.apache.commons.logging"/>
+    <module name="org.codehaus.jackson.jackson-mapper-asl"/>
+    <module name="org.codehaus.jackson.jackson-core-asl"/>
+  </dependencies -->
+
+</module>
\ No newline at end of file
diff --git 
a/backend/manager/dependencies/src/main/modules/org/ovirt/vdsm-jsonrpc-java/main/module.xml
 
b/backend/manager/dependencies/src/main/modules/org/ovirt/vdsm-jsonrpc-java/main/module.xml
index bd7ab25..e20babb 100644
--- 
a/backend/manager/dependencies/src/main/modules/org/ovirt/vdsm-jsonrpc-java/main/module.xml
+++ 
b/backend/manager/dependencies/src/main/modules/org/ovirt/vdsm-jsonrpc-java/main/module.xml
@@ -11,6 +11,7 @@
     <module name="org.apache.commons.logging"/>
     <module name="org.codehaus.jackson.jackson-mapper-asl"/>
     <module name="org.codehaus.jackson.jackson-core-asl"/>
+    <module name="org.apache.qpid-proton-j" />
   </dependencies>
 
 </module>
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
index 8af43d8..c79ebb7 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
@@ -197,8 +197,8 @@
         int clientRetries = Config.<Integer> getValue(ConfigValues.vdsRetries);
 
         if (_vds.getPort() == JSONRPC_PORT) {
-            _vdsProxy = new 
JsonRpcVdsServer(JsonRpcUtils.createClient(_vds.getHostName(),
-                            _vds.getPort(), connectionTimeOut,
+            _vdsProxy = new 
JsonRpcVdsServer(JsonRpcUtils.createStompClient(_vds.getHostName(),
+                            /*_vds.getPort()*/ 61613, connectionTimeOut,
                             clientTimeOut, clientRetries,
                             Config.<Boolean> 
getValue(ConfigValues.EncryptHostCommunication)));
         } else {
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java
index 7ef44e6..5963379 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/irsbroker/IrsBrokerCommand.java
@@ -547,8 +547,8 @@
                         int clientRetries = Config.<Integer> 
getValue(ConfigValues.vdsRetries);
 
                         if (getmIrsPort() == JSONRPC_PORT) {
-                            privatemIrsProxy = new 
JsonRpcIIrsServer(JsonRpcUtils.createClient(host,
-                                    getmIrsPort(), connectionTimeOut,
+                            privatemIrsProxy = new 
JsonRpcIIrsServer(JsonRpcUtils.createStompClient(host,
+                                    /*getmIrsPort()*/ 61613, connectionTimeOut,
                                     clientTimeOut, clientRetries,
                                     Config.<Boolean> 
getValue(ConfigValues.EncryptHostCommunication)));
                         } else {
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcUtils.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcUtils.java
index 9e47e82..b82ea49 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcUtils.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcUtils.java
@@ -11,27 +11,54 @@
 import org.ovirt.vdsm.jsonrpc.client.reactors.Reactor;
 import org.ovirt.vdsm.jsonrpc.client.reactors.ReactorClient;
 import org.ovirt.vdsm.jsonrpc.client.reactors.ReactorFactory;
+import org.ovirt.vdsm.jsonrpc.client.reactors.ReactorType;
 import org.ovirt.vdsm.jsonrpc.client.utils.retry.RetryPolicy;
 
 public class JsonRpcUtils {
     private static Log log = LogFactory.getLog(JsonRpcUtils.class);
 
     public static final int JSONRPC_PORT = 4044;
+    public static final int PROTON_PORT = 5672;
 
-    public static JsonRpcClient createClient(String hostName, int port, int 
connectionTimeOut,
-            int clientTimeOut, int connectionRetry, boolean isSecure) {
+    public static JsonRpcClient createTcpClient(String hostname, int port, int 
connectionTimeout,
+            int clientTimeout, int connectionRetry, boolean isSecure) {
+        return createClient(hostname, port, connectionTimeout, clientTimeout, 
connectionRetry, isSecure, ReactorType.TCP);
+    }
+
+    private static ManagerProvider getManagerProvider(boolean isSecure) {
         ManagerProvider provider = null;
         if (isSecure) {
             provider = new EngineManagerProvider();
         }
+        return provider;
+    }
+
+    private static JsonRpcClient getJsonClient(Reactor reactor, String 
hostName, int port, int connectionTimeOut,
+            int clientTimeOut, int connectionRetry) throws 
ClientConnectionException {
+        final ReactorClient client = reactor.createClient(hostName, port);
+        client.setRetryPolicy(new RetryPolicy(connectionTimeOut, 
connectionRetry, IOException.class));
+        ResponseWorker worker = ReactorFactory.getWorker();
+        JsonRpcClient jsonClient = worker.register(client);
+        jsonClient.setRetryPolicy(new RetryPolicy(clientTimeOut, 
connectionRetry, IOException.class));
+        return jsonClient;
+    }
+
+    public static JsonRpcClient createProtonClient(String hostname, int port, 
int connectionTimeout,
+            int clientTimeout, int connectionRetry, boolean isSecure) {
+        return createClient(hostname, port, connectionTimeout, clientTimeout, 
connectionRetry, isSecure, ReactorType.PROTON);
+    }
+
+    public static JsonRpcClient createStompClient(String hostname, int port, 
int connectionTimeout,
+            int clientTimeout, int connectionRetry, boolean isSecure) {
+        return createClient(hostname, port, connectionTimeout, clientTimeout, 
connectionRetry, isSecure, ReactorType.STOMP);
+    }
+
+    private static JsonRpcClient createClient(String hostname, int port, int 
connectionTimeout,
+            int clientTimeout, int connectionRetry, boolean isSecure, 
ReactorType type) {
+        final ManagerProvider provider = getManagerProvider(isSecure);
         try {
-            final Reactor reactor = ReactorFactory.getReactor(provider);
-            final ReactorClient client = reactor.createClient(hostName, port);
-            client.setRetryPolicy(new RetryPolicy(connectionTimeOut, 
connectionRetry, IOException.class));
-            ResponseWorker worker = ReactorFactory.getWorker();
-            JsonRpcClient jsonClient = worker.register(client);
-            jsonClient.setRetryPolicy(new RetryPolicy(clientTimeOut, 
connectionRetry, IOException.class));
-            return jsonClient;
+            final Reactor reactor = ReactorFactory.getReactor(provider, type);
+            return getJsonClient(reactor, hostname, port, connectionTimeout, 
clientTimeout, connectionRetry);
         } catch (ClientConnectionException e) {
             log.error("Exception occured during building ssl context or 
obtaining selector", e);
             throw new IllegalStateException(e);
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java
index b04c978..3f98c05 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java
@@ -1385,4 +1385,15 @@
                 new FutureMap(this.client, request);
         return new StatusOnlyReturnForXmlRpc(response);
     }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc setHaMaintenanceMode(String mode, boolean 
enabled) {
+        JsonRpcRequest request =
+                new 
RequestBuilder("Host.setHaMaintenanceMode").withParameter("mode", mode)
+                        .withParameter("enabled", enabled)
+                        .build();
+        Map<String, Object> response =
+                new FutureMap(this.client, request);
+        return new StatusOnlyReturnForXmlRpc(response);
+    }
 }
diff --git 
a/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcIntegrationTest.java
 
b/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcIntegrationTest.java
index 7e6813c..edb76e6 100644
--- 
a/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcIntegrationTest.java
+++ 
b/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcIntegrationTest.java
@@ -21,7 +21,7 @@
 
     @Test
     public void testGetVdsCapabilities() throws InterruptedException, 
ExecutionException, ClientConnectionException {
-        JsonRpcClient client = JsonRpcUtils.createClient(HOST_ADDRESS, PORT, 
TIMEOUT, 0, TIMEOUT, true);
+        JsonRpcClient client = JsonRpcUtils.createStompClient(HOST_ADDRESS, 
PORT, TIMEOUT, 0, TIMEOUT, true);
         final JsonRpcRequest request = new 
RequestBuilder("Host.getCapabilities").build();
         Map<String, Object> map = new FutureMap(client, request);
         assertTrue(map.isEmpty());
diff --git 
a/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/jsonrpc/ProtonIntegrationTest.java
 
b/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/jsonrpc/ProtonIntegrationTest.java
new file mode 100644
index 0000000..261714c
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/jsonrpc/ProtonIntegrationTest.java
@@ -0,0 +1,55 @@
+package org.ovirt.engine.core.vdsbroker.jsonrpc;
+
+import static junit.framework.Assert.assertFalse;
+
+import java.util.Map;
+import java.util.concurrent.ExecutionException;
+
+import org.junit.Ignore;
+import org.junit.Test;
+import org.ovirt.vdsm.jsonrpc.client.ClientConnectionException;
+import org.ovirt.vdsm.jsonrpc.client.JsonRpcClient;
+import org.ovirt.vdsm.jsonrpc.client.JsonRpcRequest;
+import org.ovirt.vdsm.jsonrpc.client.RequestBuilder;
+
+@Ignore
+public class ProtonIntegrationTest {
+    private final static String HOST_ADDRESS = "192.168.1.10";
+    private final static int PORT = 5672;
+    private final static int TIMEOUT = 5000;
+
+    @Test
+    public void testGetVdsCapabilities() throws InterruptedException, 
ExecutionException, ClientConnectionException {
+        JsonRpcClient client = JsonRpcUtils.createProtonClient(HOST_ADDRESS, 
PORT, TIMEOUT, 0, TIMEOUT, false);
+        final JsonRpcRequest request = new 
RequestBuilder("Host.getCapabilities").build();
+        Map<String, Object> map = new FutureMap(client, request);
+        assertFalse(map.isEmpty());
+
+        final JsonRpcRequest hwInforequest = new 
RequestBuilder("Host.getHardwareInfo").build();
+        Map<String, Object> hwInfoMap = new FutureMap(client, hwInforequest);
+        assertFalse(hwInfoMap.isEmpty());
+
+        client.close();
+    }
+
+    /*
+     * For ssl this test requires ENGINE_DEFAULTS and ENGINE_VARS environment 
variables to be set.
+     *
+     * ENGINE_DEFAULTS = 
$HOME/ovirt-engine/share/ovirt-engine/services/ovirt-engine/ovirt-engine.conf
+     * ENGINE_VARS = $HOME/ovirt-engine/etc/ovirt-engine/engine.conf
+     */
+    @Test
+    public void testSecureGetVdsCapabilities() throws InterruptedException, 
ExecutionException, ClientConnectionException {
+        JsonRpcClient client = JsonRpcUtils.createProtonClient(HOST_ADDRESS, 
PORT, TIMEOUT, 0, TIMEOUT, true);
+
+        final JsonRpcRequest capsRequest = new 
RequestBuilder("Host.getCapabilities").build();
+        Map<String, Object> capsMap = new FutureMap(client, capsRequest);
+        assertFalse(capsMap.isEmpty());
+
+        final JsonRpcRequest hwInforequest = new 
RequestBuilder("Host.getHardwareInfo").build();
+        Map<String, Object> hwInfoMap = new FutureMap(client, hwInforequest);
+        assertFalse(hwInfoMap.isEmpty());
+
+        client.close();
+    }
+}
diff --git a/pom.xml b/pom.xml
index 20e1842..32c8e78 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,9 +71,11 @@
     <mina-core.version>2.0.1</mina-core.version>
     <sshd-core.version>0.7.0</sshd-core.version>
     <otopi.version>1.1.0</otopi.version>
-    <ovirt-host-deploy.version>1.1.0</ovirt-host-deploy.version>
     
<org.ovirt.engine.api.ovirt-engine-extensions-api.version>0.0.0-SNAPSHOT</org.ovirt.engine.api.ovirt-engine-extensions-api.version>
+    <ovirt-host-deploy.version>1.2.0-master</ovirt-host-deploy.version>
     <vdsm-jsonrpc-java.version>1.0.0-master</vdsm-jsonrpc-java.version>
+    <!-- Update version -->
+    <proton-j.version>1.0-SNAPSHOT</proton-j.version>
     <slf4j.version>1.7.5</slf4j.version>
     <slf4j-jdk14.version>1.5.6</slf4j-jdk14.version>
     <gwt.version>2.5.1</gwt.version>


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: If78de6620ba6891543531ac8ddd633b67828a89c
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Piotr Kliczewski <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to