summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/taskmanager/tasks/ScpSnapshot.java
diff options
context:
space:
mode:
authorJannik Schönartz2021-11-24 00:55:33 +0100
committerJannik Schönartz2021-11-24 00:55:33 +0100
commit91990062dfea38aa92e4590579dd7e1e0d0ef7ec (patch)
treeea370dd1b93aaf9b3871dc9f40715b8ed615eb5b /src/main/java/org/openslx/taskmanager/tasks/ScpSnapshot.java
parent[SshdConfigGenerator] Fix service target (diff)
downloadtmlite-bwlp-91990062dfea38aa92e4590579dd7e1e0d0ef7ec.tar.gz
tmlite-bwlp-91990062dfea38aa92e4590579dd7e1e0d0ef7ec.tar.xz
tmlite-bwlp-91990062dfea38aa92e4590579dd7e1e0d0ef7ec.zip
Add script for downloading/merging the edited image
Diffstat (limited to 'src/main/java/org/openslx/taskmanager/tasks/ScpSnapshot.java')
-rw-r--r--src/main/java/org/openslx/taskmanager/tasks/ScpSnapshot.java96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/taskmanager/tasks/ScpSnapshot.java b/src/main/java/org/openslx/taskmanager/tasks/ScpSnapshot.java
new file mode 100644
index 0000000..0fe0c24
--- /dev/null
+++ b/src/main/java/org/openslx/taskmanager/tasks/ScpSnapshot.java
@@ -0,0 +1,96 @@
+package org.openslx.taskmanager.tasks;
+
+import java.util.Map;
+
+import org.openslx.satserver.util.Constants;
+import org.openslx.taskmanager.api.SystemCommandTask;
+
+import com.google.gson.annotations.Expose;
+
+public class ScpSnapshot extends SystemCommandTask
+{
+ @Expose
+ private String lectureUuid = null;
+ @Expose
+ private String username = null;
+ @Expose
+ private String clientIp = null;
+ @Expose
+ private String snapshotPath = null;
+
+ private final Output status = new Output();
+
+
+ @Override
+ protected boolean initTask()
+ {
+ this.setStatusObject( this.status );
+ if ( this.lectureUuid == null )
+ this.lectureUuid = "";
+ if ( this.username == null )
+ this.username = "";
+ if ( this.clientIp == null )
+ this.clientIp = "";
+ if ( this.snapshotPath == null )
+ this.snapshotPath = "";
+
+ return true;
+ }
+
+ @Override
+ protected String[] initCommandLine()
+ {
+ return new String[] {
+ "/usr/bin/sudo",
+ "-n",
+ "-u", "root",
+ // "/bin/bash",
+ Constants.BASEDIR + "/scripts/scp-snapshot"
+ };
+ }
+
+ @Override
+ protected void initEnvironment( Map<String, String> environment )
+ {
+ environment.put( "TM_UUID", this.lectureUuid );
+ environment.put( "TM_USERNAME", this.username);
+ environment.put( "TM_CLIENT_IP", this.clientIp);
+ environment.put( "TM_SNAPSHOT_PATH", this.snapshotPath);
+ }
+
+ @Override
+ protected boolean processEnded( int exitCode )
+ {
+ return exitCode == 0;
+ }
+
+ @Override
+ protected void processStdOut( String line )
+ {
+ status.addMessage( line );
+ }
+
+ @Override
+ protected void processStdErr( String line )
+ {
+ status.addMessage( line );
+ }
+
+ /**
+ * Output - contains additional status data of this task
+ */
+ class Output
+ {
+ private String messages = null;
+
+ private void addMessage( String str )
+ {
+ if ( messages == null ) {
+ messages = str;
+ } else {
+ messages += "\n" + str;
+ }
+ }
+ }
+
+}