This is an automated email from the ASF dual-hosted git repository.

xincheng pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new b652967c53 [Improvement-15719] Remove the useless methods in 
ProcessUtils (#15720)
b652967c53 is described below

commit b652967c539dfe12f67fdac5ad115bd8955aa6c1
Author: Rick Cheng <[email protected]>
AuthorDate: Mon Mar 18 12:22:59 2024 +0800

    [Improvement-15719] Remove the useless methods in ProcessUtils (#15720)
---
 .../service/utils/ProcessUtils.java                | 115 ---------------------
 .../service/utils/ProcessUtilsTest.java            |  78 --------------
 2 files changed, 193 deletions(-)

diff --git 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/utils/ProcessUtils.java
 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/utils/ProcessUtils.java
index 22d17d0fd3..e8349d0cf0 100644
--- 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/utils/ProcessUtils.java
+++ 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/utils/ProcessUtils.java
@@ -19,142 +19,27 @@ package org.apache.dolphinscheduler.service.utils;
 
 import org.apache.dolphinscheduler.common.constants.Constants;
 import org.apache.dolphinscheduler.common.utils.FileUtils;
-import org.apache.dolphinscheduler.common.utils.OSUtils;
-import org.apache.dolphinscheduler.common.utils.PropertyUtils;
 import org.apache.dolphinscheduler.plugin.task.api.TaskConstants;
 import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext;
 
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.SystemUtils;
 
-import java.io.File;
-import java.nio.charset.StandardCharsets;
 import java.nio.file.Paths;
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 import javax.annotation.Nullable;
 
 import lombok.NonNull;
 import lombok.extern.slf4j.Slf4j;
 
-import org.slf4j.Logger;
-
 /**
  * mainly used to get the start command line of a process.
  */
 @Slf4j
 public class ProcessUtils {
 
-    /**
-     * Initialization regularization, solve the problem of pre-compilation 
performance,
-     * avoid the thread safety problem of multi-thread operation
-     */
-    private static final Pattern MACPATTERN = 
Pattern.compile("-[+|-]-\\s(\\d+)");
-
-    /**
-     * Expression of PID recognition in Windows scene
-     */
-    private static final Pattern WINDOWSATTERN = 
Pattern.compile("\\w+\\((\\d+)\\)");
-
-    /**
-     * get kerberos init command
-     */
-    static String getKerberosInitCommand() {
-        log.info("get kerberos init command");
-        StringBuilder kerberosCommandBuilder = new StringBuilder();
-        boolean hadoopKerberosState =
-                
PropertyUtils.getBoolean(Constants.HADOOP_SECURITY_AUTHENTICATION_STARTUP_STATE,
 false);
-        if (hadoopKerberosState) {
-            kerberosCommandBuilder.append("export KRB5_CONFIG=")
-                    
.append(PropertyUtils.getString(Constants.JAVA_SECURITY_KRB5_CONF_PATH))
-                    .append("\n\n")
-                    .append(String.format("kinit -k -t %s %s || true",
-                            
PropertyUtils.getString(Constants.LOGIN_USER_KEY_TAB_PATH),
-                            
PropertyUtils.getString(Constants.LOGIN_USER_KEY_TAB_USERNAME)))
-                    .append("\n\n");
-            log.info("kerberos init command: {}", kerberosCommandBuilder);
-        }
-        return kerberosCommandBuilder.toString();
-    }
-
-    /**
-     * build kill command for yarn application
-     *
-     * @param logger logger
-     * @param tenantCode tenant code
-     * @param appId app id
-     * @param commandFile command file
-     * @param cmd cmd
-     */
-    private static void execYarnKillCommand(Logger logger, String tenantCode, 
String appId, String commandFile,
-                                            String cmd) {
-        try {
-            StringBuilder sb = new StringBuilder();
-            sb.append("#!/bin/sh\n");
-            sb.append("BASEDIR=$(cd `dirname $0`; pwd)\n");
-            sb.append("cd $BASEDIR\n");
-            if (CommonUtils.getSystemEnvPath() != null) {
-                sb.append("source 
").append(CommonUtils.getSystemEnvPath()).append("\n");
-            }
-            sb.append("\n\n");
-            sb.append(cmd);
-
-            File f = new File(commandFile);
-
-            if (!f.exists()) {
-                org.apache.commons.io.FileUtils.writeStringToFile(new 
File(commandFile), sb.toString(),
-                        StandardCharsets.UTF_8);
-            }
-
-            String runCmd = String.format("%s %s", Constants.SH, commandFile);
-            runCmd = OSUtils.getSudoCmd(tenantCode, runCmd);
-            log.info("kill cmd:{}", runCmd);
-            OSUtils.exeCmd(runCmd);
-        } catch (Exception e) {
-            log.error(String.format("Kill yarn application app id [%s] failed: 
[%s]", appId, e.getMessage()));
-        }
-    }
-
-    /**
-     * get pids str.
-     *
-     * @param processId process id
-     * @return pids pid String
-     * @throws Exception exception
-     */
-    public static String getPidsStr(int processId) throws Exception {
-        List<String> pidList = new ArrayList<>();
-        Matcher mat = null;
-        // pstree pid get sub pids
-        if (SystemUtils.IS_OS_MAC) {
-            String pids = OSUtils.exeCmd(String.format("%s -sp %d", 
Constants.PSTREE, processId));
-            if (null != pids) {
-                mat = MACPATTERN.matcher(pids);
-            }
-        } else {
-            String pids = OSUtils.exeCmd(String.format("%s -p %d", 
Constants.PSTREE, processId));
-            if (null != pids) {
-                mat = WINDOWSATTERN.matcher(pids);
-            }
-        }
-
-        if (null != mat) {
-            while (mat.find()) {
-                pidList.add(mat.group(1));
-            }
-        }
-
-        if (OSUtils.isSudoEnable() && !pidList.isEmpty()) {
-            pidList = pidList.subList(1, pidList.size());
-        }
-        return String.join(" ", pidList).trim();
-    }
-
     /**
      * find logs and kill yarn tasks.
      *
diff --git 
a/dolphinscheduler-service/src/test/java/org/apache/dolphinscheduler/service/utils/ProcessUtilsTest.java
 
b/dolphinscheduler-service/src/test/java/org/apache/dolphinscheduler/service/utils/ProcessUtilsTest.java
deleted file mode 100644
index 5fc7d0d69c..0000000000
--- 
a/dolphinscheduler-service/src/test/java/org/apache/dolphinscheduler/service/utils/ProcessUtilsTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dolphinscheduler.service.utils;
-
-import static org.mockito.ArgumentMatchers.anyString;
-
-import org.apache.dolphinscheduler.common.constants.Constants;
-import org.apache.dolphinscheduler.common.utils.OSUtils;
-import org.apache.dolphinscheduler.common.utils.PropertyUtils;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.MockedStatic;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-import org.mockito.junit.jupiter.MockitoExtension;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@ExtendWith(MockitoExtension.class)
-public class ProcessUtilsTest {
-
-    private static final Logger logger = 
LoggerFactory.getLogger(ProcessUtils.class);
-
-    @BeforeEach
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-    }
-
-    @Test
-    public void getPidsStr() throws Exception {
-        int processId = 1;
-
-        try (MockedStatic<OSUtils> mockedStaticOSUtils = 
Mockito.mockStatic(OSUtils.class)) {
-            mockedStaticOSUtils.when(() -> 
OSUtils.exeCmd(anyString())).thenReturn(null);
-            String pidList = ProcessUtils.getPidsStr(processId);
-            Assertions.assertEquals("", pidList);
-        }
-    }
-
-    @Test
-    public void testGetKerberosInitCommand() {
-        try (MockedStatic<PropertyUtils> mockedStaticPropertyUtils = 
Mockito.mockStatic(PropertyUtils.class)) {
-            mockedStaticPropertyUtils
-                    .when(() -> 
PropertyUtils.getBoolean(Constants.HADOOP_SECURITY_AUTHENTICATION_STARTUP_STATE,
 false))
-                    .thenReturn(true);
-            mockedStaticPropertyUtils.when(() -> 
PropertyUtils.getString(Constants.JAVA_SECURITY_KRB5_CONF_PATH))
-                    .thenReturn("/etc/krb5.conf");
-            mockedStaticPropertyUtils.when(() -> 
PropertyUtils.getString(Constants.LOGIN_USER_KEY_TAB_PATH))
-                    .thenReturn("/etc/krb5.keytab");
-            mockedStaticPropertyUtils.when(() -> 
PropertyUtils.getString(Constants.LOGIN_USER_KEY_TAB_USERNAME))
-                    .thenReturn("[email protected]");
-            Assertions.assertNotEquals("", 
ProcessUtils.getKerberosInitCommand());
-            mockedStaticPropertyUtils
-                    .when(() -> 
PropertyUtils.getBoolean(Constants.HADOOP_SECURITY_AUTHENTICATION_STARTUP_STATE,
 false))
-                    .thenReturn(false);
-            Assertions.assertEquals("", ProcessUtils.getKerberosInitCommand());
-        }
-    }
-
-}

Reply via email to