diff options
| author | Nino Breuer | 2014-05-22 15:41:51 +0200 |
|---|---|---|
| committer | Nino Breuer | 2014-05-22 15:41:51 +0200 |
| commit | 8ee0ed5c5a947ecff257f799dfa60b9b000aab75 (patch) | |
| tree | e5790134d1cada9aee15611f8818fa7da71cd982 /Dozentenmodulserver/src/server/ServerHandler.java | |
| parent | Vorbereitung Multithreading (diff) | |
| parent | Merge branch 'master' of ssh://git.openslx.org/openslx-ng/tutor-module (diff) | |
| download | tutor-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.java | 397 |
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); + } } |
