summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/util/Formatter.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-06-02 19:53:31 +0200
committerSimon Rettberg2015-06-02 19:53:31 +0200
commit1bc83891c68ee269727e81a13cc70da698bcc7a7 (patch)
treeb052a72ad7d65864068752f71c5ed2b49a171276 /dozentenmodulserver/src/main/java/util/Formatter.java
parent[server] Started work on the internal file server (diff)
downloadtutor-module-1bc83891c68ee269727e81a13cc70da698bcc7a7.tar.gz
tutor-module-1bc83891c68ee269727e81a13cc70da698bcc7a7.tar.xz
tutor-module-1bc83891c68ee269727e81a13cc70da698bcc7a7.zip
[server] Compiling again, still lots of stubs
Diffstat (limited to 'dozentenmodulserver/src/main/java/util/Formatter.java')
-rw-r--r--dozentenmodulserver/src/main/java/util/Formatter.java59
1 files changed, 59 insertions, 0 deletions
diff --git a/dozentenmodulserver/src/main/java/util/Formatter.java b/dozentenmodulserver/src/main/java/util/Formatter.java
new file mode 100644
index 00000000..5c5982fb
--- /dev/null
+++ b/dozentenmodulserver/src/main/java/util/Formatter.java
@@ -0,0 +1,59 @@
+package util;
+
+import java.io.File;
+import java.util.UUID;
+
+import models.Configuration;
+
+import org.joda.time.format.DateTimeFormat;
+import org.joda.time.format.DateTimeFormatter;
+import org.openslx.imagemaster.thrift.iface.UserInfo;
+
+public class Formatter {
+
+ private static final DateTimeFormatter vmNameDateFormat = DateTimeFormat.forPattern("dd_HH-mm-ss");
+
+ /**
+ * Generate a unique file name used for a virtual machine
+ * image that is currently uploading.
+ *
+ * @return Absolute path name of file
+ */
+ public static File getTempImageName() {
+ return new File(Configuration.getCurrentVmStorePath(), UUID.randomUUID().toString()
+ + Constants.INCOMPLETE_UPLOAD_SUFFIX);
+ }
+
+ /**
+ * Generate a file name for the given VM based on owner and display name.
+ *
+ * @param user The user associated with the VM, e.g. the owner
+ * @param imageName Name of the VM
+ * @return File name for the VM derived from the function's input
+ */
+ public static String vmName(UserInfo user, String imageName) {
+ return cleanFileName(vmNameDateFormat.print(System.currentTimeMillis()) + "_" + user.lastName + "_"
+ + imageName);
+ }
+
+ /**
+ * Make sure file name contains only a subset of ascii characters and is not
+ * too long.
+ *
+ * @param name What we want to turn into a file name
+ * @return A sanitized form of name that should be safe to use as a file
+ * name
+ */
+ public static String cleanFileName(String name) {
+ if (name == null)
+ return "null";
+ name = name.replaceAll("[^a-zA-Z0-9_\\.\\-]+", "_");
+ if (name.length() > 120)
+ name = name.substring(0, 120);
+ return name;
+ }
+
+ public static String userFullName(UserInfo ui) {
+ return ui.firstName + " " + ui.lastName;
+ }
+}