diff options
author | Simon Rettberg | 2018-09-17 13:58:58 +0200 |
---|---|---|
committer | Simon Rettberg | 2018-09-17 13:58:58 +0200 |
commit | 669f5df1a6a00799053cfcbc8c7209f8f4afb233 (patch) | |
tree | 4752834a79f6ed0d879c83cf6d2e9fed91dbc74b /src/main/java/org/openslx/util/vm/QemuMetaData.java | |
parent | remove unused import (diff) | |
download | master-sync-shared-669f5df1a6a00799053cfcbc8c7209f8f4afb233.tar.gz master-sync-shared-669f5df1a6a00799053cfcbc8c7209f8f4afb233.tar.xz master-sync-shared-669f5df1a6a00799053cfcbc8c7209f8f4afb233.zip |
Improve VM descriütion file detection and parsing
Diffstat (limited to 'src/main/java/org/openslx/util/vm/QemuMetaData.java')
-rw-r--r-- | src/main/java/org/openslx/util/vm/QemuMetaData.java | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/main/java/org/openslx/util/vm/QemuMetaData.java b/src/main/java/org/openslx/util/vm/QemuMetaData.java index ad02a96..dcb3b68 100644 --- a/src/main/java/org/openslx/util/vm/QemuMetaData.java +++ b/src/main/java/org/openslx/util/vm/QemuMetaData.java @@ -1,6 +1,8 @@ package org.openslx.util.vm; import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.List; @@ -10,6 +12,8 @@ import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.OperatingSystem; import org.openslx.bwlp.thrift.iface.Virtualizer; import org.openslx.thrifthelper.TConst; +import org.openslx.util.vm.DiskImage.ImageFormat; +import org.openslx.util.vm.DiskImage.UnknownImageFormatException; public class QemuMetaData extends VmMetaData<VBoxSoundCardMeta, VBoxDDAccelMeta, VBoxHWVersionMeta, VBoxEthernetDevTypeMeta> { @@ -21,9 +25,18 @@ public class QemuMetaData extends VmMetaData<VBoxSoundCardMeta, VBoxDDAccelMeta, private static final Virtualizer virtualizer = new Virtualizer( TConst.VIRT_QEMU, "QEMU-KVM" ); - public QemuMetaData( List<OperatingSystem> osList, File file ) + public QemuMetaData( List<OperatingSystem> osList, File file ) throws FileNotFoundException, IOException, UnsupportedVirtualizerFormatException { super( osList ); + DiskImage di; + try { + di = new DiskImage( file ); + } catch ( UnknownImageFormatException e ) { + di = null; + } + if ( di == null || di.format != ImageFormat.QCOW2 ) { + throw new UnsupportedVirtualizerFormatException( "This is not a qcow2 disk image" ); + } config = "qemu-system-i386 <args> <image> -enable-kvm \n\r qemu-system-x86_64 <args> <image> -enable-kvm"; displayName = file.getName().substring( 0, file.getName().indexOf( "." ) ); setOs( "anyOs" ); @@ -31,14 +44,6 @@ public class QemuMetaData extends VmMetaData<VBoxSoundCardMeta, VBoxDDAccelMeta, makeStartSequence(); } - public QemuMetaData( List<OperatingSystem> osList, byte[] vmContent ) - { - super( osList ); - config = new String( vmContent ); - displayName = "QemuVM"; - setOs( "anyOs" ); - } - // initiates the arguments map with a default working sequence that will later be used in the definition array public void makeStartSequence() { |