You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2015/01/05 12:58:12 UTC

[1/2] git commit: updated refs/heads/4.4 to 4ade3fb

Repository: cloudstack
Updated Branches:
  refs/heads/4.4 4807fa7de -> 4ade3fbeb


logging in clustering code, to find faulty vif plug on xenserver from clustered ms on nic orchestration for start command


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8cf67c0b
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8cf67c0b
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8cf67c0b

Branch: refs/heads/4.4
Commit: 8cf67c0bf7b69556ec3ac73190f8918662a58870
Parents: 4807fa7
Author: Daan Hoogland <dh...@schubergphilis.com>
Authored: Tue Dec 23 12:21:41 2014 +0100
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Mon Jan 5 12:57:00 2015 +0100

----------------------------------------------------------------------
 core/src/com/cloud/agent/transport/Request.java | 19 ++++++----
 .../com/cloud/agent/transport/RequestTest.java  | 12 +++----
 .../com/cloud/agent/manager/AgentAttache.java   | 38 ++++++++++----------
 .../cloud/agent/manager/AgentManagerImpl.java   |  2 +-
 .../agent/manager/ClusteredAgentAttache.java    | 18 +++++-----
 .../manager/ClusteredAgentManagerImpl.java      | 35 +++++++++---------
 .../manager/ClusteredDirectAgentAttache.java    | 13 +++++--
 .../cloud/agent/manager/DirectAgentAttache.java | 27 +++++++-------
 .../xen/resource/CitrixResourceBase.java        |  3 ++
 .../cloud/hypervisor/HypervisorGuruBase.java    | 12 ++++++-
 .../utils/component/ComponentLifecycleBase.java |  3 --
 11 files changed, 105 insertions(+), 77 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8cf67c0b/core/src/com/cloud/agent/transport/Request.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/agent/transport/Request.java b/core/src/com/cloud/agent/transport/Request.java
index b5890d9..89438b2 100755
--- a/core/src/com/cloud/agent/transport/Request.java
+++ b/core/src/com/cloud/agent/transport/Request.java
@@ -37,12 +37,13 @@ import com.google.gson.JsonArray;
 import com.google.gson.JsonDeserializationContext;
 import com.google.gson.JsonDeserializer;
 import com.google.gson.JsonElement;
+import com.google.gson.JsonIOException;
 import com.google.gson.JsonNull;
 import com.google.gson.JsonParseException;
 import com.google.gson.JsonSerializationContext;
 import com.google.gson.JsonSerializer;
+import com.google.gson.JsonSyntaxException;
 import com.google.gson.stream.JsonReader;
-
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.Command;
 import com.cloud.agent.api.SecStorageFirewallCfgCommand.PortConfig;
