Updated Branches: refs/heads/qemu-img 2dd8181c9 -> be90c90f6
Implement the info method Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/be90c90f Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/be90c90f Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/be90c90f Branch: refs/heads/qemu-img Commit: be90c90f61b55deb8eba899d2dc77796cd6730dd Parents: 2dd8181 Author: Wido den Hollander <[email protected]> Authored: Fri Feb 15 17:32:21 2013 +0100 Committer: Wido den Hollander <[email protected]> Committed: Fri Feb 15 17:32:21 2013 +0100 ---------------------------------------------------------------------- .../org/apache/cloudstack/utils/qemu/QemuImg.java | 22 ++++++++++++++- 1 files changed, 21 insertions(+), 1 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/be90c90f/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 d32507e..33d9f8d 100644 --- a/utils/src/org/apache/cloudstack/utils/qemu/QemuImg.java +++ b/utils/src/org/apache/cloudstack/utils/qemu/QemuImg.java @@ -19,9 +19,12 @@ package org.apache.cloudstack.utils.qemu; import org.apache.cloudstack.utils.qemu.QemuImgFile; import com.cloud.utils.script.Script; +import com.cloud.utils.script.OutputInterpreter; +import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.HashMap; public class QemuImg { @@ -112,7 +115,24 @@ public class QemuImg { } /* Give information about the disk image */ - public void info(QemuImgFile file) { + public List<Map<String, String>> info(QemuImgFile file) { + Script s = new Script(_qemuImgPath); + s.add("info"); + s.add(file.getFileName()); + OutputInterpreter.AllLinesParser parser = new OutputInterpreter.AllLinesParser(); + s.execute(parser); + + List<Map<String, String>> list = new ArrayList<Map<String, String>>(); + String[] outputBuffer = parser.getLines().trim().split("\n"); + for (int i = 0; i < outputBuffer.length - 1; i++) { + String[] lineBuffer = outputBuffer[i].split(":"); + if (lineBuffer.length == 2) { + HashMap<String,String> info = new HashMap<String,String>(); + info.put(lineBuffer[0].trim(), lineBuffer[1].trim()); + list.add(info); + } + } + return list; }
