From d998fd3e0a78b2edec1d7da6914797307b6fb54d Mon Sep 17 00:00:00 2001 From: Kelven Yang Date: Tue, 24 Apr 2012 16:44:52 -0700 Subject: [PATCH] bug 14090: handle the case when command is sent to a different host that is not owner of the VM --- .../manager/VmwareStorageManagerImpl.java | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/core/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java b/core/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java index a1fca4dfd8f..bdded59cff1 100644 --- a/core/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java +++ b/core/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java @@ -161,7 +161,6 @@ public class VmwareStorageManagerImpl implements VmwareStorageManager { String workerVMName = null; String volumePath = cmd.getVolumePath(); ManagedObjectReference morDs = null; - String snapshotUUID = null; DatastoreMO dsMo=null; // By default assume failure @@ -203,16 +202,12 @@ public class VmwareStorageManagerImpl implements VmwareStorageManager { // attach volume to worker VM String datastoreVolumePath = String.format("[%s] %s.vmdk", dsMo.getName(), volumePath); vmMo.attachDisk(new String[] { datastoreVolumePath }, morDs); - snapshotUUID = UUID.randomUUID().toString(); - if (!vmMo.createSnapshot(snapshotUUID, "Snapshot taken for " + cmd.getSnapshotName(), false, false)) { - throw new Exception("Failed to take snapshot " + cmd.getSnapshotName() + " on vm: " + cmd.getVmName()); - } - } - } else { - if (!vmMo.createSnapshot(snapshotUuid, "Snapshot taken for " + cmd.getSnapshotName(), false, false)) { - throw new Exception("Failed to take snapshot " + cmd.getSnapshotName() + " on vm: " + cmd.getVmName()); - } - } + } + } + + if (!vmMo.createSnapshot(snapshotUuid, "Snapshot taken for " + cmd.getSnapshotName(), false, false)) { + throw new Exception("Failed to take snapshot " + cmd.getSnapshotName() + " on vm: " + cmd.getVmName()); + } snapshotBackupUuid = backupSnapshotToSecondaryStorage(vmMo, accountId, volumeId, cmd.getVolumePath(), snapshotUuid, secondaryStorageUrl, prevSnapshotUuid, prevBackupUuid, hostService.getWorkerName(context, cmd, 1));