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 2014/03/28 01:39:17 UTC

[08/28] git commit: updated refs/heads/4.4 to 392dc81

CLOUDSTACK-5264: add delta snapshot for existing xenserver

Conflicts:

	plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java


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

Branch: refs/heads/4.4
Commit: a3736f26f149eaf8c5430b2babf1e3daeec0327a
Parents: 9188223
Author: Edison Su <su...@gmail.com>
Authored: Thu Mar 27 15:50:32 2014 -0700
Committer: Edison Su <su...@gmail.com>
Committed: Thu Mar 27 17:38:37 2014 -0700

----------------------------------------------------------------------
 .../xen/resource/XenServerStorageProcessor.java           | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a3736f26/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java
index 086862b..caebe34 100644
--- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java
+++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java
@@ -144,7 +144,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
                 throw new CloudRuntimeException("Unable to find CD-ROM VBD for VM: " + vmName);
             } else {
                 // If an ISO is already inserted, eject it
-                if (isoVBD.getEmpty(conn) == false) {
+                if (!isoVBD.getEmpty(conn)) {
                     isoVBD.eject(conn);
                 }
 
@@ -1349,8 +1349,9 @@ public class XenServerStorageProcessor implements StorageProcessor {
         // By default assume failure
         String details = null;
         String snapshotBackupUuid = null;
-        boolean fullbackup = true;
         Long physicalSize = null;
+        Map<String, String> options = cmd.getOptions();
+        boolean fullbackup = Boolean.parseBoolean(options.get("fullSnapshot"));
         try {
             SR primaryStorageSR = hypervisorResource.getSRByNameLabelandHost(conn, primaryStorageNameLabel);
             if (primaryStorageSR == null) {
@@ -1362,7 +1363,8 @@ public class XenServerStorageProcessor implements StorageProcessor {
 
             VDI snapshotVdi = getVDIbyUuid(conn, snapshotUuid);
             String snapshotPaUuid = null;
-            if (prevBackupUuid != null) {
+
+            if ( prevSnapshotUuid != null && !fullbackup) {
                 try {
                     snapshotPaUuid = getVhdParent(conn, psUuid, snapshotUuid, isISCSI);
                     if (snapshotPaUuid != null) {
@@ -1370,6 +1372,8 @@ public class XenServerStorageProcessor implements StorageProcessor {
                         String prevSnashotPaUuid = getVhdParent(conn, psUuid, prevSnapshotUuid, isISCSI);
                         if (snashotPaPaPaUuid != null && prevSnashotPaUuid != null && prevSnashotPaUuid.equals(snashotPaPaPaUuid)) {
                             fullbackup = false;
+                        } else {
+                            fullbackup = true;
                         }
                     }
                 } catch (Exception e) {