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 20:57:51 UTC

[50/50] [abbrv] git commit: refs/heads/qemu-img - Replace all convert places by the new QemuImg object

Updated Branches:
  refs/heads/qemu-img 2a773af6d -> 500bba834 (forced update)


Replace all convert places by the new QemuImg object


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

Branch: refs/heads/qemu-img
Commit: 500bba834ecab8c72357bcd6e58c3703046b9a62
Parents: e9924a8
Author: Wido den Hollander <wi...@42on.com>
Authored: Thu Feb 14 20:56:22 2013 +0100
Committer: Wido den Hollander <wi...@42on.com>
Committed: Thu Feb 14 20:56:22 2013 +0100

----------------------------------------------------------------------
 .../kvm/resource/LibvirtComputingResource.java     |   18 +++-
 .../kvm/storage/LibvirtStorageAdaptor.java         |   59 ++++++++-------
 2 files changed, 43 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/500bba83/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index 6c3b87d..790691c 100755
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -56,6 +56,8 @@ import javax.naming.ConfigurationException;
 
 import org.apache.log4j.Logger;
 import org.apache.cloudstack.utils.qemu.QemuImg.PhysicalDiskFormat;
+import org.apache.cloudstack.utils.qemu.QemuImg;
+import org.apache.cloudstack.utils.qemu.QemuImgFile;
 import org.libvirt.Connect;
 import org.libvirt.Domain;
 import org.libvirt.DomainInfo;
