diff options
author | Victor Mocanu | 2018-01-26 14:38:30 +0100 |
---|---|---|
committer | Victor Mocanu | 2018-01-26 14:38:30 +0100 |
commit | 1d3d88fec3374f798034fe0db113e2bfd3230e36 (patch) | |
tree | 6dd816e1e900336130fca8e0f9fd92770ad030e0 /src/main | |
parent | [VBox] added new QemuMetaData class, class is built to work like the vbox and... (diff) | |
download | master-sync-shared-1d3d88fec3374f798034fe0db113e2bfd3230e36.tar.gz master-sync-shared-1d3d88fec3374f798034fe0db113e2bfd3230e36.tar.xz master-sync-shared-1d3d88fec3374f798034fe0db113e2bfd3230e36.zip |
[VBox - Qemu] refined and improved the qemu metadata class
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/org/openslx/util/vm/QemuMetaData.java | 68 |
1 files changed, 32 insertions, 36 deletions
diff --git a/src/main/java/org/openslx/util/vm/QemuMetaData.java b/src/main/java/org/openslx/util/vm/QemuMetaData.java index ddeb87e..6099f85 100644 --- a/src/main/java/org/openslx/util/vm/QemuMetaData.java +++ b/src/main/java/org/openslx/util/vm/QemuMetaData.java @@ -2,7 +2,9 @@ package org.openslx.util.vm; import java.io.File; import java.nio.charset.StandardCharsets; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.OperatingSystem; @@ -10,14 +12,10 @@ import org.openslx.bwlp.thrift.iface.Virtualizer; public class QemuMetaData extends VmMetaData<VBoxSoundCardMeta, VBoxDDAccelMeta, VBoxHWVersionMeta, VBoxEthernetDevTypeMeta> { - // default initiation sequence for 32 and 64 bit os instalations - private static String cpu = "-cpu host -smp 2"; - private static String mem = " -m 1024"; - private static String display = " -vga std"; - private static String network = ""; - //private static String boot = "-boot c"; // maybe used later - // the above strings will take the place of <args> in the config string - private static String config = "qemu-system-i386 <args> <image> -enable-kvm #qemu-system-x86_64 <args> <image> -enable-kvm"; + + private Map<String, String> arguments = new HashMap<String, String>(); + // the above map's elements will take the place of <args> in the config string + private static String config = "qemu-system-i386 <args> <image> -enable-kvm \n\r qemu-system-x86_64 <args> <image> -enable-kvm"; private static final Logger LOGGER = Logger.getLogger( QemuMetaData.class ); private static final Virtualizer virtualizer = new Virtualizer( "qemukvm", "QEMU-KVM" ); @@ -25,9 +23,10 @@ public class QemuMetaData extends VmMetaData<VBoxSoundCardMeta, VBoxDDAccelMeta, public QemuMetaData( List<OperatingSystem> osList, File file ) { super( osList ); - displayName = "QemuVM"; + displayName = file.getName().substring( 0, file.getName().indexOf( "." ) ); setOs( "qemukvm", "anyOs" ); hdds.add( new HardDisk( "anychipset", DriveBusType.IDE, file.getAbsolutePath() ) ); + makeStartSequence(); } public QemuMetaData( List<OperatingSystem> osList, byte[] vmContent ) @@ -38,9 +37,21 @@ public class QemuMetaData extends VmMetaData<VBoxSoundCardMeta, VBoxDDAccelMeta, setOs( "qemukvm", "anyOs" ); } + // initiates the arguments map with a default working sequence that will later be used in the definition array + public void makeStartSequence() + { + arguments.put( "cpu", "host" ); + arguments.put( "smp", "2" ); + arguments.put( "m", "1024" ); + arguments.put( "vga", "std" ); + } + private String configWithArgs() { - String tempString = cpu + mem + display + network; + String tempString = ""; + for ( String key : arguments.keySet() ) { + tempString += "-" + key + " " + arguments.get( key ) + " "; + } return config.replaceAll( "<args>", tempString ); } @@ -53,8 +64,6 @@ public class QemuMetaData extends VmMetaData<VBoxSoundCardMeta, VBoxDDAccelMeta, @Override public void applySettingsForLocalEdit() { - String tempS = config.replaceAll( "#", "\n\r" ); - config = tempS; } @Override @@ -98,8 +107,8 @@ public class QemuMetaData extends VmMetaData<VBoxSoundCardMeta, VBoxDDAccelMeta, @Override public boolean addRam( int mem ) { - // TODO Auto-generated method stub - return false; + this.arguments.put( "m", Integer.toString( mem ) ); + return true; } @Override @@ -119,77 +128,63 @@ public class QemuMetaData extends VmMetaData<VBoxSoundCardMeta, VBoxDDAccelMeta, @Override public boolean addCpuCoreCount( int nrOfCores ) { - // TODO Auto-generated method stub - return false; + this.arguments.put( "smp", Integer.toString( nrOfCores ) ); + return true; } @Override public void setSoundCard( org.openslx.util.vm.VmMetaData.SoundCardType type ) { - // TODO Auto-generated method stub - } @Override public org.openslx.util.vm.VmMetaData.SoundCardType getSoundCard() { - // TODO Auto-generated method stub return null; } @Override public void setDDAcceleration( org.openslx.util.vm.VmMetaData.DDAcceleration type ) { - // TODO Auto-generated method stub - } @Override public org.openslx.util.vm.VmMetaData.DDAcceleration getDDAcceleration() { - // TODO Auto-generated method stub return null; } @Override public void setHWVersion( org.openslx.util.vm.VmMetaData.HWVersion type ) { - // TODO Auto-generated method stub - } @Override public org.openslx.util.vm.VmMetaData.HWVersion getHWVersion() { - // TODO Auto-generated method stub return null; } @Override public void setEthernetDevType( int cardIndex, org.openslx.util.vm.VmMetaData.EthernetDevType type ) { - // TODO Auto-generated method stub - } @Override public org.openslx.util.vm.VmMetaData.EthernetDevType getEthernetDevType( int cardIndex ) { - // TODO Auto-generated method stub return null; } @Override public byte[] getDefinitionArray() { - // TODO Auto-generated method stub - return null; + return configWithArgs().getBytes( StandardCharsets.UTF_8 ); } @Override public boolean addEthernet( org.openslx.util.vm.VmMetaData.EtherType type ) { - // TODO Auto-generated method stub return false; } @@ -202,22 +197,23 @@ public class QemuMetaData extends VmMetaData<VBoxSoundCardMeta, VBoxDDAccelMeta, @Override public void enableUsb( boolean enabled ) { - // TODO Auto-generated method stub - + // TODO test this properly + if ( enabled ) { + arguments.put( "usb", "" ); + } else { + arguments.remove( "usb" ); + } } @Override public boolean disableSuspend() { - // TODO Auto-generated method stub return false; } @Override public void populateTheMaps() { - // TODO Auto-generated method stub - } } |