reghao 4 лет назад
Родитель
Сommit
acb4629cf9
33 измененных файлов с 113 добавлено и 350 удалено
  1. 0 16
      common/src/main/java/cn/reghao/autodop/common/dagent/app/log/AppLogArgs.java
  2. 0 30
      common/src/main/java/cn/reghao/autodop/common/dagent/app/log/LogConfig.java
  3. 0 21
      common/src/main/java/cn/reghao/autodop/common/dagent/app/log/LogFile.java
  4. 0 11
      common/src/main/java/cn/reghao/autodop/common/dagent/app/log/LogLevel.java
  5. 0 11
      common/src/main/java/cn/reghao/autodop/common/dagent/app/log/LogType.java
  6. 6 10
      common/src/main/java/cn/reghao/autodop/common/docker/Docker.java
  7. 0 21
      dagent/src/main/java/cn/reghao/autodop/dagent/app/AppService.java
  8. 0 59
      dagent/src/main/java/cn/reghao/autodop/dagent/app/DockerAppServiceImpl.java
  9. 2 16
      dagent/src/main/java/cn/reghao/autodop/dagent/app/ZipAppServiceImpl.java
  10. 1 37
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/AppStatusController.java
  11. 2 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/config/CompilerConfigController.java
  12. 2 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/config/PackerConfigController.java
  13. 2 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/config/RepoAuthConfigController.java
  14. 1 22
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/page/config/AppConfigPageController.java
  15. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/page/config/AppDeployConfigPageController.java
  16. 0 20
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/po/config/LogConfig.java
  17. 0 5
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/AppStatusService.java
  18. 14 23
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/AppConfigServiceImpl.java
  19. 4 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/AppDeployConfigServiceImpl.java
  20. 0 31
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/impl/AppStatusServiceImpl.java
  21. 0 8
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/AppConfigPage.java
  22. 17 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/config/AppConfigPage.java
  23. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/config/AppDeployConfigPage.java
  24. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/config/AppDeployConfigPageImpl.java
  25. 8 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/config/BuildDirPage.java
  26. 8 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/config/CompilerConfigPage.java
  27. 8 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/config/PackerConfigPage.java
  28. 8 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/config/RepoAuthConfigPage.java
  29. 2 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/db/query/AppMonitorQuery.java
  30. 5 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/db/query/AppMonitorQueryImpl.java
  31. 2 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/db/repository/AppMonitorRepository.java
  32. 3 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/AppMonitorService.java
  33. 15 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/AppMonitorServiceImpl.java

+ 0 - 16
common/src/main/java/cn/reghao/autodop/common/dagent/app/log/AppLogArgs.java

@@ -1,16 +0,0 @@
-package cn.reghao.autodop.common.dagent.app.log;
-
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2020-12-25 19:01:22
- */
-@Data
-public class AppLogArgs {
-    private String packerType;
-    private String appId;
-    private List<LogConfig> logConfigs;
-}

+ 0 - 30
common/src/main/java/cn/reghao/autodop/common/dagent/app/log/LogConfig.java

@@ -1,30 +0,0 @@
-package cn.reghao.autodop.common.dagent.app.log;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-/**
- * 应用日志配置
- *
- * @author reghao
- * @date 2020-05-19 09:24:41
- */
-@NoArgsConstructor
-@AllArgsConstructor
-@Data
-public class LogConfig {
-    private String type;
-    private String level;
-    // 相对于 runningHome
-    private String logPath;
-    // 判断是日志目录还是日志文件
-    private Boolean isDir;
-
-    public LogConfig(String type, String level, String logPath) {
-        this.type = type;
-        this.level = level;
-        this.logPath = logPath;
-        this.isDir =true;
-    }
-}

+ 0 - 21
common/src/main/java/cn/reghao/autodop/common/dagent/app/log/LogFile.java

@@ -1,21 +0,0 @@
-package cn.reghao.autodop.common.dagent.app.log;
-
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2020-06-03 21:41:21
- */
-@Data
-public class LogFile {
-    private String logType;
-    private String logLevel;
-    private List<String> files;
-
-    public LogFile(String logType, String logLevel) {
-        this.logType = logType;
-        this.logLevel = logLevel;
-    }
-}

+ 0 - 11
common/src/main/java/cn/reghao/autodop/common/dagent/app/log/LogLevel.java

