summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Mocanu2018-01-26 14:38:30 +0100
committerVictor Mocanu2018-01-26 14:38:30 +0100
commit1d3d88fec3374f798034fe0db113e2bfd3230e36 (patch)
tree6dd816e1e900336130fca8e0f9fd92770ad030e0
parent[VBox] added new QemuMetaData class, class is built to work like the vbox and... (diff)
downloadmaster-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
-rw-r--r--src/main/java/org/openslx/util/vm/QemuMetaData.java68
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
-
}
}