diff options
author | Manuel Bentele | 2021-05-05 09:37:45 +0200 |
---|---|---|
committer | Manuel Bentele | 2021-05-05 09:37:45 +0200 |
commit | 07e2d0fdde3c85ea6d126e8986694a091f1803ff (patch) | |
tree | cd49d98653377d3003f24a95c0757bf1480bce14 /src/main/java/org/openslx/virtualization/configuration/VirtualizationConfiguration.java | |
parent | Add libosinfo database and validation schema files for Libvirt (diff) | |
download | master-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.java | 51 |
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 |