@@ -1,11 +0,0 @@
-package cn.reghao.autodop.common.dagent.app.log;
-
-/**
- * 应用日志等级
- *
- * @author reghao
- * @date 2019-10-18 14:31:29
- */
-public enum LogLevel {
-    info, error;
-}

+ 0 - 11
common/src/main/java/cn/reghao/autodop/common/dagent/app/log/LogType.java

@@ -1,11 +0,0 @@
-package cn.reghao.autodop.common.dagent.app.log;
-
-/**
- * 应用日志类型
- *
- * @author reghao
- * @date 2019-10-18 14:31:29
- */
-public enum LogType {
-    console, file;
-}

+ 6 - 10
common/src/main/java/cn/reghao/autodop/common/docker/Docker.java

@@ -1,6 +1,5 @@
 package cn.reghao.autodop.common.docker;
 
-import cn.reghao.autodop.common.dagent.app.log.LogLevel;
 import cn.reghao.autodop.common.docker.api.ContainerOps;
 import cn.reghao.autodop.common.docker.api.DockerApi;
 import cn.reghao.autodop.common.docker.api.ImageOps;
@@ -284,11 +283,10 @@ public class Docker implements ImageOps, ContainerOps, AutoCloseable {
      */
     @Override
     public List<String> consoleLog(String containerId, String logLevel) throws DockerException {
-        try {
-            String uri = DockerApi.logsGet.replace("{}", containerId);
-            FullHttpResponse response;
-            // TODO 处理乱码
-            switch (LogLevel.valueOf(logLevel)) {
+        String uri = DockerApi.logsGet.replace("{}", containerId);
+        FullHttpResponse response;
+        // TODO 处理乱码
+            /*switch (LogLevel.valueOf(logLevel)) {
                 case info:
                     // 标准输出
                     String params = "?stdout=true&tail=1000";
@@ -311,10 +309,8 @@ public class Docker implements ImageOps, ContainerOps, AutoCloseable {
                     }
                 default:
                     throw new DockerException("日志级别 " + logLevel + " 不存在");
-            }
-        } catch (IOException | InterruptedException e) {
-            throw new DockerException(ExceptionUtil.errorMsg(e));
-        }
+            }*/
+        return Collections.emptyList();
     }
 
     /**

+ 0 - 21
dagent/src/main/java/cn/reghao/autodop/dagent/app/AppService.java

@@ -2,12 +2,8 @@ package cn.reghao.autodop.dagent.app;
 
 import cn.reghao.autodop.common.msg.rpc.dto.app.StatusResult;
 import cn.reghao.autodop.common.msg.rpc.dto.app.DeployParam;
-import cn.reghao.autodop.common.dagent.app.log.AppLogArgs;
-import cn.reghao.autodop.common.dagent.app.log.LogFile;
 import cn.reghao.autodop.common.docker.DockerException;
 
-import java.util.List;
-
 /**
  * @author reghao
  * @date 2021-02-22 16:21:28
@@ -18,21 +14,4 @@ public interface AppService {
     StatusResult restart(String appId) throws DockerException;
     StatusResult stop(String appId) throws DockerException;
     StatusResult start(String appId) throws DockerException;
-    /**
-     * 日志文件列表
-     *
-     * @param
-     * @return
-     * @date 2021-02-26 下午3:25
-     */
-    List<LogFile> logFiles(AppLogArgs appLogArgs) throws DockerException;
-
-    /**
-     * 日志内容
-     *
-     * @param
-     * @return
-     * @date 2021-02-26 下午3:26
-     */
-    List<String> logContent(AppLogArgs appLogArgs) throws DockerException;
 }

+ 0 - 59
dagent/src/main/java/cn/reghao/autodop/dagent/app/DockerAppServiceImpl.java

@@ -4,10 +4,6 @@ import cn.reghao.autodop.common.machine.Machine;
 import cn.reghao.autodop.common.msg.pub.dto.node.constant.NodeStatus;
 import cn.reghao.autodop.common.msg.rpc.dto.app.StatusResult;
 import cn.reghao.autodop.common.msg.rpc.dto.app.DeployParam;
-import cn.reghao.autodop.common.dagent.app.log.AppLogArgs;
-import cn.reghao.autodop.common.dagent.app.log.LogConfig;
-import cn.reghao.autodop.common.dagent.app.log.LogFile;
-import cn.reghao.autodop.common.dagent.app.log.LogType;
 import cn.reghao.autodop.common.docker.Docker;
 import cn.reghao.autodop.common.docker.DockerException;
 import cn.reghao.autodop.common.docker.po.Config;
@@ -19,9 +15,6 @@ import cn.reghao.jdkutil.converter.DateTimeConverter;
 import cn.reghao.jdkutil.serializer.JsonConverter;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * @author reghao
  * @date 2021-02-22 16:21:37
@@ -127,56 +120,4 @@ public class DockerAppServiceImpl implements AppService {
             throw new DockerException(ExceptionUtil.errorMsg(e));
         }
     }
-
-    @Override
-    public List<LogFile> logFiles(AppLogArgs appLogArgs) throws DockerException {
-        String appId = appLogArgs.getAppId();
-        List<LogConfig> logConfigs = appLogArgs.getLogConfigs();
-
-        try (Docker docker = new Docker()) {
-            String containerId = docker.getIdByName(appId);
-            List<LogFile> logFiles = new ArrayList<>();
-            for (LogConfig logConfig : logConfigs) {
-                String logType = logConfig.getType();
-                String logLevel = logConfig.getLevel();
-                String logPath = logConfig.getLogPath();
-
-                LogFile logFile = new LogFile(logType, logLevel);
-                switch (LogType.valueOf(logType)) {
-                    case console:
-                        logFile.setFiles(docker.fileList(containerId, logPath));
-                        break;
-                    case file:
-                        logFile.setFiles(docker.fileList(containerId, logPath));
-                        break;
-                    default:
-                        throw new DockerException("日志类型 " + logType + " 不存在");
-                }
-                logFiles.add(logFile);
-            }
-            return logFiles;
-        }
-    }
-
-    @Override
-    public List<String> logContent(AppLogArgs appLogArgs) throws DockerException {
-        String appId = appLogArgs.getAppId();
-        List<LogConfig> logConfigs = appLogArgs.getLogConfigs();
-        LogConfig logConfig = logConfigs.get(0);
-        String logType = logConfig.getType();
-        String logLevel = logConfig.getLevel();
-        String logPath = logConfig.getLogPath();
-
-        try (Docker docker = new Docker()) {
-            String containerId = docker.getIdByName(appId);
-            switch (LogType.valueOf(logType)) {
-                case console:
-                    return docker.consoleLog(containerId, logLevel);
-                case file:
-                    return docker.fileLog(containerId, logPath);
-                default:
-                    throw new DockerException("日志类型 " + logType + " 不存在");
-            }
-        }
-    }
 }

