summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/taskmanager/tasks/Systemctl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/taskmanager/tasks/Systemctl.java')
-rw-r--r--src/main/java/org/openslx/taskmanager/tasks/Systemctl.java56
1 files changed, 4 insertions, 52 deletions
diff --git a/src/main/java/org/openslx/taskmanager/tasks/Systemctl.java b/src/main/java/org/openslx/taskmanager/tasks/Systemctl.java
index 7b09a39..bce52c9 100644
--- a/src/main/java/org/openslx/taskmanager/tasks/Systemctl.java
+++ b/src/main/java/org/openslx/taskmanager/tasks/Systemctl.java
@@ -1,8 +1,5 @@
package org.openslx.taskmanager.tasks;
-import java.util.ArrayList;
-import java.util.List;
-
import org.openslx.taskmanager.api.SystemCommandTask;
import com.google.gson.annotations.Expose;
@@ -23,56 +20,11 @@ public class Systemctl extends SystemCommandTask
@Override
protected String[] initCommandLine()
{
- boolean allowAll = false;
- boolean asRoot = true;
- // Check if operation is allowed
- switch ( operation ) {
- case "start":
- case "stop":
- case "enable":
- case "disable":
- case "restart":
- case "status":
- break;
- case "show":
- case "is-active":
- allowAll = true;
- asRoot = false;
- break;
- default:
- status.addMsg( "Unknown operation: " + operation );
- return null;
- }
- if ( !allowAll ) {
- // Check if service is allowed
- switch ( service ) {
- case "dmsd":
- case "dnbd3-server":
- break;
- case "taskmanager":
- case "lighttpd":
- if ( !operation.equals( "restart" ) ) {
- status.addMsg( "Error: Service " + service + " can only be restarted." );
- return null;
- }
- break;
- default:
- status.addMsg( "Unknown service: " + operation );
- return null;
- }
- }
- List<String> params = new ArrayList<>();
- if ( asRoot ) {
- params.add( "/usr/bin/sudo" );
- params.add( "-n" );
- params.add( "-u" );
- params.add( "root" );
- }
- params.add( "/bin/systemctl" );
- params.add( operation );
- params.add( service );
this.timeoutSeconds = 15;
- return params.toArray( new String[ params.size() ] );
+ return new String[] { "/usr/bin/sudo",
+ "-n", "-u", "root",
+ "/opt/taskmanager/scripts/systemctl",
+ operation, service };
}
private boolean errorIfNull( String check, String message )