You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ja...@apache.org on 2015/06/29 09:00:22 UTC

[01/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Repository: cloudstack
Updated Branches:
  refs/heads/dhcpoffload c3304c5d3 -> 45721aed5


Fix findbugs DM_BOXED_PRIMITIVE_FOR_PARSING warning in ElastistorUtil.java

Signed-off-by: Daan Hoogland <da...@gmail.com>

This closes #504


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

Branch: refs/heads/dhcpoffload
Commit: a17852aaf443549877a6813b69c445aab57e6444
Parents: 0d8c64e
Author: Rafael da Fonseca <rs...@gmail.com>
Authored: Mon Jun 22 00:42:37 2015 +0200
Committer: Daan Hoogland <da...@gmail.com>
Committed: Mon Jun 22 10:54:19 2015 +0200

----------------------------------------------------------------------
 .../apache/cloudstack/storage/datastore/util/ElastistorUtil.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a17852aa/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/util/ElastistorUtil.java
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/util/ElastistorUtil.java b/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/util/ElastistorUtil.java
index 35c51d8..58ee9f0 100644
--- a/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/util/ElastistorUtil.java
+++ b/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/util/ElastistorUtil.java
@@ -2491,7 +2491,7 @@ public class ElastistorUtil {
          String quotasize = null;
 
          if(size > 1024){
-            quotasize = (String.valueOf(Long.valueOf(capacityBytes)/(1024)) + "T");
+            quotasize = (String.valueOf(Long.parseLong(capacityBytes)/(1024)) + "T");
          }else{
             quotasize = String.valueOf(quotasize) + "G";
          }


[27/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Renaming a couple of varibale to avoid misunderstanding

   - All "micro" references have been replaced with "nano"

Signed-off-by: Daan Hoogland <da...@onecht.net>

This closes #516


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

Branch: refs/heads/dhcpoffload
Commit: cbf5155f7b89d032c092c95e4dd507e927cf37a0
Parents: 2f14537
Author: wilderrodrigues <wr...@schubergphilis.com>
Authored: Tue Jun 23 22:46:19 2015 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Wed Jun 24 09:36:41 2015 +0200

----------------------------------------------------------------------
 utils/src/com/cloud/utils/Profiler.java      |  4 ++--
 utils/test/com/cloud/utils/TestProfiler.java | 13 +++++++++----
 2 files changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cbf5155f/utils/src/com/cloud/utils/Profiler.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/Profiler.java b/utils/src/com/cloud/utils/Profiler.java
index 5977453..f8e44bd 100644
--- a/utils/src/com/cloud/utils/Profiler.java
+++ b/utils/src/com/cloud/utils/Profiler.java
@@ -46,8 +46,8 @@ public class Profiler {
      */
     public long getDuration() {
         if (startTickNanoSeconds != null && stopTickNanoSeconds != null) {
-            final long timeInMicroSeconds = stopTickNanoSeconds - startTickNanoSeconds;
-            return timeInMicroSeconds;
+            final long timeInNanoSeconds = stopTickNanoSeconds - startTickNanoSeconds;
+            return timeInNanoSeconds;
         }
 
         return -1;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cbf5155f/utils/test/com/cloud/utils/TestProfiler.java
----------------------------------------------------------------------
diff --git a/utils/test/com/cloud/utils/TestProfiler.java b/utils/test/com/cloud/utils/TestProfiler.java
index d801059..6861f06 100644
--- a/utils/test/com/cloud/utils/TestProfiler.java
+++ b/utils/test/com/cloud/utils/TestProfiler.java
@@ -28,6 +28,7 @@ import com.cloud.utils.testcase.Log4jEnabledTestCase;
 public class TestProfiler extends Log4jEnabledTestCase {
     protected final static Logger s_logger = Logger.getLogger(TestProfiler.class);
 
+    private static final long ONE_SECOND = 1000l;
     private static final long MILLIS_FACTOR = 1000l;
     private static final int MARGIN = 100;
     private static final double EXPONENT = 3d;
@@ -39,13 +40,13 @@ public class TestProfiler extends Log4jEnabledTestCase {
         final Profiler pf = new Profiler();
         pf.start();
         try {
-            Thread.sleep(MILLIS_FACTOR);
+            Thread.sleep(ONE_SECOND);
         } catch (final InterruptedException e) {
         }
         pf.stop();
 
         final long durationInMillis = pf.getDurationInMillis();
-        s_logger.info("Duration : " + durationInMillis);
+        s_logger.info("Duration in Millis: " + durationInMillis);
 
         // An error margin in order to cover the time taken by the star/stop calls.
         // 100 milliseconds margin seems too much, but it will avoid assertion error
@@ -56,16 +57,17 @@ public class TestProfiler extends Log4jEnabledTestCase {
     }
 
     @Test
-    public void testProfilerInMicro() {
+    public void testProfilerInNano() {
         final Profiler pf = new Profiler();
         pf.start();
         try {
-            Thread.sleep(MILLIS_FACTOR);
+            Thread.sleep(ONE_SECOND);
         } catch (final InterruptedException e) {
         }
         pf.stop();
 
         final long duration = pf.getDuration();
+        s_logger.info("Duration in Nano: " + duration);
         Assert.assertTrue(duration >= Math.pow(MILLIS_FACTOR, EXPONENT));
     }
 
@@ -101,6 +103,9 @@ public class TestProfiler extends Log4jEnabledTestCase {
         long nanoTime2 = 0l;
         nanoTime1 = System.nanoTime();
         nanoTime2 = System.nanoTime();
+
+        // Using sysout here because is faster than the logger and we don't want to
+        // waste time.
         System.out.println("Nano time 1: " + nanoTime1);
         System.out.println("Nano time 2: " + nanoTime2);
 


[38/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Formatting class ClusterManagerImpl

   - Splitting format commit from fix commit.

Signed-off-by: wilderrodrigues <wr...@schubergphilis.com>


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

Branch: refs/heads/dhcpoffload
Commit: ea1f2eb049f71d3bfc2fddc5d759c9685ad22513
Parents: af902fd
Author: wilderrodrigues <wr...@schubergphilis.com>
Authored: Thu Jun 25 07:59:35 2015 +0200
Committer: wilderrodrigues <wr...@schubergphilis.com>
Committed: Thu Jun 25 09:13:46 2015 +0200

----------------------------------------------------------------------
 .../com/cloud/cluster/ClusterManagerImpl.java   | 415 ++++++++++---------
 1 file changed, 213 insertions(+), 202 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ea1f2eb0/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java
----------------------------------------------------------------------
diff --git a/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java b/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java
index 8c99ff3..02597c3 100644
--- a/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java
+++ b/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java
@@ -41,13 +41,12 @@ import javax.ejb.Local;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
-import org.apache.log4j.Logger;
-
 import org.apache.cloudstack.framework.config.ConfigDepot;
 import org.apache.cloudstack.framework.config.ConfigKey;
 import org.apache.cloudstack.framework.config.Configurable;
 import org.apache.cloudstack.managed.context.ManagedContextRunnable;
 import org.apache.cloudstack.utils.identity.ManagementServerNode;
+import org.apache.log4j.Logger;
 
 import com.cloud.cluster.dao.ManagementServerHostDao;
 import com.cloud.cluster.dao.ManagementServerHostPeerDao;
@@ -130,21 +129,21 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         setRunLevel(ComponentLifecycle.RUN_LEVEL_FRAMEWORK);
     }
 
-    private void registerRequestPdu(ClusterServiceRequestPdu pdu) {
+    private void registerRequestPdu(final ClusterServiceRequestPdu pdu) {
         synchronized (_outgoingPdusWaitingForAck) {
             _outgoingPdusWaitingForAck.put(pdu.getSequenceId(), pdu);
         }
     }
 
     @Override
-    public void registerDispatcher(Dispatcher dispatcher) {
+    public void registerDispatcher(final Dispatcher dispatcher) {
         _dispatcher = dispatcher;
     }
 
-    private ClusterServiceRequestPdu popRequestPdu(long ackSequenceId) {
+    private ClusterServiceRequestPdu popRequestPdu(final long ackSequenceId) {
         synchronized (_outgoingPdusWaitingForAck) {
             if (_outgoingPdusWaitingForAck.get(ackSequenceId) != null) {
-                ClusterServiceRequestPdu pdu = _outgoingPdusWaitingForAck.get(ackSequenceId);
+                final ClusterServiceRequestPdu pdu = _outgoingPdusWaitingForAck.get(ackSequenceId);
                 _outgoingPdusWaitingForAck.remove(ackSequenceId);
                 return pdu;
             }
@@ -153,20 +152,21 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         return null;
     }
 
-    private void cancelClusterRequestToPeer(String strPeer) {
-        List<ClusterServiceRequestPdu> candidates = new ArrayList<ClusterServiceRequestPdu>();
+    private void cancelClusterRequestToPeer(final String strPeer) {
+        final List<ClusterServiceRequestPdu> candidates = new ArrayList<ClusterServiceRequestPdu>();
         synchronized (_outgoingPdusWaitingForAck) {
-            for (Map.Entry<Long, ClusterServiceRequestPdu> entry : _outgoingPdusWaitingForAck.entrySet()) {
-                if (entry.getValue().getDestPeer().equalsIgnoreCase(strPeer))
+            for (final Map.Entry<Long, ClusterServiceRequestPdu> entry : _outgoingPdusWaitingForAck.entrySet()) {
+                if (entry.getValue().getDestPeer().equalsIgnoreCase(strPeer)) {
                     candidates.add(entry.getValue());
+                }
             }
 
-            for (ClusterServiceRequestPdu pdu : candidates) {
+            for (final ClusterServiceRequestPdu pdu : candidates) {
                 _outgoingPdusWaitingForAck.remove(pdu.getSequenceId());
             }
         }
 
-        for (ClusterServiceRequestPdu pdu : candidates) {
+        for (final ClusterServiceRequestPdu pdu : candidates) {
             s_logger.warn("Cancel cluster request PDU to peer: " + strPeer + ", pdu: " + pdu.getJsonPackage());
             synchronized (pdu) {
                 pdu.notifyAll();
@@ -174,22 +174,22 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         }
     }
 
-    private void addOutgoingClusterPdu(ClusterServicePdu pdu) {
+    private void addOutgoingClusterPdu(final ClusterServicePdu pdu) {
         synchronized (_clusterPduOutgoingQueue) {
             _clusterPduOutgoingQueue.add(pdu);
             _clusterPduOutgoingQueue.notifyAll();
         }
     }
 
-    private ClusterServicePdu popOutgoingClusterPdu(long timeoutMs) {
+    private ClusterServicePdu popOutgoingClusterPdu(final long timeoutMs) {
         synchronized (_clusterPduOutgoingQueue) {
             try {
                 _clusterPduOutgoingQueue.wait(timeoutMs);
-            } catch (InterruptedException e) {
+            } catch (final InterruptedException e) {
             }
 
             if (_clusterPduOutgoingQueue.size() > 0) {
-                ClusterServicePdu pdu = _clusterPduOutgoingQueue.get(0);
+                final ClusterServicePdu pdu = _clusterPduOutgoingQueue.get(0);
                 _clusterPduOutgoingQueue.remove(0);
                 return pdu;
             }
@@ -197,22 +197,22 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         return null;
     }
 
-    private void addIncomingClusterPdu(ClusterServicePdu pdu) {
+    private void addIncomingClusterPdu(final ClusterServicePdu pdu) {
         synchronized (_clusterPduIncomingQueue) {
             _clusterPduIncomingQueue.add(pdu);
             _clusterPduIncomingQueue.notifyAll();
         }
     }
 
-    private ClusterServicePdu popIncomingClusterPdu(long timeoutMs) {
+    private ClusterServicePdu popIncomingClusterPdu(final long timeoutMs) {
         synchronized (_clusterPduIncomingQueue) {
             try {
                 _clusterPduIncomingQueue.wait(timeoutMs);
-            } catch (InterruptedException e) {
+            } catch (final InterruptedException e) {
             }
 
             if (_clusterPduIncomingQueue.size() > 0) {
-                ClusterServicePdu pdu = _clusterPduIncomingQueue.get(0);
+                final ClusterServicePdu pdu = _clusterPduIncomingQueue.get(0);
                 _clusterPduIncomingQueue.remove(0);
                 return pdu;
             }
@@ -241,15 +241,16 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
     private void onSendingClusterPdu() {
         while (true) {
             try {
-                ClusterServicePdu pdu = popOutgoingClusterPdu(1000);
-                if (pdu == null)
+                final ClusterServicePdu pdu = popOutgoingClusterPdu(1000);
+                if (pdu == null) {
                     continue;
+                }
 
                 ClusterService peerService = null;
                 for (int i = 0; i < 2; i++) {
                     try {
                         peerService = getPeerService(pdu.getDestPeer());
-                    } catch (RemoteException e) {
+                    } catch (final RemoteException e) {
                         s_logger.error("Unable to get cluster service on peer : " + pdu.getDestPeer());
                     }
 
@@ -257,30 +258,31 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
                         try {
                             if (s_logger.isDebugEnabled()) {
                                 s_logger.debug("Cluster PDU " + getSelfPeerName() + " -> " + pdu.getDestPeer() + ". agent: " + pdu.getAgentId() + ", pdu seq: " +
-                                    pdu.getSequenceId() + ", pdu ack seq: " + pdu.getAckSequenceId() + ", json: " + pdu.getJsonPackage());
+                                        pdu.getSequenceId() + ", pdu ack seq: " + pdu.getAckSequenceId() + ", json: " + pdu.getJsonPackage());
                             }
 
-                            long startTick = System.currentTimeMillis();
-                            String strResult = peerService.execute(pdu);
+                            final long startTick = System.currentTimeMillis();
+                            final String strResult = peerService.execute(pdu);
                             if (s_logger.isDebugEnabled()) {
                                 s_logger.debug("Cluster PDU " + getSelfPeerName() + " -> " + pdu.getDestPeer() + " completed. time: " +
-                                    (System.currentTimeMillis() - startTick) + "ms. agent: " + pdu.getAgentId() + ", pdu seq: " + pdu.getSequenceId() +
-                                    ", pdu ack seq: " + pdu.getAckSequenceId() + ", json: " + pdu.getJsonPackage());
+                                        (System.currentTimeMillis() - startTick) + "ms. agent: " + pdu.getAgentId() + ", pdu seq: " + pdu.getSequenceId() +
+                                        ", pdu ack seq: " + pdu.getAckSequenceId() + ", json: " + pdu.getJsonPackage());
                             }
 
-                            if ("true".equals(strResult))
+                            if ("true".equals(strResult)) {
                                 break;
+                            }
 
-                        } catch (RemoteException e) {
+                        } catch (final RemoteException e) {
                             invalidatePeerService(pdu.getDestPeer());
                             if (s_logger.isInfoEnabled()) {
                                 s_logger.info("Exception on remote execution, peer: " + pdu.getDestPeer() + ", iteration: " + i + ", exception message :" +
-                                    e.getMessage());
+                                        e.getMessage());
                             }
                         }
                     }
                 }
-            } catch (Throwable e) {
+            } catch (final Throwable e) {
                 s_logger.error("Unexcpeted exception: ", e);
             }
         }
@@ -290,14 +292,15 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         while (true) {
             try {
                 final ClusterServicePdu pdu = popIncomingClusterPdu(1000);
-                if (pdu == null)
+                if (pdu == null) {
                     continue;
+                }
 
                 _executor.execute(new ManagedContextRunnable() {
                     @Override
                     protected void runInContext() {
                         if (pdu.getPduType() == ClusterServicePdu.PDU_TYPE_RESPONSE) {
-                            ClusterServiceRequestPdu requestPdu = popRequestPdu(pdu.getAckSequenceId());
+                            final ClusterServiceRequestPdu requestPdu = popRequestPdu(pdu.getAckSequenceId());
                             if (requestPdu != null) {
                                 requestPdu.setResponseResult(pdu.getJsonPackage());
                                 synchronized (requestPdu) {
@@ -308,11 +311,12 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
                             }
                         } else {
                             String result = _dispatcher.dispatch(pdu);
-                            if (result == null)
+                            if (result == null) {
                                 result = "";
+                            }
 
                             if (pdu.getPduType() == ClusterServicePdu.PDU_TYPE_REQUEST) {
-                                ClusterServicePdu responsePdu = new ClusterServicePdu();
+                                final ClusterServicePdu responsePdu = new ClusterServicePdu();
                                 responsePdu.setPduType(ClusterServicePdu.PDU_TYPE_RESPONSE);
                                 responsePdu.setSourcePeer(pdu.getDestPeer());
                                 responsePdu.setDestPeer(pdu.getSourcePeer());
@@ -324,14 +328,14 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
                         }
                     }
                 });
-            } catch (Throwable e) {
+            } catch (final Throwable e) {
                 s_logger.error("Unexcpeted exception: ", e);
             }
         }
     }
 
     @Override
-    public void OnReceiveClusterServicePdu(ClusterServicePdu pdu) {
+    public void OnReceiveClusterServicePdu(final ClusterServicePdu pdu) {
         addIncomingClusterPdu(pdu);
     }
 
@@ -343,17 +347,17 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
      *            peer is running regardless of version.
      * @return true if there are peers running and false if not.
      */
-    public static final boolean arePeersRunning(String notVersion) {
+    public static final boolean arePeersRunning(final String notVersion) {
         return false; // TODO: Leaving this for Kelven to take care of.
     }
 
     @Override
-    public void broadcast(long agentId, String cmds) {
-        Date cutTime = DateUtil.currentGMTTime();
+    public void broadcast(final long agentId, final String cmds) {
+        final Date cutTime = DateUtil.currentGMTTime();
 
-        List<ManagementServerHostVO> peers = _mshostDao.getActiveList(new Date(cutTime.getTime() - HeartbeatThreshold.value()));
-        for (ManagementServerHostVO peer : peers) {
-            String peerName = Long.toString(peer.getMsid());
+        final List<ManagementServerHostVO> peers = _mshostDao.getActiveList(new Date(cutTime.getTime() - HeartbeatThreshold.value()));
+        for (final ManagementServerHostVO peer : peers) {
+            final String peerName = Long.toString(peer.getMsid());
             if (getSelfPeerName().equals(peerName)) {
                 continue; // Skip myself.
             }
@@ -362,14 +366,14 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
                     s_logger.debug("Forwarding " + cmds + " to " + peer.getMsid());
                 }
                 executeAsync(peerName, agentId, cmds, true);
-            } catch (Exception e) {
+            } catch (final Exception e) {
                 s_logger.warn("Caught exception while talkign to " + peer.getMsid());
             }
         }
     }
 
-    public void executeAsync(String strPeer, long agentId, String cmds, boolean stopOnError) {
-        ClusterServicePdu pdu = new ClusterServicePdu();
+    public void executeAsync(final String strPeer, final long agentId, final String cmds, final boolean stopOnError) {
+        final ClusterServicePdu pdu = new ClusterServicePdu();
         pdu.setSourcePeer(getSelfPeerName());
         pdu.setDestPeer(strPeer);
         pdu.setAgentId(agentId);
@@ -379,12 +383,12 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
     }
 
     @Override
-    public String execute(String strPeer, long agentId, String cmds, boolean stopOnError) {
+    public String execute(final String strPeer, final long agentId, final String cmds, final boolean stopOnError) {
         if (s_logger.isDebugEnabled()) {
             s_logger.debug(getSelfPeerName() + " -> " + strPeer + "." + agentId + " " + cmds);
         }
 
-        ClusterServiceRequestPdu pdu = new ClusterServiceRequestPdu();
+        final ClusterServiceRequestPdu pdu = new ClusterServiceRequestPdu();
         pdu.setSourcePeer(getSelfPeerName());
         pdu.setDestPeer(strPeer);
         pdu.setAgentId(agentId);
@@ -396,7 +400,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         synchronized (pdu) {
             try {
                 pdu.wait();
-            } catch (InterruptedException e) {
+            } catch (final InterruptedException e) {
             }
         }
 
@@ -412,7 +416,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
     }
 
     @Override
-    public ManagementServerHostVO getPeer(String mgmtServerId) {
+    public ManagementServerHostVO getPeer(final String mgmtServerId) {
         return _mshostDao.findByMsid(Long.parseLong(mgmtServerId));
     }
 
@@ -426,7 +430,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
     }
 
     @Override
-    public void registerListener(ClusterManagerListener listener) {
+    public void registerListener(final ClusterManagerListener listener) {
         // Note : we don't check duplicates
         synchronized (_listeners) {
 
@@ -437,7 +441,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
     }
 
     @Override
-    public void unregisterListener(ClusterManagerListener listener) {
+    public void unregisterListener(final ClusterManagerListener listener) {
         synchronized (_listeners) {
             s_logger.info("unregister cluster listener " + listener.getClass());
 
@@ -445,17 +449,17 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         }
     }
 
-    public void notifyNodeJoined(List<ManagementServerHostVO> nodeList) {
+    public void notifyNodeJoined(final List<ManagementServerHostVO> nodeList) {
         if (s_logger.isDebugEnabled()) {
             s_logger.debug("Notify management server node join to listeners.");
 
-            for (ManagementServerHostVO mshost : nodeList) {
+            for (final ManagementServerHostVO mshost : nodeList) {
                 s_logger.debug("Joining node, IP: " + mshost.getServiceIP() + ", msid: " + mshost.getMsid());
             }
         }
 
         synchronized (_listeners) {
-            for (ClusterManagerListener listener : _listeners) {
+            for (final ClusterManagerListener listener : _listeners) {
                 listener.onManagementNodeJoined(nodeList, _mshostId);
             }
         }
@@ -463,19 +467,20 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         SubscriptionMgr.getInstance().notifySubscribers(ClusterManager.ALERT_SUBJECT, this, new ClusterNodeJoinEventArgs(_mshostId, nodeList));
     }
 
-    public void notifyNodeLeft(List<ManagementServerHostVO> nodeList) {
+    public void notifyNodeLeft(final List<ManagementServerHostVO> nodeList) {
         if (s_logger.isDebugEnabled()) {
             s_logger.debug("Notify management server node left to listeners.");
         }
 
-        for (ManagementServerHostVO mshost : nodeList) {
-            if (s_logger.isDebugEnabled())
+        for (final ManagementServerHostVO mshost : nodeList) {
+            if (s_logger.isDebugEnabled()) {
                 s_logger.debug("Leaving node, IP: " + mshost.getServiceIP() + ", msid: " + mshost.getMsid());
+            }
             cancelClusterRequestToPeer(String.valueOf(mshost.getMsid()));
         }
 
         synchronized (_listeners) {
-            for (ClusterManagerListener listener : _listeners) {
+            for (final ClusterManagerListener listener : _listeners) {
                 listener.onManagementNodeLeft(nodeList, _mshostId);
             }
         }
@@ -484,24 +489,25 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
     }
 
     public void notifyNodeIsolated() {
-        if (s_logger.isDebugEnabled())
+        if (s_logger.isDebugEnabled()) {
             s_logger.debug("Notify management server node isolation to listeners");
+        }
 
         synchronized (_listeners) {
-            for (ClusterManagerListener listener : _listeners) {
+            for (final ClusterManagerListener listener : _listeners) {
                 listener.onManagementNodeIsolated();
             }
         }
     }
 
-    public ClusterService getPeerService(String strPeer) throws RemoteException {
+    public ClusterService getPeerService(final String strPeer) throws RemoteException {
         synchronized (_clusterPeers) {
             if (_clusterPeers.containsKey(strPeer)) {
                 return _clusterPeers.get(strPeer);
             }
         }
 
-        ClusterService service = _currentServiceAdapter.getPeerService(strPeer);
+        final ClusterService service = _currentServiceAdapter.getPeerService(strPeer);
 
         if (service != null) {
             synchronized (_clusterPeers) {
@@ -516,7 +522,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         return service;
     }
 
-    public void invalidatePeerService(String strPeer) {
+    public void invalidatePeerService(final String strPeer) {
         synchronized (_clusterPeers) {
             if (_clusterPeers.containsKey(strPeer)) {
                 _clusterPeers.remove(strPeer);
@@ -528,11 +534,11 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         return new ManagedContextRunnable() {
             @Override
             protected void runInContext() {
-                TransactionLegacy txn = TransactionLegacy.open("ClusterHeartbeat");
+                final TransactionLegacy txn = TransactionLegacy.open("ClusterHeartbeat");
                 try {
-                    Profiler profiler = new Profiler();
-                    Profiler profilerHeartbeatUpdate = new Profiler();
-                    Profiler profilerPeerScan = new Profiler();
+                    final Profiler profiler = new Profiler();
+                    final Profiler profilerHeartbeatUpdate = new Profiler();
+                    final Profiler profilerPeerScan = new Profiler();
 
                     try {
                         profiler.start();
@@ -563,13 +569,14 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
                         profiler.stop();
 
                         if (profiler.getDuration() >= HeartbeatInterval.value()) {
-                            if (s_logger.isDebugEnabled())
+                            if (s_logger.isDebugEnabled()) {
                                 s_logger.debug("Management server heartbeat takes too long to finish. profiler: " + profiler.toString() + ", profilerHeartbeatUpdate: " +
-                                    profilerHeartbeatUpdate.toString() + ", profilerPeerScan: " + profilerPeerScan.toString());
+                                        profilerHeartbeatUpdate.toString() + ", profilerPeerScan: " + profilerPeerScan.toString());
+                            }
                         }
                     }
 
-                } catch (CloudRuntimeException e) {
+                } catch (final CloudRuntimeException e) {
                     s_logger.error("Runtime DB exception ", e.getCause());
 
                     if (e.getCause() instanceof ClusterInvalidSessionException) {
@@ -580,9 +587,9 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
                     if (isRootCauseConnectionRelated(e.getCause())) {
                         invalidHeartbeatConnection();
                     }
-                } catch (ActiveFencingException e) {
+                } catch (final ActiveFencingException e) {
                     queueNotification(new ClusterManagerMessage(ClusterManagerMessage.MessageType.nodeIsolated));
-                } catch (Throwable e) {
+                } catch (final Throwable e) {
                     s_logger.error("Unexpected exception in cluster heartbeat", e);
                     if (isRootCauseConnectionRelated(e.getCause())) {
                         invalidHeartbeatConnection();
@@ -598,7 +605,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
     private boolean isRootCauseConnectionRelated(Throwable e) {
         while (e != null) {
             if (e instanceof SQLRecoverableException || e instanceof SQLNonTransientException) {
-                    return true;
+                return true;
             }
 
             e = e.getCause();
@@ -609,7 +616,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
 
     private Connection getHeartbeatConnection() throws SQLException {
         if (_heartbeatConnection == null) {
-            Connection conn = TransactionLegacy.getStandaloneConnectionWithException();
+            final Connection conn = TransactionLegacy.getStandaloneConnectionWithException();
             _heartbeatConnection = new ConnectionConcierge("ClusterManagerHeartbeat", conn, false);
         }
 
@@ -618,7 +625,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
 
     private void invalidHeartbeatConnection() {
         if (_heartbeatConnection != null) {
-            Connection conn = TransactionLegacy.getStandaloneConnection();
+            final Connection conn = TransactionLegacy.getStandaloneConnection();
             if (conn != null) {
                 _heartbeatConnection.reset(conn);
             } else {
@@ -638,7 +645,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
                     synchronized (_notificationMsgs) {
                         try {
                             _notificationMsgs.wait(1000);
-                        } catch (InterruptedException e) {
+                        } catch (final InterruptedException e) {
                         }
                     }
 
@@ -646,94 +653,94 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
                     while ((msg = getNextNotificationMessage()) != null) {
                         try {
                             switch (msg.getMessageType()) {
-                                case nodeAdded:
-                                    if (msg.getNodes() != null && msg.getNodes().size() > 0) {
-                                        Profiler profiler = new Profiler();
-                                        profiler.start();
-
-                                        notifyNodeJoined(msg.getNodes());
-
-                                        profiler.stop();
-                                        if (profiler.getDuration() > 1000) {
-                                            if (s_logger.isDebugEnabled()) {
-                                                s_logger.debug("Notifying management server join event took " + profiler.getDuration() + " ms");
-                                            }
-                                        } else {
-                                            s_logger.warn("Notifying management server join event took " + profiler.getDuration() + " ms");
+                            case nodeAdded:
+                                if (msg.getNodes() != null && msg.getNodes().size() > 0) {
+                                    final Profiler profiler = new Profiler();
+                                    profiler.start();
+
+                                    notifyNodeJoined(msg.getNodes());
+
+                                    profiler.stop();
+                                    if (profiler.getDuration() > 1000) {
+                                        if (s_logger.isDebugEnabled()) {
+                                            s_logger.debug("Notifying management server join event took " + profiler.getDuration() + " ms");
                                         }
+                                    } else {
+                                        s_logger.warn("Notifying management server join event took " + profiler.getDuration() + " ms");
                                     }
-                                    break;
-
-                                case nodeRemoved:
-                                    if (msg.getNodes() != null && msg.getNodes().size() > 0) {
-                                        Profiler profiler = new Profiler();
-                                        profiler.start();
-
-                                        notifyNodeLeft(msg.getNodes());
-
-                                        profiler.stop();
-                                        if (profiler.getDuration() > 1000) {
-                                            if (s_logger.isDebugEnabled()) {
-                                                s_logger.debug("Notifying management server leave event took " + profiler.getDuration() + " ms");
-                                            }
-                                        } else {
-                                            s_logger.warn("Notifying management server leave event took " + profiler.getDuration() + " ms");
+                                }
+                                break;
+
+                            case nodeRemoved:
+                                if (msg.getNodes() != null && msg.getNodes().size() > 0) {
+                                    final Profiler profiler = new Profiler();
+                                    profiler.start();
+
+                                    notifyNodeLeft(msg.getNodes());
+
+                                    profiler.stop();
+                                    if (profiler.getDuration() > 1000) {
+                                        if (s_logger.isDebugEnabled()) {
+                                            s_logger.debug("Notifying management server leave event took " + profiler.getDuration() + " ms");
                                         }
+                                    } else {
+                                        s_logger.warn("Notifying management server leave event took " + profiler.getDuration() + " ms");
                                     }
-                                    break;
+                                }
+                                break;
 
-                                case nodeIsolated:
-                                    notifyNodeIsolated();
-                                    break;
+                            case nodeIsolated:
+                                notifyNodeIsolated();
+                                break;
 
-                                default:
-                                    assert (false);
-                                    break;
+                            default:
+                                assert false;
+                                break;
                             }
 
-                        } catch (Throwable e) {
+                        } catch (final Throwable e) {
                             s_logger.warn("Unexpected exception during cluster notification. ", e);
                         }
                     }
 
                     try {
                         Thread.sleep(1000);
-                    } catch (InterruptedException e) {
+                    } catch (final InterruptedException e) {
                     }
                 }
             }
         };
     }
 
-    private void queueNotification(ClusterManagerMessage msg) {
+    private void queueNotification(final ClusterManagerMessage msg) {
         synchronized (_notificationMsgs) {
             _notificationMsgs.add(msg);
             _notificationMsgs.notifyAll();
         }
 
         switch (msg.getMessageType()) {
-            case nodeAdded: {
-                List<ManagementServerHostVO> l = msg.getNodes();
-                if (l != null && l.size() > 0) {
-                    for (ManagementServerHostVO mshost : l) {
-                        _mshostPeerDao.updatePeerInfo(_mshostId, mshost.getId(), mshost.getRunid(), ManagementServerHost.State.Up);
-                    }
+        case nodeAdded: {
+            final List<ManagementServerHostVO> l = msg.getNodes();
+            if (l != null && l.size() > 0) {
+                for (final ManagementServerHostVO mshost : l) {
+                    _mshostPeerDao.updatePeerInfo(_mshostId, mshost.getId(), mshost.getRunid(), ManagementServerHost.State.Up);
                 }
             }
-                break;
+        }
+        break;
 
-            case nodeRemoved: {
-                List<ManagementServerHostVO> l = msg.getNodes();
-                if (l != null && l.size() > 0) {
-                    for (ManagementServerHostVO mshost : l) {
-                        _mshostPeerDao.updatePeerInfo(_mshostId, mshost.getId(), mshost.getRunid(), ManagementServerHost.State.Down);
-                    }
+        case nodeRemoved: {
+            final List<ManagementServerHostVO> l = msg.getNodes();
+            if (l != null && l.size() > 0) {
+                for (final ManagementServerHostVO mshost : l) {
+                    _mshostPeerDao.updatePeerInfo(_mshostId, mshost.getId(), mshost.getRunid(), ManagementServerHost.State.Down);
                 }
             }
-                break;
+        }
+        break;
 
-            default:
-                break;
+        default:
+            break;
         }
     }
 
@@ -750,14 +757,14 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
     private void initPeerScan() {
         // upon startup, for all inactive management server nodes that we see at startup time, we will send notification also to help upper layer perform
         // missed cleanup
-        Date cutTime = DateUtil.currentGMTTime();
-        List<ManagementServerHostVO> inactiveList = _mshostDao.getInactiveList(new Date(cutTime.getTime() - HeartbeatThreshold.value()));
+        final Date cutTime = DateUtil.currentGMTTime();
+        final List<ManagementServerHostVO> inactiveList = _mshostDao.getInactiveList(new Date(cutTime.getTime() - HeartbeatThreshold.value()));
 
         // We don't have foreign key constraints to enforce the mgmt_server_id integrity in host table, when user manually
         // remove records from mshost table, this will leave orphan mgmt_serve_id reference in host table.
-        List<Long> orphanList = _mshostDao.listOrphanMsids();
+        final List<Long> orphanList = _mshostDao.listOrphanMsids();
         if (orphanList.size() > 0) {
-            for (Long orphanMsid : orphanList) {
+            for (final Long orphanMsid : orphanList) {
                 // construct fake ManagementServerHostVO based on orphan MSID
                 s_logger.info("Add orphan management server msid found in host table to initial clustering notification, orphan msid: " + orphanMsid);
                 inactiveList.add(new ManagementServerHostVO(orphanMsid, 0, "orphan", 0, new Date()));
@@ -769,55 +776,57 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         if (inactiveList.size() > 0) {
             if (s_logger.isInfoEnabled()) {
                 s_logger.info("Found " + inactiveList.size() + " inactive management server node based on timestamp");
-                for (ManagementServerHostVO host : inactiveList)
+                for (final ManagementServerHostVO host : inactiveList) {
                     s_logger.info("management server node msid: " + host.getMsid() + ", name: " + host.getName() + ", service ip: " + host.getServiceIP() +
-                        ", version: " + host.getVersion());
+                            ", version: " + host.getVersion());
+                }
             }
 
-            List<ManagementServerHostVO> downHostList = new ArrayList<ManagementServerHostVO>();
-            for (ManagementServerHostVO host : inactiveList) {
+            final List<ManagementServerHostVO> downHostList = new ArrayList<ManagementServerHostVO>();
+            for (final ManagementServerHostVO host : inactiveList) {
                 if (!pingManagementNode(host)) {
                     s_logger.warn("Management node " + host.getId() + " is detected inactive by timestamp and also not pingable");
                     downHostList.add(host);
                 }
             }
 
-            if (downHostList.size() > 0)
+            if (downHostList.size() > 0) {
                 queueNotification(new ClusterManagerMessage(ClusterManagerMessage.MessageType.nodeRemoved, downHostList));
+            }
         } else {
             s_logger.info("No inactive management server node found");
         }
     }
 
     private void peerScan() throws ActiveFencingException {
-        Date cutTime = DateUtil.currentGMTTime();
+        final Date cutTime = DateUtil.currentGMTTime();
 
-        Profiler profiler = new Profiler();
+        final Profiler profiler = new Profiler();
         profiler.start();
 
-        Profiler profilerQueryActiveList = new Profiler();
+        final Profiler profilerQueryActiveList = new Profiler();
         profilerQueryActiveList.start();
-        List<ManagementServerHostVO> currentList = _mshostDao.getActiveList(new Date(cutTime.getTime() - HeartbeatThreshold.value()));
+        final List<ManagementServerHostVO> currentList = _mshostDao.getActiveList(new Date(cutTime.getTime() - HeartbeatThreshold.value()));
         profilerQueryActiveList.stop();
 
-        Profiler profilerSyncClusterInfo = new Profiler();
+        final Profiler profilerSyncClusterInfo = new Profiler();
         profilerSyncClusterInfo.start();
-        List<ManagementServerHostVO> removedNodeList = new ArrayList<ManagementServerHostVO>();
-        List<ManagementServerHostVO> invalidatedNodeList = new ArrayList<ManagementServerHostVO>();
+        final List<ManagementServerHostVO> removedNodeList = new ArrayList<ManagementServerHostVO>();
+        final List<ManagementServerHostVO> invalidatedNodeList = new ArrayList<ManagementServerHostVO>();
 
         if (_mshostId != null) {
 
             if (_mshostPeerDao.countStateSeenInPeers(_mshostId, _runId, ManagementServerHost.State.Down) > 0) {
-                String msg =
-                    "We have detected that at least one management server peer reports that this management server is down, perform active fencing to avoid split-brain situation";
+                final String msg =
+                        "We have detected that at least one management server peer reports that this management server is down, perform active fencing to avoid split-brain situation";
                 s_logger.error(msg);
                 throw new ActiveFencingException(msg);
             }
 
             // only if we have already attached to cluster, will we start to check leaving nodes
-            for (Map.Entry<Long, ManagementServerHostVO> entry : _activePeers.entrySet()) {
+            for (final Map.Entry<Long, ManagementServerHostVO> entry : _activePeers.entrySet()) {
 
-                ManagementServerHostVO current = getInListById(entry.getKey(), currentList);
+                final ManagementServerHostVO current = getInListById(entry.getKey(), currentList);
                 if (current == null) {
                     if (entry.getKey().longValue() != _mshostId.longValue()) {
                         if (s_logger.isDebugEnabled()) {
@@ -830,7 +839,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
                         if (entry.getKey().longValue() != _mshostId.longValue()) {
                             if (s_logger.isDebugEnabled()) {
                                 s_logger.debug("Detected management node left because of invalidated session, id:" + entry.getKey() + ", nodeIP:" +
-                                    entry.getValue().getServiceIP());
+                                        entry.getValue().getServiceIP());
                             }
                             invalidatedNodeList.add(entry.getValue());
                         }
@@ -848,15 +857,15 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         }
         profilerSyncClusterInfo.stop();
 
-        Profiler profilerInvalidatedNodeList = new Profiler();
+        final Profiler profilerInvalidatedNodeList = new Profiler();
         profilerInvalidatedNodeList.start();
         // process invalidated node list
         if (invalidatedNodeList.size() > 0) {
-            for (ManagementServerHostVO mshost : invalidatedNodeList) {
+            for (final ManagementServerHostVO mshost : invalidatedNodeList) {
                 _activePeers.remove(mshost.getId());
                 try {
                     JmxUtil.unregisterMBean("ClusterManager", "Node " + mshost.getId());
-                } catch (Exception e) {
+                } catch (final Exception e) {
                     s_logger.warn("Unable to deregiester cluster node from JMX monitoring due to exception " + e.toString());
                 }
             }
@@ -865,18 +874,18 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         }
         profilerInvalidatedNodeList.stop();
 
-        Profiler profilerRemovedList = new Profiler();
+        final Profiler profilerRemovedList = new Profiler();
         profilerRemovedList.start();
         // process removed node list
-        Iterator<ManagementServerHostVO> it = removedNodeList.iterator();
+        final Iterator<ManagementServerHostVO> it = removedNodeList.iterator();
         while (it.hasNext()) {
-            ManagementServerHostVO mshost = it.next();
+            final ManagementServerHostVO mshost = it.next();
             if (!pingManagementNode(mshost)) {
                 s_logger.warn("Management node " + mshost.getId() + " is detected inactive by timestamp and also not pingable");
                 _activePeers.remove(mshost.getId());
                 try {
                     JmxUtil.unregisterMBean("ClusterManager", "Node " + mshost.getId());
-                } catch (Exception e) {
+                } catch (final Exception e) {
                     s_logger.warn("Unable to deregiester cluster node from JMX monitoring due to exception " + e.toString());
                 }
             } else {
@@ -890,8 +899,8 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         }
         profilerRemovedList.stop();
 
-        List<ManagementServerHostVO> newNodeList = new ArrayList<ManagementServerHostVO>();
-        for (ManagementServerHostVO mshost : currentList) {
+        final List<ManagementServerHostVO> newNodeList = new ArrayList<ManagementServerHostVO>();
+        for (final ManagementServerHostVO mshost : currentList) {
             if (!_activePeers.containsKey(mshost.getId())) {
                 _activePeers.put(mshost.getId(), mshost);
 
@@ -902,7 +911,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
 
                 try {
                     JmxUtil.registerMBean("ClusterManager", "Node " + mshost.getId(), new ClusterManagerMBeanImpl(this, mshost));
-                } catch (Exception e) {
+                } catch (final Exception e) {
                     s_logger.warn("Unable to regiester cluster node into JMX monitoring due to exception " + ExceptionUtil.toString(e));
                 }
             }
@@ -915,15 +924,16 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         profiler.stop();
 
         if (profiler.getDuration() >= HeartbeatInterval.value()) {
-            if (s_logger.isDebugEnabled())
+            if (s_logger.isDebugEnabled()) {
                 s_logger.debug("Peer scan takes too long to finish. profiler: " + profiler.toString() + ", profilerQueryActiveList: " +
-                    profilerQueryActiveList.toString() + ", profilerSyncClusterInfo: " + profilerSyncClusterInfo.toString() + ", profilerInvalidatedNodeList: " +
-                    profilerInvalidatedNodeList.toString() + ", profilerRemovedList: " + profilerRemovedList.toString());
+                        profilerQueryActiveList.toString() + ", profilerSyncClusterInfo: " + profilerSyncClusterInfo.toString() + ", profilerInvalidatedNodeList: " +
+                        profilerInvalidatedNodeList.toString() + ", profilerRemovedList: " + profilerRemovedList.toString());
+            }
         }
     }
 
-    private static ManagementServerHostVO getInListById(Long id, List<ManagementServerHostVO> l) {
-        for (ManagementServerHostVO mshost : l) {
+    private static ManagementServerHostVO getInListById(final Long id, final List<ManagementServerHostVO> l) {
+        for (final ManagementServerHostVO mshost : l) {
             if (mshost.getId() == id) {
                 return mshost;
             }
@@ -938,12 +948,12 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
             s_logger.info("Starting Cluster manager, msid : " + _msId);
         }
 
-        ManagementServerHostVO mshost = Transaction.execute(new TransactionCallback<ManagementServerHostVO>() {
+        final ManagementServerHostVO mshost = Transaction.execute(new TransactionCallback<ManagementServerHostVO>() {
             @Override
-            public ManagementServerHostVO doInTransaction(TransactionStatus status) {
+            public ManagementServerHostVO doInTransaction(final TransactionStatus status) {
 
                 final Class<?> c = this.getClass();
-                String version = c.getPackage().getImplementationVersion();
+                final String version = c.getPackage().getImplementationVersion();
 
                 ManagementServerHostVO mshost = _mshostDao.findByMsid(_msId);
                 if (mshost == null) {
@@ -964,7 +974,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
                     }
                 } else {
                     _mshostDao.update(mshost.getId(), _runId, NetUtils.getHostName(), version, _clusterNodeIP, _currentServiceAdapter.getServicePort(),
-                        DateUtil.currentGMTTime());
+                            DateUtil.currentGMTTime());
                     if (s_logger.isInfoEnabled()) {
                         s_logger.info("Management server " + _msId + ", runId " + _runId + " is being started");
                     }
@@ -1000,7 +1010,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         }
 
         if (_mshostId != null) {
-            ManagementServerHostVO mshost = _mshostDao.findByMsid(_msId);
+            final ManagementServerHostVO mshost = _mshostDao.findByMsid(_msId);
             mshost.setState(ManagementServerHost.State.Down);
             _mshostDao.update(_mshostId, mshost);
         }
@@ -1011,7 +1021,7 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         try {
             _heartbeatScheduler.awaitTermination(EXECUTOR_SHUTDOWN_TIMEOUT, TimeUnit.MILLISECONDS);
             _executor.awaitTermination(EXECUTOR_SHUTDOWN_TIMEOUT, TimeUnit.MILLISECONDS);
-        } catch (InterruptedException e) {
+        } catch (final InterruptedException e) {
         }
 
         if (s_logger.isInfoEnabled()) {
@@ -1022,12 +1032,12 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
     }
 
     @Override
-    public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
+    public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
         if (s_logger.isInfoEnabled()) {
             s_logger.info("Start configuring cluster manager : " + name);
         }
 
-        Properties dbProps = DbProperties.getDbProperties();
+        final Properties dbProps = DbProperties.getDbProperties();
         _clusterNodeIP = dbProps.getProperty("cluster.node.IP");
         if (_clusterNodeIP == null) {
             _clusterNodeIP = "127.0.0.1";
@@ -1042,8 +1052,9 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
             throw new ConfigurationException("cluster node IP should be valid local address where the server is running, please check your configuration");
         }
 
-        for (int i = 0; i < DEFAULT_OUTGOING_WORKERS; i++)
+        for (int i = 0; i < DEFAULT_OUTGOING_WORKERS; i++) {
             _executor.execute(getClusterPduSendingTask());
+        }
 
         // notification task itself in turn works as a task dispatcher
         _executor.execute(getClusterPduNotificationTask());
@@ -1076,16 +1087,16 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
     }
 
     @Override
-    public long getManagementRunId(long msId) {
-        ManagementServerHostVO mshost = _mshostDao.findByMsid(msId);
+    public long getManagementRunId(final long msId) {
+        final ManagementServerHostVO mshost = _mshostDao.findByMsid(msId);
         if (mshost != null) {
             return mshost.getRunid();
         }
         return -1;
     }
 
-    public boolean isManagementNodeAlive(long msid) {
-        ManagementServerHostVO mshost = _mshostDao.findByMsid(msid);
+    public boolean isManagementNodeAlive(final long msid) {
+        final ManagementServerHostVO mshost = _mshostDao.findByMsid(msid);
         if (mshost != null) {
             if (mshost.getLastUpdateTime().getTime() >= DateUtil.currentGMTTime().getTime() - HeartbeatThreshold.value()) {
                 return true;
@@ -1095,8 +1106,8 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         return false;
     }
 
-    public boolean pingManagementNode(long msid) {
-        ManagementServerHostVO mshost = _mshostDao.findByMsid(msid);
+    public boolean pingManagementNode(final long msid) {
+        final ManagementServerHostVO mshost = _mshostDao.findByMsid(msid);
         if (mshost == null) {
             return false;
         }
@@ -1114,9 +1125,9 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
         return new ConfigKey<?>[] {HeartbeatInterval, HeartbeatThreshold};
     }
 
-    private boolean pingManagementNode(ManagementServerHostVO mshost) {
+    private boolean pingManagementNode(final ManagementServerHostVO mshost) {
 
-        String targetIp = mshost.getServiceIP();
+        final String targetIp = mshost.getServiceIP();
         if ("127.0.0.1".equals(targetIp) || "0.0.0.0".equals(targetIp)) {
             s_logger.info("ping management node cluster service can not be performed on self");
             return false;
@@ -1131,10 +1142,10 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
                 sch.configureBlocking(true);
                 sch.socket().setSoTimeout(5000);
 
-                InetSocketAddress addr = new InetSocketAddress(targetIp, mshost.getServicePort());
+                final InetSocketAddress addr = new InetSocketAddress(targetIp, mshost.getServicePort());
                 sch.connect(addr);
                 return true;
-            } catch (IOException e) {
+            } catch (final IOException e) {
                 if (e instanceof ConnectException) {
                     s_logger.error("Unable to ping management server at " + targetIp + ":" + mshost.getServicePort() + " due to ConnectException", e);
                     return false;
@@ -1143,14 +1154,14 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
                 if (sch != null) {
                     try {
                         sch.close();
-                    } catch (IOException e) {
+                    } catch (final IOException e) {
                     }
                 }
             }
 
             try {
                 Thread.sleep(1000);
-            } catch (InterruptedException ex) {
+            } catch (final InterruptedException ex) {
             }
         }
 
@@ -1163,31 +1174,31 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
     }
 
     private void checkConflicts() throws ConfigurationException {
-        Date cutTime = DateUtil.currentGMTTime();
-        List<ManagementServerHostVO> peers = _mshostDao.getActiveList(new Date(cutTime.getTime() - HeartbeatThreshold.value()));
-        for (ManagementServerHostVO peer : peers) {
-            String peerIP = peer.getServiceIP().trim();
+        final Date cutTime = DateUtil.currentGMTTime();
+        final List<ManagementServerHostVO> peers = _mshostDao.getActiveList(new Date(cutTime.getTime() - HeartbeatThreshold.value()));
+        for (final ManagementServerHostVO peer : peers) {
+            final String peerIP = peer.getServiceIP().trim();
             if (_clusterNodeIP.equals(peerIP)) {
                 if ("127.0.0.1".equals(_clusterNodeIP)) {
                     if (pingManagementNode(peer.getMsid())) {
-                        String msg = "Detected another management node with localhost IP is already running, please check your cluster configuration";
+                        final String msg = "Detected another management node with localhost IP is already running, please check your cluster configuration";
                         s_logger.error(msg);
                         throw new ConfigurationException(msg);
                     } else {
-                        String msg =
-                            "Detected another management node with localhost IP is considered as running in DB, however it is not pingable, we will continue cluster initialization with this management server node";
+                        final String msg =
+                                "Detected another management node with localhost IP is considered as running in DB, however it is not pingable, we will continue cluster initialization with this management server node";
                         s_logger.info(msg);
                     }
                 } else {
                     if (pingManagementNode(peer.getMsid())) {
-                        String msg =
-                            "Detected that another management node with the same IP " + peer.getServiceIP() +
+                        final String msg =
+                                "Detected that another management node with the same IP " + peer.getServiceIP() +
                                 " is already running, please check your cluster configuration";
                         s_logger.error(msg);
                         throw new ConfigurationException(msg);
                     } else {
-                        String msg =
-                            "Detected that another management node with the same IP " + peer.getServiceIP() +
+                        final String msg =
+                                "Detected that another management node with the same IP " + peer.getServiceIP() +
                                 " is considered as running in DB, however it is not pingable, we will continue cluster initialization with this management server node";
                         s_logger.info(msg);
                     }


[42/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Add git status output to debug git fetch failures

Signed-off-by: Daan Hoogland <da...@onecht.net>

This closes #523


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

Branch: refs/heads/dhcpoffload
Commit: 12d52401f778cb78b5dea798300c3468f95a90e0
Parents: 916aead
Author: Rafael da Fonseca <rs...@gmail.com>
Authored: Thu Jun 25 00:56:07 2015 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Thu Jun 25 11:29:13 2015 +0200

----------------------------------------------------------------------
 tools/travis/before_install.sh | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/12d52401/tools/travis/before_install.sh
----------------------------------------------------------------------
diff --git a/tools/travis/before_install.sh b/tools/travis/before_install.sh
index b0d33a1..7231ecb 100755
--- a/tools/travis/before_install.sh
+++ b/tools/travis/before_install.sh
@@ -49,6 +49,9 @@ javac -version
 echo -e "\nMaven Version: "
 mvn -v
 
+echo -e "\nCheck Git status"
+git status
+
 echo -e "\nUpdating the system: "
 sudo apt-get -q -y update > /dev/null
 


[32/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Merge branch 'test/pr518'


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

Branch: refs/heads/dhcpoffload
Commit: 6c5bc96174a8b081c3153db85c15b5afeb16b4b8
Parents: da72bb9 4463881
Author: wilderrodrigues <wr...@schubergphilis.com>
Authored: Wed Jun 24 09:54:07 2015 +0200
Committer: wilderrodrigues <wr...@schubergphilis.com>
Committed: Wed Jun 24 09:54:07 2015 +0200

----------------------------------------------------------------------
 test/integration/component/test_stopped_vm.py | 49 +++++++++++++---------
 1 file changed, 30 insertions(+), 19 deletions(-)
----------------------------------------------------------------------



[25/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Testing the elapsed time between 2 consecultive calls to System.nanoTime()

   - 1 test was added

Signed-off-by: Daan Hoogland <da...@onecht.net>


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

Branch: refs/heads/dhcpoffload
Commit: 2f145378dff577bd153e0585f4990f637185d900
Parents: 5557ad5
Author: wilderrodrigues <wr...@schubergphilis.com>
Authored: Tue Jun 23 19:21:29 2015 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Wed Jun 24 09:36:40 2015 +0200

----------------------------------------------------------------------
 utils/test/com/cloud/utils/TestProfiler.java | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2f145378/utils/test/com/cloud/utils/TestProfiler.java
----------------------------------------------------------------------
diff --git a/utils/test/com/cloud/utils/TestProfiler.java b/utils/test/com/cloud/utils/TestProfiler.java
index cbd28f5..d801059 100644
--- a/utils/test/com/cloud/utils/TestProfiler.java
+++ b/utils/test/com/cloud/utils/TestProfiler.java
@@ -94,4 +94,18 @@ public class TestProfiler extends Log4jEnabledTestCase {
         Assert.assertTrue(pf.getDurationInMillis() == -1);
         Assert.assertFalse(pf.isStopped());
     }
+
+    @Test
+    public void testResolution() {
+        long nanoTime1 = 0l;
+        long nanoTime2 = 0l;
+        nanoTime1 = System.nanoTime();
+        nanoTime2 = System.nanoTime();
+        System.out.println("Nano time 1: " + nanoTime1);
+        System.out.println("Nano time 2: " + nanoTime2);
+
+        // We are measuring the elapsed time in 2 consecutive calls of System.nanoTime()
+        // That's the same as 0.002 milliseconds or 2000 nanoseconds.
+        Assert.assertTrue("It took more than 2 microseconds between 2 consecutive calls to System.nanoTime().", nanoTime2 - nanoTime1 <= 2000);
+    }
 }
\ No newline at end of file


[16/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
CLOUDSTACK-8578: fix listVirtualMachines does not return deleted machines when zone is specified

Signed-off-by: Daan Hoogland <da...@gmail.com>

This closes #510


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

Branch: refs/heads/dhcpoffload
Commit: 82ecc1aa06e75bb15fe5d0bd8628f7acc6b61623
Parents: 66d51c9
Author: Rene Moser <re...@apache.org>
Authored: Tue Jun 23 10:17:25 2015 +0200
Committer: Daan Hoogland <da...@gmail.com>
Committed: Tue Jun 23 14:53:08 2015 +0200

----------------------------------------------------------------------
 server/src/com/cloud/api/query/QueryManagerImpl.java | 4 ----
 1 file changed, 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/82ecc1aa/server/src/com/cloud/api/query/QueryManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java
index 8179882..9840958 100644
--- a/server/src/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/com/cloud/api/query/QueryManagerImpl.java
@@ -982,10 +982,6 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
 
         if (zoneId != null) {
             sc.setParameters("dataCenterId", zoneId);
-
-            if (state == null) {
-                sc.setParameters("stateNEQ", "Destroyed");
-            }
         }
 
         if (affinityGroupId != null) {


[29/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
CLOUDSTACK-8574: Skip testcases including data disk creation for LXC if storagePool type is not RBD

Signed-off-by: wilderrodrigues <wr...@schubergphilis.com>


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

Branch: refs/heads/dhcpoffload
Commit: 6f643fc48690b0cdc3649f32e721221c7f0e9650
Parents: 7d70e49
Author: pritisarap12 <pr...@clogeny.com>
Authored: Fri Jun 19 16:11:46 2015 +0530
Committer: wilderrodrigues <wr...@schubergphilis.com>
Committed: Wed Jun 24 09:43:55 2015 +0200

----------------------------------------------------------------------
 test/integration/component/test_stopped_vm.py | 39 ++++++++++++++++++++--
 1 file changed, 37 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6f643fc4/test/integration/component/test_stopped_vm.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_stopped_vm.py b/test/integration/component/test_stopped_vm.py
index de04d82..53a92bc 100644
--- a/test/integration/component/test_stopped_vm.py
+++ b/test/integration/component/test_stopped_vm.py
@@ -19,7 +19,7 @@
 """
 # Import Local Modules
 from nose.plugins.attrib import attr
-from marvin.cloudstackTestCase import cloudstackTestCase
+from marvin.cloudstackTestCase import cloudstackTestCase,unittest
 from marvin.lib.utils import cleanup_resources
 from marvin.lib.base import (Account,
                              VirtualMachine,
@@ -36,7 +36,8 @@ from marvin.lib.common import (get_zone,
                                get_domain,
                                get_template,
                                get_builtin_template_info,
-                               update_resource_limit)
+                               update_resource_limit,
+                               find_storage_pool_type)
 from marvin.codes import PASS
 
 
@@ -53,6 +54,13 @@ class TestDeployVM(cloudstackTestCase):
         cls.domain = get_domain(cls.api_client)
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
 
+        cls.hypervisor = cls.testClient.getHypervisorInfo()
+
+        if cls.hypervisor.lower() == 'lxc':
+            if not find_storage_pool_type(cls.apiclient, storagetype='rbd'):
+                raise unittest.SkipTest("RBD storage type is required for data volumes for LXC")
+
+
         cls.template = get_template(
             cls.api_client,
             cls.zone.id,
@@ -743,6 +751,12 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
 
         cls.testdata = cls.testClient.getParsedTestDataConfig()
         # Get Zone, Domain and templates
+        cls.hypervisor = cls.testClient.getHypervisorInfo()
+
+        if cls.hypervisor.lower() == 'lxc':
+            if not find_storage_pool_type(cls.apiclient, storagetype='rbd'):
+                raise unittest.SkipTest("RBD storage type is required for data volumes for LXC")
+
         cls.domain = get_domain(cls.api_client)
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
 
@@ -946,6 +960,12 @@ class TestRouterStateAfterDeploy(cloudstackTestCase):
 
         cls.testdata = cls.testClient.getParsedTestDataConfig()
         # Get Zone, Domain and templates
+        cls.hypervisor = cls.testClient.getHypervisorInfo()
+
+        if cls.hypervisor.lower() == 'lxc':
+            if not find_storage_pool_type(cls.apiclient, storagetype='rbd'):
+                raise unittest.SkipTest("RBD storage type is required for data volumes for LXC")
+
         cls.domain = get_domain(cls.api_client)
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
 
@@ -1102,6 +1122,12 @@ class TestDeployVMBasicZone(cloudstackTestCase):
 
         cls.testdata = cls.testClient.getParsedTestDataConfig()
         # Get Zone, Domain and templates
+        cls.hypervisor = cls.testClient.getHypervisorInfo()
+
+        if cls.hypervisor.lower() == 'lxc':
+            if not find_storage_pool_type(cls.apiclient, storagetype='rbd'):
+                raise unittest.SkipTest("RBD storage type is required for data volumes for LXC")
+
         cls.domain = get_domain(cls.api_client)
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
 
@@ -1169,6 +1195,7 @@ class TestDeployVMFromTemplate(cloudstackTestCase):
         cls.api_client = cls.testClient.getApiClient()
 
         cls.testdata = cls.testClient.getParsedTestDataConfig()
+
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client)
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
@@ -1297,6 +1324,7 @@ class TestVMAccountLimit(cloudstackTestCase):
         cls.api_client = cls.testClient.getApiClient()
 
         cls.testdata = cls.testClient.getParsedTestDataConfig()
+
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client)
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
@@ -1419,6 +1447,12 @@ class TestUploadAttachVolume(cloudstackTestCase):
         cls.api_client = cls.testClient.getApiClient()
 
         cls.testdata = cls.testClient.getParsedTestDataConfig()
+        cls.hypervisor = cls.testClient.getHypervisorInfo()
+
+        if cls.hypervisor.lower() == 'lxc':
+            if not find_storage_pool_type(cls.apiclient, storagetype='rbd'):
+                raise unittest.SkipTest("RBD storage type is required for data volumes for LXC")
+
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client)
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
@@ -1537,6 +1571,7 @@ class TestDeployOnSpecificHost(cloudstackTestCase):
         cls.api_client = cls.testClient.getApiClient()
 
         cls.testdata = cls.testClient.getParsedTestDataConfig()
+
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client)
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())


[17/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
findbugs: move assert to a place where it still makes sense

Signed-off-by: Daan Hoogland <da...@onecht.net>


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

Branch: refs/heads/dhcpoffload
Commit: e8984d16ed2e77fc93d94ef6a3a27bceccee371b
Parents: 82ecc1a
Author: Daan Hoogland <da...@onecht.net>
Authored: Tue Jun 23 22:21:29 2015 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Tue Jun 23 23:27:03 2015 +0200

----------------------------------------------------------------------
 .../com/cloud/baremetal/networkservice/BaremetalPxeElement.java    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e8984d16/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeElement.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeElement.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeElement.java
index 10b81c2..da28668 100644
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeElement.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeElement.java
@@ -127,10 +127,10 @@ public class BaremetalPxeElement extends AdapterBase implements NetworkElement {
         }
 
         VMInstanceVO vo = _vmDao.findById(vm.getId());
+        assert vo != null : "Where ths nic " + nic.getId() + " going???";
         if (vo.getLastHostId() == null) {
             nic.setMacAddress(dest.getHost().getPrivateMacAddress());
             NicVO nicVo = _nicDao.findById(nic.getId());
-            assert vo != null : "Where ths nic " + nic.getId() + " going???";
             nicVo.setMacAddress(nic.getMacAddress());
             _nicDao.update(nicVo.getId(), nicVo);
 


[03/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Fix findbugs SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING warning in Upgrade410to420.java

Signed-off-by: Daan Hoogland <da...@gmail.com>

This closes #505


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

Branch: refs/heads/dhcpoffload
Commit: 53e42fb45e87ff7369bd72fdb80a101ca320a292
Parents: b929db1
Author: Rafael da Fonseca <rs...@gmail.com>
Authored: Mon Jun 22 01:07:59 2015 +0200
Committer: Daan Hoogland <da...@gmail.com>
Committed: Mon Jun 22 10:55:29 2015 +0200

----------------------------------------------------------------------
 engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/53e42fb4/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
index 51da73f..7e7f7b7 100644
--- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
+++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java
@@ -692,9 +692,10 @@ public class Upgrade410to420 implements DbUpgrade {
                         try(ResultSet rsLabel = sel_pstmt.executeQuery();) {
                             newLabel = getNewLabel(rsLabel, trafficTypeVswitchParamValue);
                             try(PreparedStatement update_pstmt =
-                                    conn.prepareStatement("update physical_network_traffic_types set vmware_network_label = " + newLabel + " where traffic_type = '" + trafficType +
-                                            "' and vmware_network_label is not NULL;");) {
+                                    conn.prepareStatement("update physical_network_traffic_types set vmware_network_label = ? where traffic_type = ? and vmware_network_label is not NULL;");) {
                                 s_logger.debug("Updating vmware label for " + trafficType + " traffic. Update SQL statement is " + pstmt);
+                                pstmt.setString(1, newLabel);
+                                pstmt.setString(2, trafficType);
                                 update_pstmt.executeUpdate();
                             }catch (SQLException e) {
                                 throw new CloudRuntimeException("Unable to set vmware traffic labels ", e);


[04/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Cleanup some lint checker warning in base classes

Signed-off-by: Daan Hoogland <da...@gmail.com>


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

Branch: refs/heads/dhcpoffload
Commit: 1603f722c4be9fafd54a2f6dcee789ac56d0b053
Parents: 540b163
Author: Rafael da Fonseca <rs...@gmail.com>
Authored: Sun Jun 21 15:56:18 2015 +0200
Committer: Daan Hoogland <da...@gmail.com>
Committed: Mon Jun 22 13:01:18 2015 +0200

----------------------------------------------------------------------
 plugins/hypervisors/ovm3/pom.xml                              | 5 +++++
 .../com/cloud/hypervisor/ovm3/objects/CloudstackPlugin.java   | 7 ++++---
 .../main/java/com/cloud/hypervisor/ovm3/objects/Linux.java    | 1 +
 .../main/java/com/cloud/hypervisor/ovm3/objects/Network.java  | 5 +++--
 .../java/com/cloud/hypervisor/ovm3/objects/OvmObject.java     | 4 ----
 .../src/main/java/com/cloud/hypervisor/ovm3/objects/Pool.java | 2 ++
 .../java/com/cloud/hypervisor/ovm3/objects/Repository.java    | 3 +++
 .../java/com/cloud/hypervisor/ovm3/objects/StoragePlugin.java | 3 +++
 .../src/main/java/com/cloud/hypervisor/ovm3/objects/Xen.java  | 4 ++++
 .../ovm3/resources/helpers/Ovm3ConfigurationTest.java         | 2 +-
 10 files changed, 26 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1603f722/plugins/hypervisors/ovm3/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/pom.xml b/plugins/hypervisors/ovm3/pom.xml
index 24ef6a4..d7b1138 100644
--- a/plugins/hypervisors/ovm3/pom.xml
+++ b/plugins/hypervisors/ovm3/pom.xml
@@ -55,6 +55,11 @@
         <artifactId>maven-compiler-plugin</artifactId>
         <version>3.3</version>
         <configuration>
+        <showDeprecation>true</showDeprecation>
+        <showWarnings>true</showWarnings>
+        <debug>true</debug>
+        <debuglevel>lines,vars,source</debuglevel>
+        <verbose>true</verbose>
         <useIncrementalCompilation>true</useIncrementalCompilation>
         <forceJavacCompilerUse>true</forceJavacCompilerUse>
         <compilerArgs>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1603f722/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/CloudstackPlugin.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/CloudstackPlugin.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/CloudstackPlugin.java
index 67d993a..3871787 100644
--- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/CloudstackPlugin.java
+++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/CloudstackPlugin.java
@@ -56,6 +56,7 @@ public class CloudstackPlugin extends OvmObject {
                 put("err", null);
                 put("out", null);
             }
+            private static final long serialVersionUID = 5L;
         };
         public ReturnCode() {
         }
@@ -120,7 +121,7 @@ public class CloudstackPlugin extends OvmObject {
         Integer sleep = interval;
         try {
             while (!x && retries > 0) {
-                x = (Boolean) nullIsFalseCallWrapper("check_dom0_port", ip, port, interval);
+                x = nullIsFalseCallWrapper("check_dom0_port", ip, port, interval);
                 retries--;
                 Thread.sleep(sleep * 1000);
             }
@@ -177,9 +178,9 @@ public class CloudstackPlugin extends OvmObject {
         return (Boolean) callWrapper("check_dom0_storage_health", path, script, guid, timeout);
     }
     public boolean ovsMkdirs(String dir) throws Ovm3ResourceException{
-        return (Boolean) nullIsTrueCallWrapper("ovs_mkdirs", dir);
+        return nullIsTrueCallWrapper("ovs_mkdirs", dir);
     }
     public boolean ovsMkdirs(String dir, Integer mode) throws Ovm3ResourceException{
-        return (Boolean) nullIsTrueCallWrapper("ovs_mkdirs", dir, mode);
+        return nullIsTrueCallWrapper("ovs_mkdirs", dir, mode);
     }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1603f722/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Linux.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Linux.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Linux.java
index 4ae933c..b037dd7 100644
--- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Linux.java
+++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Linux.java
@@ -305,6 +305,7 @@ public class Linux extends OvmObject {
                 put(MOUNTPOINT, null);
                 put("Uuid", null);
             }
+            private static final long serialVersionUID = 123L;
         };
 
         public Boolean setDetails(Map<String, Object> fs) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1603f722/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Network.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Network.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Network.java
index f6e0848..008eb43 100644
--- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Network.java
+++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Network.java
@@ -57,6 +57,7 @@ public class Network extends OvmObject {
                 put("MAC", null);
                 put("Vlan", null);
             }
+            private static final long serialVersionUID = 6L;
         };
 
         public Interface() {
@@ -294,7 +295,7 @@ public class Network extends OvmObject {
 
     public Object ovsBrConfig(String action, String br, String net)
             throws Ovm3ResourceException {
-        return (Object) callWrapper("ovs_br_config", action, br, net);
+        return callWrapper("ovs_br_config", action, br, net);
     }
 
     /* 1 is untagged, goes till 4095 */
@@ -319,7 +320,7 @@ public class Network extends OvmObject {
 
     private Object ovsVlanBridge(String action, String br, String net, int vlan)
             throws Ovm3ResourceException {
-        return (Object) callWrapper("ovs_vlan_bridge", action, br, net, vlan);
+        return callWrapper("ovs_vlan_bridge", action, br, net, vlan);
     }
 
     /*

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1603f722/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/OvmObject.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/OvmObject.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/OvmObject.java
index cfe249e..d7ef8cd 100644
--- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/OvmObject.java
+++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/OvmObject.java
@@ -93,7 +93,6 @@ public class OvmObject {
     }
 
     /* nice try but doesn't work like that .. */
-    @SafeVarargs
     public final <T> Object callWrapper(String call, T... args)
             throws Ovm3ResourceException {
         List<T> params = new ArrayList<T>();
@@ -109,7 +108,6 @@ public class OvmObject {
     }
 
     /* should check on nil ? */
-    @SafeVarargs
     public final <T> Boolean nullCallWrapper(String call, Boolean nullReturn, T... args) throws Ovm3ResourceException {
         Object x = callWrapper(call, args);
         if (x == null) {
@@ -120,11 +118,9 @@ public class OvmObject {
         return false;
     }
 
-    @SafeVarargs
     public final <T> Boolean nullIsFalseCallWrapper(String call, T... args) throws Ovm3ResourceException {
         return nullCallWrapper(call, false, args);
     }
-    @SafeVarargs
     public final <T> Boolean nullIsTrueCallWrapper(String call, T... args) throws Ovm3ResourceException {
         return nullCallWrapper(call, true, args);
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1603f722/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Pool.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Pool.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Pool.java
index 066a08a..48778d9 100644
--- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Pool.java
+++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Pool.java
@@ -38,6 +38,7 @@ public class Pool extends OvmObject {
             add("xen");
             add("utility");
         }
+        private static final long serialVersionUID = 1L;
     };
     private List<String> poolHosts = new ArrayList<String>();
     private final List<String> poolRoles = new ArrayList<String>();
@@ -155,6 +156,7 @@ public class Pool extends OvmObject {
                 put("manager_certificate", managerCert);
                 put("signed_server_certificate", signedCert);
             }
+            private static final long serialVersionUID = 1L;
         };
         Boolean rc = nullIsTrueCallWrapper("take_ownership", mgrConfig);
         /* because it restarts when it's done.... 2000? -sigh- */

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1603f722/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Repository.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Repository.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Repository.java
index 36b9ea8..7cbf0e7 100644
--- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Repository.java
+++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Repository.java
@@ -63,6 +63,7 @@ public class Repository extends OvmObject {
     }
 
     public static class RepoDbDetails {
+        private static final long serialVersionUID = 2L;
         private final Map<String, String> dbEntry = new HashMap<String, String>() {
             {
                 put("Uuid", null);
@@ -74,6 +75,7 @@ public class Repository extends OvmObject {
                 put("Manager_uuid", null);
                 put("Status", null);
             }
+            private static final long serialVersionUID = 1L;
         };
 
         public RepoDbDetails() {
@@ -127,6 +129,7 @@ public class Repository extends OvmObject {
         private List<String> virtualDisks = new ArrayList<String>();
         private List<String> isos = new ArrayList<String>();
         private final Map<String, String> dbEntry = new HashMap<String, String>() {
+        private static final long serialVersionUID = 1L;
             {
                 put("Repository_UUID", null);
                 put(VERSION, null);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1603f722/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/StoragePlugin.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/StoragePlugin.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/StoragePlugin.java
index e581dea..5bfacd2 100644
--- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/StoragePlugin.java
+++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/StoragePlugin.java
@@ -85,6 +85,7 @@ public class StoragePlugin extends OvmObject {
                 put(NAME, EMPTY_STRING);
                 put(MOUNTOPTIONS, new ArrayList<String>());
             }
+            private static final long serialVersionUID = 3L;
         };
         public Map<String, Object> getDetails() {
             return storageDetails;
@@ -180,6 +181,7 @@ public class StoragePlugin extends OvmObject {
                 put(USEDSIZE, 0);
                 put(NAME, EMPTY_STRING);
             }
+            private static final long serialVersionUID = 4L;
         };
         public Map<String, Object> getDetails() {
             return storageSource;
@@ -285,6 +287,7 @@ public class StoragePlugin extends OvmObject {
                 put(FILEPATH, EMPTY_STRING);
                 put(FILESIZE, EMPTY_STRING);
             }
+            private static final long serialVersionUID = 1234L;
         };
         public Map<String, Object> getProperties() {
             return fileProperties;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1603f722/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Xen.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Xen.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Xen.java
index b03473d..6387566 100644
--- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Xen.java
+++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Xen.java
@@ -48,6 +48,7 @@ public class Xen extends OvmObject {
      */
     public class Vm {
         /* 'vfb': [ 'type=vnc,vncunused=1,vnclisten=127.0.0.1,keymap=en-us'] */
+        private static final long serialVersionUID = 1L;
         private final List<String> vmVncElement = new ArrayList<String>();
         private Map<String, String> vmVnc = new HashMap<String, String>() {
             {
@@ -56,6 +57,7 @@ public class Xen extends OvmObject {
                 put(VNCLISTEN, "127.0.0.1");
                 put("keymap", "en-us");
             }
+            private static final long serialVersionUID = 1L;
         };
 
         /*
@@ -75,6 +77,7 @@ public class Xen extends OvmObject {
                 put("protocol", "x86_32-abi");
                 put("uname", "");
             }
+            private static final long serialVersionUID = 1L;
         };
 
         /* 'vif': [ 'mac=00:21:f6:00:00:00,bridge=c0a80100'] */
@@ -141,6 +144,7 @@ public class Xen extends OvmObject {
                 put(DOMTYPE, vmDomainType);
                 put(EXTRA, vmExtra);
             }
+            private static final long serialVersionUID = 1L;
         };
 
         public boolean isControlDomain() {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1603f722/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3ConfigurationTest.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3ConfigurationTest.java b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3ConfigurationTest.java
index 5cbb2b7..80ee54f 100644
--- a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3ConfigurationTest.java
+++ b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3ConfigurationTest.java
@@ -55,7 +55,7 @@ public class Ovm3ConfigurationTest {
         params.put("max.template.iso.size", "50");
         params.put("host", "ovm-1");
         params.put("com.cloud.network.Networks.RouterPrivateIpStrategy",
-            "DcGlobal");
+                "DcGlobal");
         params.put("agentport", "8899");
         params.put("Host.OS.Kernel.Version", "2.6.39-300.22.2.el5uek");
         params.put("migratewait", "3600");


[48/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
CLOUDSTACK-8593: assign __testName if it is not getting set from test
  This closes #537
Signed-off-by: SrikanteswaraRao Talluri <ta...@apache.org>


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

Branch: refs/heads/dhcpoffload
Commit: 17ecd65331558e58cbaf158f1fb3a294b607ae8a
Parents: edfe6f4
Author: SrikanteswaraRao Talluri <ta...@apache.org>
Authored: Sun Jun 28 15:52:31 2015 +0530
Committer: SrikanteswaraRao Talluri <ta...@apache.org>
Committed: Sun Jun 28 16:30:53 2015 +0530

----------------------------------------------------------------------
 tools/marvin/marvin/marvinPlugin.py | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/17ecd653/tools/marvin/marvin/marvinPlugin.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/marvinPlugin.py b/tools/marvin/marvin/marvinPlugin.py
index dfba4c1..bd55763 100644
--- a/tools/marvin/marvin/marvinPlugin.py
+++ b/tools/marvin/marvin/marvinPlugin.py
@@ -168,6 +168,8 @@ class MarvinPlugin(Plugin):
     def beforeTest(self, test):
         self.__testModName = test.__str__()
         self.__testName = test.__str__().split()[0]
+        if not self.__testName:
+            self.__testName = "test"
         self.__testClient.identifier = '-'.\
             join([self.__identifier, self.__testName])
         if self.__tcRunLogger:


[44/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Reduce script running time around 80% This resolves the performance penalty introduced by adding the midonet repo

Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

This closes #530


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

Branch: refs/heads/dhcpoffload
Commit: bdd42a4157a65c2cb02233adfd99f5ebba98c571
Parents: c0bf00c
Author: Rafael da Fonseca <rs...@gmail.com>
Authored: Thu Jun 25 16:57:51 2015 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Fri Jun 26 00:00:13 2015 +0200

----------------------------------------------------------------------
 tools/travis/downloadDeps.sh | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bdd42a41/tools/travis/downloadDeps.sh
----------------------------------------------------------------------
diff --git a/tools/travis/downloadDeps.sh b/tools/travis/downloadDeps.sh
index b4617ec..c05e5f5 100755
--- a/tools/travis/downloadDeps.sh
+++ b/tools/travis/downloadDeps.sh
@@ -85,7 +85,10 @@ cat deps.out | LANG=C sort -u > cleandeps.out
 
 #Define index of pomfiles, to avoid duplicate deps with different versions in pom.xml, several poms are created in case of more than one version of same artifact
 LASTPOM=0
-echo '<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.apache.cloudstack</groupId><artifactId>travis-build-deps</artifactId><name>Download Deps for Travis CI</name><version>1</version><repositories><repository><id>mido-maven-public-releases</id><name>mido-maven-public-releases</name><url>http://cs-maven.midokura.com/releases</url></repository><repository><id>juniper-contrail</id><url>http://juniper.github.io/contrail-maven/snapshots</url></repository></repositories><dependencies>' > pom${LASTPOM}.xml
+#Create first pom
+echo '<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.apache.cloudstack</groupId><artifactId>travis-build-deps</artifactId><name>Download Deps for Travis CI</name><version>1</version><dependencies>' > pom${LASTPOM}.xml
+#Create pom for dependencies not on central repo, this is done separately to not adversely impact performance on downloading the majority of deps
+echo '<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.apache.cloudstack</groupId><artifactId>travis-build-deps</artifactId><name>Download Deps for Travis CI</name><version>1</version><repositories><repository><id>mido-maven-public-releases</id><name>mido-maven-public-releases</name><url>http://cs-maven.midokura.com/releases</url></repository><repository><id>juniper-contrail</id><url>http://juniper.github.io/contrail-maven/snapshots</url></repository></repositories><dependencies>' > pomX.xml
 while read line ; do
   set -- $line
   #This relies on correct sorting, and distributes different versions of same dependency througout different pom files
@@ -95,16 +98,21 @@ while read line ; do
     if [[ $POMID -gt $LASTPOM ]]; then
        LASTPOM=$POMID
        #This outputs the necessary structure to start a pom and also defines the extra repositories
-       echo '<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.apache.cloudstack</groupId><artifactId>travis-build-deps</artifactId><name>Download Deps for Travis CI</name><version>1</version><repositories><repository><id>mido-maven-public-releases</id><name>mido-maven-public-releases</name><url>http://cs-maven.midokura.com/releases</url></repository><repository><id>juniper-contrail</id><url>http://juniper.github.io/contrail-maven/snapshots</url></repository></repositories><dependencies>' > pom${LASTPOM}.xml
+       echo '<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.apache.cloudstack</groupId><artifactId>travis-build-deps</artifactId><name>Download Deps for Travis CI</name><version>1</version><dependencies>' > pom${LASTPOM}.xml
     fi
   else
     POMID=0
   fi
   LASTARTIFACT=$2
-  echo "<dependency><groupId>$1</groupId><artifactId>$2</artifactId><version>$3</version></dependency>" >> pom${POMID}.xml
+  if [[ $1 == org.midonet ]] || [[ $1 == net.juniper* ]]; then
+    echo "<dependency><groupId>$1</groupId><artifactId>$2</artifactId><version>$3</version></dependency>" >> pomX.xml
+  else
+    echo "<dependency><groupId>$1</groupId><artifactId>$2</artifactId><version>$3</version></dependency>" >> pom${POMID}.xml
+  fi
 done < cleandeps.out
 
 RETURN_CODE=0
+#Close and resolve all pom files
 for ((i=0;i<=$LASTPOM;i++))
 do
   echo "</dependencies></project>" >> pom${i}.xml
@@ -113,6 +121,9 @@ do
     RETURN_CODE=1
   fi
 done
+#Close and resolve external deps pom file
+echo "</dependencies></project>" >> pomX.xml
+mvn org.apache.maven.plugins:maven-dependency-plugin:resolve -f pomX.xml
 
 #Run a few plugin goals to download some more deps
 


[10/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Specify all external dependencies in pom Upgrade to lang3 and change usage of deprecated xmlparse method

Add another missing dependency

Signed-off-by: Daan Hoogland <da...@gmail.com>


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

Branch: refs/heads/dhcpoffload
Commit: 301a7b9a7e26a803d9d7b02d7bb537c8393dca26
Parents: 1603f72
Author: Rafael da Fonseca <rs...@gmail.com>
Authored: Sun Jun 21 16:52:37 2015 +0200
Committer: Daan Hoogland <da...@gmail.com>
Committed: Mon Jun 22 13:01:19 2015 +0200

----------------------------------------------------------------------
 plugins/hypervisors/ovm3/pom.xml                | 52 +++++++++++++++++---
 .../com/cloud/hypervisor/ovm3/objects/Pool.java |  2 +-
 .../com/cloud/hypervisor/ovm3/objects/Xen.java  |  2 +-
 .../resources/helpers/Ovm3Configuration.java    |  4 +-
 .../ovm3/objects/XmlTestResultTest.java         |  4 +-
 5 files changed, 51 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/301a7b9a/plugins/hypervisors/ovm3/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/pom.xml b/plugins/hypervisors/ovm3/pom.xml
index d7b1138..a0c8a9b 100644
--- a/plugins/hypervisors/ovm3/pom.xml
+++ b/plugins/hypervisors/ovm3/pom.xml
@@ -27,11 +27,41 @@
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <dependencies>
-<dependency>
-    <groupId>org.apache.xmlrpc</groupId>
-    <artifactId>xmlrpc-client</artifactId>
-    <version>3.1.3</version>
-</dependency>
+    <dependency>
+	<groupId>xml-apis</groupId>
+	<artifactId>xml-apis</artifactId>
+	<version>1.4.01</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.xmlrpc</groupId>
+      <artifactId>xmlrpc-client</artifactId>
+      <version>3.1.3</version>
+    </dependency>
+    <dependency>
+	<groupId>org.apache.xmlrpc</groupId>
+	<artifactId>xmlrpc-common</artifactId>
+	<version>3.1.3</version>
+    </dependency>
+    <dependency>
+	<groupId>org.apache.commons</groupId>
+	<artifactId>commons-lang3</artifactId>
+	<version>3.4</version>
+    </dependency>
+    <dependency>
+	<groupId>log4j</groupId>
+	<artifactId>log4j</artifactId>
+	<version>1.2.17</version>
+    </dependency>
+    <dependency>
+	<groupId>org.mockito</groupId>
+	<artifactId>mockito-all</artifactId>
+	<version>1.9.5</version>
+    </dependency>
+    <dependency>
+	<groupId>junit</groupId>
+	<artifactId>junit</artifactId>
+	<version>4.12</version>
+    </dependency>
   </dependencies>
    <build>
     <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
@@ -55,16 +85,24 @@
         <artifactId>maven-compiler-plugin</artifactId>
         <version>3.3</version>
         <configuration>
+        <optimize>true</optimize>
+        <proc>none</proc>
         <showDeprecation>true</showDeprecation>
         <showWarnings>true</showWarnings>
         <debug>true</debug>
         <debuglevel>lines,vars,source</debuglevel>
         <verbose>true</verbose>
-        <useIncrementalCompilation>true</useIncrementalCompilation>
+        <useIncrementalCompilation>false</useIncrementalCompilation>
+        <failOnError>false</failOnError>
         <forceJavacCompilerUse>true</forceJavacCompilerUse>
+        <compilerReuseStrategy>alwaysNew</compilerReuseStrategy>
         <compilerArgs>
             <arg>-verbose</arg>
-            <arg>-Xlint:all,-options,-path</arg>
+            <arg>-Xlint:all</arg>
+            <arg>-version</arg>
+            <arg>-deprecation</arg>
+            <arg>-Xprefer:source</arg>
+            <arg>-XprintProcessorInfo</arg>
           </compilerArgs>
         </configuration>
       </plugin>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/301a7b9a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Pool.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Pool.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Pool.java
index 48778d9..cf62993 100644
--- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Pool.java
+++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Pool.java
@@ -22,7 +22,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 import org.w3c.dom.Document;
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/301a7b9a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Xen.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Xen.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Xen.java
index 6387566..ddf6a56 100644
--- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Xen.java
+++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/Xen.java
@@ -23,7 +23,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
 
 public class Xen extends OvmObject {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/301a7b9a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java
index 6775a146..2154225 100644
--- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java
+++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java
@@ -24,7 +24,7 @@ import java.util.Map;
 
 import javax.naming.ConfigurationException;
 
-import org.apache.commons.lang.BooleanUtils;
+import org.apache.commons.lang3.BooleanUtils;
 import org.apache.log4j.Logger;
 
 import com.cloud.hypervisor.ovm3.objects.Network;
@@ -34,7 +34,7 @@ import com.cloud.utils.net.NetUtils;
 /* holds config data for the Ovm3 Hypervisor */
 public class Ovm3Configuration {
     private static final Logger LOGGER = Logger
-            .getLogger(Ovm3Configuration.class);
+             .getLogger(Ovm3Configuration.class);
     private String agentIp;
     private Long agentZoneId;
     private Long agentPodId;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/301a7b9a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XmlTestResultTest.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XmlTestResultTest.java b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XmlTestResultTest.java
index 6e44a2b..b175a16 100644
--- a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XmlTestResultTest.java
+++ b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XmlTestResultTest.java
@@ -22,7 +22,7 @@ import static org.junit.Assert.assertNotNull;
 
 import java.util.List;
 
-import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang3.StringEscapeUtils;
 
 public class XmlTestResultTest {
     private static final String NULL = "<nil/>";
@@ -33,7 +33,7 @@ public class XmlTestResultTest {
 
     public String escapeOrNot(String s) {
         if (s.startsWith("<")) {
-            return StringEscapeUtils.escapeXml(s);
+            return StringEscapeUtils.escapeXml10(s);
         }
         return s;
     }


[22/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
CLOUDSTACK-8583 :fixing issue related to script test_stopped_vm


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

Branch: refs/heads/dhcpoffload
Commit: 4577af7206f57497a529f43f4ab18a212a144d6b
Parents: c599f63
Author: nitt10prashant <ni...@gmail.com>
Authored: Wed Jun 24 12:31:23 2015 +0530
Committer: nitt10prashant <ni...@gmail.com>
Committed: Wed Jun 24 12:31:23 2015 +0530

----------------------------------------------------------------------
 test/integration/component/test_stopped_vm.py | 52 +++++++++++++---------
 1 file changed, 32 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4577af72/test/integration/component/test_stopped_vm.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_stopped_vm.py b/test/integration/component/test_stopped_vm.py
index 89c8aec..d3e5cd5 100644
--- a/test/integration/component/test_stopped_vm.py
+++ b/test/integration/component/test_stopped_vm.py
@@ -36,7 +36,8 @@ from marvin.lib.common import (get_zone,
                                get_domain,
                                get_template,
                                get_builtin_template_info,
-                               update_resource_limit)
+                               update_resource_limit,
+                               find_storage_pool_type)
 from marvin.codes import PASS
 
 
@@ -52,6 +53,11 @@ class TestDeployVM(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client)
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
+        cls.hypervisor = cls.testClient.getHypervisorInfo()
+        cls.unsupportedStorageType = False
+        if cls.hypervisor.lower() == 'lxc':
+            if not find_storage_pool_type(cls.api_client, storagetype='rbd'):
+                cls.unsupportedStorageType = True
 
         cls.template = get_template(
             cls.api_client,
@@ -136,11 +142,11 @@ class TestDeployVM(cloudstackTestCase):
 
     @attr(
         tags=[
-            "advanced",
-            "eip",
-            "advancedns",
-            "basic",
-            "sg"],
+              "advanced",
+              "eip",
+              "advancedns",
+              "basic",
+              "sg"],
         required_hardware="false")
     def test_02_deploy_vm_startvm_true(self):
         """Test Deploy Virtual Machine with startVM=true parameter
@@ -161,7 +167,6 @@ class TestDeployVM(cloudstackTestCase):
             domainid=self.account.domainid,
             serviceofferingid=self.service_offering.id,
             startvm=True,
-            diskofferingid=self.disk_offering.id,
             mode=self.zone.networktype
         )
 
@@ -492,14 +497,15 @@ class TestDeployVM(cloudstackTestCase):
 
     @attr(
         tags=[
-            "advanced",
-            "eip",
-            "advancedns",
-            "basic",
-            "sg"],
+              "advanced",
+              "eip",
+              "advancedns",
+              "basic",
+              "sg"],
         required_hardware="false")
     def test_08_deploy_attached_volume(self):
-        """Test Deploy Virtual Machine with startVM=false and attach volume already attached to different machine
+        """Test Deploy Virtual Machine with startVM=false and attach volume
+           already attached to different machine
         """
 
         # Validate the following:
@@ -509,6 +515,10 @@ class TestDeployVM(cloudstackTestCase):
         # 3. Create an instance with datadisk attached to it. Detach DATADISK
         # 4. Attach the volume to first virtual machine.
 
+        if self.unsupportedStorageType:
+            self.skipTest(
+                "unsupported storage type")
+
         self.debug("Deploying instance in the account: %s" %
                    self.account.name)
         self.virtual_machine_1 = VirtualMachine.create(
@@ -653,7 +663,8 @@ class TestDeployVM(cloudstackTestCase):
                 break
         if i == 0:
             self.skipTest(
-                "No cluster with more than one primary storage pool to perform migrate volume test")
+                "No cluster with more than one primary storage pool to "
+                "perform migrate volume test")
 
         hosts = Host.list(
             self.apiclient,
@@ -1074,7 +1085,8 @@ class TestRouterStateAfterDeploy(cloudstackTestCase):
             self.assertEqual(
                 router.state,
                 "Running",
-                "Router should be in running state when instance is running in the account")
+                "Router should be in running state when "
+                "instance is running in the account")
         self.debug("Destroying the running VM:%s" %
                    self.virtual_machine_2.name)
         self.virtual_machine_2.delete(self.apiclient, expunge=True)
@@ -1245,11 +1257,11 @@ class TestDeployVMFromTemplate(cloudstackTestCase):
 
     @attr(
         tags=[
-            "advanced",
-            "eip",
-            "advancedns",
-            "basic",
-            "sg"],
+              "advanced",
+              "eip",
+              "advancedns",
+              "basic",
+              "sg"],
         required_hardware="true")
     def test_deploy_vm_password_enabled(self):
         """Test Deploy Virtual Machine with startVM=false & enabledpassword in


[40/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Using Profiler class, from the utils package, instead of System.currentTimeMillis()

Signed-off-by: wilderrodrigues <wr...@schubergphilis.com>

This closes #525


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

Branch: refs/heads/dhcpoffload
Commit: 916aead9ab081c7bb6ab6bce39a0d643ebcc3104
Parents: 212ae88
Author: wilderrodrigues <wr...@schubergphilis.com>
Authored: Thu Jun 25 08:09:18 2015 +0200
Committer: wilderrodrigues <wr...@schubergphilis.com>
Committed: Thu Jun 25 09:14:23 2015 +0200

----------------------------------------------------------------------
 .../src/com/cloud/cluster/ClusterServiceServletImpl.java | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/916aead9/framework/cluster/src/com/cloud/cluster/ClusterServiceServletImpl.java
----------------------------------------------------------------------
diff --git a/framework/cluster/src/com/cloud/cluster/ClusterServiceServletImpl.java b/framework/cluster/src/com/cloud/cluster/ClusterServiceServletImpl.java
index 250b886..9b34724 100644
--- a/framework/cluster/src/com/cloud/cluster/ClusterServiceServletImpl.java
+++ b/framework/cluster/src/com/cloud/cluster/ClusterServiceServletImpl.java
@@ -27,6 +27,8 @@ import org.apache.commons.httpclient.methods.PostMethod;
 import org.apache.commons.httpclient.params.HttpClientParams;
 import org.apache.log4j.Logger;
 
+import com.cloud.utils.Profiler;
+
 public class ClusterServiceServletImpl implements ClusterService {
     private static final long serialVersionUID = 4574025200012566153L;
     private static final Logger s_logger = Logger.getLogger(ClusterServiceServletImpl.class);
@@ -87,16 +89,19 @@ public class ClusterServiceServletImpl implements ClusterService {
         int response = 0;
         String result = null;
         try {
-            final long startTick = System.currentTimeMillis();
+            final Profiler profiler = new Profiler();
+            profiler.start();
             response = client.executeMethod(method);
             if (response == HttpStatus.SC_OK) {
                 result = method.getResponseBodyAsString();
+                profiler.stop();
                 if (s_logger.isDebugEnabled()) {
-                    s_logger.debug("POST " + _serviceUrl + " response :" + result + ", responding time: " + (System.currentTimeMillis() - startTick) + " ms");
+                    s_logger.debug("POST " + _serviceUrl + " response :" + result + ", responding time: " + profiler.getDurationInMillis() + " ms");
                 }
             } else {
+                profiler.stop();
                 s_logger.error("Invalid response code : " + response + ", from : " + _serviceUrl + ", method : " + method.getParameter("method") + " responding time: " +
-                        (System.currentTimeMillis() - startTick));
+                        profiler.getDurationInMillis());
             }
         } catch (final HttpException e) {
             s_logger.error("HttpException from : " + _serviceUrl + ", method : " + method.getParameter("method"));


[18/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
findbugs volumeInfo is known to not be null

Signed-off-by: Daan Hoogland <da...@onecht.net>

This closes #515


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

Branch: refs/heads/dhcpoffload
Commit: 8a99df77b66ecec574faccdd2cead9f0411b9fef
Parents: e8984d1
Author: Daan Hoogland <da...@onecht.net>
Authored: Tue Jun 23 22:39:51 2015 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Tue Jun 23 23:27:04 2015 +0200

----------------------------------------------------------------------
 .../datastore/driver/ElastistorPrimaryDataStoreDriver.java       | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8a99df77/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/driver/ElastistorPrimaryDataStoreDriver.java
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/driver/ElastistorPrimaryDataStoreDriver.java b/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/driver/ElastistorPrimaryDataStoreDriver.java
index 2ea0a59..cc7c8ef 100644
--- a/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/driver/ElastistorPrimaryDataStoreDriver.java
+++ b/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/driver/ElastistorPrimaryDataStoreDriver.java
@@ -235,8 +235,8 @@ public class ElastistorPrimaryDataStoreDriver extends CloudStackPrimaryDataStore
                 long usedBytes = storagePool.getUsedBytes();
                 long capacityIops = storagePool.getCapacityIops();
 
-                usedBytes -= volumeInfo != null ? volumeInfo.getSize() : 0;
-                capacityIops += volumeInfo != null ? volumeInfo.getMaxIops() : 0;
+                usedBytes -= volumeInfo.getSize();
+                capacityIops += volumeInfo.getMaxIops();
 
                 storagePool.setUsedBytes(usedBytes < 0 ? 0 : usedBytes);
                 storagePool.setCapacityIops(capacityIops < 0 ? 0 : capacityIops);


[33/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
findbugs: masking fields removed

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

Branch: refs/heads/dhcpoffload
Commit: 8a8849354ccbeacf9b58bd82aca3e0753b3810d1
Parents: cbf5155
Author: Daan Hoogland <da...@onecht.net>
Authored: Wed Jun 24 12:24:12 2015 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Wed Jun 24 12:24:12 2015 +0200

----------------------------------------------------------------------
 .../allocator/ClusterScopeStoragePoolAllocator.java   |  1 -
 .../networkservice/BareMetalResourceBase.java         | 14 ++++----------
 .../networkservice/BaremetalPxeManagerImpl.java       |  8 +-------
 3 files changed, 5 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8a884935/engine/storage/src/org/apache/cloudstack/storage/allocator/ClusterScopeStoragePoolAllocator.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/allocator/ClusterScopeStoragePoolAllocator.java b/engine/storage/src/org/apache/cloudstack/storage/allocator/ClusterScopeStoragePoolAllocator.java
index d78bd09..c4ed2c7 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/allocator/ClusterScopeStoragePoolAllocator.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/allocator/ClusterScopeStoragePoolAllocator.java
@@ -43,7 +43,6 @@ import com.cloud.vm.VirtualMachineProfile;
 @Local(value = StoragePoolAllocator.class)
 public class ClusterScopeStoragePoolAllocator extends AbstractStoragePoolAllocator {
     private static final Logger s_logger = Logger.getLogger(ClusterScopeStoragePoolAllocator.class);
-    protected String _allocationAlgorithm = "random";
 
     @Inject
     DiskOfferingDao _diskOfferingDao;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8a884935/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalResourceBase.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalResourceBase.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalResourceBase.java
index d760ea1..7075c6b 100644
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalResourceBase.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BareMetalResourceBase.java
@@ -84,7 +84,6 @@ import java.util.concurrent.TimeUnit;
 @Local(value = ServerResource.class)
 public class BareMetalResourceBase extends ManagerBase implements ServerResource {
     private static final Logger s_logger = Logger.getLogger(BareMetalResourceBase.class);
-    protected String _name;
     protected String _uuid;
     protected String _zone;
     protected String _pod;
@@ -119,7 +118,7 @@ public class BareMetalResourceBase extends ManagerBase implements ServerResource
 
     @Override
     public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
-        _name = name;
+        setName(name);
         _uuid = (String) params.get("guid");
         try {
             _memCapacity = Long.parseLong((String) params.get(ApiConstants.MEMORY)) * 1024L * 1024L;
@@ -328,11 +327,6 @@ public class BareMetalResourceBase extends ManagerBase implements ServerResource
     }
 
     @Override
-    public String getName() {
-        return _name;
-    }
-
-    @Override
     public Type getType() {
         return com.cloud.host.Host.Type.Routing;
     }
@@ -550,7 +544,7 @@ public class BareMetalResourceBase extends ManagerBase implements ServerResource
             OutputInterpreter.AllLinesParser interpreter = new OutputInterpreter.AllLinesParser();
             if (!doScript(_getStatusCommand, interpreter)) {
                 success = true;
-                s_logger.warn("Cannot get power status of " + _name + ", assume VM state changed successfully");
+                s_logger.warn("Cannot get power status of " + getName() + ", assume VM state changed successfully");
                 break;
             }
 
@@ -572,7 +566,7 @@ public class BareMetalResourceBase extends ManagerBase implements ServerResource
 
         OutputInterpreter.AllLinesParser interpreter = new OutputInterpreter.AllLinesParser();
         if (!doScript(_getStatusCommand, interpreter)) {
-            return new StartAnswer(cmd, "Cannot get current power status of " + _name);
+            return new StartAnswer(cmd, "Cannot get current power status of " + getName());
         }
 
         if (isPowerOn(interpreter.getLines())) {
@@ -633,7 +627,7 @@ public class BareMetalResourceBase extends ManagerBase implements ServerResource
 
     protected ReadyAnswer execute(ReadyCommand cmd) {
         // derived resource should check if the PXE server is ready
-        s_logger.debug("Bare metal resource " + _name + " is ready");
+        s_logger.debug("Bare metal resource " + getName() + " is ready");
         return new ReadyAnswer(cmd);
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8a884935/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java
index 6019118..f68e7d3 100644
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java
@@ -75,7 +75,6 @@ import com.cloud.vm.dao.UserVmDao;
 @Local(value = {BaremetalPxeManager.class})
 public class BaremetalPxeManagerImpl extends ManagerBase implements BaremetalPxeManager, ResourceStateAdapter {
     private static final org.apache.log4j.Logger s_logger = Logger.getLogger(BaremetalPxeManagerImpl.class);
-    protected String _name;
     @Inject
     DataCenterDao _dcDao;
     @Inject
@@ -101,7 +100,7 @@ public class BaremetalPxeManagerImpl extends ManagerBase implements BaremetalPxe
 
     @Override
     public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
-        _name = name;
+        setName(name);
         _resourceMgr.registerResourceStateAdapter(this.getClass().getSimpleName(), this);
         return true;
     }
@@ -117,11 +116,6 @@ public class BaremetalPxeManagerImpl extends ManagerBase implements BaremetalPxe
         return true;
     }
 
-    @Override
-    public String getName() {
-        return _name;
-    }
-
     protected BaremetalPxeService getServiceByType(String type) {
         for (BaremetalPxeService service : _services) {
             if (service.getPxeServiceType().equals(type)) {


[50/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Merge branch 'dhcpoffload' of https://git-wip-us.apache.org/repos/asf/cloudstack into dhcpoffload


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

Branch: refs/heads/dhcpoffload
Commit: 45721aed527dea84581a9a3bf1fe83ed909e30d1
Parents: b8c112e c3304c5
Author: Jayapal <ja...@apache.org>
Authored: Mon Jun 29 12:29:51 2015 +0530
Committer: Jayapal <ja...@apache.org>
Committed: Mon Jun 29 12:29:51 2015 +0530

----------------------------------------------------------------------

----------------------------------------------------------------------



[41/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Formatting class ClusterServiceServletImpl

   - Splitting format commit from fix commit.

Signed-off-by: wilderrodrigues <wr...@schubergphilis.com>


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

Branch: refs/heads/dhcpoffload
Commit: 212ae884a1545f59c9772a8826c04a02c16590c8
Parents: e4f7fb7
Author: wilderrodrigues <wr...@schubergphilis.com>
Authored: Thu Jun 25 08:07:20 2015 +0200
Committer: wilderrodrigues <wr...@schubergphilis.com>
Committed: Thu Jun 25 09:14:23 2015 +0200

----------------------------------------------------------------------
 .../cluster/ClusterServiceServletImpl.java      | 38 ++++++++++----------
 1 file changed, 19 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/212ae884/framework/cluster/src/com/cloud/cluster/ClusterServiceServletImpl.java
----------------------------------------------------------------------
diff --git a/framework/cluster/src/com/cloud/cluster/ClusterServiceServletImpl.java b/framework/cluster/src/com/cloud/cluster/ClusterServiceServletImpl.java
index a103f0b..250b886 100644
--- a/framework/cluster/src/com/cloud/cluster/ClusterServiceServletImpl.java
+++ b/framework/cluster/src/com/cloud/cluster/ClusterServiceServletImpl.java
@@ -38,18 +38,18 @@ public class ClusterServiceServletImpl implements ClusterService {
     public ClusterServiceServletImpl() {
     }
 
-    public ClusterServiceServletImpl(String serviceUrl) {
+    public ClusterServiceServletImpl(final String serviceUrl) {
         s_logger.info("Setup cluster service servlet. service url: " + serviceUrl + ", request timeout: " + ClusterServiceAdapter.ClusterMessageTimeOut.value() +
-            " seconds");
+                " seconds");
 
         _serviceUrl = serviceUrl;
     }
 
     @Override
-    public String execute(ClusterServicePdu pdu) throws RemoteException {
+    public String execute(final ClusterServicePdu pdu) throws RemoteException {
 
-        HttpClient client = getHttpClient();
-        PostMethod method = new PostMethod(_serviceUrl);
+        final HttpClient client = getHttpClient();
+        final PostMethod method = new PostMethod(_serviceUrl);
 
         method.addParameter("method", Integer.toString(RemoteMethodConstants.METHOD_DELIVER_PDU));
         method.addParameter("sourcePeer", pdu.getSourcePeer());
@@ -65,29 +65,29 @@ public class ClusterServiceServletImpl implements ClusterService {
     }
 
     @Override
-    public boolean ping(String callingPeer) throws RemoteException {
+    public boolean ping(final String callingPeer) throws RemoteException {
         if (s_logger.isDebugEnabled()) {
             s_logger.debug("Ping at " + _serviceUrl);
         }
 
-        HttpClient client = getHttpClient();
-        PostMethod method = new PostMethod(_serviceUrl);
+        final HttpClient client = getHttpClient();
+        final PostMethod method = new PostMethod(_serviceUrl);
 
         method.addParameter("method", Integer.toString(RemoteMethodConstants.METHOD_PING));
         method.addParameter("callingPeer", callingPeer);
 
-        String returnVal = executePostMethod(client, method);
+        final String returnVal = executePostMethod(client, method);
         if ("true".equalsIgnoreCase(returnVal)) {
             return true;
         }
         return false;
     }
 
-    private String executePostMethod(HttpClient client, PostMethod method) {
+    private String executePostMethod(final HttpClient client, final PostMethod method) {
         int response = 0;
         String result = null;
         try {
-            long startTick = System.currentTimeMillis();
+            final long startTick = System.currentTimeMillis();
             response = client.executeMethod(method);
             if (response == HttpStatus.SC_OK) {
                 result = method.getResponseBodyAsString();
@@ -96,13 +96,13 @@ public class ClusterServiceServletImpl implements ClusterService {
                 }
             } else {
                 s_logger.error("Invalid response code : " + response + ", from : " + _serviceUrl + ", method : " + method.getParameter("method") + " responding time: " +
-                    (System.currentTimeMillis() - startTick));
+                        (System.currentTimeMillis() - startTick));
             }
-        } catch (HttpException e) {
+        } catch (final HttpException e) {
             s_logger.error("HttpException from : " + _serviceUrl + ", method : " + method.getParameter("method"));
-        } catch (IOException e) {
+        } catch (final IOException e) {
             s_logger.error("IOException from : " + _serviceUrl + ", method : " + method.getParameter("method"));
-        } catch (Throwable e) {
+        } catch (final Throwable e) {
             s_logger.error("Exception from : " + _serviceUrl + ", method : " + method.getParameter("method") + ", exception :", e);
         } finally {
             method.releaseConnection();
@@ -114,14 +114,14 @@ public class ClusterServiceServletImpl implements ClusterService {
     private HttpClient getHttpClient() {
 
         if (s_client == null) {
-            MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
+            final MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
             mgr.getParams().setDefaultMaxConnectionsPerHost(4);
 
             // TODO make it configurable
             mgr.getParams().setMaxTotalConnections(1000);
 
             s_client = new HttpClient(mgr);
-            HttpClientParams clientParams = new HttpClientParams();
+            final HttpClientParams clientParams = new HttpClientParams();
             clientParams.setSoTimeout(ClusterServiceAdapter.ClusterMessageTimeOut.value() * 1000);
 
             s_client.setParams(clientParams);
@@ -130,7 +130,7 @@ public class ClusterServiceServletImpl implements ClusterService {
     }
 
     // for test purpose only
-    public static void main(String[] args) {
+    public static void main(final String[] args) {
         /*
                 ClusterServiceServletImpl service = new ClusterServiceServletImpl("http://localhost:9090/clusterservice", 300);
                 try {
@@ -138,6 +138,6 @@ public class ClusterServiceServletImpl implements ClusterService {
                     System.out.println(result);
                 } catch (RemoteException e) {
                 }
-        */
+         */
     }
 }


[09/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Root cause of failure is memory abuse in XenTest.java class ;) This should fix it

Signed-off-by: Daan Hoogland <da...@gmail.com>


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

Branch: refs/heads/dhcpoffload
Commit: 9d19191bc61f09f93412d6d2b66e3f5fb9b004b5
Parents: 301a7b9
Author: Rafael da Fonseca <rs...@gmail.com>
Authored: Sun Jun 21 19:14:16 2015 +0200
Committer: Daan Hoogland <da...@gmail.com>
Committed: Mon Jun 22 13:01:19 2015 +0200

----------------------------------------------------------------------
 plugins/hypervisors/ovm3/pom.xml                |   18 -
 .../resources/helpers/Ovm3Configuration.java    |    2 +-
 .../cloud/hypervisor/ovm3/objects/XenTest.java  | 2538 +++++++++---------
 3 files changed, 1270 insertions(+), 1288 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9d19191b/plugins/hypervisors/ovm3/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/pom.xml b/plugins/hypervisors/ovm3/pom.xml
index a0c8a9b..646ac16 100644
--- a/plugins/hypervisors/ovm3/pom.xml
+++ b/plugins/hypervisors/ovm3/pom.xml
@@ -85,25 +85,7 @@
         <artifactId>maven-compiler-plugin</artifactId>
         <version>3.3</version>
         <configuration>
-        <optimize>true</optimize>
-        <proc>none</proc>
-        <showDeprecation>true</showDeprecation>
-        <showWarnings>true</showWarnings>
-        <debug>true</debug>
-        <debuglevel>lines,vars,source</debuglevel>
-        <verbose>true</verbose>
-        <useIncrementalCompilation>false</useIncrementalCompilation>
         <failOnError>false</failOnError>
-        <forceJavacCompilerUse>true</forceJavacCompilerUse>
-        <compilerReuseStrategy>alwaysNew</compilerReuseStrategy>
-        <compilerArgs>
-            <arg>-verbose</arg>
-            <arg>-Xlint:all</arg>
-            <arg>-version</arg>
-            <arg>-deprecation</arg>
-            <arg>-Xprefer:source</arg>
-            <arg>-XprintProcessorInfo</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9d19191b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java
index 2154225..91c0762 100644
--- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java
+++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java
@@ -34,7 +34,7 @@ import com.cloud.utils.net.NetUtils;
 /* holds config data for the Ovm3 Hypervisor */
 public class Ovm3Configuration {
     private static final Logger LOGGER = Logger
-             .getLogger(Ovm3Configuration.class);
+          .getLogger(Ovm3Configuration.class);
     private String agentIp;
     private Long agentZoneId;
     private Long agentPodId;


[36/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
findbugs: fields of serializable made serializable

Signed-off-by: Daan Hoogland <da...@onecht.net>

This closes #522


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

Branch: refs/heads/dhcpoffload
Commit: 55c1d9f3fa90a745ff73dc641516c231563b91e5
Parents: f18c8f8
Author: Daan Hoogland <da...@onecht.net>
Authored: Wed Jun 24 14:29:04 2015 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Wed Jun 24 20:20:12 2015 +0200

----------------------------------------------------------------------
 api/src/com/cloud/agent/api/to/LoadBalancerTO.java | 1 +
 server/src/com/cloud/api/doc/Argument.java         | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/55c1d9f3/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/api/to/LoadBalancerTO.java b/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
index baa83df..2bb1537 100644
--- a/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
+++ b/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
@@ -481,6 +481,7 @@ public class LoadBalancerTO {
     }
 
     public static class AutoScaleVmGroupTO implements Serializable {
+        private static final long serialVersionUID = 2L;
         private final String uuid;
         private final int minMembers;
         private final int maxMembers;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/55c1d9f3/server/src/com/cloud/api/doc/Argument.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/doc/Argument.java b/server/src/com/cloud/api/doc/Argument.java
index 6889be7..141f7e6 100644
--- a/server/src/com/cloud/api/doc/Argument.java
+++ b/server/src/com/cloud/api/doc/Argument.java
@@ -16,9 +16,11 @@
 // under the License.
 package com.cloud.api.doc;
 
+import java.io.Serializable;
 import java.util.List;
 
-public class Argument implements Comparable {
+public class Argument implements Comparable<Object>, Serializable {
+    private static final long serialVersionUID = 2L;
     private String name;
     private String description;
     private Boolean required;


[24/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
findbugs: final fields

Signed-off-by: Daan Hoogland <da...@onecht.net>

This closes #517


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

Branch: refs/heads/dhcpoffload
Commit: e3daa10960b1b2703550d043f6cb9a6d6e11989c
Parents: 230cf2e
Author: Daan Hoogland <da...@onecht.net>
Authored: Tue Jun 23 23:41:41 2015 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Wed Jun 24 09:29:56 2015 +0200

----------------------------------------------------------------------
 core/src/com/cloud/serializer/SerializerHelper.java | 2 +-
 utils/src/com/cloud/utils/nio/Link.java             | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e3daa109/core/src/com/cloud/serializer/SerializerHelper.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/serializer/SerializerHelper.java b/core/src/com/cloud/serializer/SerializerHelper.java
index 60a978d..5ce05ab 100644
--- a/core/src/com/cloud/serializer/SerializerHelper.java
+++ b/core/src/com/cloud/serializer/SerializerHelper.java
@@ -39,7 +39,7 @@ import com.cloud.utils.Pair;
  */
 public class SerializerHelper {
     public static final Logger s_logger = Logger.getLogger(SerializerHelper.class.getName());
-    public static String token = "/";
+    public static final String token = "/";
 
     public static String toSerializedStringOld(Object result) {
         if (result != null) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e3daa109/utils/src/com/cloud/utils/nio/Link.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/nio/Link.java b/utils/src/com/cloud/utils/nio/Link.java
index ddfd474..6d6306a 100644
--- a/utils/src/com/cloud/utils/nio/Link.java
+++ b/utils/src/com/cloud/utils/nio/Link.java
@@ -66,7 +66,7 @@ public class Link {
     private boolean _gotFollowingPacket;
 
     private SSLEngine _sslEngine;
-    public static String keystoreFile = "/cloudmanagementserver.keystore";
+    public static final String keystoreFile = "/cloudmanagementserver.keystore";
 
     public Link(InetSocketAddress addr, NioConnection connection) {
         _addr = addr;


[12/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Add unit tests to cover negative cases

   - Cover when the profile is not started/stopped

Signed-off-by: wilderrodrigues <wr...@schubergphilis.com>

This closes #509


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

Branch: refs/heads/dhcpoffload
Commit: f29bf1e85c84f7a7c91ff9521b41b32532f737ee
Parents: 78c802a
Author: wilderrodrigues <wr...@schubergphilis.com>
Authored: Mon Jun 22 16:05:15 2015 +0200
Committer: wilderrodrigues <wr...@schubergphilis.com>
Committed: Tue Jun 23 10:03:20 2015 +0200

----------------------------------------------------------------------
 utils/test/com/cloud/utils/TestProfiler.java | 32 ++++++++++++++++++++---
 1 file changed, 29 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f29bf1e8/utils/test/com/cloud/utils/TestProfiler.java
----------------------------------------------------------------------
diff --git a/utils/test/com/cloud/utils/TestProfiler.java b/utils/test/com/cloud/utils/TestProfiler.java
index 2690a26..4323f1d 100644
--- a/utils/test/com/cloud/utils/TestProfiler.java
+++ b/utils/test/com/cloud/utils/TestProfiler.java
@@ -32,11 +32,11 @@ public class TestProfiler extends Log4jEnabledTestCase {
     public void testProfiler() {
         s_logger.info("testProfiler() started");
 
-        Profiler pf = new Profiler();
+        final Profiler pf = new Profiler();
         pf.start();
         try {
             Thread.sleep(1000);
-        } catch (InterruptedException e) {
+        } catch (final InterruptedException e) {
         }
         pf.stop();
 
@@ -46,4 +46,30 @@ public class TestProfiler extends Log4jEnabledTestCase {
 
         s_logger.info("testProfiler() stopped");
     }
-}
+
+    @Test
+    public void testProfilerNoStart() {
+        final Profiler pf = new Profiler();
+        try {
+            Thread.sleep(20);
+        } catch (final InterruptedException e) {
+        }
+        pf.stop();
+
+        Assert.assertTrue(pf.getDuration() == -1);
+        Assert.assertFalse(pf.isStarted());
+    }
+
+    @Test
+    public void testProfilerNoStop() {
+        final Profiler pf = new Profiler();
+        pf.start();
+        try {
+            Thread.sleep(20);
+        } catch (final InterruptedException e) {
+        }
+
+        Assert.assertTrue(pf.getDuration() == -1);
+        Assert.assertFalse(pf.isStopped());
+    }
+}
\ No newline at end of file


[30/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
CLOUDSTACK-8574: Skip testcases for LXC if storagePool type is not RBD

Signed-off-by: wilderrodrigues <wr...@schubergphilis.com>

This closes #488


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

Branch: refs/heads/dhcpoffload
Commit: da72bb9aeb5623913d4698a1b9cde2fee8962829
Parents: 6f643fc
Author: pritisarap12 <pr...@clogeny.com>
Authored: Tue Jun 23 11:33:21 2015 +0530
Committer: wilderrodrigues <wr...@schubergphilis.com>
Committed: Wed Jun 24 09:43:55 2015 +0200

----------------------------------------------------------------------
 test/integration/component/test_stopped_vm.py | 46 ++++++++++++++++------
 1 file changed, 33 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/da72bb9a/test/integration/component/test_stopped_vm.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_stopped_vm.py b/test/integration/component/test_stopped_vm.py
index 53a92bc..f31b803 100644
--- a/test/integration/component/test_stopped_vm.py
+++ b/test/integration/component/test_stopped_vm.py
@@ -19,7 +19,7 @@
 """
 # Import Local Modules
 from nose.plugins.attrib import attr
-from marvin.cloudstackTestCase import cloudstackTestCase,unittest
+from marvin.cloudstackTestCase import cloudstackTestCase
 from marvin.lib.utils import cleanup_resources
 from marvin.lib.base import (Account,
                              VirtualMachine,
@@ -55,11 +55,12 @@ class TestDeployVM(cloudstackTestCase):
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
 
         cls.hypervisor = cls.testClient.getHypervisorInfo()
+        cls.skip = False
 
         if cls.hypervisor.lower() == 'lxc':
             if not find_storage_pool_type(cls.apiclient, storagetype='rbd'):
-                raise unittest.SkipTest("RBD storage type is required for data volumes for LXC")
-
+                cls.skip = True
+                return
 
         cls.template = get_template(
             cls.api_client,
@@ -92,6 +93,9 @@ class TestDeployVM(cloudstackTestCase):
 
     def setUp(self):
 
+        if self.skip:
+            self.skipTest("RBD storage type is required for data volumes for LXC")
+
         self.apiclient = self.testClient.getApiClient()
         self.dbclient = self.testClient.getDbConnection()
         self.testdata["virtual_machine"]["zoneid"] = self.zone.id
@@ -635,11 +639,11 @@ class TestDeployVM(cloudstackTestCase):
         # 4. Stop the vm
         # 5.list primary storages in the cluster , should be more than one
         # 6.Migrate voluem to another available primary storage
-        self.hypervisor = self.testClient.getHypervisorInfo()
         if self.hypervisor.lower() in ['lxc']:
             self.skipTest(
                 "vm migrate is not supported in %s" %
                 self.hypervisor)
+
         clusters = Cluster.list(
             self.apiclient,
             zoneid=self.zone.id
@@ -752,10 +756,12 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
         cls.testdata = cls.testClient.getParsedTestDataConfig()
         # Get Zone, Domain and templates
         cls.hypervisor = cls.testClient.getHypervisorInfo()
-
+        cls.skip = False
+        
         if cls.hypervisor.lower() == 'lxc':
             if not find_storage_pool_type(cls.apiclient, storagetype='rbd'):
-                raise unittest.SkipTest("RBD storage type is required for data volumes for LXC")
+                cls.skip = True 
+                return
 
         cls.domain = get_domain(cls.api_client)
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
@@ -792,6 +798,9 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
 
     def setUp(self):
 
+        if self.skip:
+            self.skipTest("RBD storage type is required for data volumes for LXC ")
+
         self.apiclient = self.testClient.getApiClient()
         self.dbclient = self.testClient.getDbConnection()
         self.hypervisor = self.testClient.getHypervisorInfo()
@@ -865,7 +874,6 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
         # 1. deployHA enabled Vm using ISO with the startvm parameter=true
         # 2. listVM command should return the deployed VM. State of this VM
         #    should be "Running".
-        self.hypervisor = self.testClient.getHypervisorInfo()
         if self.hypervisor.lower() in ['lxc']:
             self.skipTest(
                 "vm deploy from ISO feature is not supported on %s" %
@@ -923,10 +931,8 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
         # 1. deployHA enabled Vm using ISO with the startvm parameter=false
         # 2. listVM command should return the deployed VM. State of this VM
         #    should be "Stopped".
-        self.hypervisor = self.testClient.getHypervisorInfo()
         if self.hypervisor.lower() in ['lxc']:
-            self.skipTest(
-                "vm deploy from ISO feature is not supported on %s" %
+            self.skipTest("vm deploy from ISO feature is not supported on %s" %
                 self.hypervisor.lower())
 
         self.debug("Deploying instance in the account: %s" %
@@ -961,10 +967,12 @@ class TestRouterStateAfterDeploy(cloudstackTestCase):
         cls.testdata = cls.testClient.getParsedTestDataConfig()
         # Get Zone, Domain and templates
         cls.hypervisor = cls.testClient.getHypervisorInfo()
+        cls.skip = False
 
         if cls.hypervisor.lower() == 'lxc':
             if not find_storage_pool_type(cls.apiclient, storagetype='rbd'):
-                raise unittest.SkipTest("RBD storage type is required for data volumes for LXC")
+                cls.skip = True
+                return
 
         cls.domain = get_domain(cls.api_client)
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
@@ -1000,6 +1008,9 @@ class TestRouterStateAfterDeploy(cloudstackTestCase):
 
     def setUp(self):
 
+        if self.skip:
+            self.skipTest("RBD storage type is required for data volumes for LXC")
+
         self.apiclient = self.testClient.getApiClient()
         self.dbclient = self.testClient.getDbConnection()
         self.testdata["virtual_machine"]["zoneid"] = self.zone.id
@@ -1123,10 +1134,12 @@ class TestDeployVMBasicZone(cloudstackTestCase):
         cls.testdata = cls.testClient.getParsedTestDataConfig()
         # Get Zone, Domain and templates
         cls.hypervisor = cls.testClient.getHypervisorInfo()
+        cls.skip = False
 
         if cls.hypervisor.lower() == 'lxc':
             if not find_storage_pool_type(cls.apiclient, storagetype='rbd'):
-                raise unittest.SkipTest("RBD storage type is required for data volumes for LXC")
+                cls.skip = True
+                return
 
         cls.domain = get_domain(cls.api_client)
         cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
@@ -1162,6 +1175,9 @@ class TestDeployVMBasicZone(cloudstackTestCase):
 
     def setUp(self):
 
+        if self.skip:
+            self.skipTest("RBD storage type is required for data volumes for LXC")
+
         self.apiclient = self.testClient.getApiClient()
         self.dbclient = self.testClient.getDbConnection()
         self.testdata["virtual_machine"]["zoneid"] = self.zone.id
@@ -1448,10 +1464,11 @@ class TestUploadAttachVolume(cloudstackTestCase):
 
         cls.testdata = cls.testClient.getParsedTestDataConfig()
         cls.hypervisor = cls.testClient.getHypervisorInfo()
+        cls.skip = False
 
         if cls.hypervisor.lower() == 'lxc':
             if not find_storage_pool_type(cls.apiclient, storagetype='rbd'):
-                raise unittest.SkipTest("RBD storage type is required for data volumes for LXC")
+                cls.skip = True
 
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client)
@@ -1491,6 +1508,9 @@ class TestUploadAttachVolume(cloudstackTestCase):
         return
 
     def setUp(self):
+        if self.skip:
+            self.skipTest("RBD storage type is required for data volumes for LXC")
+
         self.apiclient = self.testClient.getApiClient()
         self.dbclient = self.testClient.getDbConnection()
         self.cleanup = []


[14/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
CLOUDSTACK-8579: Fix cleanup operation in few test cases

Signed-off-by: Gaurav Aradhye <ga...@clogeny.com>
This closes #511


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

Branch: refs/heads/dhcpoffload
Commit: c841d6850ec591d3545d922dbb469a7e9b9ec4de
Parents: f29bf1e
Author: Gaurav Aradhye <ga...@clogeny.com>
Authored: Tue Jun 23 17:24:05 2015 +0530
Committer: Gaurav Aradhye <ga...@clogeny.com>
Committed: Tue Jun 23 17:36:44 2015 +0530

----------------------------------------------------------------------
 test/integration/component/test_blocker_bugs.py  | 3 ++-
 test/integration/component/test_project_usage.py | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c841d685/test/integration/component/test_blocker_bugs.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_blocker_bugs.py b/test/integration/component/test_blocker_bugs.py
index 663c97f..f6a032e 100644
--- a/test/integration/component/test_blocker_bugs.py
+++ b/test/integration/component/test_blocker_bugs.py
@@ -743,11 +743,11 @@ class TestTemplates(cloudstackTestCase):
                             cls.services["ostype"]
                             )
         cls.templateSupported = True
+        cls._cleanup = []
         if cls.hypervisor.lower() in ['lxc']:
             cls.templateSupported = False
             return
         cls.services["virtual_machine"]["zoneid"] = cls.zone.id
-        cls._cleanup = []
         try:
             cls.account = Account.create(
                             cls.api_client,
@@ -1024,6 +1024,7 @@ class TestDataPersistency(cloudstackTestCase):
         cls.domain = get_domain(cls.api_client)
         cls.services['mode'] = cls.zone.networktype
         cls.templateSupported = True
+        cls.cleanup = []
         template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c841d685/test/integration/component/test_project_usage.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_project_usage.py b/test/integration/component/test_project_usage.py
index 7c4fea6..cdbc4c2 100644
--- a/test/integration/component/test_project_usage.py
+++ b/test/integration/component/test_project_usage.py
@@ -512,6 +512,7 @@ class TestVolumeUsage(cloudstackTestCase):
         cls.services['mode'] = cls.zone.networktype
         cls.hypervisor = cls.testClient.getHypervisorInfo()
         cls.rbdStorageFound = True
+        cls._cleanup = []
         if cls.hypervisor.lower() == 'lxc':
             if not find_storage_pool_type(cls.api_client, storagetype='rbd'):
                 cls.rbdStorageFound = False
@@ -1265,6 +1266,7 @@ class TestSnapshotUsage(cloudstackTestCase):
         cls.api_client = cls.testClient.getApiClient()
         cls.hypervisor = cls.testClient.getHypervisorInfo()
         cls.snapshotSupported = True
+        cls._cleanup = []
         if cls.hypervisor.lower() in ['hyperv', 'lxc']:
             cls.snapshotSupported = False
             return


[15/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Made misc changes
Reviewed-By: Shweta


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

Branch: refs/heads/dhcpoffload
Commit: 66d51c91ea452b786077d28e92f7a4af52cd0efc
Parents: c841d68
Author: Sanjeev Neelarapu <sa...@citrix.com>
Authored: Tue Jun 23 17:18:03 2015 +0530
Committer: sanjeev <sa...@apache.org>
Committed: Tue Jun 23 17:47:19 2015 +0530

----------------------------------------------------------------------
 .../component/test_security_groups.py           | 42 ++++++++++++--------
 1 file changed, 25 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66d51c91/test/integration/component/test_security_groups.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_security_groups.py b/test/integration/component/test_security_groups.py
old mode 100644
new mode 100755
index 2a37fd8..f132e3a
--- a/test/integration/component/test_security_groups.py
+++ b/test/integration/component/test_security_groups.py
@@ -39,6 +39,7 @@ from marvin.codes import PASS
 import time
 import subprocess
 import socket
+import platform
 
 
 class TestDefaultSecurityGroup(cloudstackTestCase):
@@ -1338,9 +1339,13 @@ class TestIngressRule(cloudstackTestCase):
         # User should be able to ping VM
         try:
             self.debug("Trying to ping VM %s" % self.virtual_machine.ssh_ip)
-            result = subprocess.call(
-                ['ping', '-c 1', self.virtual_machine.ssh_ip])
-
+            platform_type = platform.system().lower()
+            if platform_type == 'windows':
+                result = subprocess.call(
+                    ['ping', '-n', '1', self.virtual_machine.ssh_ip])
+            else:
+                result = subprocess.call(
+                    ['ping', '-c 1', self.virtual_machine.ssh_ip])
             self.debug("Ping result: %s" % result)
             # if ping successful, then result should be 0
             self.assertEqual(
@@ -1462,9 +1467,13 @@ class TestIngressRule(cloudstackTestCase):
         # User should be able to ping VM
         try:
             self.debug("Trying to ping VM %s" % self.virtual_machine.ssh_ip)
-            result = subprocess.call(
-                ['ping', '-c 1', self.virtual_machine.ssh_ip])
-
+            platform_type = platform.system().lower()
+            if platform_type == 'windows':
+                result = subprocess.call(
+                    ['ping', '-n', '1', self.virtual_machine.ssh_ip])
+            else:
+                result = subprocess.call(
+                    ['ping', '-c 1', self.virtual_machine.ssh_ip])
             self.debug("Ping result: %s" % result)
             # if ping successful, then result should be 0
             self.assertEqual(
@@ -1472,30 +1481,30 @@ class TestIngressRule(cloudstackTestCase):
                 0,
                 "Check if ping is successful or not"
             )
-
         except Exception as e:
             self.fail("Ping failed for ingress rule ID: %s, %s"
                       % (icmp_rule["ruleid"], e))
-
         self.debug(
             "Revoke Ingress Rule for Security Group %s for account: %s"
             % (
                 security_group.id,
                 self.account.name
             ))
-
         result = security_group.revoke(
             self.apiclient,
             id=icmp_rule["ruleid"]
         )
         self.debug("Revoke ingress rule result: %s" % result)
-
         time.sleep(self.testdata["sleep"])
         # User should not be able to ping VM
         try:
             self.debug("Trying to ping VM %s" % self.virtual_machine.ssh_ip)
-            result = subprocess.call(
-                ['ping', '-c 1', self.virtual_machine.ssh_ip])
+            if platform_type == 'windows':
+                result = subprocess.call(
+                    ['ping', '-n', '1', self.virtual_machine.ssh_ip])
+            else:
+                result = subprocess.call(
+                    ['ping', '-c 1', self.virtual_machine.ssh_ip])
 
             self.debug("Ping result: %s" % result)
             # if ping successful, then result should be 0
@@ -1504,7 +1513,6 @@ class TestIngressRule(cloudstackTestCase):
                 0,
                 "Check if ping is successful or not"
             )
-
         except Exception as e:
             self.fail("Ping failed for ingress rule ID: %s, %s"
                       % (icmp_rule["ruleid"], e))
@@ -1816,7 +1824,7 @@ class TestIngressRuleSpecificIpSet(cloudstackTestCase):
             )
         except Exception as e:
             self.fail("SSH Access failed for %s: %s" %
-                      (self.virtual_machine.ipaddress, e)
+                      (virtual_machine_1.ipaddress, e)
                       )
 
         try:
@@ -1828,7 +1836,7 @@ class TestIngressRuleSpecificIpSet(cloudstackTestCase):
             )
         except Exception as e:
             self.fail("SSH Access failed for %s: %s" %
-                      (self.virtual_machine.ipaddress, e)
+                      (virtual_machine_2.ipaddress, e)
                       )
 
         sshClient = SshClient(
@@ -1991,7 +1999,7 @@ class TestIngressRuleSpecificIpSet(cloudstackTestCase):
             )
         except Exception as e:
             self.fail("SSH Access failed for %s: %s" %
-                      (self.virtual_machine.ipaddress, e)
+                      (virtual_machine_1.ipaddress, e)
                       )
 
         try:
@@ -2003,7 +2011,7 @@ class TestIngressRuleSpecificIpSet(cloudstackTestCase):
             )
         except Exception as e:
             self.fail("SSH Access failed for %s: %s" %
-                      (self.virtual_machine.ipaddress, e)
+                      (virtual_machine_2.ipaddress, e)
                       )
 
         sshClient = SshClient(


[39/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Using Profiler class, from the utils package, instead of System.currentTimeMillis()

Signed-off-by: wilderrodrigues <wr...@schubergphilis.com>

This closes #524


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

Branch: refs/heads/dhcpoffload
Commit: e4f7fb74efe56cafb67642eebef745c671a6454c
Parents: ea1f2eb
Author: wilderrodrigues <wr...@schubergphilis.com>
Authored: Thu Jun 25 08:01:51 2015 +0200
Committer: wilderrodrigues <wr...@schubergphilis.com>
Committed: Thu Jun 25 09:13:46 2015 +0200

----------------------------------------------------------------------
 .../cluster/src/com/cloud/cluster/ClusterManagerImpl.java    | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e4f7fb74/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java
----------------------------------------------------------------------
diff --git a/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java b/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java
index 02597c3..a9b01d4 100644
--- a/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java
+++ b/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java
@@ -261,11 +261,15 @@ public class ClusterManagerImpl extends ManagerBase implements ClusterManager, C
                                         pdu.getSequenceId() + ", pdu ack seq: " + pdu.getAckSequenceId() + ", json: " + pdu.getJsonPackage());
                             }
 
-                            final long startTick = System.currentTimeMillis();
+                            final Profiler profiler = new Profiler();
+                            profiler.start();
+
                             final String strResult = peerService.execute(pdu);
+                            profiler.stop();
+
                             if (s_logger.isDebugEnabled()) {
                                 s_logger.debug("Cluster PDU " + getSelfPeerName() + " -> " + pdu.getDestPeer() + " completed. time: " +
-                                        (System.currentTimeMillis() - startTick) + "ms. agent: " + pdu.getAgentId() + ", pdu seq: " + pdu.getSequenceId() +
+                                        profiler.getDurationInMillis() + "ms. agent: " + pdu.getAgentId() + ", pdu seq: " + pdu.getSequenceId() +
                                         ", pdu ack seq: " + pdu.getAckSequenceId() + ", json: " + pdu.getJsonPackage());
                             }
 


[21/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Extend wait before retry to states other than 'Starting'

Signed-off-by: wilderrodrigues <wr...@schubergphilis.com>

This closes #514


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

Branch: refs/heads/dhcpoffload
Commit: c599f6317003f1b4ec6d8f5b69b58de148f0d022
Parents: 77508c9
Author: Rafael da Fonseca <rs...@gmail.com>
Authored: Tue Jun 23 19:28:47 2015 +0200
Committer: wilderrodrigues <wr...@schubergphilis.com>
Committed: Wed Jun 24 07:34:26 2015 +0200

----------------------------------------------------------------------
 test/integration/smoke/test_secondary_storage.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c599f631/test/integration/smoke/test_secondary_storage.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_secondary_storage.py b/test/integration/smoke/test_secondary_storage.py
index 082c023..b80b3e6 100644
--- a/test/integration/smoke/test_secondary_storage.py
+++ b/test/integration/smoke/test_secondary_storage.py
@@ -153,7 +153,7 @@ class TestSecStorageServices(cloudstackTestCase):
                         )
 
             for ssvm in list_ssvm_response:
-                if ssvm.state == 'Starting':
+                if ssvm.state != 'Running':
                     time.sleep(30)
                     continue
         for ssvm in list_ssvm_response:


[47/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
findbugs Boolean return null in getter not in is-query

Signed-off-by: Daan Hoogland <da...@onecht.net>

This closes #534


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

Branch: refs/heads/dhcpoffload
Commit: edfe6f4d4f805b91fe653627c2e6c7925a6bfd07
Parents: f584714
Author: Daan Hoogland <da...@onecht.net>
Authored: Fri Jun 26 15:29:25 2015 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Sun Jun 28 12:41:44 2015 +0200

----------------------------------------------------------------------
 .../api/BaseUpdateTemplateOrIsoCmd.java           |  4 ++--
 .../api/command/user/iso/UpdateIsoCmd.java        |  2 +-
 .../command/user/template/UpdateTemplateCmd.java  |  3 +--
 .../com/cloud/template/TemplateManagerImpl.java   | 18 ++++++++++++++----
 4 files changed, 18 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/edfe6f4d/api/src/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java b/api/src/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java
index 31de029..5dc2b06 100644
--- a/api/src/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java
+++ b/api/src/org/apache/cloudstack/api/BaseUpdateTemplateOrIsoCmd.java
@@ -77,7 +77,7 @@ public abstract class BaseUpdateTemplateOrIsoCmd extends BaseCmd {
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
 
-    public Boolean isBootable() {
+    public Boolean getBootable() {
         return bootable;
     }
 
@@ -101,7 +101,7 @@ public abstract class BaseUpdateTemplateOrIsoCmd extends BaseCmd {
         return osTypeId;
     }
 
-    public Boolean isPasswordEnabled() {
+    public Boolean getPasswordEnabled() {
         return passwordEnabled;
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/edfe6f4d/api/src/org/apache/cloudstack/api/command/user/iso/UpdateIsoCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/iso/UpdateIsoCmd.java b/api/src/org/apache/cloudstack/api/command/user/iso/UpdateIsoCmd.java
index d072c0a..ccf5b8a 100644
--- a/api/src/org/apache/cloudstack/api/command/user/iso/UpdateIsoCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/iso/UpdateIsoCmd.java
@@ -44,7 +44,7 @@ public class UpdateIsoCmd extends BaseUpdateTemplateOrIsoCmd {
     }
 
     @Override
-    public Boolean isPasswordEnabled() {
+    public Boolean getPasswordEnabled() {
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/edfe6f4d/api/src/org/apache/cloudstack/api/command/user/template/UpdateTemplateCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/template/UpdateTemplateCmd.java b/api/src/org/apache/cloudstack/api/command/user/template/UpdateTemplateCmd.java
index 81da7ee..0a01e48 100644
--- a/api/src/org/apache/cloudstack/api/command/user/template/UpdateTemplateCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/template/UpdateTemplateCmd.java
@@ -39,7 +39,7 @@ public class UpdateTemplateCmd extends BaseUpdateTemplateOrIsoCmd {
     /////////////////////////////////////////////////////
 
     @Override
-    public Boolean isBootable() {
+    public Boolean getBootable() {
         return null;
     }
 
@@ -52,7 +52,6 @@ public class UpdateTemplateCmd extends BaseUpdateTemplateOrIsoCmd {
         return s_name;
     }
 
-    @SuppressWarnings("unchecked")
     public TemplateResponse getResponse() {
        return null;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/edfe6f4d/server/src/com/cloud/template/TemplateManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java
index 1135518..e9581e2 100644
--- a/server/src/com/cloud/template/TemplateManagerImpl.java
+++ b/server/src/com/cloud/template/TemplateManagerImpl.java
@@ -1819,10 +1819,10 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
         String displayText = cmd.getDisplayText();
         String format = cmd.getFormat();
         Long guestOSId = cmd.getOsTypeId();
-        Boolean passwordEnabled = cmd.isPasswordEnabled();
+        Boolean passwordEnabled = cmd.getPasswordEnabled();
         Boolean isDynamicallyScalable = cmd.isDynamicallyScalable();
         Boolean isRoutingTemplate = cmd.isRoutingType();
-        Boolean bootable = cmd.isBootable();
+        Boolean bootable = cmd.getBootable();
         Boolean requiresHvm = cmd.getRequiresHvm();
         Integer sortKey = cmd.getSortKey();
         Map details = cmd.getDetails();
@@ -1846,9 +1846,19 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
             }
         }
 
+        // update is needed if any of the fields below got filled by the user
         boolean updateNeeded =
-                !(name == null && displayText == null && format == null && guestOSId == null && passwordEnabled == null && bootable == null && requiresHvm == null && sortKey == null &&
-                        isDynamicallyScalable == null && isRoutingTemplate == null && details == null);
+                !(name == null &&
+                  displayText == null &&
+                  format == null &&
+                  guestOSId == null &&
+                  passwordEnabled == null &&
+                  bootable == null &&
+                  requiresHvm == null &&
+                  sortKey == null &&
+                  isDynamicallyScalable == null &&
+                  isRoutingTemplate == null &&
+                  details == null);
         if (!updateNeeded) {
             return template;
         }


[43/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
findbugs encoding

fake message part to remove stale PR folowing
    This closes #33


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

Branch: refs/heads/dhcpoffload
Commit: c0bf00c568531dc21c409649e9089244b8ff0e78
Parents: 12d5240
Author: Daan Hoogland <da...@onecht.net>
Authored: Thu Jun 25 14:43:49 2015 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Thu Jun 25 14:43:49 2015 +0200

----------------------------------------------------------------------
 agent/src/com/cloud/agent/resource/DummyResource.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c0bf00c5/agent/src/com/cloud/agent/resource/DummyResource.java
----------------------------------------------------------------------
diff --git a/agent/src/com/cloud/agent/resource/DummyResource.java b/agent/src/com/cloud/agent/resource/DummyResource.java
index ea23f96..c0167f6 100644
--- a/agent/src/com/cloud/agent/resource/DummyResource.java
+++ b/agent/src/com/cloud/agent/resource/DummyResource.java
@@ -41,6 +41,7 @@ import com.cloud.network.Networks.RouterPrivateIpStrategy;
 import com.cloud.resource.ServerResource;
 import com.cloud.storage.Storage;
 import com.cloud.storage.Storage.StoragePoolType;
+import com.cloud.utils.StringUtils;
 
 @Local(value = {ServerResource.class})
 public class DummyResource implements ServerResource {
@@ -135,7 +136,7 @@ public class DummyResource implements ServerResource {
         String hostIp = getConfiguredProperty("private.ip.address", "127.0.0.1");
         String localStoragePath = getConfiguredProperty("local.storage.path", "/mnt");
         String lh = hostIp + localStoragePath;
-        String uuid = UUID.nameUUIDFromBytes(lh.getBytes()).toString();
+        String uuid = UUID.nameUUIDFromBytes(lh.getBytes(StringUtils.getPreferredCharset())).toString();
 
         String capacity = getConfiguredProperty("local.storage.capacity", "1000000000");
         String available = getConfiguredProperty("local.storage.avail", "10000000");


[31/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Merge branch 'stop_vm' of https://github.com/nitt10prashant/cloudstack into test/pr518

This closes #518

Remark: I had to merge in the old-fashion way (not using the PR alias) due to a problem with the patch


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

Branch: refs/heads/dhcpoffload
Commit: 4463881be45a741e25cdee9ece2532b38d52342d
Parents: da72bb9 4577af7
Author: wilderrodrigues <wr...@schubergphilis.com>
Authored: Wed Jun 24 09:52:26 2015 +0200
Committer: wilderrodrigues <wr...@schubergphilis.com>
Committed: Wed Jun 24 09:52:26 2015 +0200

----------------------------------------------------------------------
 test/integration/component/test_stopped_vm.py | 49 +++++++++++++---------
 1 file changed, 30 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4463881b/test/integration/component/test_stopped_vm.py
----------------------------------------------------------------------
diff --cc test/integration/component/test_stopped_vm.py
index f31b803,d3e5cd5..bda0fe2
--- a/test/integration/component/test_stopped_vm.py
+++ b/test/integration/component/test_stopped_vm.py
@@@ -53,15 -53,12 +53,20 @@@ class TestDeployVM(cloudstackTestCase)
          # Get Zone, Domain and templates
          cls.domain = get_domain(cls.api_client)
          cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
+         cls.hypervisor = cls.testClient.getHypervisorInfo()
+         cls.unsupportedStorageType = False
+         if cls.hypervisor.lower() == 'lxc':
+             if not find_storage_pool_type(cls.api_client, storagetype='rbd'):
+                 cls.unsupportedStorageType = True
  
 +        cls.hypervisor = cls.testClient.getHypervisorInfo()
 +        cls.skip = False
 +
 +        if cls.hypervisor.lower() == 'lxc':
 +            if not find_storage_pool_type(cls.apiclient, storagetype='rbd'):
 +                cls.skip = True
 +                return
 +
          cls.template = get_template(
              cls.api_client,
              cls.zone.id,


[02/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Fix findbugs DM_BOXED_PRIMITIVE_FOR_PARSING warning in ElastistorPrimaryDataStoreLifeCycle.java

Signed-off-by: Daan Hoogland <da...@gmail.com>

This closes #503


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

Branch: refs/heads/dhcpoffload
Commit: b929db1f1ad8e7f96fef2dd68de9c75fe9df9320
Parents: a17852a
Author: Rafael da Fonseca <rs...@gmail.com>
Authored: Mon Jun 22 00:41:08 2015 +0200
Committer: Daan Hoogland <da...@gmail.com>
Committed: Mon Jun 22 10:54:55 2015 +0200

----------------------------------------------------------------------
 .../datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b929db1f/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java b/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java
index f7e9385..7254c2b 100644
--- a/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java
+++ b/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java
@@ -563,7 +563,7 @@ public class ElastistorPrimaryDataStoreLifeCycle implements PrimaryDataStoreLife
 
                    if(updateTsmStorageCmdResponse.getStorage().getId() != null){
                     // update the cloudstack db
-                    _storagePoolDao.updateCapacityBytes(storagePool.getId(), Long.valueOf(capacityBytes));
+                    _storagePoolDao.updateCapacityBytes(storagePool.getId(), Long.parseLong(capacityBytes));
 
                     s_logger.info("elastistor TSM storage successfully updated");
                    }else{


[13/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Replace System.currentTimeMillis() by System.nanoTime()

   - System.nanoTime() is the best way to measure elapsed time in Java.
   - It gives a resolution on the order of microseconds

The System.currentTimeMillis() is used when calculating absolut time.

Signed-off-by: wilderrodrigues <wr...@schubergphilis.com>


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

Branch: refs/heads/dhcpoffload
Commit: 78c802a539e3446dee351efdbdb678cf91f8729e
Parents: c0a1009
Author: wilderrodrigues <wr...@schubergphilis.com>
Authored: Mon Jun 22 14:07:33 2015 +0200
Committer: wilderrodrigues <wr...@schubergphilis.com>
Committed: Tue Jun 23 10:03:20 2015 +0200

----------------------------------------------------------------------
 utils/src/com/cloud/utils/Profiler.java | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/78c802a5/utils/src/com/cloud/utils/Profiler.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/Profiler.java b/utils/src/com/cloud/utils/Profiler.java
index e75da0e..6082a92 100644
--- a/utils/src/com/cloud/utils/Profiler.java
+++ b/utils/src/com/cloud/utils/Profiler.java
@@ -23,24 +23,20 @@ public class Profiler {
     private Long startTickInMs;
     private Long stopTickInMs;
 
-    public Profiler() {
-        startTickInMs = null;
-        stopTickInMs = null;
-    }
-
     public long start() {
-        startTickInMs = System.currentTimeMillis();
+        startTickInMs = System.nanoTime();
         return startTickInMs.longValue();
     }
 
     public long stop() {
-        stopTickInMs = System.currentTimeMillis();
+        stopTickInMs = System.nanoTime();
         return stopTickInMs.longValue();
     }
 
     public long getDuration() {
-        if (startTickInMs != null && stopTickInMs != null)
+        if (startTickInMs != null && stopTickInMs != null) {
             return stopTickInMs.longValue() - startTickInMs.longValue();
+        }
 
         return -1;
     }
@@ -55,12 +51,14 @@ public class Profiler {
 
     @Override
     public String toString() {
-        if (startTickInMs == null)
+        if (startTickInMs == null) {
             return "Not Started";
+        }
 
-        if (stopTickInMs == null)
+        if (stopTickInMs == null) {
             return "Started but not stopped";
+        }
 
         return "Done. Duration: " + getDuration() + "ms";
     }
-}
+}
\ No newline at end of file


[35/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
CLOUDSTACK-8582: Modifying tag for test cases which should not be run on simulator

Signed-off-by: Gaurav Aradhye <ga...@clogeny.com>
This closes #521


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

Branch: refs/heads/dhcpoffload
Commit: f18c8f8d9b7abb8c329dcdfdc9c3ad646ce99b0c
Parents: a3fe76a
Author: Gaurav Aradhye <ga...@clogeny.com>
Authored: Wed Jun 24 16:07:22 2015 +0530
Committer: Gaurav Aradhye <ga...@clogeny.com>
Committed: Wed Jun 24 16:52:24 2015 +0530

----------------------------------------------------------------------
 test/integration/component/test_VirtualRouter_alerts.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f18c8f8d/test/integration/component/test_VirtualRouter_alerts.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_VirtualRouter_alerts.py b/test/integration/component/test_VirtualRouter_alerts.py
index 64066f8..90f04d8 100644
--- a/test/integration/component/test_VirtualRouter_alerts.py
+++ b/test/integration/component/test_VirtualRouter_alerts.py
@@ -112,7 +112,7 @@ class TestVRServiceFailureAlerting(cloudstackTestCase):
         return
 
     @attr(hypervisor="xenserver")
-    @attr(tags=["advanced", "basic"])
+    @attr(tags=["advanced", "basic"], required_hardware="true")
     def test_01_VRServiceFailureAlerting(self):
 
         if self.zone.networktype == "Basic":


[28/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
CLOUDSTACK-8576: Skip tests as snapshots and template are not supported on LXC

Signed-off-by: wilderrodrigues <wr...@schubergphilis.com>

This closes #506


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

Branch: refs/heads/dhcpoffload
Commit: 7d70e4975e53ca124000e52f0cde99292a99ff6d
Parents: cbf5155
Author: pritisarap12 <pr...@clogeny.com>
Authored: Mon Jun 22 16:44:07 2015 +0530
Committer: wilderrodrigues <wr...@schubergphilis.com>
Committed: Wed Jun 24 09:40:08 2015 +0200

----------------------------------------------------------------------
 test/integration/component/test_resource_limits.py | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7d70e497/test/integration/component/test_resource_limits.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_resource_limits.py b/test/integration/component/test_resource_limits.py
index 5f29d70..cb06099 100644
--- a/test/integration/component/test_resource_limits.py
+++ b/test/integration/component/test_resource_limits.py
@@ -18,7 +18,7 @@
 """
 #Import Local Modules
 from nose.plugins.attrib import attr
-from marvin.cloudstackTestCase import cloudstackTestCase,unittest
+from marvin.cloudstackTestCase import cloudstackTestCase
 from marvin.lib.base import (VirtualMachine,
                                          Snapshot,
                                          Template,
@@ -448,8 +448,8 @@ class TestResourceLimitsAccount(cloudstackTestCase):
         # 5. Create 2 snapshot in account 2. Verify account 2 should be able to
         #    create snapshots without any warning
 
-        if self.hypervisor.lower() in ['hyperv']:
-            self.skipTest("Snapshots feature is not supported on Hyper-V")
+        if self.hypervisor.lower() in ['hyperv', 'lxc']:
+            self.skipTest("Snapshots feature is not supported on Hyper-V and LXC")
         self.debug(
             "Updating public IP resource limit for account: %s" %
                                                 self.account_1.name)
@@ -748,6 +748,8 @@ class TestResourceLimitsAccount(cloudstackTestCase):
         #    should be denied to create more than 1 template.
         # 3. Try to create 2 templates in account 2. Verify account 2 should be
         #    able to create template without any error
+        if self.hypervisor.lower() in ['lxc']:
+            self.skipTest("Template feature is not supported on LXC")
 
         try:
             apiclient_account1 = self.testClient.getUserApiClient(
@@ -1134,8 +1136,8 @@ class TestResourceLimitsDomain(cloudstackTestCase):
         #    created
         # 5. Try to create another snapshot in this domain. It should give the
         #    user an appropriate error and an alert should be generated.
-        if self.hypervisor.lower() in ['hyperv']:
-            self.skipTest("Snapshots feature is not supported on Hyper-V")
+        if self.hypervisor.lower() in ['hyperv', 'lxc']:
+            self.skipTest("Snapshots feature is not supported on Hyper-V and LXC")
         self.debug(
             "Updating snapshot resource limits for domain: %s" %
                                         self.account.domainid)
@@ -1271,6 +1273,9 @@ class TestResourceLimitsDomain(cloudstackTestCase):
         #    ready state
         # 4. Try create 3rd template in the domain. It should give the user an
         #    appropriate error and an alert should be generated.
+        if self.hypervisor.lower() in ['lxc']:
+            self.skipTest("Template feature is not supported on LXC")
+
 
         try:
             userapiclient = self.testClient.getUserApiClient(


[23/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
CLOUDSTACK-8582: Tagging test cases which should not be run on simulator accordingly

Signed-off-by: Gaurav Aradhye <ga...@clogeny.com>
This closes #519


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

Branch: refs/heads/dhcpoffload
Commit: 230cf2eefa70bc686fe01ae2f7fd4a0253ae35c2
Parents: c599f63
Author: Gaurav Aradhye <ga...@clogeny.com>
Authored: Wed Jun 24 12:34:13 2015 +0530
Committer: Gaurav Aradhye <ga...@clogeny.com>
Committed: Wed Jun 24 12:50:27 2015 +0530

----------------------------------------------------------------------
 test/integration/component/test_accounts.py       | 2 +-
 test/integration/component/test_project_limits.py | 2 +-
 test/integration/component/test_project_usage.py  | 4 ++--
 test/integration/component/test_stopped_vm.py     | 2 +-
 test/integration/component/test_usage.py          | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/230cf2ee/test/integration/component/test_accounts.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_accounts.py b/test/integration/component/test_accounts.py
index e08ed91..d0341dd 100644
--- a/test/integration/component/test_accounts.py
+++ b/test/integration/component/test_accounts.py
@@ -869,7 +869,7 @@ class TestTemplateHierarchy(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "eip", "advancedns", "sg"])
+    @attr(tags=["advanced", "basic", "eip", "advancedns", "sg"], required_hardware="true")
     def test_01_template_hierarchy(self):
         """Test to verify template at same level in hierarchy"""
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/230cf2ee/test/integration/component/test_project_limits.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_project_limits.py b/test/integration/component/test_project_limits.py
index 6edcf20..848a896 100644
--- a/test/integration/component/test_project_limits.py
+++ b/test/integration/component/test_project_limits.py
@@ -883,7 +883,7 @@ class TestResourceLimitsProject(cloudstackTestCase):
                         )
         return
 
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns"], required_hardware="false")
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns"], required_hardware="true")
     def test_07_templates_per_project(self):
         """Test Templates limit per project
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/230cf2ee/test/integration/component/test_project_usage.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_project_usage.py b/test/integration/component/test_project_usage.py
index cdbc4c2..98311b8 100644
--- a/test/integration/component/test_project_usage.py
+++ b/test/integration/component/test_project_usage.py
@@ -790,7 +790,7 @@ class TestTemplateUsage(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns"], required_hardware="false")
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns"], required_hardware="true")
     def test_01_template_usage(self):
         """Test Upload/ delete a template and verify correct usage is generated
             for the template uploaded
@@ -998,7 +998,7 @@ class TestISOUsage(cloudstackTestCase):
             raise Exception("Warning: Exception during cleanup : %s" % e)
         return
 
-    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns"], required_hardware="false")
+    @attr(tags=["advanced", "basic", "sg", "eip", "advancedns"], required_hardware="true")
     def test_01_ISO_usage(self):
         """Test Create/Delete a ISO and verify its usage is generated correctly
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/230cf2ee/test/integration/component/test_stopped_vm.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_stopped_vm.py b/test/integration/component/test_stopped_vm.py
index 89c8aec..de04d82 100644
--- a/test/integration/component/test_stopped_vm.py
+++ b/test/integration/component/test_stopped_vm.py
@@ -419,7 +419,7 @@ class TestDeployVM(cloudstackTestCase):
             "advancedns",
             "basic",
             "sg"],
-        required_hardware="false")
+        required_hardware="true")
     def test_07_deploy_startvm_attach_iso(self):
         """Test Deploy Virtual Machine with startVM=false and attach ISO
         """

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/230cf2ee/test/integration/component/test_usage.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_usage.py b/test/integration/component/test_usage.py
index 71b9437..8b4fdfc 100644
--- a/test/integration/component/test_usage.py
+++ b/test/integration/component/test_usage.py
@@ -930,7 +930,7 @@ class TestISOUsage(cloudstackTestCase):
             "sg",
             "eip",
             "advancedns"],
-        required_hardware="false")
+        required_hardware="true")
     def test_01_ISO_usage(self):
         """Test Create/Delete a ISO and verify its usage is generated correctly
         """


[06/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Specify all dependency versions in pom.xml

Signed-off-by: Daan Hoogland <da...@gmail.com>

This closes #497


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

Branch: refs/heads/dhcpoffload
Commit: fe4f0b1a583624ed90a580c10e066d6e4e7ad948
Parents: 83488e0
Author: Rafael da Fonseca <rs...@gmail.com>
Authored: Mon Jun 22 11:53:28 2015 +0200
Committer: Daan Hoogland <da...@gmail.com>
Committed: Mon Jun 22 13:01:19 2015 +0200

----------------------------------------------------------------------
 plugins/hypervisors/ovm3/pom.xml | 14 +++++++-------
 pom.xml                          |  2 ++
 2 files changed, 9 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fe4f0b1a/plugins/hypervisors/ovm3/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/pom.xml b/plugins/hypervisors/ovm3/pom.xml
index a8c4796..82b6e46 100644
--- a/plugins/hypervisors/ovm3/pom.xml
+++ b/plugins/hypervisors/ovm3/pom.xml
@@ -28,29 +28,29 @@
   </parent>
   <dependencies>
     <dependency>
-	<groupId>xml-apis</groupId>
-	<artifactId>xml-apis</artifactId>
-	<version>1.4.01</version>
+      <groupId>xml-apis</groupId>
+      <artifactId>xml-apis</artifactId>
+      <version>${cs.xml-apis.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.xmlrpc</groupId>
       <artifactId>xmlrpc-client</artifactId>
-      <version>3.1.3</version>
+      <version>${cs.xmlrpc.version}</version>
     </dependency>
     <dependency>
 	<groupId>org.apache.xmlrpc</groupId>
 	<artifactId>xmlrpc-common</artifactId>
-	<version>3.1.3</version>
+	<version>${cs.xmlrpc.version}</version>
     </dependency>
     <dependency>
 	<groupId>org.apache.commons</groupId>
 	<artifactId>commons-lang3</artifactId>
-	<version>3.4</version>
+	<version>${cs.lang3.version}</version>
     </dependency>
     <dependency>
 	<groupId>log4j</groupId>
 	<artifactId>log4j</artifactId>
-	<version>1.2.17</version>
+	<version>${cs.log4j.version}</version>
     </dependency>
   </dependencies>
    <build>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fe4f0b1a/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 8ac4268..900f2e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -86,6 +86,7 @@
     <cs.powermock.version>1.5.3</cs.powermock.version>
     <cs.aws.sdk.version>1.9.8</cs.aws.sdk.version>
     <cs.lang.version>2.6</cs.lang.version>
+    <cs.lang3.version>3.4</cs.lang3.version>
     <cs.commons-io.version>2.4</cs.commons-io.version>
     <cs.commons-validator.version>1.4.0</cs.commons-validator.version>
     <cs.reflections.version>0.9.9</cs.reflections.version>
@@ -101,6 +102,7 @@
     <cs.findbugs.version>3.0.1</cs.findbugs.version>
     <cs.javadoc.version>2.10.1</cs.javadoc.version>
     <cs.opensaml.version>2.6.1</cs.opensaml.version>
+    <cs.xml-apis.version>1.4.01</cs.xml-apis.version>
   </properties>
 
   <distributionManagement>


[20/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
CLOUDSTACK-8577: fixing script testpath_disable_enable_zone


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

Branch: refs/heads/dhcpoffload
Commit: 77508c9d9a2f1679ecb157bc975990ccaf9f8783
Parents: 4945175
Author: nitt10prashant <ni...@gmail.com>
Authored: Mon Jun 22 18:35:40 2015 +0530
Committer: sanjeev <sa...@apache.org>
Committed: Wed Jun 24 10:50:20 2015 +0530

----------------------------------------------------------------------
 test/integration/component/maint/testpath_disable_enable_zone.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/77508c9d/test/integration/component/maint/testpath_disable_enable_zone.py
----------------------------------------------------------------------
diff --git a/test/integration/component/maint/testpath_disable_enable_zone.py b/test/integration/component/maint/testpath_disable_enable_zone.py
index 3cbd3d5..a15173e 100644
--- a/test/integration/component/maint/testpath_disable_enable_zone.py
+++ b/test/integration/component/maint/testpath_disable_enable_zone.py
@@ -185,7 +185,7 @@ class TestDisableEnableZone(cloudstackTestCase):
             self.testdata["small"],
             templateid=self.template.id,
             accountid=self.admin_account.name,
-            domainid=self.account.domainid,
+            domainid=self.admin_account.domainid,
             serviceofferingid=self.service_offering.id,
             zoneid=self.zone.id
         )
@@ -280,6 +280,7 @@ class TestDisableEnableZone(cloudstackTestCase):
         self.testdata["privatetemplate"]["hypervisor"] = builtin_info[1]
         self.testdata["privatetemplate"]["format"] = builtin_info[2]
         """
+        //commenting it for now will uncomment  once expected behaviour is known
         Template.register(
             self.apiclient,
             self.testdata["privatetemplate"],
@@ -294,6 +295,7 @@ class TestDisableEnableZone(cloudstackTestCase):
             diskofferingid=self.disk_offering.id
         )
         """
+        //commenting it for now will uncomment  once expected behaviour is known
         Iso.create(
             self.apiclient,
             self.testdata["iso2"],


[37/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
CLOUDSTACK-8578: implement state=present for listing only non-destroyed VMs

So the behavior before this fix can be used in a proper way.

Signed-off-by: Daan Hoogland <da...@onecht.net>

This closes #513


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

Branch: refs/heads/dhcpoffload
Commit: af902fd9d911b5e46b1fa085be6badeb9780892c
Parents: 55c1d9f
Author: Rene Moser <re...@apache.org>
Authored: Tue Jun 23 15:47:06 2015 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Wed Jun 24 20:21:33 2015 +0200

----------------------------------------------------------------------
 .../apache/cloudstack/api/command/user/vm/ListVMsCmd.java    | 2 +-
 server/src/com/cloud/api/query/QueryManagerImpl.java         | 8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/af902fd9/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
index 32a8b7b..ff6acde 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
@@ -78,7 +78,7 @@ public class ListVMsCmd extends BaseListTaggedResourcesCmd {
     @Parameter(name = ApiConstants.POD_ID, type = CommandType.UUID, entityType = PodResponse.class, description = "the pod ID")
     private Long podId;
 
-    @Parameter(name = ApiConstants.STATE, type = CommandType.STRING, description = "state of the virtual machine")
+    @Parameter(name = ApiConstants.STATE, type = CommandType.STRING, description = "state of the virtual machine. Possible values are: Running, Stopped, Present, Destroyed, Expunged. Present is used for the state equal not destroyed.")
     private String state;
 
     @Parameter(name = ApiConstants.ZONE_ID, type = CommandType.UUID, entityType = ZoneResponse.class, description = "the availability zone ID")

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/af902fd9/server/src/com/cloud/api/query/QueryManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java
index 9840958..8c304b9 100644
--- a/server/src/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/com/cloud/api/query/QueryManagerImpl.java
@@ -814,7 +814,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
 
         String hypervisor = cmd.getHypervisor();
         Object name = cmd.getName();
-        Object state = cmd.getState();
+        String state = cmd.getState();
         Object zoneId = cmd.getZoneId();
         Object keyword = cmd.getKeyword();
         boolean isAdmin = false;
@@ -968,7 +968,11 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
         }
 
         if (state != null) {
-            sc.setParameters("stateEQ", state);
+            if (state.equalsIgnoreCase("present")) {
+                sc.setParameters("stateNIN", "Destroyed", "Expunging");
+            } else {
+                sc.setParameters("stateEQ", state);
+            }
         }
 
         if (hypervisor != null) {


[26/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Offer a getDurationInMillis() method in the Profiler utility class

   - New implementation uses nanoseconds. Due to that, the places where the Profiler is used as a Monitor and/or
     a stopwatch will suffer with the difference in the return
   - Also added a getDuration(), which returns the time in nanoseconds in case someone wants to use it instead
   - Added an extra test to check if the getDuration() works fine with nanoseconds
   - Fixed the test that checks the time in milliseconds: I added an error margin to cover the test better

Signed-off-by: Daan Hoogland <da...@onecht.net>


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

Branch: refs/heads/dhcpoffload
Commit: 5557ad55880f981c2621a4f411b80e4301469104
Parents: e3daa10
Author: wilderrodrigues <wr...@schubergphilis.com>
Authored: Tue Jun 23 15:46:53 2015 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Wed Jun 24 09:36:40 2015 +0200

----------------------------------------------------------------------
 .../agent/manager/SynchronousListener.java      |  2 +-
 .../db/src/com/cloud/utils/db/GlobalLock.java   |  2 +-
 .../test/com/cloud/utils/db/GlobalLockTest.java |  2 +-
 .../security/SecurityGroupManagerImpl2.java     |  2 +-
 .../security/SecurityGroupManagerImpl2Test.java |  2 +-
 .../security/SecurityGroupQueueTest.java        |  2 +-
 utils/src/com/cloud/utils/Profiler.java         | 53 +++++++++++++++-----
 utils/test/com/cloud/utils/TestProfiler.java    | 34 ++++++++++---
 8 files changed, 74 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5557ad55/engine/orchestration/src/com/cloud/agent/manager/SynchronousListener.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/com/cloud/agent/manager/SynchronousListener.java b/engine/orchestration/src/com/cloud/agent/manager/SynchronousListener.java
index 5da1b27..28c60c1 100644
--- a/engine/orchestration/src/com/cloud/agent/manager/SynchronousListener.java
+++ b/engine/orchestration/src/com/cloud/agent/manager/SynchronousListener.java
@@ -116,7 +116,7 @@ public class SynchronousListener implements Listener {
         profiler.stop();
 
         if (s_logger.isTraceEnabled()) {
-            s_logger.trace("Synchronized command - sending completed, time: " + profiler.getDuration() + ", answer: " +
+            s_logger.trace("Synchronized command - sending completed, time: " + profiler.getDurationInMillis() + ", answer: " +
                 (_answers != null ? _answers[0].toString() : "null"));
         }
         return _answers;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5557ad55/framework/db/src/com/cloud/utils/db/GlobalLock.java
----------------------------------------------------------------------
diff --git a/framework/db/src/com/cloud/utils/db/GlobalLock.java b/framework/db/src/com/cloud/utils/db/GlobalLock.java
index e03da53..662ba92 100644
--- a/framework/db/src/com/cloud/utils/db/GlobalLock.java
+++ b/framework/db/src/com/cloud/utils/db/GlobalLock.java
@@ -139,7 +139,7 @@ public class GlobalLock {
                         }
                         profiler.stop();
 
-                        remainingMilliSeconds -= profiler.getDuration();
+                        remainingMilliSeconds -= profiler.getDurationInMillis();
                         if (remainingMilliSeconds < 0)
                             return false;
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5557ad55/framework/db/test/com/cloud/utils/db/GlobalLockTest.java
----------------------------------------------------------------------
diff --git a/framework/db/test/com/cloud/utils/db/GlobalLockTest.java b/framework/db/test/com/cloud/utils/db/GlobalLockTest.java
index c26f248..58c496f 100644
--- a/framework/db/test/com/cloud/utils/db/GlobalLockTest.java
+++ b/framework/db/test/com/cloud/utils/db/GlobalLockTest.java
@@ -49,7 +49,7 @@ public class GlobalLockTest {
                 p.start();
                 locked = WorkLock.lock(timeoutSeconds);
                 p.stop();
-                System.out.println("Thread " + id + " waited " + p.getDuration() + " ms, locked=" + locked);
+                System.out.println("Thread " + id + " waited " + p.getDurationInMillis() + " ms, locked=" + locked);
                 if (locked) {
                     Thread.sleep(jobDuration * 1000);
                 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5557ad55/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java b/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java
index 3c0c5c3..47f6e77 100644
--- a/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java
+++ b/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java
@@ -125,7 +125,7 @@ public class SecurityGroupManagerImpl2 extends SecurityGroupManagerImpl {
         p.stop();
         if (s_logger.isDebugEnabled()) {
             s_logger.debug("Security Group Mgr v2: done scheduling ruleset updates for " + workItems.size() + " vms: num new jobs=" + newJobs +
-                " num rows insert or updated=" + updated + " time taken=" + p.getDuration());
+                " num rows insert or updated=" + updated + " time taken=" + p.getDurationInMillis());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5557ad55/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java b/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java
index 9c41ac2..ad1da32 100644
--- a/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java
+++ b/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java
@@ -61,7 +61,7 @@ public class SecurityGroupManagerImpl2Test extends TestCase {
         _sgMgr.scheduleRulesetUpdateToHosts(work, false, null);
         profiler.stop();
 
-        System.out.println("Done " + numVms + " in " + profiler.getDuration() + " ms");
+        System.out.println("Done " + numVms + " in " + profiler.getDurationInMillis() + " ms");
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5557ad55/server/test/com/cloud/network/security/SecurityGroupQueueTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/network/security/SecurityGroupQueueTest.java b/server/test/com/cloud/network/security/SecurityGroupQueueTest.java
index 6c104c2..e90cc58 100644
--- a/server/test/com/cloud/network/security/SecurityGroupQueueTest.java
+++ b/server/test/com/cloud/network/security/SecurityGroupQueueTest.java
@@ -131,7 +131,7 @@ public class SecurityGroupQueueTest extends TestCase {
             }
         }
         p.stop();
-        System.out.println("Num Vms= " + maxVmId + " Queue size = " + queue.size() + " time=" + p.getDuration() + " ms");
+        System.out.println("Num Vms= " + maxVmId + " Queue size = " + queue.size() + " time=" + p.getDurationInMillis() + " ms");
         assertEquals(maxVmId, queue.size());
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5557ad55/utils/src/com/cloud/utils/Profiler.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/Profiler.java b/utils/src/com/cloud/utils/Profiler.java
index 6082a92..5977453 100644
--- a/utils/src/com/cloud/utils/Profiler.java
+++ b/utils/src/com/cloud/utils/Profiler.java
@@ -20,45 +20,72 @@
 package com.cloud.utils;
 
 public class Profiler {
-    private Long startTickInMs;
-    private Long stopTickInMs;
+
+    private static final long MILLIS_FACTOR = 1000l;
+    private static final double EXPONENT = 2d;
+
+
+    private Long startTickNanoSeconds;
+    private Long stopTickNanoSeconds;
 
     public long start() {
-        startTickInMs = System.nanoTime();
-        return startTickInMs.longValue();
+        startTickNanoSeconds = System.nanoTime();
+        return startTickNanoSeconds;
     }
 
     public long stop() {
-        stopTickInMs = System.nanoTime();
-        return stopTickInMs.longValue();
+        stopTickNanoSeconds = System.nanoTime();
+        return stopTickNanoSeconds;
     }
 
+    /**
+     * 1 millisecond = 1e+6 nanoseconds
+     * 1 second = 1000 milliseconds = 1e+9 nanoseconds
+     *
+     * @return the duration in nanoseconds.
+     */
     public long getDuration() {
-        if (startTickInMs != null && stopTickInMs != null) {
-            return stopTickInMs.longValue() - startTickInMs.longValue();
+        if (startTickNanoSeconds != null && stopTickNanoSeconds != null) {
+            final long timeInMicroSeconds = stopTickNanoSeconds - startTickNanoSeconds;
+            return timeInMicroSeconds;
+        }
+
+        return -1;
+    }
+
+    /**
+     * 1 millisecond = 1e+6 nanoseconds
+     * 1 second = 1000 millisecond = 1e+9 nanoseconds
+     *
+     * @return the duration in milliseconds.
+     */
+    public long getDurationInMillis() {
+        if (startTickNanoSeconds != null && stopTickNanoSeconds != null) {
+            final long timeInMillis = (stopTickNanoSeconds - startTickNanoSeconds) / (long)Math.pow(MILLIS_FACTOR, EXPONENT);
+            return timeInMillis;
         }
 
         return -1;
     }
 
     public boolean isStarted() {
-        return startTickInMs != null;
+        return startTickNanoSeconds != null;
     }
 
     public boolean isStopped() {
-        return stopTickInMs != null;
+        return stopTickNanoSeconds != null;
     }
 
     @Override
     public String toString() {
-        if (startTickInMs == null) {
+        if (startTickNanoSeconds == null) {
             return "Not Started";
         }
 
-        if (stopTickInMs == null) {
+        if (stopTickNanoSeconds == null) {
             return "Started but not stopped";
         }
 
-        return "Done. Duration: " + getDuration() + "ms";
+        return "Done. Duration: " + getDurationInMillis() + "ms";
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5557ad55/utils/test/com/cloud/utils/TestProfiler.java
----------------------------------------------------------------------
diff --git a/utils/test/com/cloud/utils/TestProfiler.java b/utils/test/com/cloud/utils/TestProfiler.java
index 4323f1d..cbd28f5 100644
--- a/utils/test/com/cloud/utils/TestProfiler.java
+++ b/utils/test/com/cloud/utils/TestProfiler.java
@@ -28,26 +28,48 @@ import com.cloud.utils.testcase.Log4jEnabledTestCase;
 public class TestProfiler extends Log4jEnabledTestCase {
     protected final static Logger s_logger = Logger.getLogger(TestProfiler.class);
 
+    private static final long MILLIS_FACTOR = 1000l;
+    private static final int MARGIN = 100;
+    private static final double EXPONENT = 3d;
+
     @Test
-    public void testProfiler() {
+    public void testProfilerInMillis() {
         s_logger.info("testProfiler() started");
 
         final Profiler pf = new Profiler();
         pf.start();
         try {
-            Thread.sleep(1000);
+            Thread.sleep(MILLIS_FACTOR);
         } catch (final InterruptedException e) {
         }
         pf.stop();
 
-        s_logger.info("Duration : " + pf.getDuration());
+        final long durationInMillis = pf.getDurationInMillis();
+        s_logger.info("Duration : " + durationInMillis);
 
-        Assert.assertTrue(pf.getDuration() >= 1000);
+        // An error margin in order to cover the time taken by the star/stop calls.
+        // 100 milliseconds margin seems too much, but it will avoid assertion error
+        // and also fail in case a duration in nanoseconds is used instead.
+        Assert.assertTrue(durationInMillis >= MILLIS_FACTOR  &&  durationInMillis <= MILLIS_FACTOR + MARGIN);
 
         s_logger.info("testProfiler() stopped");
     }
 
     @Test
+    public void testProfilerInMicro() {
+        final Profiler pf = new Profiler();
+        pf.start();
+        try {
+            Thread.sleep(MILLIS_FACTOR);
+        } catch (final InterruptedException e) {
+        }
+        pf.stop();
+
+        final long duration = pf.getDuration();
+        Assert.assertTrue(duration >= Math.pow(MILLIS_FACTOR, EXPONENT));
+    }
+
+    @Test
     public void testProfilerNoStart() {
         final Profiler pf = new Profiler();
         try {
@@ -56,7 +78,7 @@ public class TestProfiler extends Log4jEnabledTestCase {
         }
         pf.stop();
 
-        Assert.assertTrue(pf.getDuration() == -1);
+        Assert.assertTrue(pf.getDurationInMillis() == -1);
         Assert.assertFalse(pf.isStarted());
     }
 
@@ -69,7 +91,7 @@ public class TestProfiler extends Log4jEnabledTestCase {
         } catch (final InterruptedException e) {
         }
 
-        Assert.assertTrue(pf.getDuration() == -1);
+        Assert.assertTrue(pf.getDurationInMillis() == -1);
         Assert.assertFalse(pf.isStopped());
     }
 }
\ No newline at end of file


[08/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9d19191b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XenTest.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XenTest.java b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XenTest.java
index d8e8021..90e9e14 100644
--- a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XenTest.java
+++ b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XenTest.java
@@ -66,1285 +66,1285 @@ public class XenTest {
     String VMROOTDISKPATH = REPOPATH + "/" + REPOID + "/Disks/" + VMROOTDISK;
     String VMISOPATH = REPOPATH + "/" + REPOID + "/ISOs/" + VMISO;
     String MULTIPLEVMSLISTXML = results
-            .simpleResponseWrapWrapper("<array><data>\n"
-                    + "<value><struct>\n"
-                    + "<member>\n"
-                    + "<name>on_xend_stop</name>\n"
-                    + "<value><string>ignore</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>features</name>\n"
-                    + "<value><string></string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>image</name>\n"
-                    + "<value><struct>\n"
-                    + "<member>\n"
-                    + "<name>tsc_mode</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>kernel</name>\n"
-                    + "<value><string></string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>superpages</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>nomigrate</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>expose_host_uuid</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "</struct></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>cpus</name>\n"
-                    + "<value><array><data>\n"
-                    + "<value><array><data>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>10</string></value>\n"
-                    + "<value><string>11</string></value>\n"
-                    + "<value><string>12</string></value>\n"
-                    + "<value><string>13</string></value>\n"
-                    + "<value><string>14</string></value>\n"
-                    + "<value><string>15</string></value>\n"
-                    + "<value><string>16</string></value>\n"
-                    + "<value><string>17</string></value>\n"
-                    + "<value><string>18</string></value>\n"
-                    + "<value><string>19</string></value>\n"
-                    + "<value><string>20</string></value>\n"
-                    + "<value><string>21</string></value>\n"
-                    + "<value><string>22</string></value>\n"
-                    + "<value><string>23</string></value>\n"
-                    + "<value><string>24</string></value>\n"
-                    + "<value><string>25</string></value>\n"
-                    + "<value><string>26</string></value>\n"
-                    + "<value><string>27</string></value>\n"
-                    + "<value><string>28</string></value>\n"
-                    + "<value><string>29</string></value>\n"
-                    + "<value><string>30</string></value>\n"
-                    + "<value><string>31</string></value>\n"
-                    + "<value><string>32</string></value>\n"
-                    + "<value><string>33</string></value>\n"
-                    + "<value><string>34</string></value>\n"
-                    + "<value><string>35</string></value>\n"
-                    + "<value><string>36</string></value>\n"
-                    + "<value><string>37</string></value>\n"
-                    + "<value><string>38</string></value>\n"
-                    + "<value><string>39</string></value>\n"
-                    + "<value><string>40</string></value>\n"
-                    + "<value><string>41</string></value>\n"
-                    + "<value><string>42</string></value>\n"
-                    + "<value><string>43</string></value>\n"
-                    + "<value><string>44</string></value>\n"
-                    + "<value><string>45</string></value>\n"
-                    + "<value><string>46</string></value>\n"
-                    + "<value><string>47</string></value>\n"
-                    + "<value><string>48</string></value>\n"
-                    + "<value><string>49</string></value>\n"
-                    + "<value><string>50</string></value>\n"
-                    + "<value><string>51</string></value>\n"
-                    + "<value><string>52</string></value>\n"
-                    + "<value><string>53</string></value>\n"
-                    + "<value><string>54</string></value>\n"
-                    + "<value><string>55</string></value>\n"
-                    + "<value><string>56</string></value>\n"
-                    + "<value><string>57</string></value>\n"
-                    + "<value><string>58</string></value>\n"
-                    + "<value><string>59</string></value>\n"
-                    + "<value><string>60</string></value>\n"
-                    + "<value><string>61</string></value>\n"
-                    + "<value><string>62</string></value>\n"
-                    + "<value><string>63</string></value>\n"
-                    + "<value><string>64</string></value>\n"
-                    + "<value><string>65</string></value>\n"
-                    + "<value><string>66</string></value>\n"
-                    + "<value><string>67</string></value>\n"
-                    + "<value><string>68</string></value>\n"
-                    + "<value><string>69</string></value>\n"
-                    + "<value><string>70</string></value>\n"
-                    + "<value><string>71</string></value>\n"
-                    + "<value><string>72</string></value>\n"
-                    + "<value><string>73</string></value>\n"
-                    + "<value><string>74</string></value>\n"
-                    + "<value><string>75</string></value>\n"
-                    + "<value><string>76</string></value>\n"
-                    + "<value><string>77</string></value>\n"
-                    + "<value><string>78</string></value>\n"
-                    + "<value><string>79</string></value>\n"
-                    + "<value><string>80</string></value>\n"
-                    + "<value><string>81</string></value>\n"
-                    + "<value><string>82</string></value>\n"
-                    + "<value><string>83</string></value>\n"
-                    + "<value><string>84</string></value>\n"
-                    + "<value><string>85</string></value>\n"
-                    + "<value><string>86</string></value>\n"
-                    + "<value><string>87</string></value>\n"
-                    + "<value><string>88</string></value>\n"
-                    + "<value><string>89</string></value>\n"
-                    + "<value><string>90</string></value>\n"
-                    + "<value><string>91</string></value>\n"
-                    + "<value><string>92</string></value>\n"
-                    + "<value><string>93</string></value>\n"
-                    + "<value><string>94</string></value>\n"
-                    + "<value><string>95</string></value>\n"
-                    + "<value><string>96</string></value>\n"
-                    + "<value><string>97</string></value>\n"
-                    + "<value><string>98</string></value>\n"
-                    + "<value><string>99</string></value>\n"
-                    + "<value><string>100</string></value>\n"
-                    + "<value><string>101</string></value>\n"
-                    + "<value><string>102</string></value>\n"
-                    + "<value><string>103</string></value>\n"
-                    + "<value><string>104</string></value>\n"
-                    + "<value><string>105</string></value>\n"
-                    + "<value><string>106</string></value>\n"
-                    + "<value><string>107</string></value>\n"
-                    + "<value><string>108</string></value>\n"
-                    + "<value><string>109</string></value>\n"
-                    + "<value><string>110</string></value>\n"
-                    + "<value><string>111</string></value>\n"
-                    + "<value><string>112</string></value>\n"
-                    + "<value><string>113</string></value>\n"
-                    + "<value><string>114</string></value>\n"
-                    + "<value><string>115</string></value>\n"
-                    + "<value><string>116</string></value>\n"
-                    + "<value><string>117</string></value>\n"
-                    + "<value><string>118</string></value>\n"
-                    + "<value><string>119</string></value>\n"
-                    + "<value><string>120</string></value>\n"
-                    + "<value><string>121</string></value>\n"
-                    + "<value><string>122</string></value>\n"
-                    + "<value><string>123</string></value>\n"
-                    + "<value><string>124</string></value>\n"
-                    + "<value><string>125</string></value>\n"
-                    + "<value><string>126</string></value>\n"
-                    + "<value><string>127</string></value>\n"
-                    + "<value><string>128</string></value>\n"
-                    + "<value><string>129</string></value>\n"
-                    + "<value><string>130</string></value>\n"
-                    + "<value><string>131</string></value>\n"
-                    + "<value><string>132</string></value>\n"
-                    + "<value><string>133</string></value>\n"
-                    + "<value><string>134</string></value>\n"
-                    + "<value><string>135</string></value>\n"
-                    + "<value><string>136</string></value>\n"
-                    + "<value><string>137</string></value>\n"
-                    + "<value><string>138</string></value>\n"
-                    + "<value><string>139</string></value>\n"
-                    + "<value><string>140</string></value>\n"
-                    + "<value><string>141</string></value>\n"
-                    + "<value><string>142</string></value>\n"
-                    + "<value><string>143</string></value>\n"
-                    + "<value><string>144</string></value>\n"
-                    + "<value><string>145</string></value>\n"
-                    + "<value><string>146</string></value>\n"
-                    + "<value><string>147</string></value>\n"
-                    + "<value><string>148</string></value>\n"
-                    + "<value><string>149</string></value>\n"
-                    + "<value><string>150</string></value>\n"
-                    + "<value><string>151</string></value>\n"
-                    + "<value><string>152</string></value>\n"
-                    + "<value><string>153</string></value>\n"
-                    + "<value><string>154</string></value>\n"
-                    + "<value><string>155</string></value>\n"
-                    + "<value><string>156</string></value>\n"
-                    + "<value><string>157</string></value>\n"
-                    + "<value><string>158</string></value>\n"
-                    + "<value><string>159</string></value>\n"
-                    + "</data></array></value>\n"
-                    + "<value><array><data>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "<value><string>10</string></value>\n"
-                    + "<value><string>11</string></value>\n"
-                    + "<value><string>12</string></value>\n"
-                    + "<value><string>13</string></value>\n"
-                    + "<value><string>14</string></value>\n"
-                    + "<value><string>15</string></value>\n"
-                    + "<value><string>16</string></value>\n"
-                    + "<value><string>17</string></value>\n"
-                    + "<value><string>18</string></value>\n"
-                    + "<value><string>19</string></value>\n"
-                    + "<value><string>20</string></value>\n"
-                    + "<value><string>21</string></value>\n"
-                    + "<value><string>22</string></value>\n"
-                    + "<value><string>23</string></value>\n"
-                    + "<value><string>24</string></value>\n"
-                    + "<value><string>25</string></value>\n"
-                    + "<value><string>26</string></value>\n"
-                    + "<value><string>27</string></value>\n"
-                    + "<value><string>28</string></value>\n"
-                    + "<value><string>29</string></value>\n"
-                    + "<value><string>30</string></value>\n"
-                    + "<value><string>31</string></value>\n"
-                    + "<value><string>32</string></value>\n"
-                    + "<value><string>33</string></value>\n"
-                    + "<value><string>34</string></value>\n"
-                    + "<value><string>35</string></value>\n"
-                    + "<value><string>36</string></value>\n"
-                    + "<value><string>37</string></value>\n"
-                    + "<value><string>38</string></value>\n"
-                    + "<value><string>39</string></value>\n"
-                    + "<value><string>40</string></value>\n"
-                    + "<value><string>41</string></value>\n"
-                    + "<value><string>42</string></value>\n"
-                    + "<value><string>43</string></value>\n"
-                    + "<value><string>44</string></value>\n"
-                    + "<value><string>45</string></value>\n"
-                    + "<value><string>46</string></value>\n"
-                    + "<value><string>47</string></value>\n"
-                    + "<value><string>48</string></value>\n"
-                    + "<value><string>49</string></value>\n"
-                    + "<value><string>50</string></value>\n"
-                    + "<value><string>51</string></value>\n"
-                    + "<value><string>52</string></value>\n"
-                    + "<value><string>53</string></value>\n"
-                    + "<value><string>54</string></value>\n"
-                    + "<value><string>55</string></value>\n"
-                    + "<value><string>56</string></value>\n"
-                    + "<value><string>57</string></value>\n"
-                    + "<value><string>58</string></value>\n"
-                    + "<value><string>59</string></value>\n"
-                    + "<value><string>60</string></value>\n"
-                    + "<value><string>61</string></value>\n"
-                    + "<value><string>62</string></value>\n"
-                    + "<value><string>63</string></value>\n"
-                    + "<value><string>64</string></value>\n"
-                    + "<value><string>65</string></value>\n"
-                    + "<value><string>66</string></value>\n"
-                    + "<value><string>67</string></value>\n"
-                    + "<value><string>68</string></value>\n"
-                    + "<value><string>69</string></value>\n"
-                    + "<value><string>70</string></value>\n"
-                    + "<value><string>71</string></value>\n"
-                    + "<value><string>72</string></value>\n"
-                    + "<value><string>73</string></value>\n"
-                    + "<value><string>74</string></value>\n"
-                    + "<value><string>75</string></value>\n"
-                    + "<value><string>76</string></value>\n"
-                    + "<value><string>77</string></value>\n"
-                    + "<value><string>78</string></value>\n"
-                    + "<value><string>79</string></value>\n"
-                    + "<value><string>80</string></value>\n"
-                    + "<value><string>81</string></value>\n"
-                    + "<value><string>82</string></value>\n"
-                    + "<value><string>83</string></value>\n"
-                    + "<value><string>84</string></value>\n"
-                    + "<value><string>85</string></value>\n"
-                    + "<value><string>86</string></value>\n"
-                    + "<value><string>87</string></value>\n"
-                    + "<value><string>88</string></value>\n"
-                    + "<value><string>89</string></value>\n"
-                    + "<value><string>90</string></value>\n"
-                    + "<value><string>91</string></value>\n"
-                    + "<value><string>92</string></value>\n"
-                    + "<value><string>93</string></value>\n"
-                    + "<value><string>94</string></value>\n"
-                    + "<value><string>95</string></value>\n"
-                    + "<value><string>96</string></value>\n"
-                    + "<value><string>97</string></value>\n"
-                    + "<value><string>98</string></value>\n"
-                    + "<value><string>99</string></value>\n"
-                    + "<value><string>100</string></value>\n"
-                    + "<value><string>101</string></value>\n"
-                    + "<value><string>102</string></value>\n"
-                    + "<value><string>103</string></value>\n"
-                    + "<value><string>104</string></value>\n"
-                    + "<value><string>105</string></value>\n"
-                    + "<value><string>106</string></value>\n"
-                    + "<value><string>107</string></value>\n"
-                    + "<value><string>108</string></value>\n"
-                    + "<value><string>109</string></value>\n"
-                    + "<value><string>110</string></value>\n"
-                    + "<value><string>111</string></value>\n"
-                    + "<value><string>112</string></value>\n"
-                    + "<value><string>113</string></value>\n"
-                    + "<value><string>114</string></value>\n"
-                    + "<value><string>115</string></value>\n"
-                    + "<value><string>116</string></value>\n"
-                    + "<value><string>117</string></value>\n"
-                    + "<value><string>118</string></value>\n"
-                    + "<value><string>119</string></value>\n"
-                    + "<value><string>120</string></value>\n"
-                    + "<value><string>121</string></value>\n"
-                    + "<value><string>122</string></value>\n"
-                    + "<value><string>123</string></value>\n"
-                    + "<value><string>124</string></value>\n"
-                    + "<value><string>125</string></value>\n"
-                    + "<value><string>126</string></value>\n"
-                    + "<value><string>127</string></value>\n"
-                    + "<value><string>128</string></value>\n"
-                    + "<value><string>129</string></value>\n"
-                    + "<value><string>130</string></value>\n"
-                    + "<value><string>131</string></value>\n"
-                    + "<value><string>132</string></value>\n"
-                    + "<value><string>133</string></value>\n"
-                    + "<value><string>134</string></value>\n"
-                    + "<value><string>135</string></value>\n"
-                    + "<value><string>136</string></value>\n"
-                    + "<value><string>137</string></value>\n"
-                    + "<value><string>138</string></value>\n"
-                    + "<value><string>139</string></value>\n"
-                    + "<value><string>140</string></value>\n"
-                    + "<value><string>141</string></value>\n"
-                    + "<value><string>142</string></value>\n"
-                    + "<value><string>143</string></value>\n"
-                    + "<value><string>144</string></value>\n"
-                    + "<value><string>145</string></value>\n"
-                    + "<value><string>146</string></value>\n"
-                    + "<value><string>147</string></value>\n"
-                    + "<value><string>148</string></value>\n"
-                    + "<value><string>149</string></value>\n"
-                    + "<value><string>150</string></value>\n"
-                    + "<value><string>151</string></value>\n"
-                    + "<value><string>152</string></value>\n"
-                    + "<value><string>153</string></value>\n"
-                    + "<value><string>154</string></value>\n"
-                    + "<value><string>155</string></value>\n"
-                    + "<value><string>156</string></value>\n"
-                    + "<value><string>157</string></value>\n"
-                    + "<value><string>158</string></value>\n"
-                    + "<value><string>159</string></value>\n"
-                    + "</data></array></value>\n"
-                    + "</data></array></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>uuid</name>\n"
-                    + "<value><string>00000000-0000-0000-0000-000000000000</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>on_reboot</name>\n"
-                    + "<value><string>restart</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>state</name>\n"
-                    + "<value><string>r-----</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>cpu_weight</name>\n"
-                    + "<value><string>65535</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>online_vcpus</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>memory</name>\n"
-                    + "<value><string>672</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>cpu_cap</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>status</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>pool_name</name>\n"
-                    + "<value><string>Pool-0</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>on_poweroff</name>\n"
-                    + "<value><string>destroy</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>on_xend_start</name>\n"
-                    + "<value><string>ignore</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>on_crash</name>\n"
-                    + "<value><string>restart</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>device</name>\n"
-                    + "<value><struct>\n"
-                    + "</struct></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>bootloader</name>\n"
-                    + "<value><string></string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>maxmem</name>\n"
-                    + "<value><string>672</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>cpu_time</name>\n"
-                    + "<value><string>6608.51291287</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>shadow_memory</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>name</name>\n"
-                    + "<value><string>Domain-0</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>builder</name>\n"
-                    + "<value><string>linux</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>bootloader_args</name>\n"
-                    + "<value><string></string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>domid</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>vcpus</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "</struct></value>\n"
-                    + "<value><struct>\n"
-                    + "<member>\n"
-                    + "<name>on_xend_stop</name>\n"
-                    + "<value><string>ignore</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>console_mfn</name>\n"
-                    + "<value><string>873706</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>features</name>\n"
-                    + "<value><string></string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>image</name>\n"
-                    + "<value><struct>\n"
-                    + "<member>\n"
-                    + "<name>tsc_mode</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>kernel</name>\n"
-                    + "<value><string></string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>videoram</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>device_model</name>\n"
-                    + "<value><string>/usr/lib/xen/bin/qemu-dm</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>notes</name>"
-                    + "<value><array><data>"
-                    + "<value><array><data>"
-                    + "<value><string>HV_START_LOW</string></value>"
-                    + "<value><string>4118806528</string></value>"
-                    + "</data></array></value>"
-                    + "<value><array><data>"
-                    + "<value><string>FEATURES</string></value>"
-                    + "<value><string>!writable_page_tables|pae_pgdir_above_4gb</string></value>"
-                    + "</data></array></value>" + "<value><array><data>"
-                    + "<value><string>VIRT_BASE</string></value>"
-                    + "<value><string>3221225472</string></value>"
-                    + "</data></array></value>" + "<value><array><data>"
-                    + "<value><string>GUEST_VERSION</string></value>"
-                    + "<value><string>2.6</string></value>"
-                    + "</data></array></value>" + "<value><array><data>"
-                    + "<value><string>PADDR_OFFSET</string></value>"
-                    + "<value><string>" + "</string></value>"
-                    + "</data></array></value>" + "<value><array><data>"
-                    + "<value><string>GUEST_OS</string></value>"
-                    + "<value><string>linux</string></value>"
-                    + "</data></array></value>" + "<value><array><data>"
-                    + "<value><string>HYPERCALL_PAGE</string></value>"
-                    + "<value><string>3238010880</string></value>"
-                    + "</data></array></value>" + "<value><array><data>"
-                    + "<value><string>LOADER</string></value>"
-                    + "<value><string>generic</string></value>"
-                    + "</data></array></value>" + "<value><array><data>"
-                    + "<value><string>SUSPEND_CANCEL</string></value>"
-                    + "<value><string>" + "</string></value>"
-                    + "</data></array></value>" + "<value><array><data>"
-                    + "<value><string>PAE_MODE</string></value>"
-                    + "<value><string>yes</string></value>"
-                    + "</data></array></value>" + "<value><array><data>"
-                    + "<value><string>ENTRY</string></value>"
-                    + "<value><string>3242303488</string></value>"
-                    + "</data></array></value>" + "<value><array><data>"
-                    + "<value><string>XEN_VERSION</string></value>"
-                    + "<value><string>xen-3.0</string></value>"
-                    + "</data></array></value>" + "</data></array></value>"
-                    + "</member>" + "<member>"
-                    + "<name>expose_host_uuid</name>" + "<value><string>"
-                    + "</string></value>" + "</member>" + "<member>"
-                    + "<name>pci</name>" + "<value><array><data>"
-                    + "</data></array></value>" + "</member>" + "<member>"
-                    + "<name>superpages</name>\n" + "<value><string>\n"
-                    + "</string></value>\n" + "</member>\n" + "<member>\n"
-                    + "<name>nomigrate</name>\n" + "<value><string>\n"
-                    + "</string></value>\n" + "</member>\n"
-                    + "</struct></value>\n" + "</member>\n" + "<member>\n"
-                    + "<name>cpus</name>\n" + "<value><array><data>\n"
-                    + "<value><array><data>\n" + "</data></array></value>\n"
-                    + "</data></array></value>\n" + "</member>\n"
-                    + "<member>\n" + "<name>store_mfn</name>\n"
-                    + "<value><string>873707</string></value>\n"
-                    + "</member>\n" + "<member>\n" + "<name>uuid</name>\n"
-                    + "<value><string>"
-                    + VMID
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>on_reboot</name>\n"
-                    + "<value><string>restart</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>state</name>\n"
-                    + "<value><string>-b----</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>cpu_weight</name>\n"
-                    + "<value><string>27500</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>online_vcpus</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>memory</name>\n"
-                    + "<value><string>512</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>cpu_cap</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>status</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>pool_name</name>\n"
-                    + "<value><string>Pool-0</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>description</name>\n"
-                    + "<value><string></string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>start_time</name>\n"
-                    + "<value><string>1408105444.17</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>on_poweroff</name>\n"
-                    + "<value><string>destroy</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>on_xend_start</name>\n"
-                    + "<value><string>ignore</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>on_crash</name>\n"
-                    + "<value><string>restart</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>device</name>\n"
-                    + "<value><struct>\n"
-                    + "<member>\n"
-                    + "<name>vif</name>\n"
-                    + "<value><array><data>\n"
-                    + "<value><struct>\n"
-                    + "<member>\n"
-                    + "<name>bridge</name>\n"
-                    + "<value><string>"+VMNICBR+"</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>mac</name>\n"
-                    + "<value><string>" + VMNICMAC + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>script</name>\n"
-                    + "<value><string>/etc/xen/scripts/vif-bridge</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>uuid</name>\n"
-                    + "<value><string>"+VMNICUUID+"</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>backend</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "</struct></value>\n"
-                    + "</data></array></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>vkbd</name>\n"
-                    + "<value><array><data>\n"
-                    + "<value><struct>\n"
-                    + "<member>\n"
-                    + "<name>backend</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "</struct></value>\n"
-                    + "</data></array></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>console</name>\n"
-                    + "<value><array><data>\n"
-                    + "<value><struct>\n"
-                    + "<member>\n"
-                    + "<name>protocol</name>\n"
-                    + "<value><string>vt100</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>location</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>uuid</name>\n"
-                    + "<value><string>9beb5016-dde7-8526-491f-e972f262a634</string></value>\n"
-                    + "</member>\n"
-                    + "</struct></value>\n"
-                    + "</data></array></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>vfb</name>\n"
-                    + "<value><array><data>\n"
-                    + "<value><struct>\n"
-                    + "<member>\n"
-                    + "<name>vncunused</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>vnc</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>xauthority</name>\n"
-                    + "<value><string>/root/.Xauthority</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>vnclisten</name>\n"
-                    + "<value><string>0.0.0.0</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>vncpasswd</name>\n"
-                    + "<value><string>7693f834ca67912e</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>keymap</name>\n"
-                    + "<value><string>en-us</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>location</name>\n"
-                    + "<value><string>0.0.0.0:5900</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>uuid</name>\n"
-                    + "<value><string>78edf954-e375-b142-9c76-791ce805b6ef</string></value>\n"
-                    + "</member>\n"
-                    + "</struct></value>\n"
-                    + "</data></array></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>vbd</name>\n"
-                    + "<value><array><data>\n"
-                    + "<value><struct>\n"
-                    + "<member>\n"
-                    + "<name>protocol</name>\n"
-                    + "<value><string>x86_32-abi</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>uuid</name>\n"
-                    + "<value><string>bda35954-2596-025e-168c-b82e1cf92369</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>bootable</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>dev</name>\n"
-                    + "<value><string>xvda:disk</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>uname</name>\n"
-                    + "<value><string>file:/OVS/Repositories/"
-                    + REPOID
-                    + "/VirtualDisks/"
-                    + VMROOTDISK
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>mode</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>VDI</name>\n"
-                    + "<value><string></string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>backend</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "</struct></value>\n"
-                    + "</data></array></value>\n"
-                    + "</member>\n"
-                    + "</struct></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>bootloader</name>\n"
-                    + "<value><string>/usr/bin/pygrub</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>maxmem</name>\n"
-                    + "<value><string>512</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>cpu_time</name>\n"
-                    + "<value><string>0.152510481</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>shadow_memory</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>name</name>\n"
-                    + "<value><string>"
-                    + VMNAME
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>builder</name>\n"
-                    + "<value><string>linux</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>bootloader_args</name>\n"
-                    + "<value><string>-q</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>domid</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n"
-                    + "<member>\n"
-                    + "<name>vcpus</name>\n"
-                    + "<value><string>\n"
-                    + "</string></value>\n"
-                    + "</member>\n" + "</struct></value>\n" + "</data></array>");
+            .simpleResponseWrapWrapper(new StringBuilder("<array><data>\n")
+                    .append("<value><struct>\n")
+                    .append("<member>\n")
+                    .append("<name>on_xend_stop</name>\n")
+                    .append("<value><string>ignore</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>features</name>\n")
+                    .append("<value><string></string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>image</name>\n")
+                    .append("<value><struct>\n")
+                    .append("<member>\n")
+                    .append("<name>tsc_mode</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>kernel</name>\n")
+                    .append("<value><string></string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>superpages</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>nomigrate</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>expose_host_uuid</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("</struct></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>cpus</name>\n")
+                    .append("<value><array><data>\n")
+                    .append("<value><array><data>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>10</string></value>\n")
+                    .append("<value><string>11</string></value>\n")
+                    .append("<value><string>12</string></value>\n")
+                    .append("<value><string>13</string></value>\n")
+                    .append("<value><string>14</string></value>\n")
+                    .append("<value><string>15</string></value>\n")
+                    .append("<value><string>16</string></value>\n")
+                    .append("<value><string>17</string></value>\n")
+                    .append("<value><string>18</string></value>\n")
+                    .append("<value><string>19</string></value>\n")
+                    .append("<value><string>20</string></value>\n")
+                    .append("<value><string>21</string></value>\n")
+                    .append("<value><string>22</string></value>\n")
+                    .append("<value><string>23</string></value>\n")
+                    .append("<value><string>24</string></value>\n")
+                    .append("<value><string>25</string></value>\n")
+                    .append("<value><string>26</string></value>\n")
+                    .append("<value><string>27</string></value>\n")
+                    .append("<value><string>28</string></value>\n")
+                    .append("<value><string>29</string></value>\n")
+                    .append("<value><string>30</string></value>\n")
+                    .append("<value><string>31</string></value>\n")
+                    .append("<value><string>32</string></value>\n")
+                    .append("<value><string>33</string></value>\n")
+                    .append("<value><string>34</string></value>\n")
+                    .append("<value><string>35</string></value>\n")
+                    .append("<value><string>36</string></value>\n")
+                    .append("<value><string>37</string></value>\n")
+                    .append("<value><string>38</string></value>\n")
+                    .append("<value><string>39</string></value>\n")
+                    .append("<value><string>40</string></value>\n")
+                    .append("<value><string>41</string></value>\n")
+                    .append("<value><string>42</string></value>\n")
+                    .append("<value><string>43</string></value>\n")
+                    .append("<value><string>44</string></value>\n")
+                    .append("<value><string>45</string></value>\n")
+                    .append("<value><string>46</string></value>\n")
+                    .append("<value><string>47</string></value>\n")
+                    .append("<value><string>48</string></value>\n")
+                    .append("<value><string>49</string></value>\n")
+                    .append("<value><string>50</string></value>\n")
+                    .append("<value><string>51</string></value>\n")
+                    .append("<value><string>52</string></value>\n")
+                    .append("<value><string>53</string></value>\n")
+                    .append("<value><string>54</string></value>\n")
+                    .append("<value><string>55</string></value>\n")
+                    .append("<value><string>56</string></value>\n")
+                    .append("<value><string>57</string></value>\n")
+                    .append("<value><string>58</string></value>\n")
+                    .append("<value><string>59</string></value>\n")
+                    .append("<value><string>60</string></value>\n")
+                    .append("<value><string>61</string></value>\n")
+                    .append("<value><string>62</string></value>\n")
+                    .append("<value><string>63</string></value>\n")
+                    .append("<value><string>64</string></value>\n")
+                    .append("<value><string>65</string></value>\n")
+                    .append("<value><string>66</string></value>\n")
+                    .append("<value><string>67</string></value>\n")
+                    .append("<value><string>68</string></value>\n")
+                    .append("<value><string>69</string></value>\n")
+                    .append("<value><string>70</string></value>\n")
+                    .append("<value><string>71</string></value>\n")
+                    .append("<value><string>72</string></value>\n")
+                    .append("<value><string>73</string></value>\n")
+                    .append("<value><string>74</string></value>\n")
+                    .append("<value><string>75</string></value>\n")
+                    .append("<value><string>76</string></value>\n")
+                    .append("<value><string>77</string></value>\n")
+                    .append("<value><string>78</string></value>\n")
+                    .append("<value><string>79</string></value>\n")
+                    .append("<value><string>80</string></value>\n")
+                    .append("<value><string>81</string></value>\n")
+                    .append("<value><string>82</string></value>\n")
+                    .append("<value><string>83</string></value>\n")
+                    .append("<value><string>84</string></value>\n")
+                    .append("<value><string>85</string></value>\n")
+                    .append("<value><string>86</string></value>\n")
+                    .append("<value><string>87</string></value>\n")
+                    .append("<value><string>88</string></value>\n")
+                    .append("<value><string>89</string></value>\n")
+                    .append("<value><string>90</string></value>\n")
+                    .append("<value><string>91</string></value>\n")
+                    .append("<value><string>92</string></value>\n")
+                    .append("<value><string>93</string></value>\n")
+                    .append("<value><string>94</string></value>\n")
+                    .append("<value><string>95</string></value>\n")
+                    .append("<value><string>96</string></value>\n")
+                    .append("<value><string>97</string></value>\n")
+                    .append("<value><string>98</string></value>\n")
+                    .append("<value><string>99</string></value>\n")
+                    .append("<value><string>100</string></value>\n")
+                    .append("<value><string>101</string></value>\n")
+                    .append("<value><string>102</string></value>\n")
+                    .append("<value><string>103</string></value>\n")
+                    .append("<value><string>104</string></value>\n")
+                    .append("<value><string>105</string></value>\n")
+                    .append("<value><string>106</string></value>\n")
+                    .append("<value><string>107</string></value>\n")
+                    .append("<value><string>108</string></value>\n")
+                    .append("<value><string>109</string></value>\n")
+                    .append("<value><string>110</string></value>\n")
+                    .append("<value><string>111</string></value>\n")
+                    .append("<value><string>112</string></value>\n")
+                    .append("<value><string>113</string></value>\n")
+                    .append("<value><string>114</string></value>\n")
+                    .append("<value><string>115</string></value>\n")
+                    .append("<value><string>116</string></value>\n")
+                    .append("<value><string>117</string></value>\n")
+                    .append("<value><string>118</string></value>\n")
+                    .append("<value><string>119</string></value>\n")
+                    .append("<value><string>120</string></value>\n")
+                    .append("<value><string>121</string></value>\n")
+                    .append("<value><string>122</string></value>\n")
+                    .append("<value><string>123</string></value>\n")
+                    .append("<value><string>124</string></value>\n")
+                    .append("<value><string>125</string></value>\n")
+                    .append("<value><string>126</string></value>\n")
+                    .append("<value><string>127</string></value>\n")
+                    .append("<value><string>128</string></value>\n")
+                    .append("<value><string>129</string></value>\n")
+                    .append("<value><string>130</string></value>\n")
+                    .append("<value><string>131</string></value>\n")
+                    .append("<value><string>132</string></value>\n")
+                    .append("<value><string>133</string></value>\n")
+                    .append("<value><string>134</string></value>\n")
+                    .append("<value><string>135</string></value>\n")
+                    .append("<value><string>136</string></value>\n")
+                    .append("<value><string>137</string></value>\n")
+                    .append("<value><string>138</string></value>\n")
+                    .append("<value><string>139</string></value>\n")
+                    .append("<value><string>140</string></value>\n")
+                    .append("<value><string>141</string></value>\n")
+                    .append("<value><string>142</string></value>\n")
+                    .append("<value><string>143</string></value>\n")
+                    .append("<value><string>144</string></value>\n")
+                    .append("<value><string>145</string></value>\n")
+                    .append("<value><string>146</string></value>\n")
+                    .append("<value><string>147</string></value>\n")
+                    .append("<value><string>148</string></value>\n")
+                    .append("<value><string>149</string></value>\n")
+                    .append("<value><string>150</string></value>\n")
+                    .append("<value><string>151</string></value>\n")
+                    .append("<value><string>152</string></value>\n")
+                    .append("<value><string>153</string></value>\n")
+                    .append("<value><string>154</string></value>\n")
+                    .append("<value><string>155</string></value>\n")
+                    .append("<value><string>156</string></value>\n")
+                    .append("<value><string>157</string></value>\n")
+                    .append("<value><string>158</string></value>\n")
+                    .append("<value><string>159</string></value>\n")
+                    .append("</data></array></value>\n")
+                    .append("<value><array><data>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("<value><string>10</string></value>\n")
+                    .append("<value><string>11</string></value>\n")
+                    .append("<value><string>12</string></value>\n")
+                    .append("<value><string>13</string></value>\n")
+                    .append("<value><string>14</string></value>\n")
+                    .append("<value><string>15</string></value>\n")
+                    .append("<value><string>16</string></value>\n")
+                    .append("<value><string>17</string></value>\n")
+                    .append("<value><string>18</string></value>\n")
+                    .append("<value><string>19</string></value>\n")
+                    .append("<value><string>20</string></value>\n")
+                    .append("<value><string>21</string></value>\n")
+                    .append("<value><string>22</string></value>\n")
+                    .append("<value><string>23</string></value>\n")
+                    .append("<value><string>24</string></value>\n")
+                    .append("<value><string>25</string></value>\n")
+                    .append("<value><string>26</string></value>\n")
+                    .append("<value><string>27</string></value>\n")
+                    .append("<value><string>28</string></value>\n")
+                    .append("<value><string>29</string></value>\n")
+                    .append("<value><string>30</string></value>\n")
+                    .append("<value><string>31</string></value>\n")
+                    .append("<value><string>32</string></value>\n")
+                    .append("<value><string>33</string></value>\n")
+                    .append("<value><string>34</string></value>\n")
+                    .append("<value><string>35</string></value>\n")
+                    .append("<value><string>36</string></value>\n")
+                    .append("<value><string>37</string></value>\n")
+                    .append("<value><string>38</string></value>\n")
+                    .append("<value><string>39</string></value>\n")
+                    .append("<value><string>40</string></value>\n")
+                    .append("<value><string>41</string></value>\n")
+                    .append("<value><string>42</string></value>\n")
+                    .append("<value><string>43</string></value>\n")
+                    .append("<value><string>44</string></value>\n")
+                    .append("<value><string>45</string></value>\n")
+                    .append("<value><string>46</string></value>\n")
+                    .append("<value><string>47</string></value>\n")
+                    .append("<value><string>48</string></value>\n")
+                    .append("<value><string>49</string></value>\n")
+                    .append("<value><string>50</string></value>\n")
+                    .append("<value><string>51</string></value>\n")
+                    .append("<value><string>52</string></value>\n")
+                    .append("<value><string>53</string></value>\n")
+                    .append("<value><string>54</string></value>\n")
+                    .append("<value><string>55</string></value>\n")
+                    .append("<value><string>56</string></value>\n")
+                    .append("<value><string>57</string></value>\n")
+                    .append("<value><string>58</string></value>\n")
+                    .append("<value><string>59</string></value>\n")
+                    .append("<value><string>60</string></value>\n")
+                    .append("<value><string>61</string></value>\n")
+                    .append("<value><string>62</string></value>\n")
+                    .append("<value><string>63</string></value>\n")
+                    .append("<value><string>64</string></value>\n")
+                    .append("<value><string>65</string></value>\n")
+                    .append("<value><string>66</string></value>\n")
+                    .append("<value><string>67</string></value>\n")
+                    .append("<value><string>68</string></value>\n")
+                    .append("<value><string>69</string></value>\n")
+                    .append("<value><string>70</string></value>\n")
+                    .append("<value><string>71</string></value>\n")
+                    .append("<value><string>72</string></value>\n")
+                    .append("<value><string>73</string></value>\n")
+                    .append("<value><string>74</string></value>\n")
+                    .append("<value><string>75</string></value>\n")
+                    .append("<value><string>76</string></value>\n")
+                    .append("<value><string>77</string></value>\n")
+                    .append("<value><string>78</string></value>\n")
+                    .append("<value><string>79</string></value>\n")
+                    .append("<value><string>80</string></value>\n")
+                    .append("<value><string>81</string></value>\n")
+                    .append("<value><string>82</string></value>\n")
+                    .append("<value><string>83</string></value>\n")
+                    .append("<value><string>84</string></value>\n")
+                    .append("<value><string>85</string></value>\n")
+                    .append("<value><string>86</string></value>\n")
+                    .append("<value><string>87</string></value>\n")
+                    .append("<value><string>88</string></value>\n")
+                    .append("<value><string>89</string></value>\n")
+                    .append("<value><string>90</string></value>\n")
+                    .append("<value><string>91</string></value>\n")
+                    .append("<value><string>92</string></value>\n")
+                    .append("<value><string>93</string></value>\n")
+                    .append("<value><string>94</string></value>\n")
+                    .append("<value><string>95</string></value>\n")
+                    .append("<value><string>96</string></value>\n")
+                    .append("<value><string>97</string></value>\n")
+                    .append("<value><string>98</string></value>\n")
+                    .append("<value><string>99</string></value>\n")
+                    .append("<value><string>100</string></value>\n")
+                    .append("<value><string>101</string></value>\n")
+                    .append("<value><string>102</string></value>\n")
+                    .append("<value><string>103</string></value>\n")
+                    .append("<value><string>104</string></value>\n")
+                    .append("<value><string>105</string></value>\n")
+                    .append("<value><string>106</string></value>\n")
+                    .append("<value><string>107</string></value>\n")
+                    .append("<value><string>108</string></value>\n")
+                    .append("<value><string>109</string></value>\n")
+                    .append("<value><string>110</string></value>\n")
+                    .append("<value><string>111</string></value>\n")
+                    .append("<value><string>112</string></value>\n")
+                    .append("<value><string>113</string></value>\n")
+                    .append("<value><string>114</string></value>\n")
+                    .append("<value><string>115</string></value>\n")
+                    .append("<value><string>116</string></value>\n")
+                    .append("<value><string>117</string></value>\n")
+                    .append("<value><string>118</string></value>\n")
+                    .append("<value><string>119</string></value>\n")
+                    .append("<value><string>120</string></value>\n")
+                    .append("<value><string>121</string></value>\n")
+                    .append("<value><string>122</string></value>\n")
+                    .append("<value><string>123</string></value>\n")
+                    .append("<value><string>124</string></value>\n")
+                    .append("<value><string>125</string></value>\n")
+                    .append("<value><string>126</string></value>\n")
+                    .append("<value><string>127</string></value>\n")
+                    .append("<value><string>128</string></value>\n")
+                    .append("<value><string>129</string></value>\n")
+                    .append("<value><string>130</string></value>\n")
+                    .append("<value><string>131</string></value>\n")
+                    .append("<value><string>132</string></value>\n")
+                    .append("<value><string>133</string></value>\n")
+                    .append("<value><string>134</string></value>\n")
+                    .append("<value><string>135</string></value>\n")
+                    .append("<value><string>136</string></value>\n")
+                    .append("<value><string>137</string></value>\n")
+                    .append("<value><string>138</string></value>\n")
+                    .append("<value><string>139</string></value>\n")
+                    .append("<value><string>140</string></value>\n")
+                    .append("<value><string>141</string></value>\n")
+                    .append("<value><string>142</string></value>\n")
+                    .append("<value><string>143</string></value>\n")
+                    .append("<value><string>144</string></value>\n")
+                    .append("<value><string>145</string></value>\n")
+                    .append("<value><string>146</string></value>\n")
+                    .append("<value><string>147</string></value>\n")
+                    .append("<value><string>148</string></value>\n")
+                    .append("<value><string>149</string></value>\n")
+                    .append("<value><string>150</string></value>\n")
+                    .append("<value><string>151</string></value>\n")
+                    .append("<value><string>152</string></value>\n")
+                    .append("<value><string>153</string></value>\n")
+                    .append("<value><string>154</string></value>\n")
+                    .append("<value><string>155</string></value>\n")
+                    .append("<value><string>156</string></value>\n")
+                    .append("<value><string>157</string></value>\n")
+                    .append("<value><string>158</string></value>\n")
+                    .append("<value><string>159</string></value>\n")
+                    .append("</data></array></value>\n")
+                    .append("</data></array></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>uuid</name>\n")
+                    .append("<value><string>00000000-0000-0000-0000-000000000000</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>on_reboot</name>\n")
+                    .append("<value><string>restart</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>state</name>\n")
+                    .append("<value><string>r-----</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>cpu_weight</name>\n")
+                    .append("<value><string>65535</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>online_vcpus</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>memory</name>\n")
+                    .append("<value><string>672</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>cpu_cap</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>status</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>pool_name</name>\n")
+                    .append("<value><string>Pool-0</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>on_poweroff</name>\n")
+                    .append("<value><string>destroy</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>on_xend_start</name>\n")
+                    .append("<value><string>ignore</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>on_crash</name>\n")
+                    .append("<value><string>restart</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>device</name>\n")
+                    .append("<value><struct>\n")
+                    .append("</struct></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>bootloader</name>\n")
+                    .append("<value><string></string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>maxmem</name>\n")
+                    .append("<value><string>672</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>cpu_time</name>\n")
+                    .append("<value><string>6608.51291287</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>shadow_memory</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>name</name>\n")
+                    .append("<value><string>Domain-0</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>builder</name>\n")
+                    .append("<value><string>linux</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>bootloader_args</name>\n")
+                    .append("<value><string></string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>domid</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>vcpus</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("</struct></value>\n")
+                    .append("<value><struct>\n")
+                    .append("<member>\n")
+                    .append("<name>on_xend_stop</name>\n")
+                    .append("<value><string>ignore</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>console_mfn</name>\n")
+                    .append("<value><string>873706</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>features</name>\n")
+                    .append("<value><string></string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>image</name>\n")
+                    .append("<value><struct>\n")
+                    .append("<member>\n")
+                    .append("<name>tsc_mode</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>kernel</name>\n")
+                    .append("<value><string></string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>videoram</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>device_model</name>\n")
+                    .append("<value><string>/usr/lib/xen/bin/qemu-dm</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>notes</name>")
+                    .append("<value><array><data>")
+                    .append("<value><array><data>")
+                    .append("<value><string>HV_START_LOW</string></value>")
+                    .append("<value><string>4118806528</string></value>")
+                    .append("</data></array></value>")
+                    .append("<value><array><data>")
+                    .append("<value><string>FEATURES</string></value>")
+                    .append("<value><string>!writable_page_tables|pae_pgdir_above_4gb</string></value>")
+                    .append("</data></array></value>") .append("<value><array><data>")
+                    .append("<value><string>VIRT_BASE</string></value>")
+                    .append("<value><string>3221225472</string></value>")
+                    .append("</data></array></value>") .append("<value><array><data>")
+                    .append("<value><string>GUEST_VERSION</string></value>")
+                    .append("<value><string>2.6</string></value>")
+                    .append("</data></array></value>") .append("<value><array><data>")
+                    .append("<value><string>PADDR_OFFSET</string></value>")
+                    .append("<value><string>") .append("</string></value>")
+                    .append("</data></array></value>") .append("<value><array><data>")
+                    .append("<value><string>GUEST_OS</string></value>")
+                    .append("<value><string>linux</string></value>")
+                    .append("</data></array></value>") .append("<value><array><data>")
+                    .append("<value><string>HYPERCALL_PAGE</string></value>")
+                    .append("<value><string>3238010880</string></value>")
+                    .append("</data></array></value>") .append("<value><array><data>")
+                    .append("<value><string>LOADER</string></value>")
+                    .append("<value><string>generic</string></value>")
+                    .append("</data></array></value>") .append("<value><array><data>")
+                    .append("<value><string>SUSPEND_CANCEL</string></value>")
+                    .append("<value><string>") .append("</string></value>")
+                    .append("</data></array></value>") .append("<value><array><data>")
+                    .append("<value><string>PAE_MODE</string></value>")
+                    .append("<value><string>yes</string></value>")
+                    .append("</data></array></value>") .append("<value><array><data>")
+                    .append("<value><string>ENTRY</string></value>")
+                    .append("<value><string>3242303488</string></value>")
+                    .append("</data></array></value>") .append("<value><array><data>")
+                    .append("<value><string>XEN_VERSION</string></value>")
+                    .append("<value><string>xen-3.0</string></value>")
+                    .append("</data></array></value>") .append("</data></array></value>")
+                    .append("</member>") .append("<member>")
+                    .append("<name>expose_host_uuid</name>") .append("<value><string>")
+                    .append("</string></value>") .append("</member>") .append("<member>")
+                    .append("<name>pci</name>") .append("<value><array><data>")
+                    .append("</data></array></value>") .append("</member>") .append("<member>")
+                    .append("<name>superpages</name>\n") .append("<value><string>\n")
+                    .append("</string></value>\n") .append("</member>\n") .append("<member>\n")
+                    .append("<name>nomigrate</name>\n") .append("<value><string>\n")
+                    .append("</string></value>\n") .append("</member>\n")
+                    .append("</struct></value>\n") .append("</member>\n") .append("<member>\n")
+                    .append("<name>cpus</name>\n") .append("<value><array><data>\n")
+                    .append("<value><array><data>\n") .append("</data></array></value>\n")
+                    .append("</data></array></value>\n") .append("</member>\n")
+                    .append("<member>\n") .append("<name>store_mfn</name>\n")
+                    .append("<value><string>873707</string></value>\n")
+                    .append("</member>\n") .append("<member>\n") .append("<name>uuid</name>\n")
+                    .append("<value><string>")
+                    .append(VMID)
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>on_reboot</name>\n")
+                    .append("<value><string>restart</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>state</name>\n")
+                    .append("<value><string>-b----</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>cpu_weight</name>\n")
+                    .append("<value><string>27500</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>online_vcpus</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>memory</name>\n")
+                    .append("<value><string>512</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>cpu_cap</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>status</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>pool_name</name>\n")
+                    .append("<value><string>Pool-0</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>description</name>\n")
+                    .append("<value><string></string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>start_time</name>\n")
+                    .append("<value><string>1408105444.17</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>on_poweroff</name>\n")
+                    .append("<value><string>destroy</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>on_xend_start</name>\n")
+                    .append("<value><string>ignore</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>on_crash</name>\n")
+                    .append("<value><string>restart</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>device</name>\n")
+                    .append("<value><struct>\n")
+                    .append("<member>\n")
+                    .append("<name>vif</name>\n")
+                    .append("<value><array><data>\n")
+                    .append("<value><struct>\n")
+                    .append("<member>\n")
+                    .append("<name>bridge</name>\n")
+                    .append("<value><string>").append(VMNICBR).append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>mac</name>\n")
+                    .append("<value><string>").append(VMNICMAC).append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>script</name>\n")
+                    .append("<value><string>/etc/xen/scripts/vif-bridge</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>uuid</name>\n")
+                    .append("<value><string>").append(VMNICUUID).append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>backend</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("</struct></value>\n")
+                    .append("</data></array></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>vkbd</name>\n")
+                    .append("<value><array><data>\n")
+                    .append("<value><struct>\n")
+                    .append("<member>\n")
+                    .append("<name>backend</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("</struct></value>\n")
+                    .append("</data></array></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>console</name>\n")
+                    .append("<value><array><data>\n")
+                    .append("<value><struct>\n")
+                    .append("<member>\n")
+                    .append("<name>protocol</name>\n")
+                    .append("<value><string>vt100</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>location</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>uuid</name>\n")
+                    .append("<value><string>9beb5016-dde7-8526-491f-e972f262a634</string></value>\n")
+                    .append("</member>\n")
+                    .append("</struct></value>\n")
+                    .append("</data></array></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>vfb</name>\n")
+                    .append("<value><array><data>\n")
+                    .append("<value><struct>\n")
+                    .append("<member>\n")
+                    .append("<name>vncunused</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>vnc</name>\n")
+                    .append("<value><string>\n")
+                    .append("</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>xauthority</name>\n")
+                    .append("<value><string>/root/.Xauthority</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>vnclisten</name>\n")
+                    .append("<value><string>0.0.0.0</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>vncpasswd</name>\n")
+                    .append("<value><string>7693f834ca67912e</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>keymap</name>\n")
+                    .append("<value><string>en-us</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+                    .append("<name>location</name>\n")
+                    .append("<value><string>0.0.0.0:5900</string></value>\n")
+                    .append("</member>\n")
+                    .append("<member>\n")
+             

<TRUNCATED>

[45/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
4.4.4 to 4.5.2 upgrade

 Conflicts:
	engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java

Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

This closes #529


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

Branch: refs/heads/dhcpoffload
Commit: 582687fb3f5e17fd8ccbedee68eefff0eef3e44a
Parents: bdd42a4
Author: Daan Hoogland <da...@onecht.net>
Authored: Sun Apr 19 18:10:03 2015 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Fri Jun 26 00:07:44 2015 +0200

----------------------------------------------------------------------
 .../cloud/upgrade/DatabaseUpgradeChecker.java   |  3 +
 .../com/cloud/upgrade/dao/Upgrade443to444.java  | 64 ++++++++++++++++++++
 .../com/cloud/upgrade/dao/Upgrade444to450.java  | 30 +++++++++
 setup/db/db/schema-443to444.sql                 | 20 ++++++
 4 files changed, 117 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/582687fb/engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java b/engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
index ff8fce6..4bc54b1 100644
--- a/engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
+++ b/engine/schema/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
@@ -72,6 +72,7 @@ import com.cloud.upgrade.dao.Upgrade440to441;
 import com.cloud.upgrade.dao.Upgrade441to442;
 import com.cloud.upgrade.dao.Upgrade442to450;
 import com.cloud.upgrade.dao.Upgrade443to450;
+import com.cloud.upgrade.dao.Upgrade444to450;
 import com.cloud.upgrade.dao.Upgrade450to451;
 import com.cloud.upgrade.dao.Upgrade451to460;
 import com.cloud.upgrade.dao.UpgradeSnapshot217to224;
@@ -231,6 +232,8 @@ public class DatabaseUpgradeChecker implements SystemIntegrityChecker {
 
         _upgradeMap.put("4.4.3", new DbUpgrade[] {new Upgrade443to450(), new Upgrade450to451(), new Upgrade451to460()});
 
+        _upgradeMap.put("4.4.4", new DbUpgrade[] {new Upgrade444to450(), new Upgrade450to451(), new Upgrade451to460()});
+
         _upgradeMap.put("4.5.0", new DbUpgrade[] {new Upgrade450to451(), new Upgrade451to460()});
 
         _upgradeMap.put("4.5.1", new DbUpgrade[] {new Upgrade451to460()});

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/582687fb/engine/schema/src/com/cloud/upgrade/dao/Upgrade443to444.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade443to444.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade443to444.java
new file mode 100644
index 0000000..ded67d6
--- /dev/null
+++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade443to444.java
@@ -0,0 +1,64 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package com.cloud.upgrade.dao;
+
+import java.io.File;
+import java.sql.Connection;
+
+import org.apache.log4j.Logger;
+
+import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.utils.script.Script;
+
+public class Upgrade443to444 implements DbUpgrade {
+    final static Logger s_logger = Logger.getLogger(Upgrade443to444.class);
+
+    @Override
+    public String[] getUpgradableVersionRange() {
+        return new String[] {"4.4.3", "4.4.4"};
+    }
+
+    @Override
+    public String getUpgradedVersion() {
+        return "4.4.4";
+    }
+
+    @Override
+    public boolean supportsRollingUpgrade() {
+        return false;
+    }
+
+    @Override
+    public File[] getPrepareScripts() {
+        String script = Script.findScript("", "db/schema-443to444.sql");
+        if (script == null) {
+            throw new CloudRuntimeException("Unable to find db/schema-empty.sql");
+        }
+
+        return new File[] {new File(script)};
+    }
+
+    @Override
+    public void performDataMigration(Connection conn) {
+    }
+
+    @Override
+    public File[] getCleanupScripts() {
+        return null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/582687fb/engine/schema/src/com/cloud/upgrade/dao/Upgrade444to450.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade444to450.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade444to450.java
new file mode 100644
index 0000000..d872e52
--- /dev/null
+++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade444to450.java
@@ -0,0 +1,30 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package com.cloud.upgrade.dao;
+
+import org.apache.log4j.Logger;
+
+public class Upgrade444to450 extends Upgrade442to450 implements DbUpgrade {
+
+    final static Logger s_logger = Logger.getLogger(Upgrade444to450.class);
+
+    @Override
+    public String[] getUpgradableVersionRange() {
+        return new String[] {"4.4.4", "4.5.0"};
+    }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/582687fb/setup/db/db/schema-443to444.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-443to444.sql b/setup/db/db/schema-443to444.sql
new file mode 100644
index 0000000..44e0406
--- /dev/null
+++ b/setup/db/db/schema-443to444.sql
@@ -0,0 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements.  See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership.  The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License.  You may obtain a copy of the License at
+--
+--   http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied.  See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
+--;
+-- Schema upgrade from 4.4.3 to 4.4.4;
+--;


[05/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Resolve unsafe cast warnings reported by lint checker Add some debug config to compiler plugin

Signed-off-by: Daan Hoogland <da...@gmail.com>


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

Branch: refs/heads/dhcpoffload
Commit: 540b163cfc41bc3838cedfe01c4ae34e82e780f7
Parents: 53e42fb
Author: Rafael da Fonseca <rs...@gmail.com>
Authored: Sun Jun 21 14:03:53 2015 +0200
Committer: Daan Hoogland <da...@gmail.com>
Committed: Mon Jun 22 13:01:18 2015 +0200

----------------------------------------------------------------------
 plugins/hypervisors/ovm3/pom.xml                     | 15 +++++++++++++++
 .../resources/helpers/Ovm3ConfigurationTest.java     | 10 +++++-----
 2 files changed, 20 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/540b163c/plugins/hypervisors/ovm3/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/pom.xml b/plugins/hypervisors/ovm3/pom.xml
index 546e7e7..24ef6a4 100644
--- a/plugins/hypervisors/ovm3/pom.xml
+++ b/plugins/hypervisors/ovm3/pom.xml
@@ -49,6 +49,21 @@
         <directory>${basedir}/src/test/resources</directory>
       </testResource>
     </testResources>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.3</version>
+        <configuration>
+        <useIncrementalCompilation>true</useIncrementalCompilation>
+        <forceJavacCompilerUse>true</forceJavacCompilerUse>
+        <compilerArgs>
+            <arg>-verbose</arg>
+            <arg>-Xlint:all,-options,-path</arg>
+          </compilerArgs>
+        </configuration>
+      </plugin>
+    </plugins>
   </build>
   <profiles>
     <profile>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/540b163c/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3ConfigurationTest.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3ConfigurationTest.java b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3ConfigurationTest.java
index 5faff8f..5cbb2b7 100644
--- a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3ConfigurationTest.java
+++ b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3ConfigurationTest.java
@@ -29,7 +29,7 @@ import com.cloud.hypervisor.ovm3.objects.XmlTestResultTest;
 public class Ovm3ConfigurationTest {
     XmlTestResultTest results = new XmlTestResultTest();
     private Ovm3Configuration ovm3config;
-    private static Map<String, Object> params;
+    private static HashMap<String, Object> params;
     static {
         params = new HashMap<String, Object>();
         params.put("agentusername", "oracle");
@@ -55,7 +55,7 @@ public class Ovm3ConfigurationTest {
         params.put("max.template.iso.size", "50");
         params.put("host", "ovm-1");
         params.put("com.cloud.network.Networks.RouterPrivateIpStrategy",
-                "DcGlobal");
+            "DcGlobal");
         params.put("agentport", "8899");
         params.put("Host.OS.Kernel.Version", "2.6.39-300.22.2.el5uek");
         params.put("migratewait", "3600");
@@ -83,13 +83,13 @@ public class Ovm3ConfigurationTest {
 
     @Test(expected = ConfigurationException.class)
     public void testFailedParams() throws ConfigurationException {
-        Map<String, Object> par = new HashMap(params);
+        HashMap<String, Object> par = new HashMap<String,Object>(params);
         par.put("pod", null);
         ovm3config = new Ovm3Configuration(par);
     }
     @Test
     public void testValidatePool() throws ConfigurationException {
-        Map<String, Object> par = new HashMap(params);
+        HashMap<String, Object> par = new HashMap<String,Object>(params);
         par.put("cluster", "1");
         par.put("ovm3vip", "this is not an IP!");
         ovm3config = new Ovm3Configuration(par);
@@ -99,7 +99,7 @@ public class Ovm3ConfigurationTest {
     }
     @Test
     public void testAgentPort() throws ConfigurationException {
-        Map<String, Object> par = new HashMap(params);
+        HashMap<String, Object> par = new HashMap<String,Object>(params);
         String altPort="6333";
         par.put("agentport", altPort);
         ovm3config = new Ovm3Configuration(par);


[49/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
CLOUDSTACK-8324: Added migration changes for config drive


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

Branch: refs/heads/dhcpoffload
Commit: b8c112e35bcc98e1ee142cfb8901a0d9af28320d
Parents: 17ecd65
Author: Jayapal <ja...@apache.org>
Authored: Tue Jun 9 16:13:21 2015 +0530
Committer: Jayapal <ja...@apache.org>
Committed: Mon Jun 29 12:27:39 2015 +0530

----------------------------------------------------------------------
 .../api/AttachOrDettachConfigDriveCommand.java  |  58 +++++++++++
 .../com/cloud/vm/VirtualMachineManagerImpl.java |  59 ++++++++++-
 .../xenserver/resource/CitrixResourceBase.java  | 102 ++++++++++++++++++-
 ...rver610MigrateWithStorageCommandWrapper.java |   2 +-
 ...ttachOrDettachConfigDriveCommandWrapper.java |  95 +++++++++++++++++
 .../xenbase/CitrixMigrateCommandWrapper.java    |  22 +++-
 ...CitrixPrepareForMigrationCommandWrapper.java |  11 +-
 .../xenbase/XenServer610WrapperTest.java        |   2 +-
 8 files changed, 339 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b8c112e3/core/src/com/cloud/agent/api/AttachOrDettachConfigDriveCommand.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/agent/api/AttachOrDettachConfigDriveCommand.java b/core/src/com/cloud/agent/api/AttachOrDettachConfigDriveCommand.java
new file mode 100644
index 0000000..ebf5d0b
--- /dev/null
+++ b/core/src/com/cloud/agent/api/AttachOrDettachConfigDriveCommand.java
@@ -0,0 +1,58 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package com.cloud.agent.api;
+
+import java.util.List;
+
+public class AttachOrDettachConfigDriveCommand extends Command {
+
+    String vmName;
+    List<String[]> vmData;
+    String configDriveLabel;
+    boolean isAttach = false;
+
+    public AttachOrDettachConfigDriveCommand(String vmName, List<String[]> vmData, String label, boolean attach) {
+        this.vmName = vmName;
+        this.vmData = vmData;
+        this.configDriveLabel = label;
+        this.isAttach = attach;
+    }
+
+    @Override
+    public boolean executeInSequence() {
+        return false;
+    }
+
+    public String getVmName() {
+        return vmName;
+    }
+
+    public List<String[]> getVmData() {
+        return vmData;
+    }
+
+    public boolean isAttach() {
+        return isAttach;
+    }
+
+    public String getConfigDriveLabel() {
+        return configDriveLabel;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b8c112e3/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
index 057c9e2..4114386 100644
--- a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -38,6 +38,7 @@ import javax.ejb.Local;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import com.cloud.agent.api.AttachOrDettachConfigDriveCommand;
 import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
@@ -273,6 +274,14 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     protected VGPUTypesDao _vgpuTypesDao;
     @Inject
     protected EntityManager _entityMgr;
+    @Inject
+    protected GuestOSCategoryDao _guestOSCategoryDao;
+    @Inject
+    protected GuestOSDao _guestOSDao = null;
+    @Inject
+    protected UserVmDetailsDao _vmDetailsDao;
+    @Inject
+    ServiceOfferingDao _serviceOfferingDao = null;
 
     @Inject
     ConfigDepot _configDepot;
@@ -315,6 +324,8 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     protected VmWorkJobDao _workJobDao;
     @Inject
     protected AsyncJobManager _jobMgr;
+    @Inject
+    protected UserVmService _userVmSrv;
 
     VmWorkJobHandlerProxy _jobHandlerProxy = new VmWorkJobHandlerProxy(this);
 
@@ -352,6 +363,9 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
             Integer.class, "vm.job.report.interval", "60",
             "Interval to send application level pings to make sure the connection is still working", false);
 
+    static final ConfigKey<String> VmConfigDriveLabel = new ConfigKey<String>("Hidden", String.class, "vm.configdrive.label", "config",
+            "The default lable name for the config drive", false);
+
     ScheduledExecutorService _executor = null;
 
     protected long _nodeId;
@@ -1916,6 +1930,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
         final VirtualMachineProfile profile = new VirtualMachineProfileImpl(vm, null, _offeringDao.findById(vm.getId(), vm.getServiceOfferingId()), null, null);
         _networkMgr.prepareNicForMigration(profile, dest);
         volumeMgr.prepareForMigration(profile, dest);
+        profile.setConfigDriveLabel( _userVmSrv.VmConfigDriveLabel.value());
 
         final VirtualMachineTO to = toVmTO(profile);
         final PrepareForMigrationCommand pfmc = new PrepareForMigrationCommand(to);
@@ -2215,6 +2230,48 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
 
         boolean migrated = false;
         try {
+
+            // config drive: Detach the config drive at source host
+            // After migration successful attach the config drive in destination host
+            // On migration failure VM will be stopped, So configIso will be deleted
+
+            Nic defaultNic = _networkModel.getDefaultNic(vm.getId());
+
+            List<String[]> vmData = null;
+            if (defaultNic != null) {
+                UserVmVO userVm = _userVmDao.findById(vm.getId());
+                Map<String, String> details = _vmDetailsDao.listDetailsKeyPairs(vm.getId());
+                vm.setDetails(details);
+
+                Network network = _networkModel.getNetwork(defaultNic.getNetworkId());
+                if (_networkModel.isSharedNetworkWithoutServices(network.getId())) {
+                    final String serviceOffering = _serviceOfferingDao.findByIdIncludingRemoved(vm.getId(), vm.getServiceOfferingId()).getDisplayText();
+                    final String zoneName = _dcDao.findById(vm.getDataCenterId()).getName();
+                    boolean isWindows = _guestOSCategoryDao.findById(_guestOSDao.findById(vm.getGuestOSId()).getCategoryId()).getName().equalsIgnoreCase("Windows");
+
+                    vmData = _networkModel.generateVmData(userVm.getUserData(), serviceOffering, zoneName, vm.getInstanceName(), vm.getId(),
+                            (String) profile.getParameter(VirtualMachineProfile.Param.VmSshPubKey), (String) profile.getParameter(VirtualMachineProfile.Param.VmPassword), isWindows);
+                    String vmName = vm.getInstanceName();
+                    String configDriveIsoRootFolder = "/tmp";
+                    String isoFile = configDriveIsoRootFolder + "/" + vmName + "/configDrive/" + vmName + ".iso";
+                    profile.setVmData(vmData);
+                    profile.setConfigDriveLabel(VmConfigDriveLabel.value());
+                    profile.setConfigDriveIsoRootFolder(configDriveIsoRootFolder);
+                    profile.setConfigDriveIsoFile(isoFile);
+
+                    // At source host detach the config drive iso.
+                    AttachOrDettachConfigDriveCommand dettachCommand = new AttachOrDettachConfigDriveCommand(vm.getInstanceName(), vmData, VmConfigDriveLabel.value(), false);
+                    try {
+                        _agentMgr.send(srcHost.getId(), dettachCommand);
+                        s_logger.debug("Deleted config drive ISO for  vm " + vm.getInstanceName() + " In host " + srcHost);
+                    } catch (OperationTimedoutException e) {
+                        s_logger.debug("TIme out occured while exeuting command AttachOrDettachConfigDrive " + e.getMessage());
+
+                    }
+
+                }
+            }
+
             // Migrate the vm and its volume.
             volumeMgr.migrateVolumes(vm, to, srcHost, destHost, volumeToPoolMap);
 
@@ -3614,7 +3671,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
     public ConfigKey<?>[] getConfigKeys() {
         return new ConfigKey<?>[] {ClusterDeltaSyncInterval, StartRetry, VmDestroyForcestop, VmOpCancelInterval, VmOpCleanupInterval, VmOpCleanupWait,
                 VmOpLockStateRetry,
-                VmOpWaitInterval, ExecuteInSequence, VmJobCheckInterval, VmJobTimeout, VmJobStateReportInterval};
+                VmOpWaitInterval, ExecuteInSequence, VmJobCheckInterval, VmJobTimeout, VmJobStateReportInterval, VmConfigDriveLabel};
     }
 
     public List<StoragePoolAllocator> getStoragePoolAllocators() {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b8c112e3/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
index 8ed4ffc..9fb18b8 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
@@ -257,7 +257,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
 
     protected  String _configDriveIsopath = "/opt/xensource/packages/configdrive_iso/";
     protected  String _configDriveSRName = "ConfigDriveISOs";
-    protected  String _attachIsoDeviceNum = "3";
+    public String _attachIsoDeviceNum = "3";
 
     protected int _wait;
     // Hypervisor specific params with generic value, may need to be overridden
@@ -3888,17 +3888,29 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
         return new ExecutionResult(true, null);
     }
 
-    public void prepareISO(final Connection conn, final String vmName) throws XmlRpcException, XenAPIException {
+    public void prepareISO(final Connection conn, final String vmName,  List<String[]> vmDataList, String configDriveLabel) throws XmlRpcException, XenAPIException {
 
         final Set<VM> vms = VM.getByNameLabel(conn, vmName);
         if (vms == null || vms.size() != 1) {
             throw new CloudRuntimeException("There are " + (vms == null ? "0" : vms.size()) + " VMs named " + vmName);
         }
         final VM vm = vms.iterator().next();
+
+        if (vmDataList != null) {
+            // create SR
+            SR sr =  createLocalIsoSR(conn, _configDriveSRName+getHost().getIp());
+
+            // 1. create vm data files
+            createVmdataFiles(vmName, vmDataList, configDriveLabel);
+
+            // 2. copy config drive iso to host
+            copyConfigDriveIsoToHost(conn, sr, vmName);
+        }
+
         final Set<VBD> vbds = vm.getVBDs(conn);
         for (final VBD vbd : vbds) {
             final VBD.Record vbdr = vbd.getRecord(conn);
-            if (vbdr.type == Types.VbdType.CD && vbdr.empty == false) {
+            if (vbdr.type == Types.VbdType.CD && vbdr.empty == false && vbdr.userdevice.equals(_attachIsoDeviceNum)) {
                 final VDI vdi = vbdr.VDI;
                 final SR sr = vdi.getSR(conn);
                 final Set<PBD> pbds = sr.getPBDs(conn);
@@ -5270,4 +5282,88 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
         }
     }
 
+
+    protected SR getSRByNameLabel(Connection conn, String name) throws BadServerResponse, XenAPIException, XmlRpcException {
+        Set<SR> srs = SR.getByNameLabel(conn, name);
+        SR ressr = null;
+        for (SR sr : srs) {
+            Set<PBD> pbds;
+            pbds = sr.getPBDs(conn);
+            for (PBD pbd : pbds) {
+                PBD.Record pbdr = pbd.getRecord(conn);
+                if (pbdr.host != null) {
+                    ressr = sr;
+                    break;
+                }
+            }
+        }
+        return ressr;
+    }
+
+
+    public boolean AttachConfigDriveToMigratedVm(Connection conn, String vmName, String ipAddr) {
+
+        // attach the config drive in destination host
+
+        try {
+            s_logger.debug("Attaching config drive iso device for the VM "+ vmName + " In host "+ ipAddr);
+            Set<VM> vms = VM.getByNameLabel(conn, vmName);
+
+            SR sr = getSRByNameLabel(conn, _configDriveSRName + ipAddr);
+            //Here you will find only two vdis with the <vmname>.iso.
+            //one is from source host and second from dest host
+            Set<VDI> vdis = VDI.getByNameLabel(conn, vmName + ".iso");
+            if (vdis.isEmpty()) {
+                s_logger.debug("Could not find config drive ISO: " + vmName);
+                return false;
+            }
+
+            VDI configdriveVdi = null;
+            for (VDI vdi : vdis) {
+                SR vdiSr = vdi.getSR(conn);
+                if (vdiSr.getUuid(conn).equals(sr.getUuid(conn))) {
+                    //get this vdi to attach to vbd
+                    configdriveVdi = vdi;
+                    s_logger.debug("VDI for the config drive ISO  " + vdi);
+                } else {
+                    // delete the vdi in source host so that the <vmname>.iso file is get removed
+                    s_logger.debug("Removing the source host VDI for the config drive ISO  " + vdi);
+                    vdi.destroy(conn);
+                }
+            }
+
+            if (configdriveVdi == null) {
+                s_logger.debug("Config drive ISO VDI is not found ");
+                return false;
+            }
+
+            for (VM vm : vms) {
+
+                //create vbd
+                VBD.Record cfgDriveVbdr = new VBD.Record();
+                cfgDriveVbdr.VM = vm;
+                cfgDriveVbdr.empty = true;
+                cfgDriveVbdr.bootable = false;
+                cfgDriveVbdr.userdevice = "autodetect";
+                cfgDriveVbdr.mode = Types.VbdMode.RO;
+                cfgDriveVbdr.type = Types.VbdType.CD;
+
+                VBD cfgDriveVBD = VBD.create(conn, cfgDriveVbdr);
+
+                s_logger.debug("Inserting vbd " + configdriveVdi);
+                cfgDriveVBD.insert(conn, configdriveVdi);
+                break;
+
+            }
+
+            return true;
+
+        }catch (Exception ex) {
+            s_logger.debug("Failed to attach config drive ISO to the VM  "+ vmName + " In host " + ipAddr );
+            return false;
+        }
+
+    }
+
+
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b8c112e3/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xen610/XenServer610MigrateWithStorageCommandWrapper.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xen610/XenServer610MigrateWithStorageCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xen610/XenServer610MigrateWithStorageCommandWrapper.java
index b5c175a..2a79d26 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xen610/XenServer610MigrateWithStorageCommandWrapper.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xen610/XenServer610MigrateWithStorageCommandWrapper.java
@@ -67,7 +67,7 @@ public final class XenServer610MigrateWithStorageCommandWrapper extends CommandW
         final XsHost xsHost = xenServer610Resource.getHost();
         final String uuid = xsHost.getUuid();
         try {
-            xenServer610Resource.prepareISO(connection, vmName);
+            xenServer610Resource.prepareISO(connection, vmName, null, null);
 
             // Get the list of networks and recreate VLAN, if required.
             for (final NicTO nicTo : vmSpec.getNics()) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b8c112e3/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixAttachOrDettachConfigDriveCommandWrapper.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixAttachOrDettachConfigDriveCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixAttachOrDettachConfigDriveCommandWrapper.java
new file mode 100644
index 0000000..a7bfa45
--- /dev/null
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixAttachOrDettachConfigDriveCommandWrapper.java
@@ -0,0 +1,95 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package com.cloud.hypervisor.xenserver.resource.wrapper.xenbase;
+
+import java.util.List;
+import java.util.Set;
+
+import com.cloud.agent.api.AttachOrDettachConfigDriveCommand;
+import com.cloud.resource.ResourceWrapper;
+import com.xensource.xenapi.Connection;
+import com.xensource.xenapi.VBD;
+import com.xensource.xenapi.VDI;
+import com.xensource.xenapi.VM;
+import com.xensource.xenapi.Types;
+import org.apache.log4j.Logger;
+
+import com.cloud.agent.api.Answer;
+import com.cloud.hypervisor.xenserver.resource.CitrixResourceBase;
+import com.cloud.resource.CommandWrapper;
+import org.apache.xmlrpc.XmlRpcException;
+
+@ResourceWrapper(handles =  AttachOrDettachConfigDriveCommand.class)
+public final class CitrixAttachOrDettachConfigDriveCommandWrapper extends CommandWrapper<AttachOrDettachConfigDriveCommand, Answer, CitrixResourceBase> {
+
+    private static final Logger s_logger = Logger.getLogger(CitrixAttachOrDettachConfigDriveCommandWrapper.class);
+
+    @Override
+    public Answer execute(final AttachOrDettachConfigDriveCommand command, final CitrixResourceBase citrixResourceBase) {
+        final Connection conn = citrixResourceBase.getConnection();
+
+        String vmName = command.getVmName();
+        List<String[]> vmData = command.getVmData();
+        String label = command.getConfigDriveLabel();
+        Boolean isAttach = command.isAttach();
+
+        try {
+            Set<VM> vms = VM.getByNameLabel(conn, vmName);
+            for (VM vm : vms) {
+                if (isAttach) {
+                    if (!citrixResourceBase.createAndAttachConfigDriveIsoForVM(conn, vm, vmData, label)) {
+                        s_logger.debug("Failed to attach config drive iso to VM " + vmName);
+                    }
+                } else {
+                    // delete the config drive iso attached to VM
+                    Set<VDI> vdis = VDI.getByNameLabel(conn, vmName+".iso");
+                    if (vdis != null && !vdis.isEmpty()) {
+                        s_logger.debug("Deleting config drive for the VM " + vmName);
+                        VDI vdi = vdis.iterator().next();
+                        // Find the VM's CD-ROM VBD
+                        Set<VBD> vbds = vdi.getVBDs(conn);
+
+                        for (VBD vbd : vbds) {
+                            VBD.Record vbdRec = vbd.getRecord(conn);
+
+                            if (vbdRec.type.equals(Types.VbdType.CD) && !vbdRec.empty && !vbdRec.userdevice.equals(citrixResourceBase._attachIsoDeviceNum)) {
+                                if (vbdRec.currentlyAttached) {
+                                    vbd.eject(conn);
+                                }
+                                vbd.destroy(conn);
+                            }
+                        }
+                        vdi.destroy(conn);
+                    }
+
+                    s_logger.debug("Successfully dettached config drive iso from the VM " + vmName);
+                }
+            }
+        }catch (Types.XenAPIException ex) {
+            s_logger.debug("Failed to attach config drive iso to VM " + vmName + " " + ex.getMessage() );
+        }catch (XmlRpcException ex) {
+            s_logger.debug("Failed to attach config drive iso to VM " + vmName + " "+ex.getMessage());
+        }
+
+        return new Answer(command, true, "success");
+
+
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b8c112e3/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixMigrateCommandWrapper.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixMigrateCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixMigrateCommandWrapper.java
index 07f7cc6..00ed622 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixMigrateCommandWrapper.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixMigrateCommandWrapper.java
@@ -44,24 +44,23 @@ public final class CitrixMigrateCommandWrapper extends CommandWrapper<MigrateCom
     public Answer execute(final MigrateCommand command, final CitrixResourceBase citrixResourceBase) {
         final Connection conn = citrixResourceBase.getConnection();
         final String vmName = command.getVmName();
+        final String dstHostIpAddr = command.getDestinationIp();
 
         try {
             final Set<VM> vms = VM.getByNameLabel(conn, vmName);
 
-            final String ipaddr = command.getDestinationIp();
-
             final Set<Host> hosts = Host.getAll(conn);
             Host dsthost = null;
             if(hosts != null) {
                 for (final Host host : hosts) {
-                    if (host.getAddress(conn).equals(ipaddr)) {
+                    if (host.getAddress(conn).equals(dstHostIpAddr)) {
                         dsthost = host;
                         break;
                     }
                 }
             }
             if (dsthost == null) {
-                final String msg = "Migration failed due to unable to find host " + ipaddr + " in XenServer pool " + citrixResourceBase.getHost().getPool();
+                final String msg = "Migration failed due to unable to find host " + dstHostIpAddr + " in XenServer pool " + citrixResourceBase.getHost().getPool();
                 s_logger.warn(msg);
                 return new MigrateAnswer(command, false, msg, null);
             }
@@ -71,12 +70,25 @@ public final class CitrixMigrateCommandWrapper extends CommandWrapper<MigrateCom
                     final VBD.Record vbdRec = vbd.getRecord(conn);
                     if (vbdRec.type.equals(Types.VbdType.CD) && !vbdRec.empty) {
                         vbd.eject(conn);
-                        break;
+                        // for config drive vbd destroy the vbd.
+                        if (!vbdRec.userdevice.equals(citrixResourceBase._attachIsoDeviceNum)) {
+                            if (vbdRec.currentlyAttached) {
+                                vbd.destroy(conn);
+                            }
+                        }
+                        continue;
                     }
                 }
                 citrixResourceBase.migrateVM(conn, dsthost, vm, vmName);
                 vm.setAffinity(conn, dsthost);
             }
+
+            // The iso can be attached to vm only once the vm is (present in the host) migrated.
+            // Attach the config drive iso device to VM
+            if (!citrixResourceBase.AttachConfigDriveToMigratedVm(conn, vmName, dstHostIpAddr)) {
+                s_logger.debug("Config drive ISO attach failed after migration for vm "+vmName);
+            }
+
             return new MigrateAnswer(command, true, "migration succeeded", null);
         } catch (final Exception e) {
             s_logger.warn(e.getMessage(), e);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b8c112e3/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixPrepareForMigrationCommandWrapper.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixPrepareForMigrationCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixPrepareForMigrationCommandWrapper.java
index ffe875c..2fa25be 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixPrepareForMigrationCommandWrapper.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixPrepareForMigrationCommandWrapper.java
@@ -31,6 +31,8 @@ import com.cloud.resource.CommandWrapper;
 import com.cloud.resource.ResourceWrapper;
 import com.xensource.xenapi.Connection;
 
+import java.util.List;
+
 @ResourceWrapper(handles =  PrepareForMigrationCommand.class)
 public final class CitrixPrepareForMigrationCommandWrapper extends CommandWrapper<PrepareForMigrationCommand, Answer, CitrixResourceBase> {
 
@@ -41,13 +43,20 @@ public final class CitrixPrepareForMigrationCommandWrapper extends CommandWrappe
         final Connection conn = citrixResourceBase.getConnection();
 
         final VirtualMachineTO vm = command.getVirtualMachine();
+        List<String[]> vmDataList = vm.getVmData();
+        String configDriveLabel = vm.getConfigDriveLabel();
+
+        if (configDriveLabel == null)  {
+            configDriveLabel = "config";
+        }
+
         if (s_logger.isDebugEnabled()) {
             s_logger.debug("Preparing host for migrating " + vm);
         }
 
         final NicTO[] nics = vm.getNics();
         try {
-            citrixResourceBase.prepareISO(conn, vm.getName());
+            citrixResourceBase.prepareISO(conn, vm.getName(), vmDataList, configDriveLabel);
 
             for (final NicTO nic : nics) {
                 citrixResourceBase.getNetwork(conn, nic);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b8c112e3/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/XenServer610WrapperTest.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/XenServer610WrapperTest.java b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/XenServer610WrapperTest.java
index f308ea3..70ddfad 100644
--- a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/XenServer610WrapperTest.java
+++ b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/XenServer610WrapperTest.java
@@ -170,7 +170,7 @@ public class XenServer610WrapperTest {
         verify(xenServer610Resource, times(1)).getConnection();
 
         try {
-            verify(xenServer610Resource, times(1)).prepareISO(conn, vmName);
+            verify(xenServer610Resource, times(1)).prepareISO(conn, vmName, null, null);
             verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO1);
             verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO2);
             verify(xenServer610Resource, times(1)).getNetwork(conn, nicTO3);


[07/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Reduce about 1k String objects from being instantiated

Signed-off-by: Daan Hoogland <da...@gmail.com>


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

Branch: refs/heads/dhcpoffload
Commit: 83488e01af5789dc3bd3324488c37c0eb4937703
Parents: 9d19191
Author: Rafael da Fonseca <rs...@gmail.com>
Authored: Sun Jun 21 22:08:46 2015 +0200
Committer: Daan Hoogland <da...@gmail.com>
Committed: Mon Jun 22 13:01:19 2015 +0200

----------------------------------------------------------------------
 plugins/hypervisors/ovm3/pom.xml                |  20 -
 .../hypervisor/ovm3/objects/OvmObject.java      |   4 +
 .../resources/helpers/Ovm3Configuration.java    |   4 +-
 .../cloud/hypervisor/ovm3/objects/XenTest.java  | 944 +++----------------
 4 files changed, 124 insertions(+), 848 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83488e01/plugins/hypervisors/ovm3/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/pom.xml b/plugins/hypervisors/ovm3/pom.xml
index 646ac16..a8c4796 100644
--- a/plugins/hypervisors/ovm3/pom.xml
+++ b/plugins/hypervisors/ovm3/pom.xml
@@ -52,16 +52,6 @@
 	<artifactId>log4j</artifactId>
 	<version>1.2.17</version>
     </dependency>
-    <dependency>
-	<groupId>org.mockito</groupId>
-	<artifactId>mockito-all</artifactId>
-	<version>1.9.5</version>
-    </dependency>
-    <dependency>
-	<groupId>junit</groupId>
-	<artifactId>junit</artifactId>
-	<version>4.12</version>
-    </dependency>
   </dependencies>
    <build>
     <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
@@ -79,16 +69,6 @@
         <directory>${basedir}/src/test/resources</directory>
       </testResource>
     </testResources>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.3</version>
-        <configuration>
-        <failOnError>false</failOnError>
-        </configuration>
-      </plugin>
-    </plugins>
   </build>
   <profiles>
     <profile>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83488e01/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/OvmObject.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/OvmObject.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/OvmObject.java
index d7ef8cd..cfe249e 100644
--- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/OvmObject.java
+++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/objects/OvmObject.java
@@ -93,6 +93,7 @@ public class OvmObject {
     }
 
     /* nice try but doesn't work like that .. */
+    @SafeVarargs
     public final <T> Object callWrapper(String call, T... args)
             throws Ovm3ResourceException {
         List<T> params = new ArrayList<T>();
@@ -108,6 +109,7 @@ public class OvmObject {
     }
 
     /* should check on nil ? */
+    @SafeVarargs
     public final <T> Boolean nullCallWrapper(String call, Boolean nullReturn, T... args) throws Ovm3ResourceException {
         Object x = callWrapper(call, args);
         if (x == null) {
@@ -118,9 +120,11 @@ public class OvmObject {
         return false;
     }
 
+    @SafeVarargs
     public final <T> Boolean nullIsFalseCallWrapper(String call, T... args) throws Ovm3ResourceException {
         return nullCallWrapper(call, false, args);
     }
+    @SafeVarargs
     public final <T> Boolean nullIsTrueCallWrapper(String call, T... args) throws Ovm3ResourceException {
         return nullCallWrapper(call, true, args);
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83488e01/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java
index 91c0762..6775a146 100644
--- a/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java
+++ b/plugins/hypervisors/ovm3/src/main/java/com/cloud/hypervisor/ovm3/resources/helpers/Ovm3Configuration.java
@@ -24,7 +24,7 @@ import java.util.Map;
 
 import javax.naming.ConfigurationException;
 
-import org.apache.commons.lang3.BooleanUtils;
+import org.apache.commons.lang.BooleanUtils;
 import org.apache.log4j.Logger;
 
 import com.cloud.hypervisor.ovm3.objects.Network;
@@ -34,7 +34,7 @@ import com.cloud.utils.net.NetUtils;
 /* holds config data for the Ovm3 Hypervisor */
 public class Ovm3Configuration {
     private static final Logger LOGGER = Logger
-          .getLogger(Ovm3Configuration.class);
+            .getLogger(Ovm3Configuration.class);
     private String agentIp;
     private Long agentZoneId;
     private Long agentPodId;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83488e01/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XenTest.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XenTest.java b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XenTest.java
index 90e9e14..c76f2fe 100644
--- a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XenTest.java
+++ b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/XenTest.java
@@ -67,832 +67,124 @@ public class XenTest {
     String VMISOPATH = REPOPATH + "/" + REPOID + "/ISOs/" + VMISO;
     String MULTIPLEVMSLISTXML = results
             .simpleResponseWrapWrapper(new StringBuilder("<array><data>\n")
-                    .append("<value><struct>\n")
-                    .append("<member>\n")
-                    .append("<name>on_xend_stop</name>\n")
-                    .append("<value><string>ignore</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>features</name>\n")
-                    .append("<value><string></string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>image</name>\n")
-                    .append("<value><struct>\n")
-                    .append("<member>\n")
-                    .append("<name>tsc_mode</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>kernel</name>\n")
-                    .append("<value><string></string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>superpages</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>nomigrate</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>expose_host_uuid</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("</struct></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>cpus</name>\n")
-                    .append("<value><array><data>\n")
-                    .append("<value><array><data>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>10</string></value>\n")
-                    .append("<value><string>11</string></value>\n")
-                    .append("<value><string>12</string></value>\n")
-                    .append("<value><string>13</string></value>\n")
-                    .append("<value><string>14</string></value>\n")
-                    .append("<value><string>15</string></value>\n")
-                    .append("<value><string>16</string></value>\n")
-                    .append("<value><string>17</string></value>\n")
-                    .append("<value><string>18</string></value>\n")
-                    .append("<value><string>19</string></value>\n")
-                    .append("<value><string>20</string></value>\n")
-                    .append("<value><string>21</string></value>\n")
-                    .append("<value><string>22</string></value>\n")
-                    .append("<value><string>23</string></value>\n")
-                    .append("<value><string>24</string></value>\n")
-                    .append("<value><string>25</string></value>\n")
-                    .append("<value><string>26</string></value>\n")
-                    .append("<value><string>27</string></value>\n")
-                    .append("<value><string>28</string></value>\n")
-                    .append("<value><string>29</string></value>\n")
-                    .append("<value><string>30</string></value>\n")
-                    .append("<value><string>31</string></value>\n")
-                    .append("<value><string>32</string></value>\n")
-                    .append("<value><string>33</string></value>\n")
-                    .append("<value><string>34</string></value>\n")
-                    .append("<value><string>35</string></value>\n")
-                    .append("<value><string>36</string></value>\n")
-                    .append("<value><string>37</string></value>\n")
-                    .append("<value><string>38</string></value>\n")
-                    .append("<value><string>39</string></value>\n")
-                    .append("<value><string>40</string></value>\n")
-                    .append("<value><string>41</string></value>\n")
-                    .append("<value><string>42</string></value>\n")
-                    .append("<value><string>43</string></value>\n")
-                    .append("<value><string>44</string></value>\n")
-                    .append("<value><string>45</string></value>\n")
-                    .append("<value><string>46</string></value>\n")
-                    .append("<value><string>47</string></value>\n")
-                    .append("<value><string>48</string></value>\n")
-                    .append("<value><string>49</string></value>\n")
-                    .append("<value><string>50</string></value>\n")
-                    .append("<value><string>51</string></value>\n")
-                    .append("<value><string>52</string></value>\n")
-                    .append("<value><string>53</string></value>\n")
-                    .append("<value><string>54</string></value>\n")
-                    .append("<value><string>55</string></value>\n")
-                    .append("<value><string>56</string></value>\n")
-                    .append("<value><string>57</string></value>\n")
-                    .append("<value><string>58</string></value>\n")
-                    .append("<value><string>59</string></value>\n")
-                    .append("<value><string>60</string></value>\n")
-                    .append("<value><string>61</string></value>\n")
-                    .append("<value><string>62</string></value>\n")
-                    .append("<value><string>63</string></value>\n")
-                    .append("<value><string>64</string></value>\n")
-                    .append("<value><string>65</string></value>\n")
-                    .append("<value><string>66</string></value>\n")
-                    .append("<value><string>67</string></value>\n")
-                    .append("<value><string>68</string></value>\n")
-                    .append("<value><string>69</string></value>\n")
-                    .append("<value><string>70</string></value>\n")
-                    .append("<value><string>71</string></value>\n")
-                    .append("<value><string>72</string></value>\n")
-                    .append("<value><string>73</string></value>\n")
-                    .append("<value><string>74</string></value>\n")
-                    .append("<value><string>75</string></value>\n")
-                    .append("<value><string>76</string></value>\n")
-                    .append("<value><string>77</string></value>\n")
-                    .append("<value><string>78</string></value>\n")
-                    .append("<value><string>79</string></value>\n")
-                    .append("<value><string>80</string></value>\n")
-                    .append("<value><string>81</string></value>\n")
-                    .append("<value><string>82</string></value>\n")
-                    .append("<value><string>83</string></value>\n")
-                    .append("<value><string>84</string></value>\n")
-                    .append("<value><string>85</string></value>\n")
-                    .append("<value><string>86</string></value>\n")
-                    .append("<value><string>87</string></value>\n")
-                    .append("<value><string>88</string></value>\n")
-                    .append("<value><string>89</string></value>\n")
-                    .append("<value><string>90</string></value>\n")
-                    .append("<value><string>91</string></value>\n")
-                    .append("<value><string>92</string></value>\n")
-                    .append("<value><string>93</string></value>\n")
-                    .append("<value><string>94</string></value>\n")
-                    .append("<value><string>95</string></value>\n")
-                    .append("<value><string>96</string></value>\n")
-                    .append("<value><string>97</string></value>\n")
-                    .append("<value><string>98</string></value>\n")
-                    .append("<value><string>99</string></value>\n")
-                    .append("<value><string>100</string></value>\n")
-                    .append("<value><string>101</string></value>\n")
-                    .append("<value><string>102</string></value>\n")
-                    .append("<value><string>103</string></value>\n")
-                    .append("<value><string>104</string></value>\n")
-                    .append("<value><string>105</string></value>\n")
-                    .append("<value><string>106</string></value>\n")
-                    .append("<value><string>107</string></value>\n")
-                    .append("<value><string>108</string></value>\n")
-                    .append("<value><string>109</string></value>\n")
-                    .append("<value><string>110</string></value>\n")
-                    .append("<value><string>111</string></value>\n")
-                    .append("<value><string>112</string></value>\n")
-                    .append("<value><string>113</string></value>\n")
-                    .append("<value><string>114</string></value>\n")
-                    .append("<value><string>115</string></value>\n")
-                    .append("<value><string>116</string></value>\n")
-                    .append("<value><string>117</string></value>\n")
-                    .append("<value><string>118</string></value>\n")
-                    .append("<value><string>119</string></value>\n")
-                    .append("<value><string>120</string></value>\n")
-                    .append("<value><string>121</string></value>\n")
-                    .append("<value><string>122</string></value>\n")
-                    .append("<value><string>123</string></value>\n")
-                    .append("<value><string>124</string></value>\n")
-                    .append("<value><string>125</string></value>\n")
-                    .append("<value><string>126</string></value>\n")
-                    .append("<value><string>127</string></value>\n")
-                    .append("<value><string>128</string></value>\n")
-                    .append("<value><string>129</string></value>\n")
-                    .append("<value><string>130</string></value>\n")
-                    .append("<value><string>131</string></value>\n")
-                    .append("<value><string>132</string></value>\n")
-                    .append("<value><string>133</string></value>\n")
-                    .append("<value><string>134</string></value>\n")
-                    .append("<value><string>135</string></value>\n")
-                    .append("<value><string>136</string></value>\n")
-                    .append("<value><string>137</string></value>\n")
-                    .append("<value><string>138</string></value>\n")
-                    .append("<value><string>139</string></value>\n")
-                    .append("<value><string>140</string></value>\n")
-                    .append("<value><string>141</string></value>\n")
-                    .append("<value><string>142</string></value>\n")
-                    .append("<value><string>143</string></value>\n")
-                    .append("<value><string>144</string></value>\n")
-                    .append("<value><string>145</string></value>\n")
-                    .append("<value><string>146</string></value>\n")
-                    .append("<value><string>147</string></value>\n")
-                    .append("<value><string>148</string></value>\n")
-                    .append("<value><string>149</string></value>\n")
-                    .append("<value><string>150</string></value>\n")
-                    .append("<value><string>151</string></value>\n")
-                    .append("<value><string>152</string></value>\n")
-                    .append("<value><string>153</string></value>\n")
-                    .append("<value><string>154</string></value>\n")
-                    .append("<value><string>155</string></value>\n")
-                    .append("<value><string>156</string></value>\n")
-                    .append("<value><string>157</string></value>\n")
-                    .append("<value><string>158</string></value>\n")
-                    .append("<value><string>159</string></value>\n")
-                    .append("</data></array></value>\n")
-                    .append("<value><array><data>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("<value><string>10</string></value>\n")
-                    .append("<value><string>11</string></value>\n")
-                    .append("<value><string>12</string></value>\n")
-                    .append("<value><string>13</string></value>\n")
-                    .append("<value><string>14</string></value>\n")
-                    .append("<value><string>15</string></value>\n")
-                    .append("<value><string>16</string></value>\n")
-                    .append("<value><string>17</string></value>\n")
-                    .append("<value><string>18</string></value>\n")
-                    .append("<value><string>19</string></value>\n")
-                    .append("<value><string>20</string></value>\n")
-                    .append("<value><string>21</string></value>\n")
-                    .append("<value><string>22</string></value>\n")
-                    .append("<value><string>23</string></value>\n")
-                    .append("<value><string>24</string></value>\n")
-                    .append("<value><string>25</string></value>\n")
-                    .append("<value><string>26</string></value>\n")
-                    .append("<value><string>27</string></value>\n")
-                    .append("<value><string>28</string></value>\n")
-                    .append("<value><string>29</string></value>\n")
-                    .append("<value><string>30</string></value>\n")
-                    .append("<value><string>31</string></value>\n")
-                    .append("<value><string>32</string></value>\n")
-                    .append("<value><string>33</string></value>\n")
-                    .append("<value><string>34</string></value>\n")
-                    .append("<value><string>35</string></value>\n")
-                    .append("<value><string>36</string></value>\n")
-                    .append("<value><string>37</string></value>\n")
-                    .append("<value><string>38</string></value>\n")
-                    .append("<value><string>39</string></value>\n")
-                    .append("<value><string>40</string></value>\n")
-                    .append("<value><string>41</string></value>\n")
-                    .append("<value><string>42</string></value>\n")
-                    .append("<value><string>43</string></value>\n")
-                    .append("<value><string>44</string></value>\n")
-                    .append("<value><string>45</string></value>\n")
-                    .append("<value><string>46</string></value>\n")
-                    .append("<value><string>47</string></value>\n")
-                    .append("<value><string>48</string></value>\n")
-                    .append("<value><string>49</string></value>\n")
-                    .append("<value><string>50</string></value>\n")
-                    .append("<value><string>51</string></value>\n")
-                    .append("<value><string>52</string></value>\n")
-                    .append("<value><string>53</string></value>\n")
-                    .append("<value><string>54</string></value>\n")
-                    .append("<value><string>55</string></value>\n")
-                    .append("<value><string>56</string></value>\n")
-                    .append("<value><string>57</string></value>\n")
-                    .append("<value><string>58</string></value>\n")
-                    .append("<value><string>59</string></value>\n")
-                    .append("<value><string>60</string></value>\n")
-                    .append("<value><string>61</string></value>\n")
-                    .append("<value><string>62</string></value>\n")
-                    .append("<value><string>63</string></value>\n")
-                    .append("<value><string>64</string></value>\n")
-                    .append("<value><string>65</string></value>\n")
-                    .append("<value><string>66</string></value>\n")
-                    .append("<value><string>67</string></value>\n")
-                    .append("<value><string>68</string></value>\n")
-                    .append("<value><string>69</string></value>\n")
-                    .append("<value><string>70</string></value>\n")
-                    .append("<value><string>71</string></value>\n")
-                    .append("<value><string>72</string></value>\n")
-                    .append("<value><string>73</string></value>\n")
-                    .append("<value><string>74</string></value>\n")
-                    .append("<value><string>75</string></value>\n")
-                    .append("<value><string>76</string></value>\n")
-                    .append("<value><string>77</string></value>\n")
-                    .append("<value><string>78</string></value>\n")
-                    .append("<value><string>79</string></value>\n")
-                    .append("<value><string>80</string></value>\n")
-                    .append("<value><string>81</string></value>\n")
-                    .append("<value><string>82</string></value>\n")
-                    .append("<value><string>83</string></value>\n")
-                    .append("<value><string>84</string></value>\n")
-                    .append("<value><string>85</string></value>\n")
-                    .append("<value><string>86</string></value>\n")
-                    .append("<value><string>87</string></value>\n")
-                    .append("<value><string>88</string></value>\n")
-                    .append("<value><string>89</string></value>\n")
-                    .append("<value><string>90</string></value>\n")
-                    .append("<value><string>91</string></value>\n")
-                    .append("<value><string>92</string></value>\n")
-                    .append("<value><string>93</string></value>\n")
-                    .append("<value><string>94</string></value>\n")
-                    .append("<value><string>95</string></value>\n")
-                    .append("<value><string>96</string></value>\n")
-                    .append("<value><string>97</string></value>\n")
-                    .append("<value><string>98</string></value>\n")
-                    .append("<value><string>99</string></value>\n")
-                    .append("<value><string>100</string></value>\n")
-                    .append("<value><string>101</string></value>\n")
-                    .append("<value><string>102</string></value>\n")
-                    .append("<value><string>103</string></value>\n")
-                    .append("<value><string>104</string></value>\n")
-                    .append("<value><string>105</string></value>\n")
-                    .append("<value><string>106</string></value>\n")
-                    .append("<value><string>107</string></value>\n")
-                    .append("<value><string>108</string></value>\n")
-                    .append("<value><string>109</string></value>\n")
-                    .append("<value><string>110</string></value>\n")
-                    .append("<value><string>111</string></value>\n")
-                    .append("<value><string>112</string></value>\n")
-                    .append("<value><string>113</string></value>\n")
-                    .append("<value><string>114</string></value>\n")
-                    .append("<value><string>115</string></value>\n")
-                    .append("<value><string>116</string></value>\n")
-                    .append("<value><string>117</string></value>\n")
-                    .append("<value><string>118</string></value>\n")
-                    .append("<value><string>119</string></value>\n")
-                    .append("<value><string>120</string></value>\n")
-                    .append("<value><string>121</string></value>\n")
-                    .append("<value><string>122</string></value>\n")
-                    .append("<value><string>123</string></value>\n")
-                    .append("<value><string>124</string></value>\n")
-                    .append("<value><string>125</string></value>\n")
-                    .append("<value><string>126</string></value>\n")
-                    .append("<value><string>127</string></value>\n")
-                    .append("<value><string>128</string></value>\n")
-                    .append("<value><string>129</string></value>\n")
-                    .append("<value><string>130</string></value>\n")
-                    .append("<value><string>131</string></value>\n")
-                    .append("<value><string>132</string></value>\n")
-                    .append("<value><string>133</string></value>\n")
-                    .append("<value><string>134</string></value>\n")
-                    .append("<value><string>135</string></value>\n")
-                    .append("<value><string>136</string></value>\n")
-                    .append("<value><string>137</string></value>\n")
-                    .append("<value><string>138</string></value>\n")
-                    .append("<value><string>139</string></value>\n")
-                    .append("<value><string>140</string></value>\n")
-                    .append("<value><string>141</string></value>\n")
-                    .append("<value><string>142</string></value>\n")
-                    .append("<value><string>143</string></value>\n")
-                    .append("<value><string>144</string></value>\n")
-                    .append("<value><string>145</string></value>\n")
-                    .append("<value><string>146</string></value>\n")
-                    .append("<value><string>147</string></value>\n")
-                    .append("<value><string>148</string></value>\n")
-                    .append("<value><string>149</string></value>\n")
-                    .append("<value><string>150</string></value>\n")
-                    .append("<value><string>151</string></value>\n")
-                    .append("<value><string>152</string></value>\n")
-                    .append("<value><string>153</string></value>\n")
-                    .append("<value><string>154</string></value>\n")
-                    .append("<value><string>155</string></value>\n")
-                    .append("<value><string>156</string></value>\n")
-                    .append("<value><string>157</string></value>\n")
-                    .append("<value><string>158</string></value>\n")
-                    .append("<value><string>159</string></value>\n")
-                    .append("</data></array></value>\n")
-                    .append("</data></array></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>uuid</name>\n")
-                    .append("<value><string>00000000-0000-0000-0000-000000000000</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>on_reboot</name>\n")
-                    .append("<value><string>restart</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>state</name>\n")
-                    .append("<value><string>r-----</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>cpu_weight</name>\n")
-                    .append("<value><string>65535</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>online_vcpus</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>memory</name>\n")
-                    .append("<value><string>672</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>cpu_cap</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>status</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>pool_name</name>\n")
-                    .append("<value><string>Pool-0</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>on_poweroff</name>\n")
-                    .append("<value><string>destroy</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>on_xend_start</name>\n")
-                    .append("<value><string>ignore</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>on_crash</name>\n")
-                    .append("<value><string>restart</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>device</name>\n")
-                    .append("<value><struct>\n")
-                    .append("</struct></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>bootloader</name>\n")
-                    .append("<value><string></string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>maxmem</name>\n")
-                    .append("<value><string>672</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>cpu_time</name>\n")
-                    .append("<value><string>6608.51291287</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>shadow_memory</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>name</name>\n")
-                    .append("<value><string>Domain-0</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>builder</name>\n")
-                    .append("<value><string>linux</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>bootloader_args</name>\n")
-                    .append("<value><string></string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>domid</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>vcpus</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("</struct></value>\n")
-                    .append("<value><struct>\n")
-                    .append("<member>\n")
-                    .append("<name>on_xend_stop</name>\n")
-                    .append("<value><string>ignore</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>console_mfn</name>\n")
-                    .append("<value><string>873706</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>features</name>\n")
-                    .append("<value><string></string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>image</name>\n")
-                    .append("<value><struct>\n")
-                    .append("<member>\n")
-                    .append("<name>tsc_mode</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>kernel</name>\n")
-                    .append("<value><string></string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>videoram</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>device_model</name>\n")
-                    .append("<value><string>/usr/lib/xen/bin/qemu-dm</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>notes</name>")
-                    .append("<value><array><data>")
-                    .append("<value><array><data>")
-                    .append("<value><string>HV_START_LOW</string></value>")
-                    .append("<value><string>4118806528</string></value>")
-                    .append("</data></array></value>")
-                    .append("<value><array><data>")
-                    .append("<value><string>FEATURES</string></value>")
-                    .append("<value><string>!writable_page_tables|pae_pgdir_above_4gb</string></value>")
-                    .append("</data></array></value>") .append("<value><array><data>")
-                    .append("<value><string>VIRT_BASE</string></value>")
-                    .append("<value><string>3221225472</string></value>")
-                    .append("</data></array></value>") .append("<value><array><data>")
-                    .append("<value><string>GUEST_VERSION</string></value>")
-                    .append("<value><string>2.6</string></value>")
-                    .append("</data></array></value>") .append("<value><array><data>")
-                    .append("<value><string>PADDR_OFFSET</string></value>")
-                    .append("<value><string>") .append("</string></value>")
-                    .append("</data></array></value>") .append("<value><array><data>")
-                    .append("<value><string>GUEST_OS</string></value>")
-                    .append("<value><string>linux</string></value>")
-                    .append("</data></array></value>") .append("<value><array><data>")
-                    .append("<value><string>HYPERCALL_PAGE</string></value>")
-                    .append("<value><string>3238010880</string></value>")
-                    .append("</data></array></value>") .append("<value><array><data>")
-                    .append("<value><string>LOADER</string></value>")
-                    .append("<value><string>generic</string></value>")
-                    .append("</data></array></value>") .append("<value><array><data>")
-                    .append("<value><string>SUSPEND_CANCEL</string></value>")
-                    .append("<value><string>") .append("</string></value>")
-                    .append("</data></array></value>") .append("<value><array><data>")
-                    .append("<value><string>PAE_MODE</string></value>")
-                    .append("<value><string>yes</string></value>")
-                    .append("</data></array></value>") .append("<value><array><data>")
-                    .append("<value><string>ENTRY</string></value>")
-                    .append("<value><string>3242303488</string></value>")
-                    .append("</data></array></value>") .append("<value><array><data>")
-                    .append("<value><string>XEN_VERSION</string></value>")
-                    .append("<value><string>xen-3.0</string></value>")
-                    .append("</data></array></value>") .append("</data></array></value>")
-                    .append("</member>") .append("<member>")
-                    .append("<name>expose_host_uuid</name>") .append("<value><string>")
-                    .append("</string></value>") .append("</member>") .append("<member>")
-                    .append("<name>pci</name>") .append("<value><array><data>")
-                    .append("</data></array></value>") .append("</member>") .append("<member>")
-                    .append("<name>superpages</name>\n") .append("<value><string>\n")
-                    .append("</string></value>\n") .append("</member>\n") .append("<member>\n")
-                    .append("<name>nomigrate</name>\n") .append("<value><string>\n")
-                    .append("</string></value>\n") .append("</member>\n")
-                    .append("</struct></value>\n") .append("</member>\n") .append("<member>\n")
-                    .append("<name>cpus</name>\n") .append("<value><array><data>\n")
-                    .append("<value><array><data>\n") .append("</data></array></value>\n")
-                    .append("</data></array></value>\n") .append("</member>\n")
-                    .append("<member>\n") .append("<name>store_mfn</name>\n")
-                    .append("<value><string>873707</string></value>\n")
-                    .append("</member>\n") .append("<member>\n") .append("<name>uuid</name>\n")
-                    .append("<value><string>")
-                    .append(VMID)
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>on_reboot</name>\n")
-                    .append("<value><string>restart</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>state</name>\n")
-                    .append("<value><string>-b----</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>cpu_weight</name>\n")
-                    .append("<value><string>27500</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>online_vcpus</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>memory</name>\n")
-                    .append("<value><string>512</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>cpu_cap</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>status</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>pool_name</name>\n")
-                    .append("<value><string>Pool-0</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>description</name>\n")
-                    .append("<value><string></string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>start_time</name>\n")
-                    .append("<value><string>1408105444.17</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>on_poweroff</name>\n")
-                    .append("<value><string>destroy</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>on_xend_start</name>\n")
-                    .append("<value><string>ignore</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>on_crash</name>\n")
-                    .append("<value><string>restart</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>device</name>\n")
-                    .append("<value><struct>\n")
-                    .append("<member>\n")
-                    .append("<name>vif</name>\n")
-                    .append("<value><array><data>\n")
-                    .append("<value><struct>\n")
-                    .append("<member>\n")
-                    .append("<name>bridge</name>\n")
-                    .append("<value><string>").append(VMNICBR).append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>mac</name>\n")
-                    .append("<value><string>").append(VMNICMAC).append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>script</name>\n")
-                    .append("<value><string>/etc/xen/scripts/vif-bridge</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>uuid</name>\n")
-                    .append("<value><string>").append(VMNICUUID).append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>backend</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("</struct></value>\n")
-                    .append("</data></array></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>vkbd</name>\n")
-                    .append("<value><array><data>\n")
-                    .append("<value><struct>\n")
-                    .append("<member>\n")
-                    .append("<name>backend</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("</struct></value>\n")
-                    .append("</data></array></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>console</name>\n")
-                    .append("<value><array><data>\n")
-                    .append("<value><struct>\n")
-                    .append("<member>\n")
-                    .append("<name>protocol</name>\n")
-                    .append("<value><string>vt100</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>location</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>uuid</name>\n")
-                    .append("<value><string>9beb5016-dde7-8526-491f-e972f262a634</string></value>\n")
-                    .append("</member>\n")
-                    .append("</struct></value>\n")
-                    .append("</data></array></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>vfb</name>\n")
-                    .append("<value><array><data>\n")
-                    .append("<value><struct>\n")
-                    .append("<member>\n")
-                    .append("<name>vncunused</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>vnc</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>xauthority</name>\n")
-                    .append("<value><string>/root/.Xauthority</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>vnclisten</name>\n")
-                    .append("<value><string>0.0.0.0</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>vncpasswd</name>\n")
-                    .append("<value><string>7693f834ca67912e</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>keymap</name>\n")
-                    .append("<value><string>en-us</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>location</name>\n")
-                    .append("<value><string>0.0.0.0:5900</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>uuid</name>\n")
-                    .append("<value><string>78edf954-e375-b142-9c76-791ce805b6ef</string></value>\n")
-                    .append("</member>\n")
-                    .append("</struct></value>\n")
-                    .append("</data></array></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>vbd</name>\n")
-                    .append("<value><array><data>\n")
-                    .append("<value><struct>\n")
-                    .append("<member>\n")
-                    .append("<name>protocol</name>\n")
-                    .append("<value><string>x86_32-abi</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>uuid</name>\n")
-                    .append("<value><string>bda35954-2596-025e-168c-b82e1cf92369</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>bootable</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>dev</name>\n")
-                    .append("<value><string>xvda:disk</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>uname</name>\n")
-                    .append("<value><string>file:/OVS/Repositories/")
-                    .append(REPOID)
-                    .append("/VirtualDisks/")
-                    .append(VMROOTDISK)
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>mode</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>VDI</name>\n")
-                    .append("<value><string></string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>backend</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("</struct></value>\n")
-                    .append("</data></array></value>\n")
-                    .append("</member>\n")
-                    .append("</struct></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>bootloader</name>\n")
-                    .append("<value><string>/usr/bin/pygrub</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>maxmem</name>\n")
-                    .append("<value><string>512</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>cpu_time</name>\n")
-                    .append("<value><string>0.152510481</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>shadow_memory</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>name</name>\n")
-                    .append("<value><string>")
-                    .append(VMNAME)
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>builder</name>\n")
-                    .append("<value><string>linux</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>bootloader_args</name>\n")
-                    .append("<value><string>-q</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>domid</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n")
-                    .append("<member>\n")
-                    .append("<name>vcpus</name>\n")
-                    .append("<value><string>\n")
-                    .append("</string></value>\n")
-                    .append("</member>\n") .append("</struct></value>\n") .append("</data></array>").toString());
+                    .append("<value><struct>\n<member>\n<name>on_xend_stop</name>\n<value><string>ignore</string></value>\n</member>\n<member>\n<name>features</name>\n<value><string></string></value>\n</member>\n<member>\n<name>image</name>\n")
+                    .append("<value><struct>\n<member>\n<name>tsc_mode</name>\n<value><string>\n</string></value>\n</member>\n<member>\n<name>kernel</name>\n<value><string></string></value>\n</member>\n<member>\n<name>superpages</name>\n")
+                    .append("<value><string>\n</string></value>\n</member>\n<member>\n<name>nomigrate</name>\n<value><string>\n</string></value>\n</member>\n<member>\n<name>expose_host_uuid</name>\n<value><string>\n</string></value>\n</member>\n")
+                    .append("</struct></value>\n</member>\n<member>\n<name>cpus</name>\n<value><array><data>\n<value><array><data>\n<value><string>\n</string></value>\n<value><string>\n</string></value>\n<value><string>\n</string></value>\n")
+                    .append("<value><string>\n</string></value>\n<value><string>\n</string></value>\n<value><string>\n</string></value>\n<value><string>\n</string></value>\n<value><string>\n</string></value>\n<value><string>\n")
+                    .append("</string></value>\n<value><string>\n</string></value>\n<value><string>10</string></value>\n<value><string>11</string></value>\n<value><string>12</string></value>\n<value><string>13</string></value>\n")
+                    .append("<value><string>14</string></value>\n<value><string>15</string></value>\n<value><string>16</string></value>\n<value><string>17</string></value>\n<value><string>18</string></value>\n")
+                    .append("<value><string>19</string></value>\n<value><string>20</string></value>\n<value><string>21</string></value>\n<value><string>22</string></value>\n<value><string>23</string></value>\n")
+                    .append("<value><string>24</string></value>\n<value><string>25</string></value>\n<value><string>26</string></value>\n<value><string>27</string></value>\n<value><string>28</string></value>\n")
+                    .append("<value><string>29</string></value>\n<value><string>30</string></value>\n<value><string>31</string></value>\n<value><string>32</string></value>\n<value><string>33</string></value>\n")
+                    .append("<value><string>34</string></value>\n<value><string>35</string></value>\n<value><string>36</string></value>\n<value><string>37</string></value>\n<value><string>38</string></value>\n")
+                    .append("<value><string>39</string></value>\n<value><string>40</string></value>\n<value><string>41</string></value>\n<value><string>42</string></value>\n<value><string>43</string></value>\n")
+                    .append("<value><string>44</string></value>\n<value><string>45</string></value>\n<value><string>46</string></value>\n<value><string>47</string></value>\n<value><string>48</string></value>\n")
+                    .append("<value><string>49</string></value>\n<value><string>50</string></value>\n<value><string>51</string></value>\n<value><string>52</string></value>\n<value><string>53</string></value>\n")
+                    .append("<value><string>54</string></value>\n<value><string>55</string></value>\n<value><string>56</string></value>\n<value><string>57</string></value>\n<value><string>58</string></value>\n")
+                    .append("<value><string>59</string></value>\n<value><string>60</string></value>\n<value><string>61</string></value>\n<value><string>62</string></value>\n<value><string>63</string></value>\n")
+                    .append("<value><string>64</string></value>\n<value><string>65</string></value>\n<value><string>66</string></value>\n<value><string>67</string></value>\n<value><string>68</string></value>\n")
+                    .append("<value><string>69</string></value>\n<value><string>70</string></value>\n<value><string>71</string></value>\n<value><string>72</string></value>\n<value><string>73</string></value>\n")
+                    .append("<value><string>74</string></value>\n<value><string>75</string></value>\n<value><string>76</string></value>\n<value><string>77</string></value>\n<value><string>78</string></value>\n")
+                    .append("<value><string>79</string></value>\n<value><string>80</string></value>\n<value><string>81</string></value>\n<value><string>82</string></value>\n<value><string>83</string></value>\n")
+                    .append("<value><string>84</string></value>\n<value><string>85</string></value>\n<value><string>86</string></value>\n<value><string>87</string></value>\n<value><string>88</string></value>\n")
+                    .append("<value><string>89</string></value>\n<value><string>90</string></value>\n<value><string>91</string></value>\n<value><string>92</string></value>\n<value><string>93</string></value>\n")
+                    .append("<value><string>94</string></value>\n<value><string>95</string></value>\n<value><string>96</string></value>\n<value><string>97</string></value>\n<value><string>98</string></value>\n")
+                    .append("<value><string>99</string></value>\n<value><string>100</string></value>\n<value><string>101</string></value>\n<value><string>102</string></value>\n<value><string>103</string></value>\n")
+                    .append("<value><string>104</string></value>\n<value><string>105</string></value>\n<value><string>106</string></value>\n<value><string>107</string></value>\n<value><string>108</string></value>\n")
+                    .append("<value><string>109</string></value>\n<value><string>110</string></value>\n<value><string>111</string></value>\n<value><string>112</string></value>\n<value><string>113</string></value>\n")
+                    .append("<value><string>114</string></value>\n<value><string>115</string></value>\n<value><string>116</string></value>\n<value><string>117</string></value>\n<value><string>118</string></value>\n")
+                    .append("<value><string>119</string></value>\n<value><string>120</string></value>\n<value><string>121</string></value>\n<value><string>122</string></value>\n<value><string>123</string></value>\n")
+                    .append("<value><string>124</string></value>\n<value><string>125</string></value>\n<value><string>126</string></value>\n<value><string>127</string></value>\n<value><string>128</string></value>\n")
+                    .append("<value><string>129</string></value>\n<value><string>130</string></value>\n<value><string>131</string></value>\n<value><string>132</string></value>\n<value><string>133</string></value>\n")
+                    .append("<value><string>134</string></value>\n<value><string>135</string></value>\n<value><string>136</string></value>\n<value><string>137</string></value>\n<value><string>138</string></value>\n")
+                    .append("<value><string>139</string></value>\n<value><string>140</string></value>\n<value><string>141</string></value>\n<value><string>142</string></value>\n<value><string>143</string></value>\n")
+                    .append("<value><string>144</string></value>\n<value><string>145</string></value>\n<value><string>146</string></value>\n<value><string>147</string></value>\n<value><string>148</string></value>\n")
+                    .append("<value><string>149</string></value>\n<value><string>150</string></value>\n<value><string>151</string></value>\n<value><string>152</string></value>\n<value><string>153</string></value>\n")
+                    .append("<value><string>154</string></value>\n<value><string>155</string></value>\n<value><string>156</string></value>\n<value><string>157</string></value>\n<value><string>158</string></value>\n")
+                    .append("<value><string>159</string></value>\n</data></array></value>\n<value><array><data>\n<value><string>\n</string></value>\n<value><string>\n</string></value>\n<value><string>\n</string></value>\n")
+                    .append("<value><string>\n</string></value>\n<value><string>\n</string></value>\n<value><string>\n</string></value>\n<value><string>\n</string></value>\n<value><string>\n</string></value>\n")
+                    .append("<value><string>\n</string></value>\n<value><string>\n</string></value>\n<value><string>10</string></value>\n<value><string>11</string></value>\n<value><string>12</string></value>\n")
+                    .append("<value><string>13</string></value>\n<value><string>14</string></value>\n<value><string>15</string></value>\n<value><string>16</string></value>\n<value><string>17</string></value>\n")
+                    .append("<value><string>18</string></value>\n<value><string>19</string></value>\n<value><string>20</string></value>\n<value><string>21</string></value>\n<value><string>22</string></value>\n")
+                    .append("<value><string>23</string></value>\n<value><string>24</string></value>\n<value><string>25</string></value>\n<value><string>26</string></value>\n<value><string>27</string></value>\n")
+                    .append("<value><string>28</string></value>\n<value><string>29</string></value>\n<value><string>30</string></value>\n<value><string>31</string></value>\n<value><string>32</string></value>\n")
+                    .append("<value><string>33</string></value>\n<value><string>34</string></value>\n<value><string>35</string></value>\n<value><string>36</string></value>\n<value><string>37</string></value>\n")
+                    .append("<value><string>38</string></value>\n<value><string>39</string></value>\n<value><string>40</string></value>\n<value><string>41</string></value>\n<value><string>42</string></value>\n")
+                    .append("<value><string>43</string></value>\n<value><string>44</string></value>\n<value><string>45</string></value>\n<value><string>46</string></value>\n<value><string>47</string></value>\n")
+                    .append("<value><string>48</string></value>\n<value><string>49</string></value>\n<value><string>50</string></value>\n<value><string>51</string></value>\n<value><string>52</string></value>\n")
+                    .append("<value><string>53</string></value>\n<value><string>54</string></value>\n<value><string>55</string></value>\n<value><string>56</string></value>\n<value><string>57</string></value>\n")
+                    .append("<value><string>58</string></value>\n<value><string>59</string></value>\n<value><string>60</string></value>\n<value><string>61</string></value>\n<value><string>62</string></value>\n")
+                    .append("<value><string>63</string></value>\n<value><string>64</string></value>\n<value><string>65</string></value>\n<value><string>66</string></value>\n<value><string>67</string></value>\n")
+                    .append("<value><string>68</string></value>\n<value><string>69</string></value>\n<value><string>70</string></value>\n<value><string>71</string></value>\n<value><string>72</string></value>\n")
+                    .append("<value><string>73</string></value>\n<value><string>74</string></value>\n<value><string>75</string></value>\n<value><string>76</string></value>\n<value><string>77</string></value>\n")
+                    .append("<value><string>78</string></value>\n<value><string>79</string></value>\n<value><string>80</string></value>\n<value><string>81</string></value>\n<value><string>82</string></value>\n")
+                    .append("<value><string>83</string></value>\n<value><string>84</string></value>\n<value><string>85</string></value>\n<value><string>86</string></value>\n<value><string>87</string></value>\n")
+                    .append("<value><string>88</string></value>\n<value><string>89</string></value>\n<value><string>90</string></value>\n<value><string>91</string></value>\n<value><string>92</string></value>\n")
+                    .append("<value><string>93</string></value>\n<value><string>94</string></value>\n<value><string>95</string></value>\n<value><string>96</string></value>\n<value><string>97</string></value>\n")
+                    .append("<value><string>98</string></value>\n<value><string>99</string></value>\n<value><string>100</string></value>\n<value><string>101</string></value>\n<value><string>102</string></value>\n")
+                    .append("<value><string>103</string></value>\n<value><string>104</string></value>\n<value><string>105</string></value>\n<value><string>106</string></value>\n<value><string>107</string></value>\n")
+                    .append("<value><string>108</string></value>\n<value><string>109</string></value>\n<value><string>110</string></value>\n<value><string>111</string></value>\n<value><string>112</string></value>\n")
+                    .append("<value><string>113</string></value>\n<value><string>114</string></value>\n<value><string>115</string></value>\n<value><string>116</string></value>\n<value><string>117</string></value>\n")
+                    .append("<value><string>118</string></value>\n<value><string>119</string></value>\n<value><string>120</string></value>\n<value><string>121</string></value>\n<value><string>122</string></value>\n")
+                    .append("<value><string>123</string></value>\n<value><string>124</string></value>\n<value><string>125</string></value>\n<value><string>126</string></value>\n<value><string>127</string></value>\n")
+                    .append("<value><string>128</string></value>\n<value><string>129</string></value>\n<value><string>130</string></value>\n<value><string>131</string></value>\n<value><string>132</string></value>\n")
+                    .append("<value><string>133</string></value>\n<value><string>134</string></value>\n<value><string>135</string></value>\n<value><string>136</string></value>\n<value><string>137</string></value>\n")
+                    .append("<value><string>138</string></value>\n<value><string>139</string></value>\n<value><string>140</string></value>\n<value><string>141</string></value>\n<value><string>142</string></value>\n")
+                    .append("<value><string>143</string></value>\n<value><string>144</string></value>\n<value><string>145</string></value>\n<value><string>146</string></value>\n<value><string>147</string></value>\n")
+                    .append("<value><string>148</string></value>\n<value><string>149</string></value>\n<value><string>150</string></value>\n<value><string>151</string></value>\n<value><string>152</string></value>\n")
+                    .append("<value><string>153</string></value>\n<value><string>154</string></value>\n<value><string>155</string></value>\n<value><string>156</string></value>\n<value><string>157</string></value>\n")
+                    .append("<value><string>158</string></value>\n<value><string>159</string></value>\n</data></array></value>\n</data></array></value>\n</member>\n<member>\n<name>uuid</name>\n<value><string>00000000-0000-0000-0000-000000000000</string></value>\n")
+                    .append("</member>\n<member>\n<name>on_reboot</name>\n<value><string>restart</string></value>\n</member>\n<member>\n<name>state</name>\n<value><string>r-----</string></value>\n</member>\n")
+                    .append("<member>\n<name>cpu_weight</name>\n<value><string>65535</string></value>\n</member>\n<member>\n<name>online_vcpus</name>\n<value><string>\n</string></value>\n</member>\n")
+                    .append("<member>\n<name>memory</name>\n<value><string>672</string></value>\n</member>\n<member>\n<name>cpu_cap</name>\n<value><string>\n</string></value>\n</member>\n<member>\n<name>status</name>\n")
+                    .append("<value><string>\n</string></value>\n</member>\n<member>\n<name>pool_name</name>\n<value><string>Pool-0</string></value>\n</member>\n<member>\n<name>on_poweroff</name>\n<value><string>destroy</string></value>\n")
+                    .append("</member>\n<member>\n<name>on_xend_start</name>\n<value><string>ignore</string></value>\n</member>\n<member>\n<name>on_crash</name>\n<value><string>restart</string></value>\n</member>\n")
+                    .append("<member>\n<name>device</name>\n<value><struct>\n</struct></value>\n</member>\n<member>\n<name>bootloader</name>\n<value><string></string></value>\n</member>\n<member>\n<name>maxmem</name>\n")
+                    .append("<value><string>672</string></value>\n</member>\n<member>\n<name>cpu_time</name>\n<value><string>6608.51291287</string></value>\n</member>\n<member>\n<name>shadow_memory</name>\n<value><string>\n")
+                    .append("</string></value>\n</member>\n<member>\n<name>name</name>\n<value><string>Domain-0</string></value>\n</member>\n<member>\n<name>builder</name>\n<value><string>linux</string></value>\n</member>\n")
+                    .append("<member>\n<name>bootloader_args</name>\n<value><string></string></value>\n</member>\n<member>\n<name>domid</name>\n<value><string>\n</string></value>\n</member>\n<member>\n<name>vcpus</name>\n")
+                    .append("<value><string>\n</string></value>\n</member>\n</struct></value>\n<value><struct>\n<member>\n<name>on_xend_stop</name>\n<value><string>ignore</string></value>\n</member>\n<member>\n")
+                    .append("<name>console_mfn</name>\n<value><string>873706</string></value>\n</member>\n<member>\n<name>features</name>\n<value><string></string></value>\n</member>\n<member>\n<name>image</name>\n")
+                    .append("<value><struct>\n<member>\n<name>tsc_mode</name>\n<value><string>\n</string></value>\n</member>\n<member>\n<name>kernel</name>\n<value><string></string></value>\n</member>\n")
+                    .append("<member>\n<name>videoram</name>\n<value><string>\n</string></value>\n</member>\n<member>\n<name>device_model</name>\n<value><string>/usr/lib/xen/bin/qemu-dm</string></value>\n</member>\n")
+                    .append("<member>\n<name>notes</name><value><array><data><value><array><data><value><string>HV_START_LOW</string></value><value><string>4118806528</string></value></data></array></value>")
+                    .append("<value><array><data><value><string>FEATURES</string></value><value><string>!writable_page_tables|pae_pgdir_above_4gb</string></value></data></array></value><value><array><data>")
+                    .append("<value><string>VIRT_BASE</string></value><value><string>3221225472</string></value></data></array></value><value><array><data><value><string>GUEST_VERSION</string></value><value><string>2.6</string></value>")
+                    .append("</data></array></value><value><array><data><value><string>PADDR_OFFSET</string></value><value><string></string></value></data></array></value><value><array><data><value><string>GUEST_OS</string></value>")
+                    .append("<value><string>linux</string></value></data></array></value><value><array><data><value><string>HYPERCALL_PAGE</string></value><value><string>3238010880</string></value></data></array></value><value><array><data>")
+                    .append("<value><string>LOADER</string></value><value><string>generic</string></value></data></array></value><value><array><data><value><string>SUSPEND_CANCEL</string></value><value><string></string></value>")
+                    .append("</data></array></value><value><array><data><value><string>PAE_MODE</string></value><value><string>yes</string></value></data></array></value><value><array><data><value><string>ENTRY</string></value>")
+                    .append("<value><string>3242303488</string></value></data></array></value><value><array><data><value><string>XEN_VERSION</string></value><value><string>xen-3.0</string></value></data></array></value>")
+                    .append("</data></array></value></member><member><name>expose_host_uuid</name><value><string></string></value></member><member><name>pci</name><value><array><data></data></array></value></member>")
+                    .append("<member><name>superpages</name>\n<value><string>\n</string></value>\n</member>\n<member>\n<name>nomigrate</name>\n<value><string>\n</string></value>\n</member>\n</struct></value>\n</member>\n")
+                    .append("<member>\n<name>cpus</name>\n<value><array><data>\n<value><array><data>\n</data></array></value>\n</data></array></value>\n</member>\n<member>\n<name>store_mfn</name>\n<value><string>873707</string></value>\n")
+                    .append("</member>\n<member>\n<name>uuid</name>\n<value><string>").append(VMID).append("</string></value>\n</member>\n<member>\n<name>on_reboot</name>\n<value><string>restart</string></value>\n</member>\n")
+                    .append("<member>\n<name>state</name>\n<value><string>-b----</string></value>\n</member>\n<member>\n<name>cpu_weight</name>\n<value><string>27500</string></value>\n</member>\n<member>\n<name>online_vcpus</name>\n")
+                    .append("<value><string>\n</string></value>\n</member>\n<member>\n<name>memory</name>\n<value><string>512</string></value>\n</member>\n<member>\n<name>cpu_cap</name>\n<value><string>\n</string></value>\n")
+                    .append("</member>\n<member>\n<name>status</name>\n<value><string>\n</string></value>\n</member>\n<member>\n<name>pool_name</name>\n<value><string>Pool-0</string></value>\n</member>\n<member>\n<name>description</name>\n")
+                    .append("<value><string></string></value>\n</member>\n<member>\n<name>start_time</name>\n<value><string>1408105444.17</string></value>\n</member>\n<member>\n<name>on_poweroff</name>\n<value><string>destroy</string></value>\n")
+                    .append("</member>\n<member>\n<name>on_xend_start</name>\n<value><string>ignore</string></value>\n</member>\n<member>\n<name>on_crash</name>\n<value><string>restart</string></value>\n</member>\n")
+                    .append("<member>\n<name>device</name>\n<value><struct>\n<member>\n<name>vif</name>\n<value><array><data>\n<value><struct>\n<member>\n<name>bridge</name>\n<value><string>").append(VMNICBR)
+                    .append("</string></value>\n</member>\n<member>\n<name>mac</name>\n<value><string>").append(VMNICMAC).append("</string></value>\n</member>\n<member>\n<name>script</name>\n<value><string>/etc/xen/scripts/vif-bridge</string></value>\n")
+                    .append("</member>\n<member>\n<name>uuid</name>\n<value><string>").append(VMNICUUID).append("</string></value>\n</member>\n<member>\n<name>backend</name>\n<value><string>\n</string></value>\n</member>\n")
+                    .append("</struct></value>\n</data></array></value>\n</member>\n<member>\n<name>vkbd</name>\n<value><array><data>\n<value><struct>\n<member>\n<name>backend</name>\n<value><string>\n</string></value>\n")
+                    .append("</member>\n</struct></value>\n</data></array></value>\n</member>\n<member>\n<name>console</name>\n<value><array><data>\n<value><struct>\n<member>\n<name>protocol</name>\n<value><string>vt100</string></value>\n")
+                    .append("</member>\n<member>\n<name>location</name>\n<value><string>\n</string></value>\n</member>\n<member>\n<name>uuid</name>\n<value><string>9beb5016-dde7-8526-491f-e972f262a634</string></value>\n")
+                    .append("</member>\n</struct></value>\n</data></array></value>\n</member>\n<member>\n<name>vfb</name>\n<value><array><data>\n<value><struct>\n<member>\n<name>vncunused</name>\n<value><string>\n")
+                    .append("</string></value>\n</member>\n<member>\n<name>vnc</name>\n<value><string>\n</string></value>\n</member>\n<member>\n<name>xauthority</name>\n<value><string>/root/.Xauthority</string></value>\n")
+                    .append("</member>\n<member>\n<name>vnclisten</name>\n<value><string>0.0.0.0</string></value>\n</member>\n<member>\n<name>vncpasswd</name>\n<value><string>7693f834ca67912e</string></value>\n")
+                    .append("</member>\n<member>\n<name>keymap</name>\n<value><string>en-us</string></value>\n</member>\n<member>\n<name>location</name>\n<value><string>0.0.0.0:5900</string></value>\n</member>\n")
+                    .append("<member>\n<name>uuid</name>\n<value><string>78edf954-e375-b142-9c76-791ce805b6ef</string></value>\n</member>\n</struct></value>\n</data></array></value>\n</member>\n<member>\n<name>vbd</name>\n")
+                    .append("<value><array><data>\n<value><struct>\n<member>\n<name>protocol</name>\n<value><string>x86_32-abi</string></value>\n</member>\n<member>\n<name>uuid</name>\n<value><string>bda35954-2596-025e-168c-b82e1cf92369</string></value>\n")
+                    .append("</member>\n<member>\n<name>bootable</name>\n<value><string>\n</string></value>\n</member>\n<member>\n<name>dev</name>\n<value><string>xvda:disk</string></value>\n</member>\n<member>\n<name>uname</name>\n")
+                    .append("<value><string>file:/OVS/Repositories/").append(REPOID).append("/VirtualDisks/").append(VMROOTDISK).append("</string></value>\n</member>\n<member>\n<name>mode</name>\n<value><string>\n")
+                    .append("</string></value>\n</member>\n<member>\n<name>VDI</name>\n<value><string></string></value>\n</member>\n<member>\n<name>backend</name>\n<value><string>\n</string></value>\n</member>\n</struct></value>\n")
+                    .append("</data></array></value>\n</member>\n</struct></value>\n</member>\n<member>\n<name>bootloader</name>\n<value><string>/usr/bin/pygrub</string></value>\n</member>\n<member>\n<name>maxmem</name>\n")
+                    .append("<value><string>512</string></value>\n</member>\n<member>\n<name>cpu_time</name>\n<value><string>0.152510481</string></value>\n</member>\n<member>\n<name>shadow_memory</name>\n<value><string>\n")
+                    .append("</string></value>\n</member>\n<member>\n<name>name</name>\n<value><string>").append(VMNAME).append("</string></value>\n</member>\n<member>\n<name>builder</name>\n<value><string>linux</string></value>\n")
+                    .append("</member>\n<member>\n<name>bootloader_args</name>\n<value><string>-q</string></value>\n</member>\n<member>\n<name>domid</name>\n<value><string>\n</string></value>\n</member>\n<member>\n")
+                    .append("<name>vcpus</name>\n<value><string>\n</string></value>\n</member>\n</struct></value>\n</data></array>").toString());
 
     public String getSingleVmListXML() {
         return SINGLEVMLISTXML;


[19/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
CLOUDSTACK-8577: fixing script testpath_disable_enable_zone


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

Branch: refs/heads/dhcpoffload
Commit: 49451750a965a0b37409e9661cf4e65090c3047c
Parents: 8a99df7
Author: nitt10prashant <ni...@gmail.com>
Authored: Mon Jun 22 18:25:39 2015 +0530
Committer: sanjeev <sa...@apache.org>
Committed: Wed Jun 24 10:50:19 2015 +0530

----------------------------------------------------------------------
 .../maint/testpath_disable_enable_zone.py       | 401 +++++++++++++------
 1 file changed, 286 insertions(+), 115 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/49451750/test/integration/component/maint/testpath_disable_enable_zone.py
----------------------------------------------------------------------
diff --git a/test/integration/component/maint/testpath_disable_enable_zone.py b/test/integration/component/maint/testpath_disable_enable_zone.py
index a4c7bdc..3cbd3d5 100644
--- a/test/integration/component/maint/testpath_disable_enable_zone.py
+++ b/test/integration/component/maint/testpath_disable_enable_zone.py
@@ -104,6 +104,16 @@ class TestDisableEnableZone(cloudstackTestCase):
             )
             cls._cleanup.append(cls.account)
 
+            # Create root admin account
+
+            cls.admin_account = Account.create(
+                cls.apiclient,
+                cls.testdata["account2"],
+                admin=True
+
+            )
+            cls._cleanup.append(cls.admin_account)
+
             # Create user api client of the account
             cls.userapiclient = testClient.getUserApiClient(
                 UserName=cls.account.name,
@@ -174,7 +184,7 @@ class TestDisableEnableZone(cloudstackTestCase):
             self.apiclient,
             self.testdata["small"],
             templateid=self.template.id,
-            accountid=self.account.name,
+            accountid=self.admin_account.name,
             domainid=self.account.domainid,
             serviceofferingid=self.service_offering.id,
             zoneid=self.zone.id
@@ -220,17 +230,22 @@ class TestDisableEnableZone(cloudstackTestCase):
                          "verify that vm is stopped")
 
         root_volume = list_volumes(
-            self.userapiclient,
+            self.apiclient,
             virtualmachineid=vm_root.id,
             type='ROOT',
             listall=True
         )
+
+        self.assertEqual(validateList(root_volume)[0],
+                         PASS,
+                         "list volume  is empty for vmid %s" % vm_root.id
+                         )
         root_vm_new = VirtualMachine.create(
             self.apiclient,
             self.testdata["small"],
             templateid=self.template.id,
-            accountid=self.account.name,
-            domainid=self.account.domainid,
+            accountid=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             serviceofferingid=self.service_offering.id,
             zoneid=self.zone.id
         )
@@ -249,6 +264,12 @@ class TestDisableEnableZone(cloudstackTestCase):
                 volumeid=root_volume[0].id,
                 listall=True)
 
+            self.assertEqual(validateList(snapshots)[0],
+                             PASS,
+                             "list snapshot  is empty for volume id %s"
+                             % root_volume[0].id
+                             )
+
             Template.create_from_snapshot(
                 self.apiclient,
                 snapshots[0],
@@ -258,29 +279,29 @@ class TestDisableEnableZone(cloudstackTestCase):
         self.testdata["privatetemplate"]["url"] = builtin_info[0]
         self.testdata["privatetemplate"]["hypervisor"] = builtin_info[1]
         self.testdata["privatetemplate"]["format"] = builtin_info[2]
-
+        """
         Template.register(
             self.apiclient,
             self.testdata["privatetemplate"],
             zoneid=self.zone.id)
-
+        """
         Volume.create(
             self.apiclient,
             self.testdata["volume"],
             zoneid=self.zone.id,
-            account=self.account.name,
-            domainid=self.account.domainid,
+            account=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             diskofferingid=self.disk_offering.id
         )
-
+        """
         Iso.create(
             self.apiclient,
             self.testdata["iso2"],
             zoneid=self.zone.id,
-            account=self.account.name,
-            domainid=self.account.domainid,
+            account=self.admin_account.name,
+            domainid=self.admin_account.domainid,
         )
-
+        """
         # non-admin user should fail to create vm, snap, temp etc
         with self.assertRaises(Exception):
             VirtualMachine.create(self.userapiclient,
@@ -298,6 +319,10 @@ class TestDisableEnableZone(cloudstackTestCase):
             type='ROOT',
             listall=True
         )
+        self.assertEqual(validateList(root_volume)[0],
+                         PASS,
+                         "list volume  is empty for vmid id %s" % vm_user.id
+                         )
 
         if self.snapshotSupported:
             with self.assertRaises(Exception):
@@ -341,8 +366,8 @@ class TestDisableEnableZone(cloudstackTestCase):
             self.apiclient,
             self.testdata["small"],
             templateid=self.template.id,
-            accountid=self.account.name,
-            domainid=self.account.domainid,
+            accountid=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             serviceofferingid=self.service_offering.id,
             zoneid=self.zone.id
         )
@@ -361,6 +386,12 @@ class TestDisableEnableZone(cloudstackTestCase):
                 volumeid=root_volume[0].id,
                 listall=True)
 
+            self.assertEqual(validateList(snapshots)[0],
+                             PASS,
+                             "list snapshot  is empty for volume id %s"
+                             % root_volume[0].id
+                             )
+
             Template.create_from_snapshot(
                 self.apiclient,
                 snapshots[0],
@@ -375,8 +406,8 @@ class TestDisableEnableZone(cloudstackTestCase):
             self.apiclient,
             self.testdata["volume"],
             zoneid=self.zone.id,
-            account=self.account.name,
-            domainid=self.account.domainid,
+            account=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             diskofferingid=self.disk_offering.id
         )
 
@@ -384,8 +415,8 @@ class TestDisableEnableZone(cloudstackTestCase):
             self.apiclient,
             self.testdata["iso2"],
             zoneid=self.zone.id,
-            account=self.account.name,
-            domainid=self.account.domainid,
+            account=self.admin_account.name,
+            domainid=self.admin_account.domainid,
         )
 
         # Non root user
@@ -413,6 +444,12 @@ class TestDisableEnableZone(cloudstackTestCase):
                 volumeid=root_volume[0].id,
                 listall=True)
 
+            self.assertEqual(validateList(snapshots)[0],
+                             PASS,
+                             "list snapshot  is empty for volume id %s"
+                             % root_volume[0].id
+                             )
+
         Template.register(
             self.userapiclient,
             self.testdata["privatetemplate"],
@@ -451,6 +488,10 @@ class TestDisableEnablePod(cloudstackTestCase):
         cls.testdata = testClient.getParsedTestDataConfig()
         cls.hypervisor = cls.testClient.getHypervisorInfo()
 
+        cls.snapshotSupported = True
+        if cls.hypervisor.lower() in ["hyperv", "lxc"]:
+            cls.snapshotSupported = False
+
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.apiclient)
         cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests())
@@ -486,6 +527,16 @@ class TestDisableEnablePod(cloudstackTestCase):
             )
             cls._cleanup.append(cls.account)
 
+            # Create root admin account
+
+            cls.admin_account = Account.create(
+                cls.apiclient,
+                cls.testdata["account2"],
+                admin=True
+
+            )
+            cls._cleanup.append(cls.admin_account)
+
             # Create user api client of the account
             cls.userapiclient = testClient.getUserApiClient(
                 UserName=cls.account.name,
@@ -556,8 +607,8 @@ class TestDisableEnablePod(cloudstackTestCase):
             self.apiclient,
             self.testdata["small"],
             templateid=self.template.id,
-            accountid=self.account.name,
-            domainid=self.account.domainid,
+            accountid=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             serviceofferingid=self.service_offering.id,
             zoneid=self.zone.id
         )
@@ -584,18 +635,23 @@ class TestDisableEnablePod(cloudstackTestCase):
             self.apiclient,
             self.testdata["small"],
             templateid=self.template.id,
-            accountid=self.account.name,
-            domainid=self.account.domainid,
+            accountid=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             serviceofferingid=self.service_offering.id,
             zoneid=self.zone.id,
         )
 
         root_volume = list_volumes(
-            self.userapiclient,
+            self.apiclient,
             virtualmachineid=vm_root.id,
             type='ROOT',
             listall=True
         )
+        self.assertEqual(
+            validateList(root_volume)[0],
+            PASS,
+            "list snapshot  is empty for volume id %s" %
+            vm_root.id)
 
         if self.snapshotSupported:
             Snapshot.create(
@@ -606,6 +662,11 @@ class TestDisableEnablePod(cloudstackTestCase):
                 self.apiclient,
                 volumeid=root_volume[0].id,
                 listall=True)
+            self.assertEqual(
+                validateList(snapshots)[0],
+                PASS,
+                "list snapshot  is empty for volume id %s" %
+                root_volume[0].id)
 
             Template.create_from_snapshot(
                 self.apiclient,
@@ -626,8 +687,8 @@ class TestDisableEnablePod(cloudstackTestCase):
             self.apiclient,
             self.testdata["volume"],
             zoneid=self.zone.id,
-            account=self.account.name,
-            domainid=self.account.domainid,
+            account=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             diskofferingid=self.disk_offering.id
         )
 
@@ -635,8 +696,8 @@ class TestDisableEnablePod(cloudstackTestCase):
             self.apiclient,
             self.testdata["iso2"],
             zoneid=self.zone.id,
-            account=self.account.name,
-            domainid=self.account.domainid,
+            account=self.admin_account.name,
+            domainid=self.admin_account.domainid,
         )
 
         with self.assertRaises(Exception):
@@ -656,36 +717,36 @@ class TestDisableEnablePod(cloudstackTestCase):
             listall=True
         )
 
+        self.assertEqual(validateList(root_volume)[0],
+                         PASS,
+                         "list volume  is empty for volume id %s" % vm_user.id
+                         )
         if self.snapshotSupported:
-            with self.assertRaises(Exception):
-                Snapshot.create(
-                    self.userapiclient,
-                    root_volume[0].id)
-
-        with self.assertRaises(Exception):
-            Template.register(
+            Snapshot.create(
                 self.userapiclient,
-                self.testdata["privatetemplate"],
-                zoneid=self.zone.id)
+                root_volume[0].id)
 
-        with self.assertRaises(Exception):
-            Volume.create(
-                self.userapiclient,
-                self.testdata["volume"],
-                zoneid=self.zone.id,
-                account=self.account.name,
-                domainid=self.account.domainid,
-                diskofferingid=self.disk_offering.id
-            )
+        Template.register(
+            self.userapiclient,
+            self.testdata["privatetemplate"],
+            zoneid=self.zone.id)
 
-        with self.assertRaises(Exception):
-            Iso.create(
-                self.userapiclient,
-                self.testdata["iso2"],
-                zoneid=self.zone.id,
-                account=self.account.name,
-                domainid=self.account.domainid,
-            )
+        Volume.create(
+            self.userapiclient,
+            self.testdata["volume"],
+            zoneid=self.zone.id,
+            account=self.account.name,
+            domainid=self.account.domainid,
+            diskofferingid=self.disk_offering.id
+        )
+
+        Iso.create(
+            self.userapiclient,
+            self.testdata["iso2"],
+            zoneid=self.zone.id,
+            account=self.account.name,
+            domainid=self.account.domainid,
+        )
 
         # Step 2
         cmd.allocationstate = ENABLED
@@ -701,8 +762,8 @@ class TestDisableEnablePod(cloudstackTestCase):
             self.apiclient,
             self.testdata["small"],
             templateid=self.template.id,
-            accountid=self.account.name,
-            domainid=self.account.domainid,
+            accountid=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             serviceofferingid=self.service_offering.id,
             zoneid=self.zone.id,
         )
@@ -721,6 +782,12 @@ class TestDisableEnablePod(cloudstackTestCase):
                 volumeid=root_volume[0].id,
                 listall=True)
 
+            self.assertEqual(
+                validateList(snapshots)[0],
+                PASS,
+                "list snapshot  is empty for volume id %s" %
+                root_volume[0].id)
+
             Template.create_from_snapshot(
                 self.apiclient,
                 snapshots[0],
@@ -735,8 +802,8 @@ class TestDisableEnablePod(cloudstackTestCase):
             self.apiclient,
             self.testdata["volume"],
             zoneid=self.zone.id,
-            account=self.account.name,
-            domainid=self.account.domainid,
+            account=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             diskofferingid=self.disk_offering.id
         )
 
@@ -744,8 +811,8 @@ class TestDisableEnablePod(cloudstackTestCase):
             self.apiclient,
             self.testdata["iso2"],
             zoneid=self.zone.id,
-            account=self.account.name,
-            domainid=self.account.domainid,
+            account=self.admin_account.name,
+            domainid=self.admin_account.domainid,
         )
 
         # Non root user
@@ -771,6 +838,11 @@ class TestDisableEnablePod(cloudstackTestCase):
                 self.userapiclient,
                 volumeid=root_volume[0].id,
                 listall=True)
+            self.assertEqual(
+                validateList(snapshots)[0],
+                PASS,
+                "list snapshot  is empty for volume id %s" %
+                root_volume[0].id)
 
         Template.register(
             self.userapiclient,
@@ -811,6 +883,9 @@ class TestDisableEnableCluster(cloudstackTestCase):
         cls.apiclient = testClient.getApiClient()
         cls.testdata = testClient.getParsedTestDataConfig()
         cls.hypervisor = cls.testClient.getHypervisorInfo()
+        cls.snapshotSupported = True
+        if cls.hypervisor.lower() in ["hyperv", "lxc"]:
+            cls.snapshotSupported = False
 
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.apiclient)
@@ -851,6 +926,17 @@ class TestDisableEnableCluster(cloudstackTestCase):
             )
             cls._cleanup.append(cls.account)
 
+            # Create root admin account
+
+            cls.admin_account = Account.create(
+                cls.apiclient,
+                cls.testdata["account2"],
+                admin=True
+
+            )
+
+            cls._cleanup.append(cls.admin_account)
+
             # Create user api client of the account
             cls.userapiclient = testClient.getUserApiClient(
                 UserName=cls.account.name,
@@ -929,6 +1015,7 @@ class TestDisableEnableCluster(cloudstackTestCase):
             domainid=self.account.domainid,
             serviceofferingid=self.service_offering.id,
             zoneid=self.zone.id,
+            mode=self.zone.networktype
         )
 
         self.vm_list.append(vm_user)
@@ -937,10 +1024,11 @@ class TestDisableEnableCluster(cloudstackTestCase):
             self.apiclient,
             self.testdata["small"],
             templateid=self.template.id,
-            accountid=self.account.name,
-            domainid=self.account.domainid,
+            accountid=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             serviceofferingid=self.service_offering.id,
             zoneid=self.zone.id,
+            mode=self.zone.networktype
         )
 
         self.vm_list.append(vm_root)
@@ -955,7 +1043,8 @@ class TestDisableEnableCluster(cloudstackTestCase):
                          DISABLED,
                          "Check if the cluster is in disabled state"
                          )
-        # Verify the exsisting vms should be running
+
+        # Verify the existing vms should be running
         self.assertEqual(vm_user.state.lower(),
                          "running",
                          "Verify that the user vm is running")
@@ -968,19 +1057,25 @@ class TestDisableEnableCluster(cloudstackTestCase):
             self.apiclient,
             self.testdata["small"],
             templateid=self.template.id,
-            accountid=self.account.name,
-            domainid=self.account.domainid,
+            accountid=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             serviceofferingid=self.service_offering.id,
             zoneid=self.zone.id,
         )
 
         root_volume = list_volumes(
-            self.userapiclient,
+            self.apiclient,
             virtualmachineid=vm_root.id,
             type='ROOT',
             listall=True
         )
 
+        self.assertEqual(
+            validateList(root_volume)[0],
+            PASS,
+            "list root volume response is empty for volume id %s" %
+            vm_root.id)
+
         if self.snapshotSupported:
             Snapshot.create(
                 self.apiclient,
@@ -990,6 +1085,11 @@ class TestDisableEnableCluster(cloudstackTestCase):
                 self.apiclient,
                 volumeid=root_volume[0].id,
                 listall=True)
+            self.assertEqual(
+                validateList(snapshots)[0],
+                PASS,
+                "list snapshot  is empty for volume id %s" %
+                root_volume[0].id)
 
             Template.create_from_snapshot(
                 self.apiclient,
@@ -1010,8 +1110,8 @@ class TestDisableEnableCluster(cloudstackTestCase):
             self.apiclient,
             self.testdata["volume"],
             zoneid=self.zone.id,
-            account=self.account.name,
-            domainid=self.account.domainid,
+            account=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             diskofferingid=self.disk_offering.id
         )
 
@@ -1019,8 +1119,8 @@ class TestDisableEnableCluster(cloudstackTestCase):
             self.apiclient,
             self.testdata["iso2"],
             zoneid=self.zone.id,
-            account=self.account.name,
-            domainid=self.account.domainid,
+            account=self.admin_account.name,
+            domainid=self.admin_account.domainid,
         )
 
         # non-admin user should fail to create vm, snap, temp etc
@@ -1042,17 +1142,21 @@ class TestDisableEnableCluster(cloudstackTestCase):
             listall=True
         )
 
-        if self.snapshotSupported:
-            with self.assertRaises(Exception):
-                Snapshot.create(
-                    self.userapiclient,
-                    root_volume[0].id)
+        self.assertEqual(
+            validateList(root_volume)[0],
+            PASS,
+            "list root volume response is empty for volume id %s" %
+            vm_user.id)
 
-        with self.assertRaises(Exception):
-            Template.register(
+        if self.snapshotSupported:
+            Snapshot.create(
                 self.userapiclient,
-                self.testdata["privatetemplate"],
-                zoneid=self.zone.id)
+                root_volume[0].id)
+
+        Template.register(
+            self.userapiclient,
+            self.testdata["privatetemplate"],
+            zoneid=self.zone.id)
 
         Volume.create(
             self.userapiclient,
@@ -1063,14 +1167,13 @@ class TestDisableEnableCluster(cloudstackTestCase):
             diskofferingid=self.disk_offering.id
         )
 
-        with self.assertRaises(Exception):
-            Iso.create(
-                self.userapiclient,
-                self.testdata["iso2"],
-                zoneid=self.zone.id,
-                account=self.account.name,
-                domainid=self.account.domainid,
-            )
+        Iso.create(
+            self.userapiclient,
+            self.testdata["iso2"],
+            zoneid=self.zone.id,
+            account=self.account.name,
+            domainid=self.account.domainid,
+        )
 
         # Step 2
         cmd.allocationstate = ENABLED
@@ -1088,8 +1191,8 @@ class TestDisableEnableCluster(cloudstackTestCase):
             self.apiclient,
             self.testdata["small"],
             templateid=self.template.id,
-            accountid=self.account.name,
-            domainid=self.account.domainid,
+            accountid=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             serviceofferingid=self.service_offering.id,
             zoneid=self.zone.id,
         )
@@ -1145,7 +1248,7 @@ class TestDisableEnableCluster(cloudstackTestCase):
                              "disconnected",
                              "Check if host in the cluster gets disconnected"
                              )
-
+        exception_list = []
         for vm in self.vm_list:
             try:
                 SshClient(
@@ -1154,11 +1257,12 @@ class TestDisableEnableCluster(cloudstackTestCase):
                     vm.username,
                     vm.password
                 )
+
             except Exception as e:
-                self.exception_list.append(e)
+                exception_list.append(e)
 
-        self.assertEqual(self.exception_list,
-                         [],
+        self.assertEqual(len(exception_list),
+                         0,
                          "Check if vm's are accesible"
                          )
 
@@ -1187,19 +1291,18 @@ class TestDisableEnableCluster(cloudstackTestCase):
                     self.userapiclient,
                     root_volume[0].id)
 
-        with self.assertRaises(Exception):
-            Template.register(
-                self.userapiclient,
-                self.testdata["privatetemplate"],
-                zoneid=self.zone.id)
+        Template.register(
+            self.userapiclient,
+            self.testdata["privatetemplate"],
+            zoneid=self.zone.id)
 
         # Step 4
         cmd.managedstate = "Managed"
         self.apiclient.updateCluster(cmd)
         # After changing the cluster's managestate to Managed hosts in the
         # cluster takes some time to come back to Up state
-        time.sleep(60)
-        hostList = Host.list(self.apiclinet,
+        time.sleep(120)
+        hostList = Host.list(self.apiclient,
                              clusterid=self.cluster.id)
         for host in hostList:
             self.assertEqual(host.state.lower(),
@@ -1231,8 +1334,8 @@ class TestDisableEnableCluster(cloudstackTestCase):
             self.apiclient,
             self.testdata["small"],
             templateid=self.template.id,
-            accountid=self.account.name,
-            domainid=self.account.domainid,
+            accountid=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             serviceofferingid=self.service_offering.id,
             zoneid=self.zone.id,
         )
@@ -1245,6 +1348,7 @@ class TestDisableEnableCluster(cloudstackTestCase):
         # Deletion of zone should fail if resources are running on the zone
         with self.assertRaises(Exception):
             self.pod.delete(self.apiclient)
+
         return
 
 
@@ -1257,6 +1361,10 @@ class TestDisableEnableHost(cloudstackTestCase):
         cls.testdata = testClient.getParsedTestDataConfig()
         cls.hypervisor = cls.testClient.getHypervisorInfo()
 
+        cls.snapshotSupported = True
+        if cls.hypervisor.lower() in ["hyperv", "lxc"]:
+            cls.snapshotSupported = False
+
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.apiclient)
         cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests())
@@ -1298,6 +1406,16 @@ class TestDisableEnableHost(cloudstackTestCase):
             )
             cls._cleanup.append(cls.account)
 
+            # Create root admin account
+
+            cls.admin_account = Account.create(
+                cls.apiclient,
+                cls.testdata["account2"],
+                admin=True
+
+            )
+            cls._cleanup.append(cls.admin_account)
+
             # Create user api client of the account
             cls.userapiclient = testClient.getUserApiClient(
                 UserName=cls.account.name,
@@ -1344,11 +1462,12 @@ class TestDisableEnableHost(cloudstackTestCase):
         """disable enable host
             1. Disable host and verify following things:
                 For admin user:
-                    1. Should be create to start/stop exsiting vms
-                    2. Should be create to deploy new vm,
-                    snapshot on the same host
+                    1. Should be able to  stop exsiting vms but can not start.
+                    2. Should not be able to  deploy new vm,
+                       and create snapshot on the same host
                 For Non-admin user:
-                    1. Should be create to start/stop exsiting vms
+                    1. Should not be able to stop exsiting vms but
+                       cant not start
                     2. Should not be create to deploy new vm,
                     snapshot on the same host
             2. Enable the above disabled host and verify that:
@@ -1362,8 +1481,8 @@ class TestDisableEnableHost(cloudstackTestCase):
             self.apiclient,
             self.testdata["small"],
             templateid=self.template.id,
-            accountid=self.account.name,
-            domainid=self.account.domainid,
+            accountid=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             serviceofferingid=self.service_offering.id,
             zoneid=self.zone.id,
         )
@@ -1423,8 +1542,8 @@ class TestDisableEnableHost(cloudstackTestCase):
                 self.apiclient,
                 self.testdata["small"],
                 templateid=self.template.id,
-                accountid=self.account.name,
-                domainid=self.account.domainid,
+                accountid=self.admin_account.name,
+                domainid=self.admin_account.domainid,
                 serviceofferingid=self.service_offering.id,
                 zoneid=self.zone.id,
                 hostid=hostid)
@@ -1436,13 +1555,40 @@ class TestDisableEnableHost(cloudstackTestCase):
             listall=True
         )
 
+        self.assertEqual(
+            validateList(root_volume)[0],
+            PASS,
+            "list root volume response is empty for volume id %s" %
+            vm_root.id)
+
         if self.snapshotSupported:
-            Snapshot.create(
-                self.apiclient,
-                root_volume[0].id)
+            with self.assertRaises(Exception):
+                Snapshot.create(
+                    self.apiclient,
+                    root_volume[0].id)
 
         # non-admin user should fail to create vm, snap, temp etc
-
+        with self.assertRaises(Exception):
+            VirtualMachine.create(
+                self.apiclient,
+                self.testdata["small"],
+                templateid=self.template.id,
+                accountid=self.account.name,
+                domainid=self.account.domainid,
+                serviceofferingid=self.service_offering.id,
+                zoneid=self.zone.id,
+                hostid=hostid)
+        root_volume = list_volumes(
+            self.apiclient,
+            virtualmachineid=vm_user.id,
+            type='ROOT',
+            listall=True
+        )
+        self.assertEqual(
+            validateList(root_volume)[0],
+            PASS,
+            "list root volume response is empty for volume id %s" %
+            vm_user.id)
         if self.snapshotSupported:
             with self.assertRaises(Exception):
                 Snapshot.create(
@@ -1467,8 +1613,8 @@ class TestDisableEnableHost(cloudstackTestCase):
             self.apiclient,
             self.testdata["small"],
             templateid=self.template.id,
-            accountid=self.account.name,
-            domainid=self.account.domainid,
+            accountid=self.admin_account.name,
+            domainid=self.admin_account.domainid,
             serviceofferingid=self.service_offering.id,
             zoneid=self.zone.id,
             hostid=hostid)
@@ -1478,6 +1624,19 @@ class TestDisableEnableHost(cloudstackTestCase):
             "running",
             "Verify that admin should create new VM in running state")
 
+        root_volume = list_volumes(
+            self.apiclient,
+            virtualmachineid=vm_root.id,
+            type='ROOT',
+            listall=True
+        )
+
+        self.assertEqual(
+            validateList(root_volume)[0],
+            PASS,
+            "list root volume response is empty for volume id %s" %
+            vm_root.id)
+
         if self.snapshotSupported:
             Snapshot.create(
                 self.apiclient,
@@ -1498,6 +1657,18 @@ class TestDisableEnableHost(cloudstackTestCase):
                          "running",
                          "Verify that admin should create new VM")
 
+        root_volume = list_volumes(
+            self.apiclient,
+            virtualmachineid=vm_user.id,
+            type='ROOT',
+            listall=True
+        )
+
+        self.assertEqual(
+            validateList(root_volume)[0],
+            PASS,
+            "list root volume response is empty for volume id %s" %
+            vm_user.id)
         if self.snapshotSupported:
             Snapshot.create(
                 self.userapiclient,


[34/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
Merge branch 'findbugs-MF' of https://github.com/DaanHoogland/cloudstack

This close #520


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

Branch: refs/heads/dhcpoffload
Commit: a3fe76a4c4fde8219e571724cf35b86f040e34f9
Parents: 6c5bc96 8a88493
Author: Rajani Karuturi <ra...@gmail.com>
Authored: Wed Jun 24 16:29:34 2015 +0530
Committer: Rajani Karuturi <ra...@gmail.com>
Committed: Wed Jun 24 16:29:34 2015 +0530

----------------------------------------------------------------------
 .../allocator/ClusterScopeStoragePoolAllocator.java   |  1 -
 .../networkservice/BareMetalResourceBase.java         | 14 ++++----------
 .../networkservice/BaremetalPxeManagerImpl.java       |  8 +-------
 3 files changed, 5 insertions(+), 18 deletions(-)
----------------------------------------------------------------------



[46/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
findbugs: serializable fields

Signed-off-by: Daan Hoogland <da...@onecht.net>

This closes #533


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

Branch: refs/heads/dhcpoffload
Commit: f5847147c0e8dfcd44b0c621e5932f8b3d5d394b
Parents: 582687f
Author: Daan Hoogland <da...@onecht.net>
Authored: Fri Jun 26 14:33:06 2015 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Fri Jun 26 15:11:16 2015 +0200

----------------------------------------------------------------------
 api/src/com/cloud/agent/api/to/LoadBalancerTO.java | 4 ++++
 utils/src/com/cloud/utils/Pair.java                | 5 ++++-
 2 files changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f5847147/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/api/to/LoadBalancerTO.java b/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
index 2bb1537..dffbc9e 100644
--- a/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
+++ b/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
@@ -311,6 +311,7 @@ public class LoadBalancerTO {
     }
 
     public static class CounterTO implements Serializable {
+        private static final long serialVersionUID = 2L;
         private final String name;
         private final String source;
         private final String value;
@@ -335,6 +336,7 @@ public class LoadBalancerTO {
     }
 
     public static class ConditionTO implements Serializable {
+        private static final long serialVersionUID = 2L;
         private final long threshold;
         private final String relationalOperator;
         private final CounterTO counter;
@@ -359,6 +361,7 @@ public class LoadBalancerTO {
     }
 
     public static class AutoScalePolicyTO implements Serializable {
+        private static final long serialVersionUID = 2L;
         private final long id;
         private final int duration;
         private final int quietTime;
@@ -401,6 +404,7 @@ public class LoadBalancerTO {
     }
 
     public static class AutoScaleVmProfileTO implements Serializable {
+        private static final long serialVersionUID = 2L;
         private final String zoneId;
         private final String domainId;
         private final String serviceOfferingId;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f5847147/utils/src/com/cloud/utils/Pair.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/Pair.java b/utils/src/com/cloud/utils/Pair.java
index 9deb896..73d3562 100644
--- a/utils/src/com/cloud/utils/Pair.java
+++ b/utils/src/com/cloud/utils/Pair.java
@@ -19,7 +19,10 @@
 
 package com.cloud.utils;
 
-public class Pair<T, U> {
+import java.io.Serializable;
+
+public class Pair<T, U> implements Serializable {
+    private static final long serialVersionUID = 2L;
     T t;
     U u;
 


[11/50] [abbrv] git commit: updated refs/heads/dhcpoffload to 45721ae

Posted by ja...@apache.org.
findbugs: (un)boxing of long from string

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

Branch: refs/heads/dhcpoffload
Commit: c0a10097403ee90d53d2471f6e069ab71009aaa5
Parents: fe4f0b1
Author: Daan Hoogland <da...@gmail.com>
Authored: Mon Jun 22 13:18:14 2015 +0200
Committer: Daan Hoogland <da...@gmail.com>
Committed: Mon Jun 22 13:18:14 2015 +0200

----------------------------------------------------------------------
 .../lifecycle/ElastistorPrimaryDataStoreLifeCycle.java          | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c0a10097/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java b/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java
index 7254c2b..bbf35e6 100644
--- a/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java
+++ b/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/lifecycle/ElastistorPrimaryDataStoreLifeCycle.java
@@ -574,8 +574,9 @@ public class ElastistorPrimaryDataStoreLifeCycle implements PrimaryDataStoreLife
                 if(capacityIops != null){
 
                     long usedIops = _capacityMgr.getUsedIops(storagePoolVO);
+                long capacity = Long.parseLong(capacityIops);
 
-                    if (Long.valueOf(capacityIops) < usedIops) {
+                if (capacity < usedIops) {
                         throw new CloudRuntimeException("Cannot reduce the number of IOPS for this storage pool as it would lead to an insufficient number of IOPS");
                     }
 
@@ -583,7 +584,7 @@ public class ElastistorPrimaryDataStoreLifeCycle implements PrimaryDataStoreLife
 
                    if(updateTsmCmdResponse.getTsm(0).getUuid() != null){
                    // update the cloudstack db
-                    _storagePoolDao.updateCapacityIops(storagePool.getId(), Long.valueOf(capacityIops));
+                    _storagePoolDao.updateCapacityIops(storagePool.getId(), capacity);
 
                     s_logger.info("elastistor TSM IOPS successfully updated");