+ 2 - 16
dagent/src/main/java/cn/reghao/autodop/dagent/app/ZipAppServiceImpl.java

@@ -2,14 +2,11 @@ package cn.reghao.autodop.dagent.app;
 
 import cn.reghao.autodop.common.msg.rpc.dto.app.StatusResult;
 import cn.reghao.autodop.common.msg.rpc.dto.app.DeployParam;
-import cn.reghao.autodop.common.dagent.app.log.AppLogArgs;
-import cn.reghao.autodop.common.dagent.app.log.LogFile;
 import lombok.extern.slf4j.Slf4j;
 
-import java.util.Collections;
-import java.util.List;
-
 /**
+ * TODO 待实现
+ *
  * @author reghao
  * @date 2021-02-22 16:21:37
  */
@@ -17,7 +14,6 @@ import java.util.List;
 public class ZipAppServiceImpl implements AppService {
     @Override
     public StatusResult deploy(DeployParam deployParam) {
-        log.info("zip 部署");
         return null;
     }
 
@@ -40,14 +36,4 @@ public class ZipAppServiceImpl implements AppService {
     public StatusResult start(String appId) {
         return null;
     }
-
-    @Override
-    public List<LogFile> logFiles(AppLogArgs appLogArgs) {
-        return Collections.emptyList();
-    }
-
-    @Override
-    public List<String> logContent(AppLogArgs appLogArgs) {
-        return Collections.emptyList();
-    }
 }

+ 1 - 37
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/AppStatusController.java

@@ -3,7 +3,6 @@ package cn.reghao.autodop.dmaster.app.controller;
 import cn.reghao.jdkutil.result.WebBody;
 import cn.reghao.autodop.dmaster.app.model.constant.StatusOps;
 import cn.reghao.autodop.dmaster.app.service.AppStatusService;
-import cn.reghao.autodop.common.dagent.app.log.LogFile;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -12,8 +11,6 @@ import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.List;
-
 /**
  * @author reghao
  * @date 2020-02-28 11:33:23
@@ -23,7 +20,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/api/app/status")
 public class AppStatusController {
-    private AppStatusService statusService;
+    private final AppStatusService statusService;
     
     public AppStatusController(AppStatusService statusService) {
         this.statusService = statusService;
@@ -52,37 +49,4 @@ public class AppStatusController {
         statusService.changeStatus(appId, machineId, StatusOps.start);
         return ResponseEntity.ok().body(WebBody.success(appId + " 已启动"));
     }
-
-    @ApiOperation(value = "刷新某个已部署应用状态")
-    @PostMapping(value = "/refresh/{appId}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public ResponseEntity<String> refreshDeployedApp(@PathVariable("appId") String appId) {
-        statusService.refreshAppStatus(appId);
-        return ResponseEntity.ok().body(WebBody.success());
-    }
-
-    @ApiOperation(value = "刷新已部署应用状态")
-    @PostMapping(value = "/refresh", produces = MediaType.APPLICATION_JSON_VALUE)
-    public ResponseEntity<String> refreshDeployedApps() {
-        statusService.refreshAppStatus();
-        return ResponseEntity.ok().body(WebBody.success());
-    }
-
-    @ApiOperation(value = "获取指定主机上应用的所有日志文件")
-    @GetMapping("/log/files")
-    public ResponseEntity<String> appLogFiles(@RequestParam("machineId") String machineId,
-                                              @RequestParam("appId") String appId) {
-        List<LogFile> list = statusService.logFiles(appId, machineId);
-        return ResponseEntity.ok().body(WebBody.success(list));
-    }
-
-    @ApiOperation(value = "获取应用日志内容")
-    @GetMapping("/log/content")
-    public ResponseEntity<String> appLogContent(@RequestParam("machineId") String machineId,
-                                                @RequestParam("appId") String appId,
-                                                @RequestParam("logType") String logType,
-                                                @RequestParam("logLevel") String logLevel,
-                                                @RequestParam("logFile") String logFile) {
-        List<String> logs = statusService.logContent(appId, logType, logLevel, machineId, logFile);
-        return ResponseEntity.ok().body(WebBody.success(logs));
-    }
 }

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/config/CompilerConfigController.java

@@ -27,7 +27,7 @@ public class CompilerConfigController {
     }
 
     @ApiOperation(value = "添加/修改应用编译配置")
-    @PostMapping(value = "/compiler", produces = MediaType.APPLICATION_JSON_VALUE)
+    @PostMapping(produces = MediaType.APPLICATION_JSON_VALUE)
     public String addCompileConfig(@Validated CompilerConfig compilerConfig) {
         Integer id = compilerConfig.getId();
         Result result;
@@ -40,7 +40,7 @@ public class CompilerConfigController {
     }
 
     @ApiOperation(value = "删除应用编译配置")
-    @DeleteMapping(value = "/compiler/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
+    @DeleteMapping(value = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
     public String deleteCompileConfig(@PathVariable("id") CompilerConfig compilerConfig) {
         Result result = compilerConfigService.delete(compilerConfig);
         return WebBody.result(result);

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/config/PackerConfigController.java

@@ -29,7 +29,7 @@ public class PackerConfigController {
     }
 
     @ApiOperation(value = "添加/修改应用打包配置")
-    @PostMapping(value = "/packer", produces = MediaType.APPLICATION_JSON_VALUE)
+    @PostMapping(produces = MediaType.APPLICATION_JSON_VALUE)
     public String addPackConfig(@Validated PackerConfig packerConfig) {
         Integer id = packerConfig.getId();
         Result result;
@@ -42,7 +42,7 @@ public class PackerConfigController {
     }
 
     @ApiOperation(value = "删除应用打包配置")
-    @DeleteMapping(value = "/packer/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
+    @DeleteMapping(value = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
     public String deletePackConfig(@PathVariable("id") PackerConfig packerConfig) {
         Result result = packerConfigService.delete(packerConfig);
         return WebBody.result(result);

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/config/RepoAuthConfigController.java

@@ -43,7 +43,7 @@ public class RepoAuthConfigController {
     @ApiOperation(value = "删除仓库认证配置")
     @DeleteMapping(value = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
     public String deleteRepoConfig(@PathVariable("id") RepoAuthConfig repoAuth) {
-        repoAuthConfigService.delete(repoAuth);
-        return WebBody.success();
+        Result result = repoAuthConfigService.delete(repoAuth);
+        return WebBody.result(result);
     }
 }

+ 1 - 22
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/page/config/AppConfigPageController.java

@@ -4,13 +4,10 @@ import cn.reghao.autodop.common.msg.rpc.dto.app.PackType;
 import cn.reghao.autodop.dmaster.app.db.query.config.*;
 import cn.reghao.autodop.dmaster.app.model.constant.AppType;
 import cn.reghao.autodop.dmaster.app.model.constant.EnvList;
-import cn.reghao.autodop.dmaster.app.model.po.config.AppDeployConfig;
 import cn.reghao.autodop.dmaster.machine.db.query.MachineHostQuery;
-import cn.reghao.autodop.dmaster.notification.model.po.NotifyGroup;
 import cn.reghao.autodop.dmaster.notification.model.po.NotifyType;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.vo.KeyValue;
-import cn.reghao.autodop.dmaster.notification.db.repository.NotifyGroupRepository;
 import cn.reghao.autodop.dmaster.util.db.PageList;
 import cn.reghao.autodop.dmaster.util.db.PageSort;
 import io.swagger.annotations.Api;
@@ -40,20 +37,15 @@ public class AppConfigPageController {
     private final CompilerConfigQuery compilerConfigQuery;
     private final PackerConfigQuery packerConfigQuery;
     private final MachineHostQuery hostQuery;
-    private final NotifyGroupRepository receiverRepository;
-    private final AppDeployConfigQuery deployConfigQuery;
 
     public AppConfigPageController(AppConfigQuery appConfigQuery, RepoAuthConfigQuery repoAuthConfigQuery,
                                    CompilerConfigQuery compilerConfigQuery, PackerConfigQuery packerConfigQuery,
-                                   MachineHostQuery hostQuery, NotifyGroupRepository receiverRepository,
-                                   AppDeployConfigQuery deployConfigQuery) {
+                                   MachineHostQuery hostQuery) {
         this.appConfigQuery = appConfigQuery;
         this.repoAuthConfigQuery = repoAuthConfigQuery;
         this.compilerConfigQuery = compilerConfigQuery;
         this.packerConfigQuery = packerConfigQuery;
         this.hostQuery = hostQuery;
-        this.receiverRepository = receiverRepository;
-        this.deployConfigQuery = deployConfigQuery;
     }
 
     @ApiOperation(value = "应用配置页面")
@@ -171,17 +163,4 @@ public class AppConfigPageController {
         model.addAttribute("app", app);
         return "/app/config/app/detail";
     }
-
-    @Deprecated
-    @ApiOperation(value = "通知配置页面")
-    @GetMapping("/notify/{id}")
-    public String receiverIdsPage(@PathVariable("id") AppConfig app, Model model) {
-        /*Set<NotifyGroup> currentSet = new HashSet<>(app.getNotifyGroups());
-        List<NotifyGroup> list = receiverRepository.findAll();
-
-        model.addAttribute("id", app.getId());
-        model.addAttribute("currentSet", currentSet);
-        model.addAttribute("list", list);*/
-        return "/app/config/app/notify";
-    }
 }

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/page/config/AppDeployConfigPageController.java

