summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2018-12-11 10:47:17 +0100
committerSimon Rettberg2018-12-11 10:47:17 +0100
commitee74f04fe01b32cdd5a859730a78f19e7e01a938 (patch)
treeec9f667f44ddf3c5051ce510b55a1ebc9714572d
parent[*] Follow changes in m-s-s to load/save predef netshare/filters (diff)
downloadtutor-module-ee74f04fe01b32cdd5a859730a78f19e7e01a938.tar.gz
tutor-module-ee74f04fe01b32cdd5a859730a78f19e7e01a938.tar.xz
tutor-module-ee74f04fe01b32cdd5a859730a78f19e7e01a938.zip
Revert "[client] Get rid of Feature checks; RPC version was bumped"
This reverts commit b9f993161d7a8472e82f2c747c2361a3ba411b6a.
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java13
-rwxr-xr-xdozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LdapFilterConfigurator.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java8
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java15
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java9
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java23
6 files changed, 52 insertions, 18 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java
index 57c167e9..ea339651 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java
@@ -16,6 +16,7 @@ import org.openslx.dozmod.gui.helper.MessageType;
import org.openslx.dozmod.state.UploadWizardState;
import org.openslx.dozmod.thrift.Session;
import org.openslx.dozmod.thrift.UploadInitiator;
+import org.openslx.sat.thrift.version.Feature;
import org.openslx.thrifthelper.ThriftManager;
import org.openslx.util.QuickTimer;
import org.openslx.util.QuickTimer.Task;
@@ -33,10 +34,14 @@ public class UploadPanel extends TransferPanel {
public UploadPanel(UploadWizardState state) {
super(state.upload.getUploadTask(), state.name, state.diskFile.getName());
- chkServerSideCopy = new JCheckBox("ServerSide Copy");
- footer.add(Box.createHorizontalStrut(15));
- footer.add(chkServerSideCopy);
- chkServerSideCopy.addActionListener(new SscToggle());
+ if (!Session.hasFeature(Feature.SERVER_SIDE_COPY)) {
+ chkServerSideCopy = null;
+ } else {
+ chkServerSideCopy = new JCheckBox("ServerSide Copy");
+ footer.add(Box.createHorizontalStrut(15));
+ footer.add(chkServerSideCopy);
+ chkServerSideCopy.addActionListener(new SscToggle());
+ }
btnClose.addActionListener(new ButtonAction());
this.state = state.upload;
state.upload.getUploadTask().addListener(this);
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LdapFilterConfigurator.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LdapFilterConfigurator.java
index 6ebd180f..08fd52da 100755
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LdapFilterConfigurator.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LdapFilterConfigurator.java
@@ -147,7 +147,7 @@ public class LdapFilterConfigurator extends LdapFilterConfiguratorLayout {
public List<LdapFilter> getState() {
List<Wrapper<LdapFilter>> current = tblFilters.getData();
if (current == null)
- return new ArrayList<>(0);
+ return new ArrayList<>(0);;
ArrayList<LdapFilter> ret = new ArrayList<>(current.size());
for (Wrapper<LdapFilter> item : current) {
if (item.isChecked() || item.item.filterId == 0) {
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
index 241656f6..1dacf8df 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
@@ -66,6 +66,7 @@ import org.openslx.dozmod.thrift.cache.MetaDataCache;
import org.openslx.dozmod.thrift.cache.UserCache;
import org.openslx.dozmod.util.DesktopEnvironment;
import org.openslx.dozmod.util.FormatHelper;
+import org.openslx.sat.thrift.version.Feature;
import org.openslx.thrifthelper.Comparators;
import org.openslx.thrifthelper.TConst;
import org.openslx.thrifthelper.ThriftManager;
@@ -324,7 +325,8 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
&& ImagePerms.canEdit(image) && (image.shareMode == ShareMode.LOCAL
|| image.shareMode == ShareMode.PUBLISH));
mnuDelete.setEnabled(ImagePerms.canEdit(image));
- mnuExtendExpiryDate.setEnabled(!multiSelection && selectedVersion.isValid);
+ mnuExtendExpiryDate.setEnabled(!multiSelection && (selectedVersion.isValid
+ || Session.hasFeature(Feature.EXTEND_EXPIRED_VM)));
pop.show(e.getComponent(), e.getX(), e.getY());
}
}
@@ -491,8 +493,8 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
* masterserver.
*/
private void uploadToMaster() {
- // TODO 04.2018: bail if we the user tries to publish a non-vmware image.
- if (!TConst.VIRT_VMWARE.equals(image.virtId)) {
+ // 04.2018: bail if we the user tries to publish a non-vmware image.
+ if (Session.hasFeature(Feature.MULTIPLE_HYPERVISORS) && !TConst.VIRT_VMWARE.equals(image.virtId)) {
Gui.showMessageBox(
MetaDataCache.getVirtualizerById(image.virtId).virtName
+ " ist derzeit nicht für den öffentlichen Austausch freigegeben.",
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java
index 117ca324..c81af1a6 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java
@@ -42,6 +42,7 @@ import org.openslx.dozmod.thrift.ThriftError;
import org.openslx.dozmod.thrift.cache.ImagePublishedCache;
import org.openslx.dozmod.thrift.cache.OrganizationCache;
import org.openslx.dozmod.thrift.cache.UserCache;
+import org.openslx.sat.thrift.version.Feature;
import org.openslx.thrifthelper.TConst;
import org.openslx.thrifthelper.ThriftManager;
import org.openslx.util.QuickTimer;
@@ -253,14 +254,16 @@ public class ImagePublishedWindow extends ImagePublishedWindowLayout implements
final List<ImageSummaryRead> imagePublishedList = ImagePublishedCache.get(forceRefresh);
if (imagePublishedList == null)
return;
- // TODO 04.2018: Safety check to hide the non-vmware images from the list
+ // 04.2018: Safety check to hide the non-vmware images from the list
// in case they somehow manage to get published. Remove this when we
// support publishing images from other hypervisors.
- for (Iterator<ImageSummaryRead> iter = imagePublishedList.listIterator(); iter
- .hasNext();) {
- ImageSummaryRead current = iter.next();
- if (current != null && !current.virtId.equals(TConst.VIRT_VMWARE)) {
- iter.remove();
+ if (Session.hasFeature(Feature.MULTIPLE_HYPERVISORS)) {
+ for (Iterator<ImageSummaryRead> iter = imagePublishedList.listIterator(); iter
+ .hasNext();) {
+ ImageSummaryRead current = iter.next();
+ if (current != null && !current.virtId.equals(TConst.VIRT_VMWARE)) {
+ iter.remove();
+ }
}
}
Gui.asyncExec(new Runnable() {
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java
index dd049c79..4eae542c 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java
@@ -43,6 +43,7 @@ import org.openslx.dozmod.gui.helper.GridManager;
import org.openslx.dozmod.thrift.Session;
import org.openslx.dozmod.thrift.cache.MetaDataCache;
import org.openslx.dozmod.util.FormatHelper;
+import org.openslx.sat.thrift.version.Feature;
import org.openslx.thrifthelper.Comparators;
@SuppressWarnings("serial")
@@ -407,8 +408,12 @@ public abstract class LectureDetailsWindowLayout extends JDialog {
pnlTabs.addTab("VM-Start", pnlTabRunscript);
}
pnlTabs.addTab("Berechtigungen", pnlTabPermissions);
- pnlTabs.addTab("Netzlaufwerke", pnlTabNetshare);
- pnlTabs.addTab("LDAP-Filter", pnlTabLdapFilter);
+ if (Session.hasFeature(Feature.NETWORK_SHARES)) {
+ pnlTabs.addTab("Netzlaufwerke", pnlTabNetshare);
+ }
+ if (Session.hasFeature(Feature.LECTURE_FILTER_LDAP)) {
+ pnlTabs.addTab("LDAP-Filter", pnlTabLdapFilter);
+ }
add(pnlTabs, BorderLayout.CENTER);
// usage counter + button panel on the bottom
JPanel buttonPanel = new JPanel();
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 87555a4a..16ca257e 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,16 +23,20 @@ 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.thrifthelper.TConst;
import org.openslx.util.vm.DiskImage;
import org.openslx.util.vm.DiskImage.UnknownImageFormatException;
+import org.openslx.util.vm.UnsupportedVirtualizerFormatException;
import org.openslx.util.vm.VmMetaData;
import org.openslx.util.vm.VmMetaData.HardDisk;
+import org.openslx.util.vm.VmwareMetaData;
/**
* Page for uploading a new image.
@@ -82,7 +86,13 @@ public class ImageUploadPage extends ImageUploadPageLayout {
browseForVm();
}
});
- allSupportedFilter = new FileNameExtensionFilter("All Supported", "vmx", "vbox");
+ // 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");
+ }
btnBrowseForImage.requestFocus();
}
@@ -90,7 +100,9 @@ public class ImageUploadPage extends ImageUploadPageLayout {
QFileChooser fc = new QFileChooser(Config.getUploadPath(), false);
fc.setAcceptAllFileFilterUsed(false);
fc.addChoosableFileFilter(vmxFilter);
- fc.addChoosableFileFilter(vboxFilter);
+ if (Session.hasFeature(Feature.MULTIPLE_HYPERVISORS)) {
+ fc.addChoosableFileFilter(vboxFilter);
+ }
fc.addChoosableFileFilter(allSupportedFilter);
fc.setFileFilter(allSupportedFilter);
// differentiate between existing and new VMs
@@ -131,6 +143,13 @@ public class ImageUploadPage extends ImageUploadPageLayout {
}
final String fileformat = state.meta.getVirtualizer().virtName;
+ // bail if multiple hypervisors are not supported
+ if (!(state.meta instanceof VmwareMetaData) && !Session.hasFeature(Feature.MULTIPLE_HYPERVISORS)) {
+ setErrorMessage("Der Hypervisor der gewählten VM (" + fileformat
+ + ") wird vom aktuellen Satellitenserver nicht unterstützt.");
+ setPageComplete(false);
+ return;
+ }
// check if the user somehow changed the type of the VM
if (existingImage != null && !existingImage.virtId.equals(state.meta.getVirtualizer().virtId)) {
Virtualizer existingImageVirtualizer = MetaDataCache.getVirtualizerById(existingImage.virtId);