diff options
author | Christopher Lucas | 2018-12-07 15:34:11 +0100 |
---|---|---|
committer | Christopher Lucas | 2018-12-07 15:34:11 +0100 |
commit | 6a893099c4229020f4f439fe6388dbc41243f423 (patch) | |
tree | 84b7e7610a76ad2ddf28de69e5ebf9bda6309d65 /src/main/java/org/openslx/util/vm/QemuConfig.java | |
parent | Optimized Upload with new Map and Enum system (diff) | |
download | master-sync-shared-6a893099c4229020f4f439fe6388dbc41243f423.tar.gz master-sync-shared-6a893099c4229020f4f439fe6388dbc41243f423.tar.xz master-sync-shared-6a893099c4229020f4f439fe6388dbc41243f423.zip |
Upload and Download working
Diffstat (limited to 'src/main/java/org/openslx/util/vm/QemuConfig.java')
-rw-r--r-- | src/main/java/org/openslx/util/vm/QemuConfig.java | 77 |
1 files changed, 65 insertions, 12 deletions
diff --git a/src/main/java/org/openslx/util/vm/QemuConfig.java b/src/main/java/org/openslx/util/vm/QemuConfig.java index 8348790..3bf1742 100644 --- a/src/main/java/org/openslx/util/vm/QemuConfig.java +++ b/src/main/java/org/openslx/util/vm/QemuConfig.java @@ -137,6 +137,7 @@ public final class QemuConfig { int index = -1; int nbDev = 0; int nbDrive = 0; + int nbNetDev = 0; ArrayList<String> listID = new ArrayList<>(); LinkedHashMap<String, String> headers = null; @@ -163,12 +164,32 @@ public final class QemuConfig { } headers.put(DRIVE.getHeader(), DRIVE.getID()); nbDrive++; + exist = false; } else if (option.equals(DRIVE.getHeader())) {//Check drive without id DRIVE.setID("id-disk-" + nbDrive); listID.add(DRIVE.getID()); headers.put(option, DRIVE.getID()); nbDrive++; - // } else if (option.equals(NETDEV.toString())){//Check drive without id TODO + } else if (option.contains(NETDEV.getHeader()) && option.contains(quote)){//Check netdev with id + String[] netdev = option.split(quote); + for (String id : listID) { + if (netdev[1].equals(id)) { + NETDEV.setID("id-netdev-"+nbNetDev); + listID.add(NETDEV.getID()); + exist = true; + } + } + if (!exist) { + NETDEV.setID(netdev[1]); + listID.add(NETDEV.getID()); + } + headers.put(NETDEV.getHeader(), NETDEV.getID()); + nbNetDev++; + exist = false; + } else if (option.equals(NETDEV.toString())){//Check drive without id + NETDEV.setID("id-netdev-"+nbNetDev); + listID.add(NETDEV.getID()); + headers.put(option, NETDEV.getID()); } else if (option.equals(DEVICE.getHeader())) {//This will alwas come as [device] DRIVE.setID("dev" + nbDev); headers.put(option, DRIVE.getID()); @@ -258,9 +279,7 @@ public final class QemuConfig { } //Get Bus Type String busType = entry.getValue().get("if"); - if (busType == null) { - bus = DriveBusType.IDE; - } else { + if (busType != null) { switch (busType) { case "ide": bus = DriveBusType.IDE; @@ -274,13 +293,16 @@ public final class QemuConfig { default: break; } + } else { + bus = DriveBusType.NONE; } } } - } //TODO set default device if no device found + } if (entry.getKey().containsKey(DEVICE.getHeader())) { String drive = entry.getValue().get("drive"); if (drive != null && drive.equals(DRIVE.getID())) { + DEVICE.setID(drive); controllerDevice = entry.getValue().get("driver"); } } @@ -291,10 +313,25 @@ public final class QemuConfig { } //No device if (dev == 0) { - if (bus.equals(DriveBusType.IDE)) { - controllerDevice = "ide-hd"; - }else if (bus.equals(DriveBusType.SCSI)) { - controllerDevice = "scsi-hd"; + if (bus != null) { + switch (bus) { + case IDE: + controllerDevice = "ide-hd"; + break; + case SCSI: + controllerDevice = "scsi-hd"; + break; + case NONE: + controllerDevice = ""; + break; + default: + break; + } + { + + } + } else { + controllerDevice = ""; } } if ((bus != null) && (filename != null) && (controllerDevice != null)) { @@ -323,7 +360,7 @@ public final class QemuConfig { for (Map.Entry<LinkedHashMap<String, String>, TreeMap<String, String>> entry : sortedArray == null ? entries.entrySet() : sortedArray.entrySet()) { - String header = entry.getKey().keySet().toString();; + String header = entry.getKey().keySet().toString(); if (entry.getKey().containsKey(DRIVE.getHeader())) { if ((entry.getValue().get("index") != null)) { @@ -332,6 +369,14 @@ public final class QemuConfig { } else { continue; } + } else if (entry.getValue().get("media") != null) { + DRIVE.setID(entry.getKey().get(DRIVE.getHeader())); + header = DRIVE.toString(); + } else if (entry.getValue().get("if") != null) { + if (entry.getValue().get("if").equals("floppy")) { + DRIVE.setID(entry.getKey().get(DRIVE.getHeader())); + header = DRIVE.toString(); + } } else { continue; } @@ -346,10 +391,18 @@ public final class QemuConfig { for (String key : values.keySet()) { String value = values.get(key); - sb.append(" " + key + " = " + value + "\n"); + if (value == null) { + sb.append(" " + key + " = " + value + "\n"); + } else { + if (key.equals("driver")) { + if (value.isEmpty()) { + continue; + } + } + sb.append(" " + key + " = " + quote + value + quote + "\n"); + } } } - LOGGER.debug(sb); return sb.toString(); } } |