@@ -5,7 +5,7 @@ import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppDeployConfig;
 import cn.reghao.autodop.dmaster.app.model.vo.AppDeployConfigVo;
 import cn.reghao.autodop.dmaster.app.model.vo.KeyValue;
-import cn.reghao.autodop.dmaster.app.service.page.AppDeployConfigPage;
+import cn.reghao.autodop.dmaster.app.service.page.config.AppDeployConfigPage;
 import cn.reghao.autodop.dmaster.util.db.PageList;
 import cn.reghao.autodop.dmaster.util.db.PageSort;
 import io.swagger.annotations.Api;

+ 0 - 20
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/po/config/LogConfig.java

@@ -1,20 +0,0 @@
-package cn.reghao.autodop.dmaster.app.model.po.config;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-/**
- * TODO 应用日志配置
- *
- * @author reghao
- * @date 2020-05-19 09:24:41
- */
-public class LogConfig {
-    private String type;
-    private String level;
-    // 相对于 DeployConfig.startHome
-    private String path;
-    // 判断是日志目录还是日志文件
-    private Boolean isDir;
-}

+ 0 - 5
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/AppStatusService.java

@@ -3,9 +3,6 @@ package cn.reghao.autodop.dmaster.app.service;
 import cn.reghao.autodop.dmaster.app.model.constant.StatusOps;
 import cn.reghao.autodop.dmaster.app.model.po.AppRunning;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
