From e5381abc59c734b134324d3249ad5c13ba3d2366 Mon Sep 17 00:00:00 2001 From: renwujie Date: Thu, 13 Jul 2023 09:28:23 +0800 Subject: [PATCH] [Fix-285][common,api,worker] When the worker and manager are on the same machine, there is no need to download the installation package. (#338) --- .../datasophon/worker/actor/InstallServiceActor.java | 6 ++---- .../worker/handler/InstallServiceHandler.java | 11 +++++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/datasophon-worker/src/main/java/com/datasophon/worker/actor/InstallServiceActor.java b/datasophon-worker/src/main/java/com/datasophon/worker/actor/InstallServiceActor.java index f13e8c13..7558d52f 100644 --- a/datasophon-worker/src/main/java/com/datasophon/worker/actor/InstallServiceActor.java +++ b/datasophon-worker/src/main/java/com/datasophon/worker/actor/InstallServiceActor.java @@ -63,12 +63,10 @@ public void onReceive(Object msg) throws Throwable { } ExecResult execResult = ShellUtils.execWithStatus(Constants.INSTALL_PATH, commands, 180); if (execResult.getExecResult()) { - installResult = serviceHandler.install(command.getPackageName(), command.getDecompressPackageName(), - command.getPackageMd5(), command.getRunAs()); + installResult = serviceHandler.install(command); } } else { - installResult = serviceHandler.install(command.getPackageName(), command.getDecompressPackageName(), - command.getPackageMd5(), command.getRunAs()); + installResult = serviceHandler.install(command); // 其他服务创建软连接 String appHome = Constants.INSTALL_PATH + Constants.SLASH + command.getDecompressPackageName(); String appLinkHome = Constants.INSTALL_PATH + Constants.SLASH + StringUtils.lowerCase(command.getServiceName()); diff --git a/datasophon-worker/src/main/java/com/datasophon/worker/handler/InstallServiceHandler.java b/datasophon-worker/src/main/java/com/datasophon/worker/handler/InstallServiceHandler.java index 8bb3b0bd..65eaa3cd 100644 --- a/datasophon-worker/src/main/java/com/datasophon/worker/handler/InstallServiceHandler.java +++ b/datasophon-worker/src/main/java/com/datasophon/worker/handler/InstallServiceHandler.java @@ -22,6 +22,8 @@ import cn.hutool.core.lang.Console; import cn.hutool.http.HttpUtil; import com.datasophon.common.Constants; +import com.datasophon.common.cache.CacheUtils; +import com.datasophon.common.command.InstallServiceRoleCommand; import com.datasophon.common.model.RunAs; import com.datasophon.common.utils.CompressUtils; import com.datasophon.common.utils.ExecResult; @@ -38,7 +40,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Objects; @Data public class InstallServiceHandler { @@ -59,19 +60,21 @@ public InstallServiceHandler(String serviceName, String serviceRoleName) { logger = LoggerFactory.getLogger(loggerName); } - public ExecResult install(String packageName, String decompressPackageName, String packageMd5, RunAs runAs) { + public ExecResult install(InstallServiceRoleCommand command) { ExecResult execResult = new ExecResult(); try { String destDir = Constants.INSTALL_PATH + Constants.SLASH + "DDP/packages" + Constants.SLASH; + String packageName = command.getPackageName(); String packagePath = destDir + packageName; - Boolean needDownLoad = isNeedDownloadPkg(packagePath, packageMd5); + Boolean needDownLoad = !Objects.equals(PropertyUtils.getString(Constants.MASTER_HOST), CacheUtils.get(Constants.HOSTNAME)) + && isNeedDownloadPkg(packagePath, command.getPackageMd5()); if (Boolean.TRUE.equals(needDownLoad)) { downloadPkg(packageName, packagePath); } - boolean result = decompressPkg(packageName, decompressPackageName, runAs, packagePath); + boolean result = decompressPkg(packageName, command.getDecompressPackageName(), command.getRunAs(), packagePath); execResult.setExecResult(result); } catch (Exception e) { execResult.setExecOut(e.getMessage());