summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/taskmanager/tasks/LdadpLauncher.java
diff options
context:
space:
mode:
authorSimon Rettberg2014-06-03 16:47:36 +0200
committerSimon Rettberg2014-06-03 16:47:36 +0200
commit32dc5354e2916387a2c62eadae0a4568023f1151 (patch)
tree7fd9a0173d6073e86d1d48e545646b1bc8c1a5eb /src/main/java/org/openslx/taskmanager/tasks/LdadpLauncher.java
downloadtmlite-bwlp-32dc5354e2916387a2c62eadae0a4568023f1151.tar.gz
tmlite-bwlp-32dc5354e2916387a2c62eadae0a4568023f1151.tar.xz
tmlite-bwlp-32dc5354e2916387a2c62eadae0a4568023f1151.zip
Initial commit
Diffstat (limited to 'src/main/java/org/openslx/taskmanager/tasks/LdadpLauncher.java')
-rw-r--r--src/main/java/org/openslx/taskmanager/tasks/LdadpLauncher.java79
1 files changed, 79 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/taskmanager/tasks/LdadpLauncher.java b/src/main/java/org/openslx/taskmanager/tasks/LdadpLauncher.java
new file mode 100644
index 0000000..123ab1a
--- /dev/null
+++ b/src/main/java/org/openslx/taskmanager/tasks/LdadpLauncher.java
@@ -0,0 +1,79 @@
+package org.openslx.taskmanager.tasks;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.openslx.satserver.util.Constants;
+import org.openslx.taskmanager.api.SystemCommandTask;
+
+import com.google.gson.annotations.Expose;
+
+public class LdadpLauncher extends SystemCommandTask
+{
+ @Expose
+ private int[] ids = null;
+
+ private Output status = new Output();
+
+ @Override
+ protected boolean initTask()
+ {
+ this.setStatusObject( this.status );
+ if ( ids == null ) {
+ status.addMessage( "No ids passed to task." );
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ protected String[] initCommandLine()
+ {
+ List<String> args = new ArrayList<>();
+ args.addAll( Arrays.asList( new String[] {
+ "/usr/bin/sudo",
+ "-n",
+ "-u", "ldadp", Constants.BASEDIR + "/scripts/ldadp-launcher",
+ "/opt/ldadp",
+ "--"
+ } ) );
+ for ( int i = 0; i < ids.length; ++i ) {
+ args.add( Integer.toString( this.ids[i] ) );
+ }
+ return args.toArray( new String[ args.size() ] );
+ }
+
+ @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 );
+ }
+
+ class Output
+ {
+ private String messages = null;
+
+ private void addMessage( String str )
+ {
+ if ( messages == null ) {
+ messages = str;
+ } else {
+ messages += "\n" + str;
+ }
+ }
+ }
+
+}