summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfiguration.java
diff options
context:
space:
mode:
authorManuel Bentele2021-05-05 09:37:45 +0200
committerManuel Bentele2021-05-05 09:37:45 +0200
commit07e2d0fdde3c85ea6d126e8986694a091f1803ff (patch)
treecd49d98653377d3003f24a95c0757bf1480bce14 /src/main/java/org/openslx/virtualization/configuration/VirtualizationConfiguration.java
parentAdd libosinfo database and validation schema files for Libvirt (diff)
downloadmaster-sync-shared-07e2d0fdde3c85ea6d126e8986694a091f1803ff.tar.gz
master-sync-shared-07e2d0fdde3c85ea6d126e8986694a091f1803ff.tar.xz
master-sync-shared-07e2d0fdde3c85ea6d126e8986694a091f1803ff.zip
Add OS detection for Libvirt/QEMU virtualization configurations
Diffstat (limited to 'src/main/java/org/openslx/virtualization/configuration/VirtualizationConfiguration.java')
-rw-r--r--src/main/java/org/openslx/virtualization/configuration/VirtualizationConfiguration.java51
1 files changed, 18 insertions, 33 deletions
diff --git a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfiguration.java b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfiguration.java
index 0ecd693..cd8af1e 100644
--- a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfiguration.java
+++ b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfiguration.java
@@ -8,7 +8,6 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Map.Entry;
import org.apache.log4j.Logger;
import org.openslx.bwlp.thrift.iface.OperatingSystem;
@@ -125,7 +124,7 @@ public abstract class VirtualizationConfiguration<T, U, W, X>
protected final List<HardDisk> hdds = new ArrayList<HardDisk>();
- private final List<OperatingSystem> osList;
+ protected final List<OperatingSystem> osList;
private OperatingSystem os = null;
@@ -180,6 +179,16 @@ public abstract class VirtualizationConfiguration<T, U, W, X>
{
return os;
}
+
+ /**
+ * Sets the operating system for the virtualization configuration.
+ *
+ * @param os operating system for the virtualization configuration.
+ */
+ public void setOs( OperatingSystem os )
+ {
+ this.os = os;
+ }
/**
* Get all hard disks of this VM.
@@ -216,43 +225,19 @@ public abstract class VirtualizationConfiguration<T, U, W, X>
public VirtualizationConfiguration( Virtualizer virtualizer, List<OperatingSystem> osList )
{
this.virtualizer = virtualizer;
- this.osList = osList;
+
+ if ( osList == null ) {
+ // create empty operating system list if none is specified
+ this.osList = new ArrayList<OperatingSystem>();
+ } else {
+ this.osList = osList;
+ }
// register virtual hardware models for graphical editing of virtual devices (GPU, sound, USB, ...)
this.registerVirtualHW();
}
/**
- * Called from subclass to set the OS. If the OS cannot be determined from the
- * given parameters, it will not be set.
- *
- * @param virtId
- * virtualizer, eg "vmware" for VMware
- * @param virtOsId
- * the os identifier used by the virtualizer, eg. windows7-64 for
- * 64bit Windows 7 on VMware
- */
- protected final void setOs( String virtId, String virtOsId )
- {
- OperatingSystem lazyMatch = null;
- for ( OperatingSystem os : osList ) {
- if ( os.getVirtualizerOsId() == null )
- continue;
- for ( Entry<String, String> entry : os.getVirtualizerOsId().entrySet() ) {
- if ( !entry.getValue().equals( virtOsId ) )
- continue;
- if ( entry.getKey().equals( virtId ) ) {
- this.os = os;
- return;
- } else {
- lazyMatch = os;
- }
- }
- }
- this.os = lazyMatch;
- }
-
- /**
* Returns a VmMetaData instance of the given machine description given as file
*
* @param osList List of supported operating systems