Просмотр исходного кода

1.更新删除 AppConfig 的接口和实现
2.更新删除 AppDeployConfig 的接口和实现

reghao 1 год назад
Родитель
Сommit
c565870d03

+ 1 - 0
mgr/src/main/java/cn/reghao/devops/mgr/mgr/app/db/repository/config/AppDeployConfigRepository.java

@@ -22,4 +22,5 @@ public interface AppDeployConfigRepository
     int countByMachineHost(MachineHost machineHost);
     List<AppDeployConfig> findByMachineHost(MachineHost machineHost);
     List<AppDeployConfig> findByAppConfig(AppConfig appConfig);
+    List<AppDeployConfig> findByAppConfig_AppId(String appId);
 }

+ 2 - 0
mgr/src/main/java/cn/reghao/devops/mgr/mgr/app/service/AppDeployService.java

@@ -3,6 +3,7 @@ package cn.reghao.devops.mgr.mgr.app.service;
 import cn.reghao.devops.common.msg.event.EvtAppStatResult;
 import cn.reghao.devops.mgr.mgr.app.model.dto.DeployConfigDto;
 import cn.reghao.devops.mgr.mgr.app.model.po.AppBuilding;
+import cn.reghao.devops.mgr.mgr.app.model.po.config.AppConfig;
 import cn.reghao.devops.mgr.mgr.machine.model.po.MachineHost;
 import cn.reghao.jutil.jdk.result.Result;
 
@@ -14,6 +15,7 @@ public interface AppDeployService {
     Result addDeployConfig(DeployConfigDto deployConfigDto);
     Result updateStartScript(DeployConfigDto deployConfigDto);
     Result deleteDeployConfig(int appDeployConfigId);
+    Result deleteByApp(String appId);
     void deleteByMachineHost(MachineHost machineHost);
     void deleteAppDeploying(String appId, String machineId);
     void deleteDeployLog(String buildLogId);

+ 6 - 1
mgr/src/main/java/cn/reghao/devops/mgr/mgr/app/service/impl/AppBuildServiceImpl.java

@@ -171,11 +171,16 @@ public class AppBuildServiceImpl implements AppBuildService {
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Result deleteAppBuild(String appId) {
-        //deployConfigService.delete(app);
+        Result result = appDeployService.deleteByApp(appId);
+        if (result.getCode() != ResultStatus.SUCCESS.getCode()) {
+            return result;
+        }
+
         buildLogRepository.deleteByAppConfig_AppId(appId);
         buildingRepository.deleteByAppConfig_AppId(appId);
         appConfigRepository.deleteByAppId(appId);
         BuildTools.removeApp(appId);
+        clearLocalRepo(appId);
         return Result.result(ResultStatus.SUCCESS);
     }
 

+ 40 - 20
mgr/src/main/java/cn/reghao/devops/mgr/mgr/app/service/impl/AppDeployServiceImpl.java

@@ -134,15 +134,51 @@ public class AppDeployServiceImpl implements AppDeployService {
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Result deleteDeployConfig(int appDeployConfigId) {
-        deployConfigRepository.deleteById(appDeployConfigId);
+        AppDeployConfig appDeployConfig = deployConfigRepository.findById(appDeployConfigId).orElse(null);
+        if (appDeployConfig == null) {
+            return Result.result(ResultStatus.FAIL, "AppDeployConfig not exists");
+        }
 
-        /*AppDeployConfig appDeployConfig = deployConfigQuery.findById(appDeployConfigId);
+        return deleteAppDeployConfig(appDeployConfig);
+    }
+
+    private Result deleteAppDeployConfig(AppDeployConfig appDeployConfig) {
         String appId = appDeployConfig.getAppConfig().getAppId();
         String machineId = appDeployConfig.getMachineHost().getMachineId();
         if (!isRunning(appId, machineId)) {
-            delete(appDeployConfig);
+            deployingRepository.deleteByAppConfig_AppId(appId);
+            deployLogRepository.deleteByMachineHost_MachineId(machineId);
             deployConfigRepository.delete(appDeployConfig);
-        }*/
+            return Result.result(ResultStatus.SUCCESS);
+        }
+
+        return Result.result(ResultStatus.FAIL, "app is running");
+    }
+
+    private boolean isRunning(String appId, String machineId) {
+        AppDeploying appDeploying = deployingRepository.findByAppConfig_AppId(appId);
+        if (appDeploying != null) {
+            for (AppDeployingNode deployingNode : appDeploying.getDeployingNodes()) {
+                String machineId1 = deployingNode.getDeployConfig().getMachineHost().getMachineId();
+                if (machineId.equals(machineId1)) {
+                    int pid = deployingNode.getPid();
+                    return pid != -1;
+                }
+            }
+        }
+
+        return false;
+    }
+
+    @Override
+    public Result deleteByApp(String appId) {
+        List<AppDeployConfig> list = deployConfigRepository.findByAppConfig_AppId(appId);
+        for (AppDeployConfig appDeployConfig : list) {
+            Result result = deleteAppDeployConfig(appDeployConfig);
+            if (result.getCode() != ResultStatus.SUCCESS.getCode()) {
+                return result;
+            }
+        }
 
         return Result.result(ResultStatus.SUCCESS);
     }
@@ -289,20 +325,4 @@ public class AppDeployServiceImpl implements AppDeployService {
             log.info("{} -> {} not exist", machineIpv4, appId);
         }
     }
-
-    @Deprecated
-    public boolean isRunning(String appId, String machineId) {
-        AppDeploying appDeploying = deployingRepository.findByAppConfig_AppId(appId);
-        if (appDeploying != null) {
-            for (AppDeployingNode deployingNode : appDeploying.getDeployingNodes()) {
-                String machineId1 = deployingNode.getDeployConfig().getMachineHost().getMachineId();
-                if (machineId.equals(machineId1)) {
-                    int pid = deployingNode.getPid();
-                    return pid != -1;
-                }
-            }
-        }
-
-        return false;
-    }
 }