You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ed...@apache.org on 2013/12/31 23:04:21 UTC
git commit: updated refs/heads/4.3 to 23841e3
Updated Branches:
refs/heads/4.3 309416071 -> 23841e336
CLOUDSTACK-5329: fix NPE, in case of zone wide primary storage
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/23841e33
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/23841e33
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/23841e33
Branch: refs/heads/4.3
Commit: 23841e3369877e404e4c7f4000a1ee540d1dcfa8
Parents: 3094160
Author: edison <su...@gmail.com>
Authored: Tue Dec 31 13:59:33 2013 -0800
Committer: edison <su...@gmail.com>
Committed: Tue Dec 31 14:03:44 2013 -0800
----------------------------------------------------------------------
api/src/com/cloud/storage/StoragePool.java | 3 +++
server/src/com/cloud/vm/UserVmManagerImpl.java | 12 ++++++------
2 files changed, 9 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/23841e33/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 6e9af12..1f5713e 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;
@@ -104,4 +105,6 @@ public interface StoragePool extends Identity, InternalIdentity {
String getStorageProviderName();
boolean isInMaintenance();
+
+ Hypervisor.HypervisorType getHypervisor();
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/23841e33/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 19285da..bd8cae1 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -36,6 +36,7 @@ import javax.naming.ConfigurationException;
import com.cloud.capacity.Capacity;
import com.cloud.exception.InsufficientServerCapacityException;
+import org.apache.cloudstack.engine.subsystem.api.storage.*;
import org.apache.commons.codec.binary.Base64;
import org.apache.log4j.Logger;
@@ -70,10 +71,6 @@ import org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntity;
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
import org.apache.cloudstack.engine.orchestration.service.VolumeOrchestrationService;
import org.apache.cloudstack.engine.service.api.OrchestrationService;
-import org.apache.cloudstack.engine.subsystem.api.storage.TemplateDataFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.TemplateInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService.VolumeApiResult;
import org.apache.cloudstack.framework.async.AsyncCallFuture;
import org.apache.cloudstack.framework.config.ConfigKey;
@@ -4057,9 +4054,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(
+ 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: "
git commit: updated refs/heads/4.3 to 23841e3
Posted by Sanjay Tripathi <sa...@citrix.com>.
Hi Edison,
I have reverted this commit 23841e3369877e404e4c7f4000a1ee540d1dcfa8 because unit tests was failing.
--Sanjay
-----Original Message-----
From: edison@apache.org [mailto:edison@apache.org]
Sent: Wednesday, January 1, 2014 3:34 AM
To: commits@cloudstack.apache.org
Subject: git commit: updated refs/heads/4.3 to 23841e3
Updated Branches:
refs/heads/4.3 309416071 -> 23841e336
CLOUDSTACK-5329: fix NPE, in case of zone wide primary storage
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/23841e33
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/23841e33
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/23841e33
Branch: refs/heads/4.3
Commit: 23841e3369877e404e4c7f4000a1ee540d1dcfa8
Parents: 3094160
Author: edison <su...@gmail.com>
Authored: Tue Dec 31 13:59:33 2013 -0800
Committer: edison <su...@gmail.com>
Committed: Tue Dec 31 14:03:44 2013 -0800
----------------------------------------------------------------------
api/src/com/cloud/storage/StoragePool.java | 3 +++
server/src/com/cloud/vm/UserVmManagerImpl.java | 12 ++++++------
2 files changed, 9 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/23841e33/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 6e9af12..1f5713e 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;
@@ -104,4 +105,6 @@ public interface StoragePool extends Identity, InternalIdentity {
String getStorageProviderName();
boolean isInMaintenance();
+
+ Hypervisor.HypervisorType getHypervisor();
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/23841e33/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 19285da..bd8cae1 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -36,6 +36,7 @@ import javax.naming.ConfigurationException;
import com.cloud.capacity.Capacity;
import com.cloud.exception.InsufficientServerCapacityException;
+import org.apache.cloudstack.engine.subsystem.api.storage.*;
import org.apache.commons.codec.binary.Base64;
import org.apache.log4j.Logger;
@@ -70,10 +71,6 @@ import org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntity;
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
import org.apache.cloudstack.engine.orchestration.service.VolumeOrchestrationService;
import org.apache.cloudstack.engine.service.api.OrchestrationService;
-import org.apache.cloudstack.engine.subsystem.api.storage.TemplateDataFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.TemplateInfo;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService.VolumeApiResult;
import org.apache.cloudstack.framework.async.AsyncCallFuture;
import org.apache.cloudstack.framework.config.ConfigKey;
@@ -4057,9 +4054,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(
+ 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: "