Initial skeleting for qemu-img wrapper This should eventually be used by the KVM agent at every place where it calls qemu-img.
It should also sync with the KVM Agent so that we don't have multiple places where we define Disk Formats. Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/e13d2687 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/e13d2687 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/e13d2687 Branch: refs/heads/qemu-img Commit: e13d2687df1924a6fc37f2af3e7f4b3217e34136 Parents: 4364cb9 Author: Wido den Hollander <[email protected]> Authored: Tue Feb 5 23:05:55 2013 +0100 Committer: Wido den Hollander <[email protected]> Committed: Thu Feb 14 15:01:58 2013 +0100 ---------------------------------------------------------------------- utils/src/org/apache/cloudstack/utils/QemuImg.java | 97 +++++++++++++++ 1 files changed, 97 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e13d2687/utils/src/org/apache/cloudstack/utils/QemuImg.java ---------------------------------------------------------------------- diff --git a/utils/src/org/apache/cloudstack/utils/QemuImg.java b/utils/src/org/apache/cloudstack/utils/QemuImg.java new file mode 100644 index 0000000..991d412 --- /dev/null +++ b/utils/src/org/apache/cloudstack/utils/QemuImg.java @@ -0,0 +1,97 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +package org.apache.cloudstack.utils; + +import java.util.List; +import java.util.Map; + +public class QemuImg { + + /* Shouldn't we have KVMPhysicalDisk and LibvirtVMDef read this? */ + public static enum PhysicalDiskFormat { + RAW("raw"), QCOW2("qcow2"); + String format; + + private PhysicalDiskFormat(String format) { + this.format = format; + } + + public String toString() { + return this.format; + } + } + + /* These are all methods supported by the qemu-img tool */ + + /* Perform a consistency check on the disk image */ + public static void check() { + + } + + /* Create a new disk image */ + public static void create(String filename, long size, PhysicalDiskFormat format, List<Map<String, String>> options) { + + } + + public static void create(String filename, long size, PhysicalDiskFormat format) { + QemuImg.create(filename, size, format, null); + } + + /* Convert the disk image filename or a snapshot snapshot_name to disk image output_filename using format output_fmt. */ + public static void convert() { + + } + + /* Commit the changes recorded in filename in its base image */ + public static void commit(String filename, PhysicalDiskFormat format) { + + } + + public static void commit(String filename) { + QemuImg.commit(filename, null); + } + + /* Give information about the disk image */ + public static void info(String filename, PhysicalDiskFormat format) { + + } + + public static void info(String filename) { + QemuImg.info(filename, null); + } + + /* List, apply, create or delete snapshots in image */ + public static void snapshot() { + + } + + /* Changes the backing file of an image */ + public static void rebase() { + + } + + /* Resize a disk image */ + public static void resize(String filename, long size) { + String newSize = null; + if (size > 0) { + newSize = "+" + size; + } else { + newSize = "-" + size; + } + } + +} \ No newline at end of file
