blob: dac8e78d6c95850ec2181f56ff0b38d26edc7c08 (
plain) (
tree)
|
|
package org.openslx.util.vm;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.List;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.openslx.bwlp.thrift.iface.OperatingSystem;
import org.openslx.bwlp.thrift.iface.Virtualizer;
public class VboxMetaData extends VmMetaData
{
private static final Virtualizer virtualizer = new Virtualizer( "virtualbox", "VirtualBox" );
private final VboxConfig config;
public VboxMetaData( List<OperatingSystem> osList, File file ) throws IOException, UnsupportedVirtualizerFormatException
{
super( osList );
this.config = new VboxConfig( file );
init();
}
public VboxMetaData( List<OperatingSystem> osList, byte[] vmContent, int length ) throws IOException, UnsupportedVirtualizerFormatException
{
super( osList );
this.config = new VboxConfig( vmContent.toString(), length );
init();
}
private void init()
{
this.config.init();
displayName = config.getDisplayName();
setOs( "virtualbox", config.getOsName() );
for ( HardDisk hardDisk : config.getHdds() ) {
hdds.add( hardDisk );
}
try {
WriteToFile();
} catch ( TransformerFactoryConfigurationError | TransformerException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// --TODO will be needed later again
private void WriteToFile() throws TransformerFactoryConfigurationError, TransformerException
{
Transformer transformer = TransformerFactory.newInstance().newTransformer();
StreamResult output = new StreamResult( new File( "output.xml" ) );
Source input = new DOMSource( config.getConfigDoc() );
transformer.transform( input, output );
}
@Override
public Virtualizer getVirtualizer()
{
return new Virtualizer( "virtualbox", "VirtualBox" );
}
@Override
public void enableUsb( boolean enabled )
{
// TODO Auto-generated method stub
}
@Override
public void applySettingsForLocalEdit()
{
// TODO Auto-generated method stub
}
@Override
public byte[] getFilteredDefinitionArray()
{
// TODO Auto-generated method stub
return config.toString().getBytes( StandardCharsets.UTF_8 );
}
@Override
public boolean addHddTemplate( String diskImagePath, String hddMode, String redoDir )
{
// TODO Auto-generated method stub
return false;
}
@Override
public boolean addDefaultNat()
{
// TODO Auto-generated method stub
return false;
}
@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;
}
// TODO: the part after getting the byte[] from the Server and doing stuff with it...SoundCard types etc...
}
|