summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/util/vm/QemuConfig.java
diff options
context:
space:
mode:
authorChristopher Lucas2018-12-07 15:34:11 +0100
committerChristopher Lucas2018-12-07 15:34:11 +0100
commit6a893099c4229020f4f439fe6388dbc41243f423 (patch)
tree84b7e7610a76ad2ddf28de69e5ebf9bda6309d65 /src/main/java/org/openslx/util/vm/QemuConfig.java
parentOptimized Upload with new Map and Enum system (diff)
downloadmaster-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.java77
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();
}
}