From 8575291412d87c4344e44079e33d2aeff9e417a3 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 6 Jul 2020 14:20:44 +0200 Subject: [ldap/systemctl] Wrapper script, systemd-ize ldadp handling --- .../org/openslx/taskmanager/tasks/Systemctl.java | 56 ++-------------------- 1 file changed, 4 insertions(+), 52 deletions(-) (limited to 'src/main/java/org/openslx/taskmanager/tasks/Systemctl.java') 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 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 ) -- cgit v1.2.3-55-g7522