summaryrefslogtreecommitdiffstats
path: root/Dozentenmodulserver/src/server/ServerHandler.java
diff options
context:
space:
mode:
authorNino Breuer2014-05-22 15:41:51 +0200
committerNino Breuer2014-05-22 15:41:51 +0200
commit8ee0ed5c5a947ecff257f799dfa60b9b000aab75 (patch)
treee5790134d1cada9aee15611f8818fa7da71cd982 /Dozentenmodulserver/src/server/ServerHandler.java
parentVorbereitung Multithreading (diff)
parentMerge branch 'master' of ssh://git.openslx.org/openslx-ng/tutor-module (diff)
downloadtutor-module-8ee0ed5c5a947ecff257f799dfa60b9b000aab75.tar.gz
tutor-module-8ee0ed5c5a947ecff257f799dfa60b9b000aab75.tar.xz
tutor-module-8ee0ed5c5a947ecff257f799dfa60b9b000aab75.zip
Merge branch 'master' of ssh://git.openslx.org/openslx-ng/tutor-module
Conflicts: Dozentenmodul/bin/gui/intro/Login_GUI.class Dozentenmodulserver/bin/server/ServerHandler.class Dozentenmodulserver/bin/server/startServer.class Dozentenmodulserver/src/server/startServer.java
Diffstat (limited to 'Dozentenmodulserver/src/server/ServerHandler.java')
-rw-r--r--Dozentenmodulserver/src/server/ServerHandler.java397
1 files changed, 159 insertions, 238 deletions
diff --git a/Dozentenmodulserver/src/server/ServerHandler.java b/Dozentenmodulserver/src/server/ServerHandler.java
index 63970d34..dad9b1a8 100644
--- a/Dozentenmodulserver/src/server/ServerHandler.java
+++ b/Dozentenmodulserver/src/server/ServerHandler.java
@@ -3,64 +3,95 @@ package server;
import java.io.File;
import java.io.IOException;
import java.math.BigInteger;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
-import java.sql.Connection;
-import java.sql.ResultSet;
import java.sql.SQLException;
-import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
-
+import models.Configuration;
import org.apache.commons.io.FileUtils;
import org.apache.log4j.Logger;
import org.apache.thrift.TException;
-
import sql.SQL;
import util.XMLCreator;
public class ServerHandler implements Server.Iface {
-
static SQL sql = new SQL();
- static Connection con = sql.getConnection();
- private static Logger log = Logger.getLogger(ServerHandler.class);
- /**
- * @param args
- */
- /*
- * public static void main(String[] args) { // TODO Auto-generated method
- * stub
- *
- * }
- */
+ private static Logger log = Logger.getLogger(ServerHandler.class);
@Override
public User getFtpUser() throws TException {
- log.info(new Date() + " - returing FTPUser...");
+ log.info(new Date() + " - returning FTPUser...");
User user = new User();
user.setUserName(UUID.randomUUID().toString().substring(0, 8));
user.setPassword(getEncodedSha1Sum(UUID.randomUUID().toString()
.substring(0, 8)));
- user.setPath("/srv/openslx/nfs/temp");
- SQL sql = new SQL();
- Connection con = sql.getConnection();
- sql.writeFTPUser(con, user.getUserName(), user.getPassword());
- log.info(new Date() + " - successfully returned FTPUser");
- return user;
+ if (Configuration.config.getAbsolute_path().endsWith("/")) {
+ user.setPath(Configuration.config.getAbsolute_path());
+ } else {
+ user.setPath(Configuration.config.getAbsolute_path() + "/");
+ }
+
+ // check if folder temp exists
+ if (folderTempExists() == true) {
+ sql.writeFTPUser(user.getUserName(), user.getPassword());
+ return user;
+ } else {
+ log.info(new Date() + " - returning null user");
+ return null;
+ }
}
+ public boolean folderTempExists() {
+ // check if folder temp exists, otherwise create it
+ Path path = null;
+ if (Configuration.config.getAbsolute_path().endsWith("/")) {
+ path = Paths.get(Configuration.config.getAbsolute_path() + "temp");
+ } else {
+ path = Paths.get(Configuration.config.getAbsolute_path() + "/temp");
+ }
+
+ if (Files.exists(path) == true) {
+ log.info(new Date() + " - folder '" + path
+ + "' exists, no further action");
+ return true;
+ } else {
+ // create directory and set permissions
+ boolean success = (new File(path + "")).mkdirs();
+
+ if (!success) {
+ log.info(new Date() + " - failed to create folder '" + path
+ + "'");
+ return false;
+ } else {
+ // set permissions
+ try {
+ Runtime.getRuntime().exec("chmod 777 " + path);
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ log.info(new Date() + " - folder '" + path
+ + "' successfully created");
+ return true;
+ }
+ }
+
+ }// end folderTempExists()
+
public String getEncodedSha1Sum(String key) {
try {
- log.info(new Date() + " - returned EncodedSha1Sum...");
MessageDigest md = MessageDigest.getInstance("SHA1");
md.update(key.getBytes());
log.info(new Date() + " - successfully returned EncodedSha1Sum");
@@ -73,157 +104,80 @@ public class ServerHandler implements Server.Iface {
@Override
public long DeleteFtpUser(String user) throws TException {
- int ret = sql.DeleteUser(con, user);
- log.info(new Date() + " - deleting FTPUser");
- return ret;
+ return sql.DeleteUser(user);
}
@Override
public String getPathOfImage(String image_id, String version)
throws TException {
+ log.info(new Date() + " - successfully returned PathOfImage: "
+ + sql.getPathOfImage(image_id, version));
+ return sql.getPathOfImage(image_id, version);
- try {
- log.info(new Date() + " - returning PathOfImage...");
- ResultSet rs = sql.getPathOfImage(con, image_id, version);
- System.out.println("Path SQL erfolgreich");
- rs.next();
- System.out.println(rs.getString("image_path"));
- log.info(new Date() + " - successfully returned PathOfImage: "
- + rs.getString("image_path"));
- return rs.getString("image_path");
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- log.info(new Date() + " - returning PathOfImage: null");
- return null;
}
@Override
- public boolean writeVLdata(String imagename, String login ,String firstname,
- String lastname, String university, String Mail, String Tel,
- String Fak, boolean license, boolean internet, long ram, long cpu,
- String imagePath) throws TException {
-
+ public boolean writeVLdata(String imagename, String login,
+ String firstname, String lastname, String university, String Mail,
+ String Tel, String Fak, boolean license, boolean internet,
+ long ram, long cpu, String imagePath, boolean isTemplate,
+ long filesize) throws TException {
- int pk_institution = sql.setInstitution(con, university);
+ String pk_institution = sql.setInstitution(university);
- int pk_person = sql.setPerson(con, login, lastname, firstname, Mail,
+ String pk_person = sql.setPerson(login, lastname, firstname, Mail,
new Date(), pk_institution);
- sql.setImageData(con, pk_person, license, internet, cpu, ram,
- imagename, imagePath);
+ sql.setImageData(pk_person, license, internet, cpu, ram, imagename,
+ imagePath, isTemplate, filesize);
- log.info(new Date() + " - writing VLdata");
+ log.info(new Date() + " - written VLdata");
// TODO Auto-generated method stub
return true;
}
@Override
public List<Image> getImageList() throws TException {
- ResultSet res = sql.getImageList(con);
-
- List<Image> list = new ArrayList<Image>();
-
- try {
-
- while (res.next()) {
-
- list.add(new Image(res.getString("GUID_imageID"), res
- .getString("imageVersion"),
- res.getString("image_name"), res
- .getString("cond_hasLicenseRestriction"), res
- .getString("name"), res.getString("lecture"),
- res.getString("image_update_time"), res
- .getString("user")));
+ return sql.getImageList();
- }
-
- log.info(new Date() + " - returning ImageList: " + list.size());
- return list;
- } catch (SQLException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- log.info(new Date() + " - returning ImageList: " + list.size());
- return null;
}
@Override
public List<String> getAllOS() throws TException {
- List<String> list = new ArrayList<>();
- ResultSet rs = sql.getAllOS(con);
- try {
- while (rs.next()) {
- list.add(rs.getString("name"));
- }
- log.info(new Date() + " - returning AllOS: " + list.size());
- return list;
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- log.info(new Date() + " - returning AllOS: " + list.size());
- return null;
+ return sql.getAllOS();
+
}
@Override
public Map<String, String> getPersonData(String Vorname, String Nachname)
throws TException {
- Map<String, String> map = new HashMap<String, String>();
+ return sql.getPersonData(Vorname, Nachname);
- ResultSet rs = sql.getPersonData(con, Vorname, Nachname);
- try {
- while (rs.next()) {
-
- map.put("mail", rs.getString("mail"));
- map.put("Nachname", rs.getString("Nachname"));
- map.put("Vorname", rs.getString("Vorname"));
- map.put("Hochschule", rs.getString("name"));
-
- }
- log.info(new Date() + " - returning PersonData: " + map.size());
- return map;
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- log.info(new Date() + " - returning PersonData: " + map.size());
- return null;
}
@Override
public boolean writeLecturedata(String name, String shortdesc, String desc,
String startDate, String endDate, boolean isActive,
- String imagename, String login ,String firstname, String lastname,
+ String imagename, String login, String firstname, String lastname,
String university, String Mail, String Tel, String Fak)
throws TException {
- int pk_image = 0;
-
+ String pk_image = null;
+ Map<String, String> map = new HashMap<String, String>();
int imageversion = 0;
- int pk_institution = sql.setInstitution(con, university);
- int pk_person = sql.setPerson(con, login, lastname, firstname, Mail,
+ String pk_institution = sql.setInstitution(university);
+ String pk_person = sql.setPerson(login, lastname, firstname, Mail,
new Date(), pk_institution);
- ResultSet image = sql.getImageIDandVersion(con, imagename);
+ map = sql.getImageIDandVersion(imagename);
- try {
- while (image.next()) {
- pk_image = image.getInt("GUID_imageID");
- imageversion = image.getInt("imageVersion");
- }
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- System.out.println(startDate);
- sql.setLectureData(con, pk_person, pk_image, imageversion, name, desc,
+ pk_image = map.get("GUID");
+ imageversion = Integer.parseInt(map.get("version"));
+ sql.setLectureData(pk_person, pk_image, imageversion, name, desc,
shortdesc, startDate, endDate, isActive);
- XMLCreator xml = new XMLCreator(con, name);
+ XMLCreator xml = new XMLCreator(sql.getConnection(), name);
try {
xml.create(name);
- log.info(new Date() + " - XML created");
+ log.info(new Date() + " - XML created.");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@@ -238,27 +192,27 @@ public class ServerHandler implements Server.Iface {
}
@Override
- public boolean startFileCopy(String file) throws TException {
+ public boolean startFileCopy(String filename) throws TException {
+ //copy file from folder temp to folder prod
+ String file = Configuration.config.getAbsolute_path() + "temp/"
+ + filename;
File tmpFile = new File(file);
- System.out.println("Vor Move" + new Date());
+ log.info(new Date()
+ + " - Trying to move file to '/srv/openslx/nfs/prod/"
+ + tmpFile.getName() + "'");
try {
-
- //der übergebene Filename ist falsch - hier muss der generierte name geholt werden, nicht der ursprüngliche name. wo wird dieser eingelesen?
- FileUtils.moveFile(tmpFile, new File("141.79.128.103:/srv/nfs4slx/"+tmpFile.getName()));
-
- //der übergebene Filename ist falsch - hier muss der generierte name geholt werden, nicht der ursprüngliche name. wo wird dieser eingelesen?
- FileUtils.moveFile(tmpFile, new File("141.79.128.103:/srv/nfs4slx/"+tmpFile.getName()));
-
- // der übergebene Filename ist falsch - hier muss der generierte
- // name geholt werden, nicht der ursprüngliche name. wo wird dieser
- // eingelesen?
- FileUtils.moveFile(tmpFile, new File("141.79.128.103:/srv/nfs4slx/"
- + tmpFile.getName()));
- log.info(new Date() + " - file moved");
+ FileUtils.moveFile(tmpFile,
+ new File(Configuration.config.getAbsolute_path() + "prod/"
+ + filename));
+ // int ret = sql.UpdateImagePath(filename);
+ if (sql.UpdateImagePath(filename) == 0) {
+ log.info(new Date() + " - file moved and database updated.");
+ }
} catch (IOException e) {
// TODO Auto-generated catch block
+ log.info(new Date() + " - Failed to move file.");
e.printStackTrace();
}
return true;
@@ -267,46 +221,18 @@ public class ServerHandler implements Server.Iface {
@Override
public Map<String, String> getImageData(String imageid, String imageversion)
throws TException {
-
- ResultSet data = sql.getImageData(con, imageid, imageversion);
-
- Map<String, String> map = new HashMap<String, String>();
- try {
- while (data.next()) {
- System.out.println(data
- .getString("cond_hasInternetRestriction")
- + data.getString("cond_hasLicenseRestriction")
- + data.getString("cond_minCPUs")
- + data.getString("cond_minRAM"));
- map.put("name", data.getString("image_name"));
- map.put("internet",
- data.getString("cond_hasInternetRestriction"));
- map.put("license", data.getString("cond_hasLicenseRestriction"));
- map.put("cpu", data.getString("cond_minCPUs"));
- map.put("ram", data.getString("cond_minRAM"));
-
- }
- System.out.println("return success");
- log.info(new Date() + " - returning ImageData: "+map.size());
- return map;
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- log.info(new Date() + " - returning ImageData: "+map.size());
- return null;
-
+ log.info(new Date() + " - returning ImageData: "
+ + sql.getImageData(imageid, imageversion).size() + "items.");
+ return sql.getImageData(imageid, imageversion);
}
@Override
public boolean updateImageData(String name, String newName,
- boolean license, boolean internet, long ram, long cpu, String id,
- String version) throws TException {
- System.out.println("Server: Vor Update");
- sql.UpdateImageData(con, name, newName, license, internet, cpu, ram,
- id, version);
- System.out.println("Update erfolgreich");
- log.info(new Date() + " - updated ImageData");
+ String image_path, boolean license, boolean internet, long ram,
+ long cpu, String id, String version, boolean isTemplate,
+ long filesize) throws TException {
+ sql.UpdateImageData(name, newName, image_path, license, internet, cpu,
+ ram, id, version, isTemplate, filesize);
return false;
}
@@ -319,29 +245,13 @@ public class ServerHandler implements Server.Iface {
@Override
public List<Lecture> getLectureList() throws TException {
- ResultSet res = sql.getLectureList(con);
-
- List<Lecture> list = new ArrayList<Lecture>();
- try {
-
- while (res.next()) {
- list.add(new Lecture(res.getString("lectureID"), res
- .getString("name"), res.getString("isActive"), res
- .getString("startTime"), res.getString("endTime"), res
- .getString("lastUsed"), res.getString("description"),
- res.getString("image_name"), res.getString("user")));
+ log.info(new Date().toString() + " - returning LectureList: "
+ + sql.getLectureList().size() + " items.");
+ return sql.getLectureList();
+
- }
- log.info(new Date() + " - returning LectureList: "+list.size());
- return list;
- } catch (SQLException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- log.info(new Date() + " - returning LectureList: "+list.size());
- return null;
}
@Override
@@ -350,22 +260,16 @@ public class ServerHandler implements Server.Iface {
boolean isActive, String imagename, String firstname,
String lastname, String university, String Mail, String Tel,
String Fak, String id) throws TException {
- int pk_image = 0;
+ String pk_image = "";
int imageversion = 0;
- ResultSet image = sql.getImageIDandVersion(con, imagename);
+ Map<String, String> image = sql.getImageIDandVersion(imagename);
- try {
- while (image.next()) {
- pk_image = image.getInt("GUID_imageID");
- imageversion = image.getInt("imageVersion");
- }
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- sql.updateLectureData(con, pk_image, imageversion, lastname, newName, desc, shortdesc, startDate, endDate, isActive, id);
-
- XMLCreator xml=new XMLCreator(con, newName);
+ pk_image = image.get("GUID");
+ imageversion = Integer.parseInt(image.get("version"));
+ sql.updateLectureData(pk_image, imageversion, lastname, newName, desc,
+ shortdesc, startDate, endDate, isActive, id);
+
+ XMLCreator xml = new XMLCreator(sql.getConnection(), newName);
try {
xml.create(newName);
} catch (SQLException | ParserConfigurationException
@@ -373,50 +277,67 @@ public class ServerHandler implements Server.Iface {
// TODO Auto-generated catch block
e.printStackTrace();
}
-
- sql.updateLectureData(con, pk_image, imageversion, lastname, newName,
- desc, shortdesc, startDate, endDate, isActive, id);
- log.info(new Date() + " - updated LectureData");
+
+ // sql.updateLectureData(con, pk_image, imageversion, lastname, newName,
+ // desc, shortdesc, startDate, endDate, isActive, id);
return false;
}
-
+
@Override
- public boolean deleteImageServer(String imageid, String imageversion) throws TException{
+ public boolean deleteImageServer(String imageid, String imageversion)
+ throws TException {
+
+ String stringFile = sql.getFile(imageid, imageversion);
+ log.info(new Date() + " - File to Delete: " + stringFile);
+
+ File tmpFile = new File(Configuration.config.getAbsolute_path()
+ + stringFile);
- String stringFile = sql.getFile(con, imageid, imageversion);
-
- File tmpFile = new File("127.0.0.1:" + stringFile);
-
try {
- //File wird von Server gelöscht
+ // File wird von Server gel�scht
FileUtils.forceDelete(tmpFile);
-
return true;
-
+
} catch (IOException e) {
- // TODO Auto-generated catch block
+ log.info(new Date() + " - Failed to execute deleteImageServer.");
e.printStackTrace();
}
-
+
return false;
}
-
+
@Override
public boolean deleteImageData(String id, String version) throws TException {
- return sql.deleteImage(con, id, version);
+ return sql.deleteImage(id, version);
}
@Override
public boolean connectedToLecture(String id, String version)
throws TException {
// TODO Auto-generated method stub
- return sql.connectedToLecture(con, id, version);
+ return sql.connectedToLecture(id, version);
}
-
- public boolean deleteLecture(String id){
- return sql.deleteLecture(con, id);
+
+ public boolean deleteLecture(String id, String hs, String user) {
+ Map<String, String> map = new HashMap<String, String>();
+ map = sql.getDeleteXMLData(id);
+ try {
+
+ String path = Configuration.config.getAbsolute_path()
+ + "temp/"
+ + map.get("date")
+ .substring(0, map.get("date").length() - 2) + "_"
+ + hs + "_" + user + "_" + map.get("name") + ".xml";
+ File xmlFile = new File(path);
+ FileUtils.forceDelete(xmlFile);
+ } catch (IOException e) {
+ log.info(new Date() + " - Failed to execute deleteLecture");
+ e.printStackTrace();
+ }
+ return sql.deleteLecture(id);
+
}
}