diff options
author | Victor Mocanu | 2017-09-21 13:52:21 +0200 |
---|---|---|
committer | Victor Mocanu | 2017-09-21 13:52:21 +0200 |
commit | 10043a2618938bb9a949204b44cfdbac71cdaa99 (patch) | |
tree | 920b095b89db1fd37515904ae832be6bea7ead3e /src/main | |
parent | [VBox] removed empty lines, the FilteredDefinitionArray looks good now (diff) | |
download | master-sync-shared-10043a2618938bb9a949204b44cfdbac71cdaa99.tar.gz master-sync-shared-10043a2618938bb9a949204b44cfdbac71cdaa99.tar.xz master-sync-shared-10043a2618938bb9a949204b44cfdbac71cdaa99.zip |
[VBox] changes to the VmWrapper class, it asks now for an VmMetaData child, is not hard coded
on VmxMetaData anymore
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/org/openslx/util/vm/VboxConfig.java | 2 | ||||
-rw-r--r-- | src/main/java/org/openslx/util/vm/VboxMetaData.java | 77 | ||||
-rw-r--r-- | src/main/java/org/openslx/util/vm/VmMetaData.java | 32 |
3 files changed, 97 insertions, 14 deletions
diff --git a/src/main/java/org/openslx/util/vm/VboxConfig.java b/src/main/java/org/openslx/util/vm/VboxConfig.java index 8e90c4e..d009bc1 100644 --- a/src/main/java/org/openslx/util/vm/VboxConfig.java +++ b/src/main/java/org/openslx/util/vm/VboxConfig.java @@ -86,7 +86,7 @@ public class VboxConfig * @args: filtered as String - sent from server * @return: no return value */ - public VboxConfig( String filtered ) throws IOException + public VboxConfig( String filtered, int length ) throws IOException { // TODO test this spoon try { diff --git a/src/main/java/org/openslx/util/vm/VboxMetaData.java b/src/main/java/org/openslx/util/vm/VboxMetaData.java index 0446d2a..dac8e78 100644 --- a/src/main/java/org/openslx/util/vm/VboxMetaData.java +++ b/src/main/java/org/openslx/util/vm/VboxMetaData.java @@ -1,6 +1,5 @@ package org.openslx.util.vm; - import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -17,13 +16,12 @@ 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 ); @@ -33,12 +31,20 @@ public class VboxMetaData extends VmMetaData init(); } - - private void init() { - this.config.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() ) { @@ -51,12 +57,12 @@ public class VboxMetaData extends VmMetaData 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" )); + StreamResult output = new StreamResult( new File( "output.xml" ) ); Source input = new DOMSource( config.getConfigDoc() ); transformer.transform( input, output ); } @@ -78,13 +84,62 @@ public class VboxMetaData extends VmMetaData { // 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... } diff --git a/src/main/java/org/openslx/util/vm/VmMetaData.java b/src/main/java/org/openslx/util/vm/VmMetaData.java index ed80e8e..7e67fe6 100644 --- a/src/main/java/org/openslx/util/vm/VmMetaData.java +++ b/src/main/java/org/openslx/util/vm/VmMetaData.java @@ -174,10 +174,38 @@ public abstract class VmMetaData } // meta object needed when reading from configarray - public static VmMetaData getInstance(List<OperatingSystem> osList, byte[] vmContent, int length) { + public static VmMetaData getInstance(List<OperatingSystem> osList, byte[] vmContent, int length) throws IOException { - VmMetaData metaData = null; + VmMetaData meta = null; + try { + meta = new VmwareMetaData( osList, vmContent, length ); + } catch (UnsupportedVirtualizerFormatException e) { + LOGGER.debug( "machine Description entspricht nicht vmx format; versuche mit VBox" ); + try { + meta = new VboxMetaData( osList, vmContent, length ); + } catch (UnsupportedVirtualizerFormatException ex) { + LOGGER.debug( "machine Description entspricht nicht vbox format ); unterbrochen!", ex); + } + if (meta != null) { + return meta; + } + return null; + } return null; } + + public abstract boolean addHddTemplate( String diskImagePath, String hddMode, String redoDir ); + + public abstract boolean addDefaultNat(); + + public abstract void setOs( String vendorOsId ); + + public abstract boolean addDisplayName( String name ); + + public abstract boolean addRam( int mem ); + + public abstract void addFloppy( int index, String image, boolean readOnly ); + + public abstract boolean addCdrom( String image ); } |