summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx
diff options
context:
space:
mode:
authorJonathan Bauer2018-04-20 15:03:40 +0200
committerJonathan Bauer2018-04-20 15:03:40 +0200
commit89b168ba08b4c0931de123ce0033469e241ee5f2 (patch)
treecfc17686edebdc4c3331f27af391f16e1daaeaa8 /dozentenmodul/src/main/java/org/openslx
parent[client] formatting (diff)
downloadtutor-module-89b168ba08b4c0931de123ce0033469e241ee5f2.tar.gz
tutor-module-89b168ba08b4c0931de123ce0033469e241ee5f2.tar.xz
tutor-module-89b168ba08b4c0931de123ce0033469e241ee5f2.zip
[client] respect Feature.MULTIPLE_HYPERVISOR
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java38
1 files changed, 25 insertions, 13 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
index cb24d846..09b73111 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
@@ -23,14 +23,15 @@ import org.openslx.dozmod.gui.helper.QFileChooser;
import org.openslx.dozmod.gui.wizard.Wizard;
import org.openslx.dozmod.gui.wizard.layout.ImageUploadPageLayout;
import org.openslx.dozmod.state.UploadWizardState;
+import org.openslx.dozmod.thrift.Session;
import org.openslx.dozmod.thrift.ThriftActions;
import org.openslx.dozmod.thrift.ThriftError;
import org.openslx.dozmod.thrift.UploadInitiator;
import org.openslx.dozmod.thrift.WrappedException;
import org.openslx.dozmod.thrift.cache.MetaDataCache;
+import org.openslx.sat.thrift.version.Feature;
import org.openslx.util.vm.DiskImage;
import org.openslx.util.vm.DiskImage.UnknownImageFormatException;
-import org.openslx.util.vm.QemuMetaData;
import org.openslx.util.vm.VboxMetaData;
import org.openslx.util.vm.VmMetaData;
import org.openslx.util.vm.VmMetaData.HardDisk;
@@ -48,14 +49,11 @@ public class ImageUploadPage extends ImageUploadPageLayout {
private String lastDetectedName = null;
private ImageDetailsRead existingImage = null;
- private final FileNameExtensionFilter allSupportedFilter = new FileNameExtensionFilter("All Supported",
- "vmx", "vbox", "qcow", "qcow2");
+ private final FileNameExtensionFilter allSupportedFilter;
private final FileNameExtensionFilter vmxFilter = new FileNameExtensionFilter("VMware Virtual Machine",
"vmx");
private final FileNameExtensionFilter vboxFilter = new FileNameExtensionFilter(
"VirtualBox Virtual Machine", "vbox");
- private final FileNameExtensionFilter qemuFilter = new FileNameExtensionFilter("Qemu Virtual Machine",
- "qcow2", "qcow");
public ImageUploadPage(Wizard wizard, UploadWizardState uploadWizardState,
final ImageDetailsRead existingImage) {
@@ -87,7 +85,13 @@ public class ImageUploadPage extends ImageUploadPageLayout {
browseForVm();
}
});
-
+ // initialize allSupportedFilter depending on whether multiple hypervisors
+ // are supported or not
+ if (Session.hasFeature(Feature.MULTIPLE_HYPERVISORS)) {
+ allSupportedFilter = new FileNameExtensionFilter("All Supported", "vmx", "vbox");
+ } else {
+ allSupportedFilter = new FileNameExtensionFilter("All Supported", "vmx", "vbox");
+ }
btnBrowseForImage.requestFocus();
}
@@ -95,8 +99,9 @@ public class ImageUploadPage extends ImageUploadPageLayout {
QFileChooser fc = new QFileChooser(Config.getUploadPath(), false);
fc.setAcceptAllFileFilterUsed(false);
fc.addChoosableFileFilter(vmxFilter);
- fc.addChoosableFileFilter(vboxFilter);
- fc.addChoosableFileFilter(qemuFilter);
+ if (Session.hasFeature(Feature.MULTIPLE_HYPERVISORS)) {
+ fc.addChoosableFileFilter(vboxFilter);
+ }
fc.addChoosableFileFilter(allSupportedFilter);
fc.setFileFilter(allSupportedFilter);
// differentiate between existing and new VMs
@@ -133,12 +138,19 @@ public class ImageUploadPage extends ImageUploadPageLayout {
String fileformat = "Konfigurations";
if (state.meta instanceof VmwareMetaData) {
fileformat = "vmx";
- } else if (state.meta instanceof VboxMetaData) {
- fileformat = "vbox";
- } else if (state.meta instanceof QemuMetaData) {
- fileformat = "qcow";
+ } else {
+ // bail if multiple hypervisors are not supported
+ if (!Session.hasFeature(Feature.MULTIPLE_HYPERVISORS)) {
+ setErrorMessage("Der Hypervisor der gewählten VM (" + state.meta.getVirtualizer().virtName
+ + ") wird nicht unterstützt.");
+ setPageComplete(false);
+ return;
+ }
+ if (state.meta instanceof VboxMetaData) {
+ fileformat = "vbox";
+ }
}
- // check if the guy somehow changed the type of the VM
+ // check if the user somehow changed the type of the VM
if (existingImage != null && existingImage.virtId != state.meta.getVirtualizer().virtId) {
Virtualizer existingImageVirtualizer = MetaDataCache.getVirtualizerById(existingImage.virtId);
String existingImageVirtualizerName = "<error>";