You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by wi...@apache.org on 2013/02/14 21:48:38 UTC

[1/2] git commit: refs/heads/qemu-img - Add a backingFile for create

Add a backingFile for create


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

Branch: refs/heads/qemu-img
Commit: 7c14cafb03ee09622935087297ee8c2d0d254b15
Parents: 500bba8
Author: Wido den Hollander <wi...@42on.com>
Authored: Thu Feb 14 21:33:36 2013 +0100
Committer: Wido den Hollander <wi...@42on.com>
Committed: Thu Feb 14 21:33:36 2013 +0100

----------------------------------------------------------------------
 .../org/apache/cloudstack/utils/qemu/QemuImg.java  |   27 ++++++++++++--
 1 files changed, 23 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/7c14cafb/utils/src/org/apache/cloudstack/utils/qemu/QemuImg.java
----------------------------------------------------------------------
diff --git a/utils/src/org/apache/cloudstack/utils/qemu/QemuImg.java b/utils/src/org/apache/cloudstack/utils/qemu/QemuImg.java
index daa62ab..d32507e 100644
--- a/utils/src/org/apache/cloudstack/utils/qemu/QemuImg.java
+++ b/utils/src/org/apache/cloudstack/utils/qemu/QemuImg.java
@@ -58,17 +58,36 @@ public class QemuImg {
     }
 
     /* Create a new disk image */
-    public void create(QemuImgFile file, List<Map<String, String>> options) {
+    public void create(QemuImgFile file, QemuImgFile backingFile, List<Map<String, String>> options) {
         Script s = new Script(_qemuImgPath);
         s.add("create");
         s.add("-f");
-        s.add(file.getFormat().toString());
+
+        /*
+            -b for a backing file does not show up in the docs, but it works.
+            Shouldn't this be -o backing_file=filename instead?
+        */
+        if (backingFile != null) {
+            s.add(backingFile.getFormat().toString());
+            s.add("-b");
+            s.add(backingFile.getFileName());
+        } else {
+            s.add(file.getFormat().toString());
+        }
+
         s.add(file.getFileName());
-        s.add(Long.toString(file.getSize()));
+
+        if (backingFile == null) {
+            s.add(Long.toString(file.getSize()));
+        }
     }
 
     public void create(QemuImgFile file) {
-        this.create(file, null);
+        this.create(file, null, null);
+    }
+
+    public void create(QemuImgFile file, QemuImgFile backingFile) {
+        this.create(file, backingFile, null);
     }
 
     /* Convert the disk image filename or a snapshot snapshot_name to disk image output_filename using format output_fmt. */