summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/server
diff options
context:
space:
mode:
authorNils Schwabe2014-04-10 16:34:34 +0200
committerNils Schwabe2014-04-10 16:34:34 +0200
commit3e35775012d2800d53d83ebe5083121479d83720 (patch)
treeeafcb93cdffc15f48a918f7a599948cf4a769e5d /src/main/java/org/openslx/imagemaster/server
parentMerge branch 'master' of git.openslx.org:bwlp/masterserver (diff)
downloadmasterserver-3e35775012d2800d53d83ebe5083121479d83720.tar.gz
masterserver-3e35775012d2800d53d83ebe5083121479d83720.tar.xz
masterserver-3e35775012d2800d53d83ebe5083121479d83720.zip
Added some functionallity to the ImageProcessor.
Database using is missing!
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/server')
-rw-r--r--src/main/java/org/openslx/imagemaster/server/ApiServer.java21
-rw-r--r--src/main/java/org/openslx/imagemaster/server/ImageProcessor.java14
-rw-r--r--src/main/java/org/openslx/imagemaster/server/MasterFtplet.java20
3 files changed, 23 insertions, 32 deletions
diff --git a/src/main/java/org/openslx/imagemaster/server/ApiServer.java b/src/main/java/org/openslx/imagemaster/server/ApiServer.java
index 258c490..7a24c43 100644
--- a/src/main/java/org/openslx/imagemaster/server/ApiServer.java
+++ b/src/main/java/org/openslx/imagemaster/server/ApiServer.java
@@ -6,6 +6,7 @@ import org.apache.log4j.Logger;
import org.apache.thrift.TException;
import org.openslx.imagemaster.Globals;
import org.openslx.imagemaster.db.DbSatellite;
+import org.openslx.imagemaster.db.ImageProcessor;
import org.openslx.imagemaster.serversession.ServerAuthenticator;
import org.openslx.imagemaster.serversession.ServerSession;
import org.openslx.imagemaster.serversession.ServerSessionManager;
@@ -91,24 +92,17 @@ public class ApiServer {
public static FtpCredentials submitImage(ImageData imageDescription,
ServerSessionData serverSessionData) throws AuthorizationException,
TException {
- /*
- * TODO:
- * Check if session is ok.
- * create and return FtpCredentials
- */
-
- /*
- * FTP Users can be added later with: ftpServer.addUser(username,
- * password, ftp_root);
- *
- * And removed with: removeUser(username);
- */
if (ServerSessionManager.getSession(serverSessionData.sessionId) == null) {
throw new AuthenticationException(AuthenticationError.GENERIC_ERROR, "No valid serverSessionData");
}
-
+
String generatedUser = RandomString.generate(10, false);
String generatedPass = RandomString.generate(16, true);
+
+ if (!ImageProcessor.addImageDataToProcess(imageDescription, generatedUser)) {
+ throw new TException("ImageData is not valid. Does this image exist already?");
+ }
+
String dir = Globals.properties.getProperty("ftp_base_dir") + "/"
+ generatedUser + "/";
if (new File(dir).mkdir()) {
@@ -116,7 +110,6 @@ public class ApiServer {
log.info("Generated user/pass: " + generatedUser + "\t"
+ generatedPass + "\n with home dir: " + dir);
}
- // TODO: remove old user
return new FtpCredentials(generatedUser, generatedPass);
}
diff --git a/src/main/java/org/openslx/imagemaster/server/ImageProcessor.java b/src/main/java/org/openslx/imagemaster/server/ImageProcessor.java
deleted file mode 100644
index e10ea21..0000000
--- a/src/main/java/org/openslx/imagemaster/server/ImageProcessor.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.openslx.imagemaster.server;
-
-import org.apache.log4j.Logger;
-
-public class ImageProcessor {
-
- private static Logger log = Logger.getLogger(ImageProcessor.class);
- public static void processImageAfterUpload(String username, String filename) {
- /*
- * TODO: Process the image after download
- */
-
- }
-}
diff --git a/src/main/java/org/openslx/imagemaster/server/MasterFtplet.java b/src/main/java/org/openslx/imagemaster/server/MasterFtplet.java
index a1b9a90..479729d 100644
--- a/src/main/java/org/openslx/imagemaster/server/MasterFtplet.java
+++ b/src/main/java/org/openslx/imagemaster/server/MasterFtplet.java
@@ -9,14 +9,17 @@ import org.apache.ftpserver.ftplet.FtpSession;
import org.apache.ftpserver.ftplet.Ftplet;
import org.apache.ftpserver.ftplet.FtpletContext;
import org.apache.ftpserver.ftplet.FtpletResult;
+import org.apache.ftpserver.ftplet.UserManager;
import org.apache.log4j.Logger;
+import org.openslx.imagemaster.db.ImageProcessor;
public class MasterFtplet implements Ftplet {
private static Logger log = Logger.getLogger(Ftplet.class);
+ private UserManager userManager;
@Override
public void init(FtpletContext ftpletContext) throws FtpException {
- // not used
+ userManager = ftpletContext.getUserManager();
}
@Override
@@ -37,9 +40,18 @@ public class MasterFtplet implements Ftplet {
public FtpletResult afterCommand(FtpSession session, FtpRequest request,
FtpReply reply) throws FtpException, IOException {
if (session.getUser() != null) {
- log.info(session.getUser().getName() + " is done with command: " + request.getRequestLine());
- // TODO: delete temporary user
- ImageProcessor.processImageAfterUpload(session.getUser().getName(), request.getRequestLine().split(" ")[1]);
+ String username = session.getUser().getName();
+ String command = request.getRequestLine();
+ log.info(username + " is done with command: " + command);
+ if (request.getCommand().equals("STOR")) {
+ try {
+ userManager.delete(username);
+ } catch (FtpException e) {
+ } finally {
+ log.info("Stored file and deleted user: '" + username + "'");
+ ImageProcessor.processImageAfterUpload(username, command.split(" ")[1]);
+ }
+ }
}
return null;
}