You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by an...@apache.org on 2014/03/29 00:35:17 UTC

[10/27] git commit: updated refs/heads/master to d4d5cab

CLOUDSTACK-5329: fix NPE, in case of zone wide primary storage

Conflicts:

	api/src/com/cloud/storage/StoragePool.java
	server/src/com/cloud/vm/UserVmManagerImpl.java


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

Branch: refs/heads/master
Commit: 6b7994512d77f235296fa05baa0ba4a82897165a
Parents: a1762a6
Author: Edison Su <su...@gmail.com>
Authored: Thu Mar 27 15:53:27 2014 -0700
Committer: Anthony Xu <an...@citrix.com>
Committed: Fri Mar 28 16:22:16 2014 -0700

----------------------------------------------------------------------
 api/src/com/cloud/storage/StoragePool.java     | 14 +++++++++-----
 server/src/com/cloud/vm/UserVmManagerImpl.java |  8 +++++++-
 2 files changed, 16 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6b799451/api/src/com/cloud/storage/StoragePool.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/storage/StoragePool.java b/api/src/com/cloud/storage/StoragePool.java
index 6ede960..7d54162 100644
--- a/api/src/com/cloud/storage/StoragePool.java
+++ b/api/src/com/cloud/storage/StoragePool.java
@@ -18,6 +18,7 @@ package com.cloud.storage;
 
 import java.util.Date;
 
+import com.cloud.hypervisor.Hypervisor;
 import org.apache.cloudstack.api.Identity;
 import org.apache.cloudstack.api.InternalIdentity;
 
@@ -98,10 +99,13 @@ public interface StoragePool extends Identity, InternalIdentity {
 
     Long getPodId();
 
-    /**
-     * @return
-     */
-    String getStorageProviderName();
+	/**
+	 * @return
+	 */
+	String getStorageProviderName();
+	
+	boolean isInMaintenance();
+
+    Hypervisor.HypervisorType getHypervisor();
 
-    boolean isInMaintenance();
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6b799451/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java
index a1dd6c9..741b21c 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -35,6 +35,7 @@ import javax.ejb.Local;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+
 import org.apache.commons.codec.binary.Base64;
 import org.apache.log4j.Logger;
 
@@ -3731,7 +3732,12 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
             throw new InvalidParameterValueException("Data disks attached to the vm, can not migrate. Need to dettach data disks at first");
         }
 
-        HypervisorType destHypervisorType = _clusterDao.findById(destPool.getClusterId()).getHypervisorType();
+        HypervisorType destHypervisorType = destPool.getHypervisor();
+        if (destHypervisorType == null) {
+            destHypervisorType = _clusterDao.findById(
+                destPool.getClusterId()).getHypervisorType();
+        }
+
         if (vm.getHypervisorType() != destHypervisorType) {
             throw new InvalidParameterValueException("hypervisor is not compatible: dest: " + destHypervisorType.toString() + ", vm: " + vm.getHypervisorType().toString());
         }