From 64899e05ec82061d3fb4ace4e9c06bdbcf9a59ae Mon Sep 17 00:00:00 2001 From: Kelven Yang Date: Fri, 23 Mar 2012 09:00:45 -0700 Subject: [PATCH] bug 14301: Decouple synchronized crosss management server call with clustering transport. Reviewed-by: Kelven Conflicts: server/src/com/cloud/cluster/ClusterServiceServletImpl.java server/src/com/cloud/cluster/DummyClusterManagerImpl.java --- .../cluster/ClusterServiceServletImpl.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/server/src/com/cloud/cluster/ClusterServiceServletImpl.java b/server/src/com/cloud/cluster/ClusterServiceServletImpl.java index 01ae90e6633..c20d9e6c39e 100644 --- a/server/src/com/cloud/cluster/ClusterServiceServletImpl.java +++ b/server/src/com/cloud/cluster/ClusterServiceServletImpl.java @@ -65,6 +65,73 @@ public class ClusterServiceServletImpl implements ClusterService { return executePostMethod(client, method); } +/* + @Override + public String execute(String callingPeer, long agentId, String gsonPackage, boolean stopOnError) throws RemoteException { + if(s_logger.isDebugEnabled()) { + s_logger.debug("Post (sync-call) " + gsonPackage + " to " + _serviceUrl + " for agent " + agentId + " from " + callingPeer); + } + + HttpClient client = getHttpClient(); + PostMethod method = new PostMethod(_serviceUrl); + + method.addParameter("method", Integer.toString(RemoteMethodConstants.METHOD_EXECUTE)); + method.addParameter("agentId", Long.toString(agentId)); + method.addParameter("gsonPackage", gsonPackage); + method.addParameter("stopOnError", stopOnError ? "1" : "0"); + + return executePostMethod(client, method); + } + + @Override + public String execute(ClusterServicePdu pdu) throws RemoteException { + + HttpClient client = getHttpClient(); + PostMethod method = new PostMethod(_serviceUrl); + + method.addParameter("method", Integer.toString(RemoteMethodConstants.METHOD_DELIVER_PDU)); + method.addParameter("sourcePeer", pdu.getSourcePeer()); + method.addParameter("destPeer", pdu.getDestPeer()); + method.addParameter("pduSeq", Long.toString(pdu.getSequenceId())); + method.addParameter("pduAckSeq", Long.toString(pdu.getAckSequenceId())); + method.addParameter("agentId", Long.toString(pdu.getAgentId())); + method.addParameter("gsonPackage", pdu.getJsonPackage()); + method.addParameter("stopOnError", pdu.isStopOnError() ? "1" : "0"); + method.addParameter("requestAck", pdu.isRequest() ? "1" : "0"); + + return executePostMethod(client, method); + } + + @Override + public boolean onAsyncResult(String executingPeer, long agentId, long seq, String gsonPackage) throws RemoteException { + if(s_logger.isDebugEnabled()) { + s_logger.debug("Forward Async-call answer to remote listener, agent: " + agentId + + ", excutingPeer: " + executingPeer + + ", seq: " + seq + ", gsonPackage: " + gsonPackage); + } + HttpClient client = getHttpClient(); + PostMethod method = new PostMethod(_serviceUrl); + + method.addParameter("method", Integer.toString(RemoteMethodConstants.METHOD_ASYNC_RESULT)); + method.addParameter("agentId", Long.toString(agentId)); + method.addParameter("gsonPackage", gsonPackage); + method.addParameter("seq", Long.toString(seq)); + method.addParameter("executingPeer", executingPeer); + + String result = executePostMethod(client, method); + if(result.contains("recurring=true")) { + if(s_logger.isDebugEnabled()) { + s_logger.debug("Remote listener returned recurring=true"); + } + return true; + } + + if(s_logger.isDebugEnabled()) { + s_logger.debug("Remote listener returned recurring=false"); + } + return false; + } +*/ @Override public boolean ping(String callingPeer) throws RemoteException { if(s_logger.isDebugEnabled()) {