diff options
author | Jonathan Bauer | 2016-09-02 15:04:51 +0200 |
---|---|---|
committer | Jonathan Bauer | 2016-09-02 15:04:51 +0200 |
commit | 7a975667e311d11ae520f146de8d32b5b29f151f (patch) | |
tree | 2c934484621d53b77ddddaa85826838f2ee18e85 /src/main/java/org/openslx/util/vm | |
parent | new API version (diff) | |
download | master-sync-shared-7a975667e311d11ae520f146de8d32b5b29f151f.tar.gz master-sync-shared-7a975667e311d11ae520f146de8d32b5b29f151f.tar.xz master-sync-shared-7a975667e311d11ae520f146de8d32b5b29f151f.zip |
vmx editor stuff
Diffstat (limited to 'src/main/java/org/openslx/util/vm')
-rw-r--r-- | src/main/java/org/openslx/util/vm/VmwareConfig.java | 9 | ||||
-rw-r--r-- | src/main/java/org/openslx/util/vm/VmwareMetaData.java | 14 |
2 files changed, 19 insertions, 4 deletions
diff --git a/src/main/java/org/openslx/util/vm/VmwareConfig.java b/src/main/java/org/openslx/util/vm/VmwareConfig.java index aa82419..c0e30f6 100644 --- a/src/main/java/org/openslx/util/vm/VmwareConfig.java +++ b/src/main/java/org/openslx/util/vm/VmwareConfig.java @@ -90,6 +90,12 @@ public class VmwareConfig } public static BufferedReader getVmxReader( byte[] vmxContent, int length ) throws IOException { + Charset cs = getCharset(vmxContent, length); + return new BufferedReader( new InputStreamReader( new ByteArrayInputStream( vmxContent, 0, length ), cs ) ); + + } + + public static Charset getCharset( byte[] vmxContent, int length ) { String csName = detectCharset( new ByteArrayInputStream( vmxContent, 0, length ) ); Charset cs = null; try { @@ -99,8 +105,7 @@ public class VmwareConfig } if ( cs == null ) cs = StandardCharsets.ISO_8859_1; - return new BufferedReader( new InputStreamReader( new ByteArrayInputStream( vmxContent, 0, length ), cs ) ); - + return cs; } private String unescape( String value ) diff --git a/src/main/java/org/openslx/util/vm/VmwareMetaData.java b/src/main/java/org/openslx/util/vm/VmwareMetaData.java index 9192035..fef2b2d 100644 --- a/src/main/java/org/openslx/util/vm/VmwareMetaData.java +++ b/src/main/java/org/openslx/util/vm/VmwareMetaData.java @@ -52,8 +52,8 @@ public class VmwareMetaData extends VmMetaData public VmwareMetaData( List<OperatingSystem> osList, byte[] vmxContent, int length ) { super( osList ); - this.config = new VmwareConfig( vmxContent, length ); - init(); + this.config = new VmwareConfig( vmxContent, length ); // still unfiltered + init(); // now filtered } private void init() @@ -61,6 +61,10 @@ public class VmwareMetaData extends VmMetaData for ( Entry<String, ConfigEntry> entry : config.entrySet() ) { handleLoadEntry( entry ); } + // if we find this tag, we already went through the hdd's - so we're done. + if ( config.get("#SLX_HDD_BUS" ) != null) { + return; + } // Now find the HDDs and add to list for ( Entry<String, Controller> cEntry : disks.entrySet() ) { Controller controller = cEntry.getValue(); @@ -84,6 +88,7 @@ public class VmwareMetaData extends VmMetaData hdds.add( new HardDisk( controller.virtualDev, bus, device.filename ) ); } } + // Add HDD to cleaned vmx if ( !hdds.isEmpty() ) { HardDisk hdd = hdds.get( 0 ); @@ -305,6 +310,11 @@ public class VmwareMetaData extends VmMetaData return config.toString( true, false ).getBytes( StandardCharsets.UTF_8 ); } + public byte[] getDefinitionArray() + { + return config.toString( false, false ).getBytes( StandardCharsets.UTF_8 ); + } + @Override public Virtualizer getVirtualizer() { |