-import cn.reghao.autodop.common.dagent.app.log.LogFile;
-
-import java.util.List;
 
 /**
  * 应用状态管理
@@ -19,6 +16,4 @@ public interface AppStatusService {
     void refreshAppStatus(String appId);
     void refreshAppStatus(AppRunning appRunning);
     void getStatus(AppConfig app, String machineId);
-    List<LogFile> logFiles(String appId, String machineId);
-    List<String> logContent(String appId, String logType, String logLevel, String machineId, String logFile);
 }

+ 14 - 23
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/AppConfigServiceImpl.java

@@ -13,15 +13,12 @@ import cn.reghao.autodop.dmaster.app.service.bd.AppRunningService;
 import cn.reghao.autodop.dmaster.app.service.config.AppConfigService;
 import cn.reghao.autodop.dmaster.monitor.db.crud.AppMonitorCrud;
 import cn.reghao.autodop.dmaster.monitor.model.po.AppMonitor;
+import cn.reghao.autodop.dmaster.monitor.service.AppMonitorService;
 import cn.reghao.jdkutil.result.Result;
 import cn.reghao.jdkutil.result.ResultStatus;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.List;
-import java.util.stream.Collectors;
-
 /**
  * @author reghao
  * @date 2021-09-16 18:28:51
@@ -31,41 +28,35 @@ public class AppConfigServiceImpl implements AppConfigService {
     private final AppConfigQuery appConfigQuery;
     private final AppConfigCrud appConfigCrud;
     private final BuildConfigChecker buildConfigChecker;
-
-    @Autowired
-    private AppBuildingService buildingService;
-    @Autowired
-    private AppDeployingService deployingService;
-    @Autowired
-    private AppDeployingQuery deployingQuery;
-    @Autowired
-    private AppRunningService runningService;
-    @Autowired
-    private AppDeployConfigQuery deployConfigQuery;
-    @Autowired
-    private AppMonitorCrud appMonitorCrud;
+    private AppBuildingService appBuildingService;
+    private AppMonitorService appMonitorService;
 
     public AppConfigServiceImpl(AppConfigQuery appConfigQuery, AppConfigCrud appConfigCrud,
-                                BuildConfigChecker buildConfigChecker) {
+                                BuildConfigChecker buildConfigChecker, AppBuildingService appBuildingService,
+                                AppMonitorService appMonitorService) {
         this.appConfigQuery = appConfigQuery;
         this.appConfigCrud = appConfigCrud;
         this.buildConfigChecker = buildConfigChecker;
+        this.appBuildingService = appBuildingService;
+        this.appMonitorService = appMonitorService;
     }
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public Result add(AppConfig app) {
+    public Result add(AppConfig appConfig) {
         // TODO 处理所有与 app 关联的数据
         // TODO 不能有应用处于构建中
         // 首先处理共享实体,将 app 的所有属性填充完整
         try {
-            checkSharedEntity(app);
+            checkSharedEntity(appConfig);
         } catch (Exception e) {
             return Result.fail(e.getMessage());
         }
 
-        appConfigCrud.save(app);
-        String msg = String.format("添加 %s 成功", app.getAppId());
+        appConfigCrud.save(appConfig);
+        appBuildingService.add(appConfig);
+        appMonitorService.add(appConfig);
+        String msg = String.format("添加 %s 成功", appConfig.getAppId());
         return Result.result(ResultStatus.SUCCESS, msg);
     }
 
@@ -122,6 +113,6 @@ public class AppConfigServiceImpl implements AppConfigService {
 
         // TODO 处理所有与 app 关联的数据
         appConfigCrud.delete(app);*/
