summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2016-04-25 14:16:04 +0200
committerSimon Rettberg2016-04-25 14:16:04 +0200
commit342fdf1aa19c3a4eeba70350558f4398f3bee4dc (patch)
treea91d22d4f2c0e3c141a343575000e73c8229bc23
parent[server] Add update query to make email field longer (diff)
downloadtutor-module-342fdf1aa19c3a4eeba70350558f4398f3bee4dc.tar.gz
tutor-module-342fdf1aa19c3a4eeba70350558f4398f3bee4dc.tar.xz
tutor-module-342fdf1aa19c3a4eeba70350558f4398f3bee4dc.zip
[client] Add handling for master<->sat transfers
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/PassiveTransfer.java12
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java4
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/PassiveUploadPanel.java8
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java4
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageListWindowLayout.java51
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftError.java4
6 files changed, 65 insertions, 18 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/PassiveTransfer.java b/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/PassiveTransfer.java
index c4f030f3..a99e60bc 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/PassiveTransfer.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/PassiveTransfer.java
@@ -29,12 +29,15 @@ public class PassiveTransfer implements TransferEventEmitter {
private final String uploadToken;
+ private final boolean queryMaster;
+
private long lastThriftUpdate = 0;
private boolean isCancelled = false;
- public PassiveTransfer(String token) {
+ public PassiveTransfer(String token, boolean queryMaster) {
this.uploadToken = token;
+ this.queryMaster = queryMaster;
QuickTimer.scheduleAtFixedDelay(new Task() {
@Override
public void fire() {
@@ -75,7 +78,12 @@ public class PassiveTransfer implements TransferEventEmitter {
String error = null;
lastThriftUpdate = now;
try {
- TransferStatus uploadStatus = ThriftManager.getMasterClient().queryUploadStatus(uploadToken);
+ TransferStatus uploadStatus;
+ if (queryMaster) {
+ uploadStatus = ThriftManager.getMasterClient().queryUploadStatus(uploadToken);
+ } else {
+ uploadStatus = ThriftManager.getSatClient().queryUploadStatus(uploadToken);
+ }
state = uploadStatus.getState();
blocks = uploadStatus.getBlockStatus();
} catch (TInvalidTokenException e) {
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
index 6ca0a4d0..3ed14ad9 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
@@ -358,8 +358,8 @@ public abstract class MainWindow {
});
}
- public static void addUpload(String masterTransferToken, String name) {
- final PassiveTransfer transfer = new PassiveTransfer(masterTransferToken);
+ public static void addPassiveTransfer(String transferToken, String name, boolean queryMaster) {
+ final PassiveTransfer transfer = new PassiveTransfer(transferToken, queryMaster);
addPanel(new PassiveUploadPanel(transfer, name));
transfer.addListener(new TransferEventListener() {
@Override
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/PassiveUploadPanel.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/PassiveUploadPanel.java
index a889e7b6..c8a62736 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/PassiveUploadPanel.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/PassiveUploadPanel.java
@@ -16,7 +16,7 @@ public class PassiveUploadPanel extends TransferPanel {
private final PassiveUploadPanel panel = this;
public PassiveUploadPanel(TransferEventEmitter state, String name) {
- super(state, name, "");
+ super(state, name, "<Transfer zwischen Master-Server und Satelliten-Server>");
btnClose.addActionListener(new ButtonAction());
this.state = state;
state.addListener(this);
@@ -30,4 +30,10 @@ public class PassiveUploadPanel extends TransferPanel {
close();
}
}
+
+ @Override
+ public boolean wantConfirmQuit() {
+ return false;
+ }
+
}
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 6c08dff8..baa23b9a 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
@@ -419,10 +419,10 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
Gui.asyncExec(new Runnable() {
@Override
public void run() {
- MainWindow.addUpload(transferId, image.imageName);
+ MainWindow.addPassiveTransfer(transferId, image.imageName, true);
}
});
- Gui.asyncMessageBox("Läuft: " + transferId, MessageType.INFO, null, null);
+ // TODO? Should we show a message? Transfer runs between master and sat, we just watch it. You could even close the client now
} catch (TException e1) {
ThriftError.showMessage(me, LOGGER, e1,
"Upload der VM auf den Master-Server fehlgeschlagen");
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageListWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageListWindowLayout.java
index 53bfc2f1..fb83e911 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageListWindowLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageListWindowLayout.java
@@ -2,29 +2,33 @@ package org.openslx.dozmod.gui.window.layout;
import java.awt.BorderLayout;
import java.awt.Font;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
-import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JPanel;
-import javax.swing.JSeparator;
-import javax.swing.SwingConstants;
import org.apache.log4j.Logger;
+import org.apache.thrift.TException;
import org.openslx.dozmod.gui.Gui;
+import org.openslx.dozmod.gui.MainWindow;
import org.openslx.dozmod.gui.control.ImageListViewer;
import org.openslx.dozmod.gui.control.ImageListViewer.FilterType;
import org.openslx.dozmod.gui.control.QLabel;
import org.openslx.dozmod.gui.helper.CompositePage;
import org.openslx.dozmod.gui.helper.GridManager;
+import org.openslx.dozmod.thrift.Session;
+import org.openslx.dozmod.thrift.ThriftError;
+import org.openslx.thrifthelper.ThriftManager;
@SuppressWarnings("serial")
public abstract class ImageListWindowLayout extends CompositePage {
private final static Logger LOGGER = Logger.getLogger(ImageListWindowLayout.class);
-
+
private static final int ICON_SIZE_Y = 24;
protected final static String infoTextString = "Hier können Sie Virtuelle Maschinen hochladen, herunterladen, bearbeiten und löschen.";
@@ -66,12 +70,18 @@ public abstract class ImageListWindowLayout extends CompositePage {
JPanel buttonPanel = new JPanel();
buttonPanel.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0));
buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.LINE_AXIS));
- btnNewVm = new JButton(newButtonLabel, Gui.getScaledIconResource("/img/new-icon.png", "New VM", ICON_SIZE_Y, buttonPanel));
- btnEditDetails = new JButton(editButtonLabel, Gui.getScaledIconResource("/img/edit-icon.png", "Edit VM", ICON_SIZE_Y, buttonPanel));
- btnDelete = new JButton(deleteButtonLabel, Gui.getScaledIconResource("/img/red-cross.png", "Delete VM", ICON_SIZE_Y, buttonPanel));
- btnDownload = new JButton(downloadButtonLabel, Gui.getScaledIconResource("/img/download-icon.png", "New VM", ICON_SIZE_Y, buttonPanel));
- btnNewLecture = new JButton(newLectureButtonLabel, Gui.getScaledIconResource("/img/new-lecture-icon.png", "New Lecture", ICON_SIZE_Y, buttonPanel));
- btnSwitchView = new JButton(switchViewButtonLabel, Gui.getScaledIconResource("/img/switch-icon.png", "Switch", ICON_SIZE_Y, buttonPanel));
+ btnNewVm = new JButton(newButtonLabel, Gui.getScaledIconResource("/img/new-icon.png", "New VM",
+ ICON_SIZE_Y, buttonPanel));
+ btnEditDetails = new JButton(editButtonLabel, Gui.getScaledIconResource("/img/edit-icon.png",
+ "Edit VM", ICON_SIZE_Y, buttonPanel));
+ btnDelete = new JButton(deleteButtonLabel, Gui.getScaledIconResource("/img/red-cross.png",
+ "Delete VM", ICON_SIZE_Y, buttonPanel));
+ btnDownload = new JButton(downloadButtonLabel, Gui.getScaledIconResource("/img/download-icon.png",
+ "New VM", ICON_SIZE_Y, buttonPanel));
+ btnNewLecture = new JButton(newLectureButtonLabel, Gui.getScaledIconResource(
+ "/img/new-lecture-icon.png", "New Lecture", ICON_SIZE_Y, buttonPanel));
+ btnSwitchView = new JButton(switchViewButtonLabel, Gui.getScaledIconResource("/img/switch-icon.png",
+ "Switch", ICON_SIZE_Y, buttonPanel));
buttonPanel.add(btnNewVm);
buttonPanel.add(btnEditDetails);
buttonPanel.add(btnDelete);
@@ -82,6 +92,27 @@ public abstract class ImageListWindowLayout extends CompositePage {
buttonPanel.add(Box.createHorizontalGlue());
buttonPanel.add(btnSwitchView);
+ /*
+ * WARNING: Test crap
+ */
+ JButton butt = new JButton("LOL");
+ butt.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ try {
+ String token = ThriftManager.getSatClient().requestImageReplication(Session.getSatelliteToken(),
+ "e9de1941-b673-4711-b033-d8c37d1e2d3e");
+ MainWindow.addPassiveTransfer(token, "POO POO VM", false);
+ } catch (TException e1) {
+ ThriftError.showMessage(ImageListWindowLayout.this, null, e1, "BOO BOO");
+ }
+ }
+ });
+ buttonPanel.add(butt);
+ /*
+ * END TEST
+ */
+
// put everything together
GridManager grid = new GridManager(this, 1);
grid.add(infoPanel).fill(true, false).expand(true, false);
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftError.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftError.java
index 82f5807a..773b941f 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftError.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftError.java
@@ -34,7 +34,9 @@ public class ThriftError {
} else {
messageText += "\n\nUnerwartete Ausnahme " + ex.getClass().getSimpleName() + " ist aufgetreten.";
}
- logger.warn("A thrift call raised an exception", ex);
+ if (logger != null) {
+ logger.warn("A thrift call raised an exception", ex);
+ }
if (SwingUtilities.isEventDispatchThread()) {
Gui.showMessageBox(parent, messageText, MessageType.ERROR, null, null);
return;