You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by li...@apache.org on 2014/01/06 10:21:23 UTC
git commit: updated refs/heads/master to bc677e2
Updated Branches:
refs/heads/master bb7fc3c21 -> bc677e2a9
CLOUDSTACK-5782. [VMware] Snapshot creation on a detached volume failes with NPE.
For a detached volume, don't try to find the associated VM on the hypervisor/peer hypervisor host.
By default create a worker VM to perform snapshot operations.
Conflicts:
plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/bc677e2a
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/bc677e2a
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/bc677e2a
Branch: refs/heads/master
Commit: bc677e2a999f7c44b3cb3353fb0a63d02eba3e7f
Parents: bb7fc3c
Author: Likitha Shetty <li...@citrix.com>
Authored: Mon Jan 6 14:19:31 2014 +0530
Committer: Likitha Shetty <li...@citrix.com>
Committed: Mon Jan 6 14:34:15 2014 +0530
----------------------------------------------------------------------
.../resource/VmwareStorageProcessor.java | 40 +++++++++-----------
1 file changed, 17 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc677e2a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java
index a6d065f..70c8c88 100644
--- a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java
@@ -1000,32 +1000,26 @@ public class VmwareStorageProcessor implements StorageProcessor {
CopyCmdAnswer answer = null;
try {
- vmMo = hyperHost.findVmOnHyperHost(vmName);
- if (vmMo == null) {
- if (s_logger.isDebugEnabled()) {
- s_logger.debug("Unable to find owner VM for BackupSnapshotCommand on host " + hyperHost.getHyperHostName() + ", will try within datacenter");
- }
-
- vmMo = hyperHost.findVmOnPeerHyperHost(vmName);
+ if(vmName != null) {
+ vmMo = hyperHost.findVmOnHyperHost(vmName);
if (vmMo == null) {
- dsMo = new DatastoreMO(hyperHost.getContext(), morDs);
-
- workerVMName = hostService.getWorkerName(context, cmd, 0);
-
- vmMo = HypervisorHostHelper.createWorkerVM(hyperHost, dsMo, workerVMName);
-
- if (vmMo == null) {
- throw new Exception("Failed to find the newly create or relocated VM. vmName: " + workerVMName);
+ if(s_logger.isDebugEnabled()) {
+ s_logger.debug("Unable to find owner VM for BackupSnapshotCommand on host " + hyperHost.getHyperHostName() + ", will try within datacenter");
}
- workerVm = vmMo;
-
- // attach volume to worker VM
- String datastoreVolumePath = dsMo.getDatastorePath(volumePath + ".vmdk");
- vmMo.attachDisk(new String[] {datastoreVolumePath}, morDs);
- } else {
- s_logger.info("Using owner VM " + vmName + " for snapshot operation");
- hasOwnerVm = true;
+ vmMo = hyperHost.findVmOnPeerHyperHost(vmName);
+ }
+ }
+ if(vmMo == null) {
+ dsMo = new DatastoreMO(hyperHost.getContext(), morDs);
+ workerVMName = hostService.getWorkerName(context, cmd, 0);
+ vmMo = HypervisorHostHelper.createWorkerVM(hyperHost, dsMo, workerVMName);
+ if (vmMo == null) {
+ throw new Exception("Failed to find the newly create or relocated VM. vmName: " + workerVMName);
}
+ workerVm = vmMo;
+ // attach volume to worker VM
+ String datastoreVolumePath = dsMo.getDatastorePath(volumePath + ".vmdk");
+ vmMo.attachDisk(new String[] { datastoreVolumePath }, morDs);
} else {
s_logger.info("Using owner VM " + vmName + " for snapshot operation");
hasOwnerVm = true;