diff options
author | Nils Schwabe | 2014-04-10 16:34:34 +0200 |
---|---|---|
committer | Nils Schwabe | 2014-04-10 16:34:34 +0200 |
commit | 3e35775012d2800d53d83ebe5083121479d83720 (patch) | |
tree | eafcb93cdffc15f48a918f7a599948cf4a769e5d /src/main/java/org/openslx/imagemaster/server | |
parent | Merge branch 'master' of git.openslx.org:bwlp/masterserver (diff) | |
download | masterserver-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')
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; } |