@@ -2132,14 +2134,20 @@ ServerResource {
                 }
             } else {
                 s_logger.debug("Converting RBD disk " + disk.getPath() + " into template " + cmd.getUniqueName());
-                Script.runSimpleBashScript("qemu-img convert"
-                        + " -f raw -O qcow2 "
-                        + KVMPhysicalDisk.RBDStringBuilder(primary.getSourceHost(),
+
+                QemuImgFile srcFile = new QemuImgFile(KVMPhysicalDisk.RBDStringBuilder(primary.getSourceHost(),
                                 primary.getSourcePort(),
                                 primary.getAuthUserName(),
                                 primary.getAuthSecret(),
-                                disk.getPath())
-                                + " " + tmpltPath + "/" + cmd.getUniqueName() + ".qcow2");
+                                disk.getPath()));
+                srcFile.setFormat(PhysicalDiskFormat.RAW);
+
+                QemuImgFile destFile = new QemuImgFile(tmpltPath + "/" + cmd.getUniqueName() + ".qcow2");
+                destFile.setFormat(PhysicalDiskFormat.QCOW2);
+
+                QemuImg q = new QemuImg();
+                q.convert(srcFile, destFile);
+
                 File templateProp = new File(tmpltPath + "/template.properties");
                 if (!templateProp.exists()) {
                     templateProp.createNewFile();

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/500bba83/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
index b17633a..6cb6441 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
@@ -607,31 +607,27 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
             disk.setSize(template.getVirtualSize());
             disk.setVirtualSize(disk.getSize());
 
-            if (srcPool.getType() != StoragePoolType.RBD) {
-                Script.runSimpleBashScript("qemu-img convert"
-                        + " -f " + template.getFormat()
-                        + " -O " + format
-                        + " " + template.getPath()
-                        + " " + KVMPhysicalDisk.RBDStringBuilder(destPool.getSourceHost(),
+            QemuImg qemu = new QemuImg();
+            QemuImgFile srcFile;
+            QemuImgFile destFile = new QemuImgFile(KVMPhysicalDisk.RBDStringBuilder(destPool.getSourceHost(),
                                                 destPool.getSourcePort(),
                                                 destPool.getAuthUserName(),
                                                 destPool.getAuthSecret(),
                                                 disk.getPath()));
+            destFile.setFormat(format);
+
+            if (srcPool.getType() != StoragePoolType.RBD) {
+                srcFile = new QemuImgFile(template.getPath(), template.getFormat());
+                qemu.convert(srcFile, destFile);
             } else {
                 template.setFormat(PhysicalDiskFormat.RAW);
-                Script.runSimpleBashScript("qemu-img convert"
-                        + " -f " + template.getFormat()
-                        + " -O " + format
-                        + " " + KVMPhysicalDisk.RBDStringBuilder(srcPool.getSourceHost(),
+                srcFile = new QemuImgFile(KVMPhysicalDisk.RBDStringBuilder(srcPool.getSourceHost(),
                                                 srcPool.getSourcePort(),
                                                 srcPool.getAuthUserName(),
                                                 srcPool.getAuthSecret(),
-                                                template.getPath())
-                        + " " + KVMPhysicalDisk.RBDStringBuilder(destPool.getSourceHost(),
-                                                destPool.getSourcePort(),
-                                                destPool.getAuthUserName(),
-                                                destPool.getAuthSecret(),
-                                                disk.getPath()));
+                                                template.getPath()));
+                srcFile.setFormat(template.getFormat());
+                qemu.convert(srcFile, destFile);
             }
         }
         return disk;
@@ -690,39 +686,44 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
         PhysicalDiskFormat sourceFormat = disk.getFormat();
         PhysicalDiskFormat destFormat = newDisk.getFormat();
 
+        QemuImg qemu = new QemuImg();
+        QemuImgFile srcFile = null;
+        QemuImgFile destFile = null;
+
         if ((srcPool.getType() != StoragePoolType.RBD) && (destPool.getType() != StoragePoolType.RBD)) {
             if (sourceFormat.equals(destFormat) && 
                 Script.runSimpleBashScript("qemu-img info " + sourcePath + "|grep backing") == null) {
                 Script.runSimpleBashScript("cp -f " + sourcePath + " " + destPath);
 
             } else {
-                Script.runSimpleBashScript("qemu-img convert -f " + sourceFormat
-                    + " -O " + destFormat
-                    + " " + sourcePath
-                    + " " + destPath);
+                srcFile = new QemuImgFile(sourcePath, sourceFormat);
+                destFile = new QemuImgFile(destPath, destFormat);
             }
         } else if ((srcPool.getType() != StoragePoolType.RBD) && (destPool.getType() == StoragePoolType.RBD))  {
-            Script.runSimpleBashScript("qemu-img convert -f " + sourceFormat
-                    + " -O " + destFormat
-                    + " " + sourcePath
-                    + " " + KVMPhysicalDisk.RBDStringBuilder(destPool.getSourceHost(),
+            srcFile = new QemuImgFile(sourcePath, sourceFormat);
+            destFile = new QemuImgFile(KVMPhysicalDisk.RBDStringBuilder(destPool.getSourceHost(),
                                                 destPool.getSourcePort(),
                                                 destPool.getAuthUserName(),
                                                 destPool.getAuthSecret(),
                                                 destPath));
+            destFile.setFormat(destFormat);
         } else {
-            Script.runSimpleBashScript("qemu-img convert -f " + sourceFormat
-                    + " -O " + destFormat
-                    + " " + KVMPhysicalDisk.RBDStringBuilder(srcPool.getSourceHost(),
+            srcFile = new QemuImgFile(KVMPhysicalDisk.RBDStringBuilder(srcPool.getSourceHost(),
                                                 srcPool.getSourcePort(),
                                                 srcPool.getAuthUserName(),
                                                 srcPool.getAuthSecret(),
-                                                sourcePath)
-                    + " " + KVMPhysicalDisk.RBDStringBuilder(destPool.getSourceHost(),
+                                                sourcePath));
+            srcFile.setFormat(sourceFormat);
+            destFile = new QemuImgFile(KVMPhysicalDisk.RBDStringBuilder(destPool.getSourceHost(),
                                                 destPool.getSourcePort(),
                                                 destPool.getAuthUserName(),
                                                 destPool.getAuthSecret(),
                                                 destPath));
+            destFile.setFormat(destFormat);
+        }
+
+        if (srcFile != null && destFile != null) {
+            qemu.convert(srcFile, destFile);
         }
 
         return newDisk;