summaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
authorVictor Mocanu2017-09-21 13:52:21 +0200
committerVictor Mocanu2017-09-21 13:52:21 +0200
commit10043a2618938bb9a949204b44cfdbac71cdaa99 (patch)
tree920b095b89db1fd37515904ae832be6bea7ead3e /src/main/java
parent[VBox] removed empty lines, the FilteredDefinitionArray looks good now (diff)
downloadmaster-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/java')
-rw-r--r--src/main/java/org/openslx/util/vm/VboxConfig.java2
-rw-r--r--src/main/java/org/openslx/util/vm/VboxMetaData.java77
-rw-r--r--src/main/java/org/openslx/util/vm/VmMetaData.java32
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 );
}