@@ -362,7 +363,7 @@ public class Request {
 
     public void logD(String msg, boolean logContent) {
         if (s_logger.isDebugEnabled()) {
-            String log = log(msg, logContent, Level.DEBUG);
+            String log = generateLogString(msg, logContent, Level.DEBUG);
             if (log != null) {
                 s_logger.debug(log);
             }
@@ -371,12 +372,12 @@ public class Request {
 
     public void logT(String msg, boolean logD) {
         if (s_logger.isTraceEnabled()) {
-            String log = log(msg, true, Level.TRACE);
+            String log = generateLogString(msg, true, Level.TRACE);
             if (log != null) {
                 s_logger.trace(log);
             }
         } else if (logD && s_logger.isDebugEnabled()) {
-            String log = log(msg, false, Level.DEBUG);
+            String log = generateLogString(msg, false, Level.DEBUG);
             if (log != null) {
                 s_logger.debug(log);
             }
@@ -385,15 +386,18 @@ public class Request {
 
     @Override
     public String toString() {
-        return log("", true, Level.DEBUG);
+        return generateLogString("", true, Level.DEBUG);
     }
 
-    protected String log(String msg, boolean logContent, Level level) {
+    protected String generateLogString(String msg, boolean logContent, Level level) {
         StringBuilder content = new StringBuilder();
         if (logContent) {
             if (_cmds == null) {
                 try {
                     _cmds = s_gson.fromJson(_content, this instanceof Response ? Answer[].class : Command[].class);
+                } catch (JsonSyntaxException e) {
+                    s_logger.error("Unable to convert to json due to syntax error: " + _content);
+                    throw e;
                 } catch (RuntimeException e) {
                     s_logger.error("Unable to convert to json: " + _content);
                     throw e;
@@ -401,7 +405,7 @@ public class Request {
             }
             try {
                 s_gogger.toJson(_cmds, content);
-            } catch (Throwable e) {
+            } catch (JsonIOException e) {
                 StringBuilder buff = new StringBuilder();
                 for (Command cmd : _cmds) {
                     buff.append(cmd.getClass().getSimpleName()).append("/");
@@ -411,6 +415,7 @@ public class Request {
                 return "";
             }
             if (content.length() <= (1 + _cmds.length * 3)) {
+                s_logger.info("not building log message for '" + content + "', _cmds.length == " + _cmds.length);
                 return null;
             }
         } else {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8cf67c0b/core/test/com/cloud/agent/transport/RequestTest.java
----------------------------------------------------------------------
diff --git a/core/test/com/cloud/agent/transport/RequestTest.java b/core/test/com/cloud/agent/transport/RequestTest.java
index 6ee0eda..d7116f8 100644
--- a/core/test/com/cloud/agent/transport/RequestTest.java
+++ b/core/test/com/cloud/agent/transport/RequestTest.java
@@ -73,7 +73,7 @@ public class RequestTest extends TestCase {
         Level level = logger.getLevel();
 
         logger.setLevel(Level.DEBUG);
-        String log = sreq.log("Debug", true, Level.DEBUG);
+        String log = sreq.generateLogString("Debug", true, Level.DEBUG);
         assert (log.contains(UpdateHostPasswordCommand.class.getSimpleName()));
         assert (log.contains(SecStorageFirewallCfgCommand.class.getSimpleName()));
         assert (!log.contains(GetHostStatsCommand.class.getSimpleName()));
@@ -81,7 +81,7 @@ public class RequestTest extends TestCase {
         assert (!log.contains("password"));
 
         logger.setLevel(Level.TRACE);
-        log = sreq.log("Trace", true, Level.TRACE);
+        log = sreq.generateLogString("Trace", true, Level.TRACE);
         assert (log.contains(UpdateHostPasswordCommand.class.getSimpleName()));
         assert (log.contains(SecStorageFirewallCfgCommand.class.getSimpleName()));
         assert (log.contains(GetHostStatsCommand.class.getSimpleName()));
@@ -89,7 +89,7 @@ public class RequestTest extends TestCase {
         assert (!log.contains("password"));
 
         logger.setLevel(Level.INFO);
-        log = sreq.log("Info", true, Level.INFO);
+        log = sreq.generateLogString("Info", true, Level.INFO);
         assert (log == null);
 
         logger.setLevel(level);
@@ -216,14 +216,14 @@ public class RequestTest extends TestCase {
         Level level = logger.getLevel();
 
         logger.setLevel(Level.DEBUG);
-        String log = sreq.log("Debug", true, Level.DEBUG);
+        String log = sreq.generateLogString("Debug", true, Level.DEBUG);
         assert (log == null);
 
-        log = sreq.log("Debug", false, Level.DEBUG);
+        log = sreq.generateLogString("Debug", false, Level.DEBUG);
         assert (log != null);
 
         logger.setLevel(Level.TRACE);
-        log = sreq.log("Trace", true, Level.TRACE);
+        log = sreq.generateLogString("Trace", true, Level.TRACE);
         assert (log.contains(GetHostStatsCommand.class.getSimpleName()));
         s_logger.debug(log);
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8cf67c0b/engine/orchestration/src/com/cloud/agent/manager/AgentAttache.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/com/cloud/agent/manager/AgentAttache.java b/engine/orchestration/src/com/cloud/agent/manager/AgentAttache.java
index 24a6fe7..bcda03e 100755
--- a/engine/orchestration/src/com/cloud/agent/manager/AgentAttache.java
+++ b/engine/orchestration/src/com/cloud/agent/manager/AgentAttache.java
@@ -189,7 +189,7 @@ public abstract class AgentAttache {
 
     protected synchronized void cancel(final long seq) {
         if (s_logger.isDebugEnabled()) {
-            s_logger.debug(log(seq, "Cancelling."));
+            s_logger.debug(generateLogString(seq, "Cancelling."));
         }
         final Listener listener = _waitForList.remove(seq);
         if (listener != null) {
@@ -209,13 +209,13 @@ public abstract class AgentAttache {
         return Collections.binarySearch(_requests, seq, s_seqComparator);
     }
 
-    protected String log(final long seq, final String msg) {
+    protected String generateLogString(final long seq, final String msg) {
         return "Seq " + _id + "-" + seq + ": " + msg;
     }
 
     protected void registerListener(final long seq, final Listener listener) {
         if (s_logger.isTraceEnabled()) {
-            s_logger.trace(log(seq, "Registering listener"));
+            s_logger.trace(generateLogString(seq, "Registering listener"));
         }
         if (listener.getTimeout() != -1) {
             s_listenerExecutor.schedule(new Alarm(seq), listener.getTimeout(), TimeUnit.SECONDS);
@@ -225,7 +225,7 @@ public abstract class AgentAttache {
 
     protected Listener unregisterListener(final long sequence) {
         if (s_logger.isTraceEnabled()) {
-            s_logger.trace(log(sequence, "Unregistering listener"));
+            s_logger.trace(generateLogString(sequence, "Unregistering listener"));
         }
         return _waitForList.remove(sequence);
     }
@@ -282,12 +282,12 @@ public abstract class AgentAttache {
                     processed = true;
                 }
                 if (s_logger.isDebugEnabled()) {
-                    s_logger.debug(log(seq, "Unable to find listener."));
+                    s_logger.debug(generateLogString(seq, "Unable to find listener."));
                 }
             } else {
                 processed = monitor.processAnswers(_id, seq, answers);
                 if (s_logger.isTraceEnabled()) {
-                    s_logger.trace(log(seq, (processed ? "" : " did not ") + " processed "));
+                    s_logger.trace(generateLogString(seq, (processed ? "" : " did not ") + " processed "));
                 }
 
                 if (!monitor.isRecurring()) {
@@ -315,7 +315,7 @@ public abstract class AgentAttache {
             it.remove();
             final Listener monitor = entry.getValue();
             if (s_logger.isDebugEnabled()) {
-                s_logger.debug(log(entry.getKey(), "Sending disconnect to " + monitor.getClass()));
+                s_logger.debug(generateLogString(entry.getKey(), "Sending disconnect to " + monitor.getClass()));
             }
             monitor.processDisconnect(_id, state);
         }
@@ -347,7 +347,7 @@ public abstract class AgentAttache {
         if (listener != null) {
             registerListener(seq, listener);
         } else if (s_logger.isDebugEnabled()) {
-            s_logger.debug(log(seq, "Routed from " + req.getManagementServerId()));
+            s_logger.debug(generateLogString(seq, "Routed from " + req.getManagementServerId()));
         }
 
         synchronized (this) {
@@ -371,15 +371,15 @@ public abstract class AgentAttache {
                 if (req.executeInSequence() && _currentSequence == null) {
                     _currentSequence = seq;
                     if (s_logger.isTraceEnabled()) {
-                        s_logger.trace(log(seq, " is current sequence"));
+                        s_logger.trace(generateLogString(seq, " is current sequence"));
                     }
                 }
             } catch (AgentUnavailableException e) {
-                s_logger.info(log(seq, "Unable to send due to " + e.getMessage()));
+                s_logger.info(generateLogString(seq, "Unable to send due to " + e.getMessage()));
                 cancel(seq);
                 throw e;
             } catch (Exception e) {
-                s_logger.warn(log(seq, "Unable to send due to "), e);
+                s_logger.warn(generateLogString(seq, "Unable to send due to "), e);
                 cancel(seq);
                 throw new AgentUnavailableException("Problem due to other exception " + e.getMessage(), _id);
             }
@@ -398,7 +398,7 @@ public abstract class AgentAttache {
                 try {
                     answers = sl.waitFor(wait);
                 } catch (final InterruptedException e) {
-                    s_logger.debug(log(seq, "Interrupted"));
+                    s_logger.debug(generateLogString(seq, "Interrupted"));
                 }
                 if (answers != null) {
                     if (s_logger.isDebugEnabled()) {
@@ -420,20 +420,20 @@ public abstract class AgentAttache {
                 final Long current = _currentSequence;
                 if (current != null && seq != current) {
                     if (s_logger.isDebugEnabled()) {
-                        s_logger.debug(log(seq, "Waited too long."));
+                        s_logger.debug(generateLogString(seq, "Waited too long."));
                     }
 
                     throw new OperationTimedoutException(req.getCommands(), _id, seq, wait, false);
                 }
 
                 if (s_logger.isDebugEnabled()) {
-                    s_logger.debug(log(seq, "Waiting some more time because this is the current command"));
+                    s_logger.debug(generateLogString(seq, "Waiting some more time because this is the current command"));
                 }
             }
 
             throw new OperationTimedoutException(req.getCommands(), _id, seq, wait * 2, true);
         } catch (OperationTimedoutException e) {
-            s_logger.warn(log(seq, "Timed out on " + req.toString()));
+            s_logger.warn(generateLogString(seq, "Timed out on " + req.toString()));
             cancel(seq);
             final Long current = _currentSequence;
             if (req.executeInSequence() && (current != null && current == seq)) {
@@ -441,7 +441,7 @@ public abstract class AgentAttache {
             }
             throw e;
         } catch (Exception e) {
-            s_logger.warn(log(seq, "Exception while waiting for answer"), e);
+            s_logger.warn(generateLogString(seq, "Exception while waiting for answer"), e);
             cancel(seq);
             final Long current = _currentSequence;
             if (req.executeInSequence() && (current != null && current == seq)) {
@@ -457,20 +457,20 @@ public abstract class AgentAttache {
         _currentSequence = null;
         if (_requests.isEmpty()) {
             if (s_logger.isDebugEnabled()) {
-                s_logger.debug(log(seq, "No more commands found"));
+                s_logger.debug(generateLogString(seq, "No more commands found"));
             }
             return;
         }
 
         Request req = _requests.pop();
         if (s_logger.isDebugEnabled()) {
-            s_logger.debug(log(req.getSequence(), "Sending now.  is current sequence."));
+            s_logger.debug(generateLogString(req.getSequence(), "Sending now.  is current sequence."));
         }
         try {
             send(req);
         } catch (AgentUnavailableException e) {
             if (s_logger.isDebugEnabled()) {
-                s_logger.debug(log(req.getSequence(), "Unable to send the next sequence"));
+                s_logger.debug(generateLogString(req.getSequence(), "Unable to send the next sequence"));
             }
             cancel(req.getSequence());
         }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8cf67c0b/engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java b/engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java
index 9e0dd30..83ffb0b 100755
--- a/engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java
+++ b/engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java
@@ -115,7 +115,7 @@ import com.cloud.utils.time.InaccurateClock;
  **/
 @Local(value = {AgentManager.class})
 public class AgentManagerImpl extends ManagerBase implements AgentManager, HandlerFactory, Configurable {
-    protected static final Logger s_logger = Logger.getLogger(AgentManagerImpl.class);
+    private static final Logger s_logger = Logger.getLogger(AgentManagerImpl.class);
     protected static final Logger status_logger = Logger.getLogger(Status.class);
 
     /**

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8cf67c0b/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentAttache.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentAttache.java b/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentAttache.java
index 306c47f..02be2e4 100755
--- a/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentAttache.java
+++ b/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentAttache.java
@@ -92,7 +92,7 @@ public class ClusteredAgentAttache extends ConnectedAgentAttache implements Rout
                 String peerName = synchronous.getPeer();
                 if (peerName != null) {
                     if (s_clusteredAgentMgr != null) {
-                        s_logger.debug(log(seq, "Forwarding to peer to cancel due to timeout"));
+                        s_logger.debug(generateLogString(seq, "Forwarding to peer to cancel due to timeout"));
                         s_clusteredAgentMgr.cancel(peerName, _id, seq, "Timed Out");
                     } else {
                         s_logger.error("Unable to forward cancel, ClusteredAgentAttache is not properly initialized");
@@ -108,12 +108,12 @@ public class ClusteredAgentAttache extends ConnectedAgentAttache implements Rout
     @Override
     public void routeToAgent(final byte[] data) throws AgentUnavailableException {
         if (s_logger.isDebugEnabled()) {
-            s_logger.debug(log(Request.getSequence(data), "Routing from " + Request.getManagementServerId(data)));
+            s_logger.debug(generateLogString(Request.getSequence(data), "Routing from " + Request.getManagementServerId(data)));
         }
 
         if (_link == null) {
             if (s_logger.isDebugEnabled()) {
-                s_logger.debug(log(Request.getSequence(data), "Link is closed"));
+                s_logger.debug(generateLogString(Request.getSequence(data), "Link is closed"));
             }
             throw new AgentUnavailableException("Link is closed", _id);
         }
@@ -122,13 +122,13 @@ public class ClusteredAgentAttache extends ConnectedAgentAttache implements Rout
             _link.send(data);
         } catch (ClosedChannelException e) {
             if (s_logger.isDebugEnabled()) {
-                s_logger.debug(log(Request.getSequence(data), "Channel is closed"));
+                s_logger.debug(generateLogString(Request.getSequence(data), "Channel is closed"));
             }
 
             throw new AgentUnavailableException("Channel to agent is closed", _id);
         } catch (NullPointerException e) {
             if (s_logger.isDebugEnabled()) {
-                s_logger.debug(log(Request.getSequence(data), "Link is closed"));
+                s_logger.debug(generateLogString(Request.getSequence(data), "Link is closed"));
             }
             // Note: since this block is not in synchronized.  It is possible for _link to become null.
             throw new AgentUnavailableException("Channel to agent is null", _id);
@@ -151,7 +151,7 @@ public class ClusteredAgentAttache extends ConnectedAgentAttache implements Rout
         if (_transferMode) {
 
             if (s_logger.isDebugEnabled()) {
-                s_logger.debug(log(seq, "Holding request as the corresponding agent is in transfer mode: "));
+                s_logger.debug(generateLogString(seq, "Holding request as the corresponding agent is in transfer mode: "));
             }
 
             synchronized (this) {
@@ -177,7 +177,7 @@ public class ClusteredAgentAttache extends ConnectedAgentAttache implements Rout
                 ch = s_clusteredAgentMgr.connectToPeer(peerName, ch);
                 if (ch == null) {
                     if (s_logger.isDebugEnabled()) {
-                        s_logger.debug(log(seq, "Unable to forward " + req.toString()));
+                        s_logger.debug(generateLogString(seq, "Unable to forward " + req.toString()));
                     }
                     continue;
                 }
@@ -189,7 +189,7 @@ public class ClusteredAgentAttache extends ConnectedAgentAttache implements Rout
 
                 try {
                     if (s_logger.isDebugEnabled()) {
-                        s_logger.debug(log(seq, "Forwarding " + req.toString() + " to " + peerName));
+                        s_logger.debug(generateLogString(seq, "Forwarding " + req.toString() + " to " + peerName));
                     }
                     if (req.executeInSequence() && listener != null && listener instanceof SynchronousListener) {
                         SynchronousListener synchronous = (SynchronousListener)listener;
@@ -200,7 +200,7 @@ public class ClusteredAgentAttache extends ConnectedAgentAttache implements Rout
                     return;
                 } catch (IOException e) {
                     if (s_logger.isDebugEnabled()) {
-                        s_logger.debug(log(seq, "Error on connecting to management node: " + req.toString() + " try = " + i));
+                        s_logger.debug(generateLogString(seq, "Error on connecting to management node: " + req.toString() + " try = " + i));
                     }
 
                     if (s_logger.isInfoEnabled()) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8cf67c0b/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java b/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java
index 01508a4..b404867 100755
--- a/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java
+++ b/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java
@@ -79,6 +79,7 @@ import com.cloud.cluster.agentlb.dao.HostTransferMapDao;
 import com.cloud.cluster.dao.ManagementServerHostDao;
 import com.cloud.exception.AgentUnavailableException;
 import com.cloud.exception.OperationTimedoutException;
+import com.cloud.exception.UnsupportedVersionException;
 import com.cloud.host.Host;
 import com.cloud.host.HostVO;
 import com.cloud.host.Status;
@@ -96,7 +97,7 @@ import com.cloud.utils.nio.Task;
 
 @Local(value = {AgentManager.class, ClusteredAgentRebalanceService.class})
 public class ClusteredAgentManagerImpl extends AgentManagerImpl implements ClusterManagerListener, ClusteredAgentRebalanceService {
-    final static Logger s_logger = Logger.getLogger(ClusteredAgentManagerImpl.class);
+    private final static Logger s_logger = Logger.getLogger(ClusteredAgentManagerImpl.class);
     private static final ScheduledExecutorService s_transferExecutor = Executors.newScheduledThreadPool(2, new NamedThreadFactory("Cluster-AgentRebalancingExecutor"));
     private final long rebalanceTimeOut = 300000; // 5 mins - after this time remove the agent from the transfer list
 
@@ -389,13 +390,17 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust
     }
 
     protected static void logT(byte[] bytes, final String msg) {
-        s_logger.trace("Seq " + Request.getAgentId(bytes) + "-" + Request.getSequence(bytes) + ": MgmtId " + Request.getManagementServerId(bytes) + ": " +
-            (Request.isRequest(bytes) ? "Req: " : "Resp: ") + msg);
+        if(s_logger.isTraceEnabled()) {
+            s_logger.trace("Seq " + Request.getAgentId(bytes) + "-" + Request.getSequence(bytes) + ": MgmtId " + Request.getManagementServerId(bytes) + ": " +
+                (Request.isRequest(bytes) ? "Req: " : "Resp: ") + msg);
+        }
     }
 
     protected static void logD(byte[] bytes, final String msg) {
-        s_logger.debug("Seq " + Request.getAgentId(bytes) + "-" + Request.getSequence(bytes) + ": MgmtId " + Request.getManagementServerId(bytes) + ": " +
-            (Request.isRequest(bytes) ? "Req: " : "Resp: ") + msg);
+        if(s_logger.isDebugEnabled()) {
+            s_logger.debug("Seq " + Request.getAgentId(bytes) + "-" + Request.getSequence(bytes) + ": MgmtId " + Request.getManagementServerId(bytes) + ": " +
+                (Request.isRequest(bytes) ? "Req: " : "Resp: ") + msg);
+        }
     }
 
     protected static void logI(byte[] bytes, final String msg) {
@@ -408,12 +413,15 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust
         SocketChannel ch = null;
         SSLEngine sslEngine = null;
         while (i++ < 5) {
+            String msg = null;
+            try {
+                msg = Request.parse(bytes).toString();
+            } catch (ClassNotFoundException | UnsupportedVersionException e1) {
+                s_logger.debug("can't parse bytes to message: " + bytes);
+            }
             ch = connectToPeer(peer, ch);
             if (ch == null) {
-                try {
-                    logD(bytes, "Unable to route to peer: " + Request.parse(bytes).toString());
-                } catch (Exception e) {
-                }
+                logD(bytes, "Unable to route to peer: " + msg);
                 return false;
             }
             sslEngine = getSSLEngine(peer);
@@ -422,16 +430,11 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust
                 return false;
             }
             try {
-                if (s_logger.isDebugEnabled()) {
-                    logD(bytes, "Routing to peer");
-                }
+                logD(bytes, "Routing to peer");
                 Link.write(ch, new ByteBuffer[] {ByteBuffer.wrap(bytes)}, sslEngine);
                 return true;
             } catch (IOException e) {
-                try {
-                    logI(bytes, "Unable to route to peer: " + Request.parse(bytes).toString() + " due to " + e.getMessage());
-                } catch (Exception ex) {
-                }
+                logI(bytes, "Unable to route to peer: " + msg + " due to " + e.getMessage());
             }
         }
         return false;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8cf67c0b/engine/orchestration/src/com/cloud/agent/manager/ClusteredDirectAgentAttache.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/com/cloud/agent/manager/ClusteredDirectAgentAttache.java b/engine/orchestration/src/com/cloud/agent/manager/ClusteredDirectAgentAttache.java
index d7c0827..ec5354a 100755
--- a/engine/orchestration/src/com/cloud/agent/manager/ClusteredDirectAgentAttache.java
+++ b/engine/orchestration/src/com/cloud/agent/manager/ClusteredDirectAgentAttache.java
@@ -16,6 +16,8 @@
 // under the License.
 package com.cloud.agent.manager;
 
+import org.apache.log4j.Logger;
+
 import com.cloud.agent.transport.Request;
 import com.cloud.agent.transport.Response;
 import com.cloud.exception.AgentUnavailableException;
@@ -24,6 +26,7 @@ import com.cloud.resource.ServerResource;
 import com.cloud.utils.exception.CloudRuntimeException;
 
 public class ClusteredDirectAgentAttache extends DirectAgentAttache implements Routable {
+    private final static Logger s_logger = Logger.getLogger(ClusteredDirectAgentAttache.class);
     private final ClusteredAgentManagerImpl _mgr;
     private final long _nodeId;
 
@@ -40,14 +43,17 @@ public class ClusteredDirectAgentAttache extends DirectAgentAttache implements R
         try {
             req = Request.parse(data);
         } catch (ClassNotFoundException e) {
-            throw new CloudRuntimeException("Unable to rout to an agent ", e);
+            throw new CloudRuntimeException("Unable to route to an agent; no implementation found ", e);
         } catch (UnsupportedVersionException e) {
-            throw new CloudRuntimeException("Unable to rout to an agent ", e);
+            throw new CloudRuntimeException("Unable to route to an agent; protocol not supported ", e);
         }
 
         if (req instanceof Response) {
             super.process(((Response)req).getAnswers());
         } else {
+            if(s_logger.isDebugEnabled()) {
+                s_logger.debug("sending request " + req.getSequence() + ", command: " + req.getCommand());
+            }
             super.send(req);
         }
     }
@@ -58,6 +64,9 @@ public class ClusteredDirectAgentAttache extends DirectAgentAttache implements R
         if (mgmtId != -1 && mgmtId != _nodeId) {
             _mgr.routeToPeer(Long.toString(mgmtId), response.getBytes());
             if (response.executeInSequence()) {
+                if(s_logger.isDebugEnabled()) {
+                    s_logger.debug("sending response " + response.getSequence());
+                }
                 sendNext(response.getSequence());
             }
             return true;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8cf67c0b/engine/orchestration/src/com/cloud/agent/manager/DirectAgentAttache.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/com/cloud/agent/manager/DirectAgentAttache.java b/engine/orchestration/src/com/cloud/agent/manager/DirectAgentAttache.java
index 2039a96..f3459d8 100755
--- a/engine/orchestration/src/com/cloud/agent/manager/DirectAgentAttache.java
+++ b/engine/orchestration/src/com/cloud/agent/manager/DirectAgentAttache.java
@@ -94,9 +94,9 @@ public class DirectAgentAttache extends AgentAttache {
 
     @Override
     public void send(Request req) throws AgentUnavailableException {
-        req.logD("Executing: ", true);
         if (req instanceof Response) {
             Response resp = (Response)req;
+            resp.logD("Received: ", true);
             Answer[] answers = resp.getAnswers();
             if (answers != null && answers[0] instanceof StartupAnswer) {
                 StartupAnswer startup = (StartupAnswer)answers[0];
@@ -104,6 +104,7 @@ public class DirectAgentAttache extends AgentAttache {
                 _futures.add(_agentMgr.getCronJobPool().scheduleAtFixedRate(producePingTask(), interval, interval, TimeUnit.SECONDS));
             }
         } else {
+            req.logD("Executing: ", true);
             Command[] cmds = req.getCommands();
             if (cmds.length > 0 && !(cmds[0] instanceof CronCommand)) {
                 queueTask(new Task(req));
@@ -117,7 +118,7 @@ public class DirectAgentAttache extends AgentAttache {
 
     @Override
     public void process(Answer[] answers) {
-        if (answers != null && answers[0] instanceof StartupAnswer) {
+        if (answers != null && answers.length > 0 && answers[0] instanceof StartupAnswer) {
             StartupAnswer startup = (StartupAnswer)answers[0];
             int interval = startup.getPingInterval();
             s_logger.info("StartupAnswer received " + startup.getHostId() + " Interval = " + interval);
@@ -220,7 +221,7 @@ public class DirectAgentAttache extends AgentAttache {
                 Response resp = new Response(_req, answers.toArray(new Answer[answers.size()]));
                 processAnswers(seq, resp);
             } catch (Exception e) {
-                s_logger.warn(log(seq, "Exception caught in bailout "), e);
+                s_logger.warn(generateLogString(seq, "Exception caught in bailout "), e);
             }
         }
 
@@ -239,7 +240,7 @@ public class DirectAgentAttache extends AgentAttache {
                 boolean stopOnError = _req.stopOnError();
 
                 if (s_logger.isDebugEnabled()) {
-                    s_logger.debug(log(seq, "Executing request"));
+                    s_logger.debug(generateLogString(seq, "Executing request"));
                 }
                 ArrayList<Answer> answers = new ArrayList<Answer>(cmds.length);
                 for (int i = 0; i < cmds.length; i++) {
@@ -255,13 +256,13 @@ public class DirectAgentAttache extends AgentAttache {
                             answer = new Answer(cmds[i], false, "Agent is disconnected");
                         }
                     } catch (Exception e) {
-                        s_logger.warn(log(seq, "Exception Caught while executing command"), e);
+                        s_logger.warn(generateLogString(seq, "Exception Caught while executing command"), e);
                         answer = new Answer(cmds[i], false, e.toString());
                     }
                     answers.add(answer);
                     if (!answer.getResult() && stopOnError) {
                         if (i < cmds.length - 1 && s_logger.isDebugEnabled()) {
-                            s_logger.debug(log(seq, "Cancelling because one of the answers is false and it is stop on error."));
+                            s_logger.debug(generateLogString(seq, "Cancelling because one of the answers is false and it is stop on error."));
                         }
                         break;
                     }
@@ -269,12 +270,12 @@ public class DirectAgentAttache extends AgentAttache {
 
                 Response resp = new Response(_req, answers.toArray(new Answer[answers.size()]));
                 if (s_logger.isDebugEnabled()) {
-                    s_logger.debug(log(seq, "Response Received: "));
+                    s_logger.debug(generateLogString(seq, "Response Received: "));
                 }
 
                 processAnswers(seq, resp);
             } catch (Exception e) {
-                s_logger.warn(log(seq, "Exception caught "), e);
+                s_logger.warn(generateLogString(seq, "Exception caught "), e);
             } finally {
                 _outstandingCronTaskCount.decrementAndGet();
             }
@@ -297,7 +298,7 @@ public class DirectAgentAttache extends AgentAttache {
                 boolean stopOnError = _req.stopOnError();
 
                 if (s_logger.isDebugEnabled()) {
-                    s_logger.debug(log(seq, "Executing request"));
+                    s_logger.debug(generateLogString(seq, "Executing request"));
                 }
                 ArrayList<Answer> answers = new ArrayList<Answer>(cmds.length);
                 for (int i = 0; i < cmds.length; i++) {
@@ -313,13 +314,13 @@ public class DirectAgentAttache extends AgentAttache {
                             answer = new Answer(cmds[i], false, "Agent is disconnected");
                         }
                     } catch (Exception e) {
-                        s_logger.warn(log(seq, "Exception Caught while executing command"), e);
+                        s_logger.warn(generateLogString(seq, "Exception Caught while executing command"), e);
                         answer = new Answer(cmds[i], false, e.toString());
                     }
                     answers.add(answer);
                     if (!answer.getResult() && stopOnError) {
                         if (i < cmds.length - 1 && s_logger.isDebugEnabled()) {
-                            s_logger.debug(log(seq, "Cancelling because one of the answers is false and it is stop on error."));
+                            s_logger.debug(generateLogString(seq, "Cancelling because one of the answers is false and it is stop on error."));
                         }
                         break;
                     }
@@ -327,12 +328,12 @@ public class DirectAgentAttache extends AgentAttache {
 
                 Response resp = new Response(_req, answers.toArray(new Answer[answers.size()]));
                 if (s_logger.isDebugEnabled()) {
-                    s_logger.debug(log(seq, "Response Received: "));
+                    s_logger.debug(generateLogString(seq, "Response Received: "));
                 }
 
                 processAnswers(seq, resp);
             } catch (Exception e) {
-                s_logger.warn(log(seq, "Exception caught "), e);
+                s_logger.warn(generateLogString(seq, "Exception caught "), e);
             } finally {
                 _outstandingTaskCount.decrementAndGet();
                 scheduleFromQueue();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8cf67c0b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
index 1e55e48..580750f 100644
--- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
+++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
@@ -1090,6 +1090,9 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
         if (s_logger.isDebugEnabled()) {
             s_logger.debug("Creating VIF for " + vmName + " on nic " + nic);
         }
+        if (s_logger.isTraceEnabled()) {
+            s_logger.trace("Creating VIF on nic [" + nic.getDeviceId() + ", " + nic.getUuid() + "] on net " + nic.getNetworkUuid());
+        }
         VIF.Record vifr = new VIF.Record();
         vifr.VM = vm;
         vifr.device = Integer.toString(nic.getDeviceId());

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8cf67c0b/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/hypervisor/HypervisorGuruBase.java b/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
index e2520d2..0cbaf6d 100644
--- a/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
+++ b/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
@@ -17,11 +17,14 @@
 package com.cloud.hypervisor;
 
 import com.cloud.network.dao.NetworkVO;
+
 import java.util.List;
 import java.util.Map;
 
 import javax.inject.Inject;
 
+import org.apache.log4j.Logger;
+
 import com.cloud.agent.api.Command;
 import com.cloud.agent.api.to.DiskTO;
 import com.cloud.agent.api.to.NicTO;
@@ -48,6 +51,7 @@ import com.cloud.vm.dao.UserVmDetailsDao;
 import com.cloud.vm.dao.VMInstanceDao;
 
 public abstract class HypervisorGuruBase extends AdapterBase implements HypervisorGuru {
+    private static final Logger s_logger = Logger.getLogger(HypervisorGuruBase.class);
 
     @Inject
     VMTemplateDetailsDao _templateDetailsDao;
@@ -92,10 +96,16 @@ public abstract class HypervisorGuruBase extends AdapterBase implements Hypervis
         to.setSecurityGroupEnabled(profile.isSecurityGroupEnabled());
 
         NetworkVO network = _networkDao.findById(profile.getNetworkId());
+        if(s_logger.isTraceEnabled()) {
+            s_logger.trace(profile.getNetworkId() + " resulted in net id " + network.getUuid());
+        }
         to.setNetworkUuid(network.getUuid());
 
-        // Workaround to make sure the TO has the UUID we need for Niciri integration
+        // Workaround to make sure the TO has the UUID we need for Nicira integration
         NicVO nicVO = _nicDao.findById(profile.getId());
+        if(s_logger.isTraceEnabled()) {
+            s_logger.trace(profile.getId() + " resulted in nic id " + nicVO.getUuid());
+        }
         to.setUuid(nicVO.getUuid());
         //check whether the this nic has secondary ip addresses set
         //set nic secondary ip address in NicTO which are used for security group

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8cf67c0b/utils/src/com/cloud/utils/component/ComponentLifecycleBase.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/component/ComponentLifecycleBase.java b/utils/src/com/cloud/utils/component/ComponentLifecycleBase.java
index 829dc9b..cf5d2ca 100644
--- a/utils/src/com/cloud/utils/component/ComponentLifecycleBase.java
+++ b/utils/src/com/cloud/utils/component/ComponentLifecycleBase.java
@@ -24,10 +24,7 @@ import java.util.Map;
 
 import javax.naming.ConfigurationException;
 
-import org.apache.log4j.Logger;
-
 public class ComponentLifecycleBase implements ComponentLifecycle {
-    private static final Logger s_logger = Logger.getLogger(ComponentLifecycleBase.class);
 
     protected String _name;
     protected int _runLevel;


[2/2] git commit: updated refs/heads/4.4 to 4ade3fb

Posted by da...@apache.org.
serialization issue in json/gson


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4ade3fbe
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4ade3fbe
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4ade3fbe

Branch: refs/heads/4.4
Commit: 4ade3fbeb4e0f98c35b47f34198aab303b5f3f63
Parents: 8cf67c0
Author: Daan Hoogland <dh...@schubergphilis.com>
Authored: Tue Dec 30 16:46:32 2014 +0100
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Mon Jan 5 12:57:09 2015 +0100

----------------------------------------------------------------------
 api/src/com/cloud/agent/api/to/NicTO.java | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4ade3fbe/api/src/com/cloud/agent/api/to/NicTO.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/api/to/NicTO.java b/api/src/com/cloud/agent/api/to/NicTO.java
index 67660c8..70830b6 100644
--- a/api/src/com/cloud/agent/api/to/NicTO.java
+++ b/api/src/com/cloud/agent/api/to/NicTO.java
@@ -23,7 +23,7 @@ public class NicTO extends NetworkTO {
     Integer networkRateMbps;
     Integer networkRateMulticastMbps;
     boolean defaultNic;
-    String uuid;
+    String nicUuid;
     List<String> nicSecIps;
 
     public NicTO() {
@@ -60,12 +60,12 @@ public class NicTO extends NetworkTO {
 
     @Override
     public String getUuid() {
-        return uuid;
+        return nicUuid;
     }
 
     @Override
     public void setUuid(String uuid) {
-        this.uuid = uuid;
+        this.nicUuid = uuid;
     }
 
     @Override