diff options
author | Jonathan Bauer | 2015-08-21 14:36:41 +0200 |
---|---|---|
committer | Jonathan Bauer | 2015-08-21 14:36:41 +0200 |
commit | d60450ab1d9338f335663e41e5818395f962d56f (patch) | |
tree | 76da0fb5625111df27581e0d89bcc80a47492275 /dozentenmodul | |
parent | [client] ThriftActions for Image Metadata (details + permissions) and use the... (diff) | |
download | tutor-module-d60450ab1d9338f335663e41e5818395f962d56f.tar.gz tutor-module-d60450ab1d9338f335663e41e5818395f962d56f.tar.xz tutor-module-d60450ab1d9338f335663e41e5818395f962d56f.zip |
[client] ThriftActions & calls in ImageWizard.performFinish
Diffstat (limited to 'dozentenmodul')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java | 51 | ||||
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java | 41 |
2 files changed, 54 insertions, 38 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java index b1b077ee..87ba4db2 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java @@ -2,6 +2,8 @@ package org.openslx.dozmod.gui.wizard; import java.awt.Window; +import javax.swing.JOptionPane; + import org.apache.log4j.Logger; import org.apache.thrift.TException; import org.openslx.bwlp.thrift.iface.ImageBaseWrite; @@ -14,6 +16,7 @@ import org.openslx.dozmod.gui.wizard.page.ImageMetaDataPage; import org.openslx.dozmod.gui.wizard.page.ImageUploadPage; import org.openslx.dozmod.state.UploadWizardState; import org.openslx.dozmod.thrift.Session; +import org.openslx.dozmod.thrift.ThriftActions; import org.openslx.thrifthelper.ThriftManager; @SuppressWarnings("serial") @@ -57,39 +60,22 @@ public class ImageWizard extends Wizard implements UiFeedback { @Override public void performFinish() { - // TODO run the actually request over external threaded class - try { - // push to sat - ThriftManager.getSatClient().updateImageBase(Session.getSatelliteToken(), - uploadWizardState.uuid.toString(), imageBaseWriteFromState()); - } catch (TException e) { - Gui.showMessageBox(this, "Fail to push image metadata to satellite: ", MessageType.ERROR, LOGGER, - e); - return; - } + // TODO run the actually request over external threaded class? + + // push image base to satellite + ThriftActions.updateImageBase(JOptionPane.getFrameForComponent(this), + uploadWizardState.uuid, imageBaseWriteFromState()); - // push permissions to satellite server + // push permissions to satellite if we have custom permissions if (uploadWizardState.permissionMap != null) { - // user skipped permission list stuff - try { - ThriftManager.getSatClient().writeImagePermissions(Session.getSatelliteToken(), - uploadWizardState.uuid, uploadWizardState.permissionMap); - } catch (TException e) { - Gui.showMessageBox(this, "Could not write permissions list to satellite: ", - MessageType.ERROR, LOGGER, e); - return; - } - } - try { - // push to sat - ThriftManager.getSatClient().updateImageVersion(Session.getSatelliteToken(), - uploadWizardState.transferInformation.getToken(), - new ImageVersionWrite(uploadWizardState.isRestricted)); - } catch (TException e) { - Gui.showMessageBox(this, "Could not set active/restricted flags to satellite: ", - MessageType.ERROR, LOGGER, e); - return; + + ThriftActions.writeImagePermissions(JOptionPane.getFrameForComponent(this), + uploadWizardState.uuid, uploadWizardState.permissionMap); } + // push version metadata to satellite + ThriftActions.updateImageVersion(JOptionPane.getFrameForComponent(this), + uploadWizardState.transferInformation.getToken(), + new ImageVersionWrite(uploadWizardState.isRestricted)); } private boolean isStateValid() { @@ -164,8 +150,9 @@ public class ImageWizard extends Wizard implements UiFeedback { // TODO: Lösch-Calls am Sat // check the state to see what we did: if (uploadWizardState.uuid != null) { - // we created the image, so delete the image base - //ThriftActions.deleteImageBase() + // we created the image, so delete the image base. NOTE: user feedback is done by ThriftActions + ThriftActions.deleteImageBaseOrVersion(JOptionPane.getFrameForComponent(this), + uploadWizardState.uuid, null, null); } if (uploadWizardState.transferInformation != null) { // we started an upload, thus we have a image version diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java index 9b9179cb..2f47cb81 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java @@ -13,6 +13,7 @@ import javax.swing.JFileChooser; import org.apache.log4j.Logger; import org.apache.thrift.TException; +import org.openslx.bwlp.thrift.iface.ImageBaseWrite; import org.openslx.bwlp.thrift.iface.ImageDetailsRead; import org.openslx.bwlp.thrift.iface.ImagePermissions; import org.openslx.bwlp.thrift.iface.ImageVersionWrite; @@ -182,18 +183,46 @@ public class ThriftActions { String uuid = null; try { uuid = ThriftManager.getSatClient().createImage(Session.getSatelliteToken(), name); - } catch (TAuthorizationException e) { - Gui.showMessageBox(frame, "Sie sind nicht Berechtigt ein Image zu estellen.", - MessageType.ERROR, LOGGER, e); - } catch (TImageDataException e) { - Gui.showMessageBox(frame, "Ungültige Angaben (" + e.getNumber() + ")\n" + e.getMessage(), - MessageType.ERROR, LOGGER, e); + } catch (TException e) { + ThriftError.showMessage(frame, LOGGER, e, "Erstellen des Images fehlgeschlagen"); } catch (Exception e) { Gui.showMessageBox(frame, "Unbekannter Fehler beim Erstellen der VM", MessageType.ERROR, LOGGER, e); } return uuid; } + /** + * GUI-BLOCKING + * Pushes a new image base to the server with the given imageBaseId and the meta information in meta + * + * @param frame to show user feedback on + * @param imageBaseId image's id we are writing meta information of + * @param meta actual meta information as ImageBaseWrite + */ + public static void updateImageBase(final Frame frame, final String imageBaseId, final ImageBaseWrite meta) { + try { + ThriftManager.getSatClient().updateImageBase(Session.getSatelliteToken(), + imageBaseId, meta); + } catch (TException e) { + ThriftError.showMessage(frame, LOGGER, e, "Konnte Metadaten des Images nicht hochladen"); + } + } + /** + * GUI-BLOCKING + * Pushes the given permission map as custom permission for the given imageBaseId + * + * @param frame to show user feedback on + * @param imageBaseId image's id we are writing permissions of + * @param permissions actual permissions map to write + */ + public static void writeImagePermissions(final Frame frame, final String imageBaseId, final Map<String, ImagePermissions> permissions) { + try { + ThriftManager.getSatClient().writeImagePermissions(Session.getSatelliteToken(), + imageBaseId, permissions); + } catch (TException e) { + ThriftError.showMessage(frame, LOGGER, e, "Konnte Berechtigungen nicht hochladen"); + } + } /* ******************************************************************************* * |