-        return Result.result(ResultStatus.SUCCESS);
+        return Result.result(ResultStatus.SUCCESS, "暂未实现");
     }
 }

+ 4 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/impl/AppDeployConfigServiceImpl.java

@@ -3,11 +3,13 @@ package cn.reghao.autodop.dmaster.app.service.config.impl;
 import cn.reghao.autodop.common.docker.po.Config;
 import cn.reghao.autodop.common.msg.rpc.dto.app.PackType;
 import cn.reghao.autodop.dmaster.app.db.crud.config.AppDeployConfigCrud;
+import cn.reghao.autodop.dmaster.app.db.query.AppDeployingQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.query.config.AppDeployConfigQuery;
 import cn.reghao.autodop.dmaster.app.model.dto.AppDeployConfigDto;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppDeployConfig;
+import cn.reghao.autodop.dmaster.app.service.bd.AppRunningService;
 import cn.reghao.autodop.dmaster.app.service.config.AppDeployConfigService;
 import cn.reghao.autodop.dmaster.app.service.bd.AppDeployingService;
 import cn.reghao.autodop.dmaster.machine.db.query.MachineHostQuery;
@@ -28,7 +30,9 @@ public class AppDeployConfigServiceImpl implements AppDeployConfigService {
     private final AppDeployConfigCrud deployConfigCrud;
     private final AppConfigQuery appConfigQuery;
     private final MachineHostQuery machineHostQuery;
+    private AppDeployingQuery deployingQuery;
     private final AppDeployingService deployingService;
+    private AppRunningService runningService;
 
     public AppDeployConfigServiceImpl(AppDeployConfigQuery deployConfigQuery, AppDeployConfigCrud deployConfigCrud,
                                       AppConfigQuery appConfigQuery, MachineHostQuery machineHostQuery,

+ 0 - 31
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/impl/AppStatusServiceImpl.java

@@ -1,6 +1,5 @@
 package cn.reghao.autodop.dmaster.app.service.impl;
 
-import cn.reghao.autodop.common.dagent.app.log.LogFile;
 import cn.reghao.autodop.common.mqtt.DefaultMqttClient;
 import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
 import cn.reghao.autodop.dmaster.app.db.repository.AppRunningRepository;
@@ -62,34 +61,4 @@ public class AppStatusServiceImpl implements AppStatusService {
     @Override
     public void getStatus(AppConfig app, String machineId) {
     }
-
-    /**
-     * 获取应用日志文件列表
-     *
-     * @param
-     * @return
-     * @date 2021-02-26 上午8:23
-     */
-    @Override
-    public List<LogFile> logFiles(String appId, String machineId) {
-        AppConfig app = appConfigQuery.findByAppId(appId);
-        return null;
-    }
-
-    /**
-     * 获取应用日志内容
-     *
-     * @param
-     * @return
-     * @date 2021-02-26 上午8:23
-     */
-    @Override
-    public List<String> logContent(String appId, String logType, String logLevel, String machineId, String logFile) {
-        AppConfig app = appConfigQuery.findByAppId(appId);
-        return null;
-    }
-
-    private List<String> getAppLog(String appId, String logType, String logLevel, String machineId, String logFile) {
-        return new ArrayList<>();
-    }
 }

+ 0 - 8
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/AppConfigPage.java

@@ -1,8 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.page;
-
-/**
- * @author reghao
- * @date 2021-10-22 09:15:56
- */
-public interface AppConfigPage {
-}

+ 17 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/config/AppConfigPage.java

@@ -0,0 +1,17 @@
+package cn.reghao.autodop.dmaster.app.service.page.config;
+
+import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
+import cn.reghao.autodop.dmaster.util.db.PageList;
+import org.springframework.data.domain.Pageable;
+
+/**
+ * @author reghao
+ * @date 2021-10-22 09:15:56
+ */
+public interface AppConfigPage {
+    PageList<AppConfig> indexPage(String env, Pageable pageable);
+    PageList<AppConfig> searchResultPage(String appName);
+    void addOrEditPage();
+    void copyPage();
+    void detailPage();
+}

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/AppDeployConfigPage.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/config/AppDeployConfigPage.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.app.service.page;
+package cn.reghao.autodop.dmaster.app.service.page.config;
 
 import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.po.config.AppDeployConfig;

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/AppDeployConfigPageImpl.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/config/AppDeployConfigPageImpl.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.app.service.page;
+package cn.reghao.autodop.dmaster.app.service.page.config;
 
 import cn.reghao.autodop.common.msg.pub.dto.node.constant.NodeStatus;
 import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;

+ 8 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/config/BuildDirPage.java

@@ -0,0 +1,8 @@
+package cn.reghao.autodop.dmaster.app.service.page.config;
+
+/**
+ * @author reghao
+ * @date 2021-10-26 15:05:16
+ */
+public interface BuildDirPage {
+}

+ 8 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/config/CompilerConfigPage.java

@@ -0,0 +1,8 @@
+package cn.reghao.autodop.dmaster.app.service.page.config;
+
+/**
+ * @author reghao
+ * @date 2021-10-26 15:05:43
+ */
+public interface CompilerConfigPage {
+}

+ 8 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/config/PackerConfigPage.java

@@ -0,0 +1,8 @@
+package cn.reghao.autodop.dmaster.app.service.page.config;
+
+/**
+ * @author reghao
+ * @date 2021-10-26 15:06:04
+ */
+public interface PackerConfigPage {
+}

+ 8 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/page/config/RepoAuthConfigPage.java

@@ -0,0 +1,8 @@
+package cn.reghao.autodop.dmaster.app.service.page.config;
+
+/**
+ * @author reghao
+ * @date 2021-10-26 15:06:31
+ */
+public interface RepoAuthConfigPage {
+}

+ 2 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/db/query/AppMonitorQuery.java

@@ -1,5 +1,6 @@
 package cn.reghao.autodop.dmaster.monitor.db.query;
 
+import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.monitor.model.po.AppMonitor;
 import cn.reghao.autodop.dmaster.monitor.model.dto.AppMonitorDto;
 import cn.reghao.jdkutil.db.BaseQuery;
@@ -15,5 +16,6 @@ import java.util.List;
 public interface AppMonitorQuery extends BaseQuery<AppMonitor> {
     Page<AppMonitorDto> findByEnv(String env, Pageable pageable);
     AppMonitor findByAppId(String appId);
+    AppMonitor findByAppConfig(AppConfig appConfig);
     List<AppMonitor> findByEnvAndAppType(String env, String appType);
 }

+ 5 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/db/query/AppMonitorQueryImpl.java

@@ -50,6 +50,11 @@ public class AppMonitorQueryImpl implements AppMonitorQuery {
         }
     }
 
+    @Override
+    public AppMonitor findByAppConfig(AppConfig appConfig) {
+        return appMonitorRepository.findByAppConfig(appConfig);
+    }
+
     @Override
     public List<AppMonitor> findByEnvAndAppType(String env, String appType) {
         Map<String, String> query = new HashMap<>();

+ 2 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/db/repository/AppMonitorRepository.java

@@ -1,5 +1,6 @@
 package cn.reghao.autodop.dmaster.monitor.db.repository;
 
+import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.monitor.model.po.AppMonitor;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@@ -10,4 +11,5 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
  */
 public interface AppMonitorRepository
         extends JpaRepository<AppMonitor, Integer>, JpaSpecificationExecutor<AppMonitor> {
+    AppMonitor findByAppConfig(AppConfig appConfig);
 }

+ 3 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/AppMonitorService.java

@@ -1,5 +1,6 @@
 package cn.reghao.autodop.dmaster.monitor.service;
 
+import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.monitor.model.dto.AppMonitorDto;
 import cn.reghao.autodop.dmaster.monitor.model.dto.AppNotifyDto;
 
@@ -8,6 +9,8 @@ import cn.reghao.autodop.dmaster.monitor.model.dto.AppNotifyDto;
  * @date 2021-10-25 14:25:04
  */
 public interface AppMonitorService {
+    void add(AppConfig appConfig);
     void setNotify(AppMonitorDto appMonitorDto);
     void setNotifyBatch(AppNotifyDto appNotifyDto);
+    void delete(AppConfig appConfig);
 }

+ 15 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/AppMonitorServiceImpl.java

@@ -1,5 +1,6 @@
 package cn.reghao.autodop.dmaster.monitor.service;
 
+import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.monitor.db.crud.AppMonitorCrud;
 import cn.reghao.autodop.dmaster.monitor.db.query.AppMonitorQuery;
 import cn.reghao.autodop.dmaster.monitor.model.dto.AppMonitorDto;
@@ -29,6 +30,15 @@ public class AppMonitorServiceImpl implements AppMonitorService {
         this.notifyGroupQuery = notifyGroupQuery;
     }
 
+    @Override
+    public void add(AppConfig appConfig) {
+        AppMonitor appMonitor = appMonitorQuery.findByAppConfig(appConfig);
+        if (appMonitor == null) {
+            appMonitor = new AppMonitor(appConfig);
+            appMonitorCrud.save(appMonitor);
+        }
+    }
+
     @Override
     public void setNotify(AppMonitorDto appMonitorDto) {
         AppMonitor appMonitor = appMonitorQuery.findByAppId(appMonitorDto.getAppId());
@@ -68,4 +78,9 @@ public class AppMonitorServiceImpl implements AppMonitorService {
             appMonitorCrud.saveAll(list);
         }
     }
+
+    @Override
+    public void delete(AppConfig appConfig) {
+
+    }
 }