package org.openslx.util.vm;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.util.List;
import org.apache.log4j.Logger;
import org.openslx.bwlp.thrift.iface.OperatingSystem;
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 static final Logger LOGGER = Logger.getLogger( QemuMetaData.class );
private static final Virtualizer virtualizer = new Virtualizer( "qemukvm", "QEMU-KVM" );
public QemuMetaData( List<OperatingSystem> osList, File file )
{
super( osList );
displayName = "QemuVM";
setOs( "qemukvm", "anyOs" );
hdds.add( new HardDisk( "anychipset", DriveBusType.IDE, file.getAbsolutePath() ) );
}
public QemuMetaData( List<OperatingSystem> osList, byte[] vmContent )
{
super( osList );
config = new String( vmContent );
displayName = "QemuVM";
setOs( "qemukvm", "anyOs" );
}
private String configWithArgs()
{
String tempString = cpu + mem + display + network;
return config.replaceAll( "<args>", tempString );
}
@Override
public byte[] getFilteredDefinitionArray()
{
return configWithArgs().getBytes( StandardCharsets.UTF_8 );
}
@Override
public void applySettingsForLocalEdit()
{
String tempS = config.replaceAll( "#", "\n\r" );
config = tempS;
}
@Override
public boolean addHddTemplate( File diskImage, String hddMode, String redoDir )
{
String tempS = config.replaceAll( "<image>", diskImage.getAbsolutePath() );
config = tempS;
hdds.add( new HardDisk( "anychipset", DriveBusType.IDE, diskImage.getAbsolutePath() ) );
return true;
}
@Override
public boolean addHddTemplate( String diskImagePath, String hddMode, String redoDir )
{
String tempS = config.replaceAll( "<image>", diskImagePath );
config = tempS;
hdds.add( new HardDisk( "anychipset", DriveBusType.IDE, diskImagePath ) );
return true;
}
@Override
public boolean addDefaultNat()
{
return true;
}
@Override
public void setOs( String vendorOsId )
{
// TODO Auto-generated method stub
}
@Override
public boolean addDisplayName( String name )
{
// TODO Auto-generated method stub
return false;
}
@Override
public boolean addRam( int mem )
{
// TODO Auto-generated method stub
return false;
}
@Override
public void addFloppy( int index, String image, boolean readOnly )
{
// TODO Auto-generated method stub
}
@Override
public boolean addCdrom( String image )
{
// TODO Auto-generated method stub
return false;
}
@Override
public boolean addCpuCoreCount( int nrOfCores )
{
// TODO Auto-generated method stub
return false;
}
@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;
}
@Override
public boolean addEthernet( org.openslx.util.vm.VmMetaData.EtherType type )
{
// TODO Auto-generated method stub
return false;
}
@Override
public Virtualizer getVirtualizer()
{
return virtualizer;
}
@Override
public void enableUsb( boolean enabled )
{
// TODO Auto-generated method stub
}
@Override
public boolean disableSuspend()
{
// TODO Auto-generated method stub
return false;
}
@Override
public void populateTheMaps()
{
// TODO Auto-generated method stub
}
}