reghao пре 4 година
родитељ
комит
32d1dabfb6
96 измењених фајлова са 731 додато и 1075 уклоњено
  1. 1 1
      common/src/main/java/cn/reghao/autodop/common/amqp/RabbitProducer.java
  2. 1 1
      common/src/main/java/cn/reghao/autodop/common/docker/Docker.java
  3. 20 9
      common/src/main/java/cn/reghao/autodop/common/utils/serializer/JsonConverter.java
  4. 1 1
      common/src/main/java/cn/reghao/autodop/common/utils/serializer/LocalDateTimeAdapter.java
  5. 8 8
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/cache/BuildDeployCache.java
  6. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/constant/NotifyType.java
  7. 2 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/constant/build/CompileType.java
  8. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/ConfigController.java
  9. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/WebhookController.java
  10. 43 44
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/config/AppConfigController.java
  11. 151 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/config/BuildConfigController.java
  12. 0 164
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/crud/BuildConfigCrudController.java
  13. 0 59
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/crud/GlobalCrudController.java
  14. 8 10
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/AppOrchestration.java
  15. 0 69
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/NotifierConfig.java
  16. 17 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/NotifyReceiver.java
  17. 2 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/ProjOrchestration.java
  18. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/build/BuildConfig.java
  19. 2 10
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/build/BuildDir.java
  20. 3 19
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/build/CompilerConfig.java
  21. 3 11
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/build/PackerConfig.java
  22. 5 13
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/build/RepoAuthConfig.java
  23. 9 9
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/log/BuildLog.java
  24. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/log/CommitLog.java
  25. 2 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/status/BuildDeployApp.java
  26. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/interceptor/AppIntegrateReinitInterceptor.java
  27. 8 8
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/repository/config/AppConfigRepository.java
  28. 0 21
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/repository/config/NotifierConfigRepository.java
  29. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/repository/config/ProjConfigRepository.java
  30. 15 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/repository/config/build/RepoAuthConfigRepository.java
  31. 0 21
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/repository/config/build/RepoConfigRepository.java
  32. 15 14
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/AppStatusService.java
  33. 6 6
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/BuildDeployDispatcher.java
  34. 1 5
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/BuildService.java
  35. 6 15
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/ConfigOptionsService.java
  36. 6 6
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/RefreshService.java
  37. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/RemoteCallService.java
  38. 16 16
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/AppIntegrate.java
  39. 4 4
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/BuilderUtil.java
  40. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/compiler/MavenCompiler.java
  41. 10 10
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/repo/GitImpl.java
  42. 3 4
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/repo/SvnImpl.java
  43. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/BuildDeployAppCrudService.java
  44. 19 43
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/SharedEntityChecker.java
  45. 24 28
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/app/AppCrudService.java
  46. 14 14
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/app/ProjCrudService.java
  47. 36 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/build/BuildDirService.java
  48. 14 14
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/build/CompilerConfigService.java
  49. 14 14
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/build/PackerConfigService.java
  50. 61 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/build/RepoAuthConfigService.java
  51. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/log/AppStatusCrudService.java
  52. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/log/BuildLogCrudService.java
  53. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/log/CommitLogCrudService.java
  54. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/log/DeployLogCrudService.java
  55. 0 64
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/NotifierCrudService.java
  56. 0 92
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/build/BuildDirCrudService.java
  57. 0 62
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/build/RepoConfigCrudService.java
  58. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/deploy/AppDeployer.java
  59. 5 5
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/log/BuildDeployLogService.java
  60. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/vo/BuildConfigVO.java
  61. 30 34
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/vo/orchestration/AppVO.java
  62. 16 18
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/vo/orchestration/ProjVO.java
  63. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/config/WebSecurityConfig.java
  64. 10 11
      dmaster/src/main/java/cn/reghao/autodop/dmaster/common/db/CrudOps.java
  65. 2 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/controller/MachineController.java
  66. 4 4
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/controller/crud/MachineCrudController.java
  67. 2 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/controller/crud/MachineLogCrudController.java
  68. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/CPUInfo.java
  69. 1 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/DiskInfo.java
  70. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MachineHeartbeat.java
  71. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MachineInfo.java
  72. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MachineLog.java
  73. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MachineShell.java
  74. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MachineShellArgs.java
  75. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MachineState.java
  76. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MemoryInfo.java
  77. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/NetworkInfo.java
  78. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/OSInfo.java
  79. 2 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/repository/MachineInfoRepository.java
  80. 2 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/repository/MachineLogRepository.java
  81. 4 4
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/service/MachineService.java
  82. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/service/crud/MachineCrudService.java
  83. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/service/crud/MachineLogCrudService.java
  84. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/vo/MachineInfoVO.java
  85. 2 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/HealthCheckJob.java
  86. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/MonitorScheduler.java
  87. 5 5
      dmaster/src/main/java/cn/reghao/autodop/dmaster/utils/amqp/MachineDispatcher.java
  88. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/utils/hibernate/HibernateSessionOps.java
  89. 3 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/utils/notifier/EmailNotify.java
  90. 11 14
      dmaster/src/main/java/cn/reghao/autodop/dmaster/utils/notifier/NotifyService.java
  91. 4 3
      dmaster/src/main/java/cn/reghao/autodop/dmaster/utils/notifier/SmsNotify.java
  92. 13 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/ws/MessageBody.java
  93. 1 1
      dmaster/src/main/java/cn/reghao/autodop/dmaster/ws/WebsocketConfig.java
  94. 2 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/ws/WebsocketController.java
  95. 1 1
      dmaster/src/main/resources/application-dev.yml
  96. 3 5
      dmaster/src/test/java/cn/reghao/autodop/dmaster/app/service/RefreshServiceTest.java

+ 1 - 1
common/src/main/java/cn/reghao/autodop/common/amqp/RabbitProducer.java

@@ -71,7 +71,7 @@ public class RabbitProducer {
         if (result == null) {
             return RpcResult.fail("RPC 调用等待 " + timeout/1000 + "s 后超时");
         } else {
-            return (RpcResult) JsonConverter.jsonToObject(result, RpcResult.class);
+            return JsonConverter.jsonToObject(result, RpcResult.class);
         }
     }
 }

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

@@ -389,7 +389,7 @@ public class Docker implements ImageOps, ContainerOps, AutoCloseable {
             FullHttpResponse response = client.get(uri, null);
             if (response != null) {
                 String result =  response.content().toString(StandardCharsets.UTF_8);
-                return (ContainerInfo) JsonConverter.jsonToObject(result, ContainerInfo.class);
+                return JsonConverter.jsonToObject(result, ContainerInfo.class);
             } else {
                 throw new DockerException("请求 " + uri + " 的响应是 NULL...");
             }

+ 20 - 9
common/src/main/java/cn/reghao/autodop/common/utils/serializer/JsonConverter.java

@@ -1,12 +1,11 @@
 package cn.reghao.autodop.common.utils.serializer;
 
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
+import cn.reghao.autodop.common.utils.text.TextFile;
+import com.google.gson.*;
 
 import java.io.File;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -20,6 +19,7 @@ public class JsonConverter {
     private static Gson gson = new GsonBuilder()
             .registerTypeAdapter(LocalDateTime.class, new LocalDateTimeAdapter())
             .create();
+    private static JsonParser jsonParser = new JsonParser();
 
     /**
      * 对象转换为 JSON
@@ -39,12 +39,18 @@ public class JsonConverter {
      * @return
      * @date 2020-11-11 下午5:11
      */
-    public static Object jsonToObject(String json, Class<?> clazz) {
+    public static <T> T jsonToObject(String json, Class<T> clazz) {
         return gson.fromJson(json, clazz);
     }
 
-    public static JsonObject jsonToJsonObject(String json) {
-        return new JsonParser().parse(json).getAsJsonObject();
+    public static <T> List<T> jsonToObjects(String json, Class<T> clazz) {
+        JsonParser parser = new JsonParser();
+        List<T> list = new ArrayList<>();
+        parser.parse(json).getAsJsonArray().forEach(ele -> {
+            list.add(gson.fromJson(ele, clazz));
+        });
+
+        return list;
     }
 
     /**
@@ -54,8 +60,13 @@ public class JsonConverter {
      * @return
      * @date 2020-11-11 下午5:11
      */
-    public static Object jsonToObject(File jsonFile, Class<?> clazz) {
-        return null;
+    public static JsonElement jsonToJsonElement(File jsonFile) {
+        String content = new TextFile().readFile(jsonFile.getAbsolutePath()).replace(System.lineSeparator(), "");
+        return jsonParser.parse(content);
+    }
+
+    public static JsonElement jsonToJsonElement(String json) {
+        return jsonParser.parse(json);
     }
 
     /**

+ 1 - 1
common/src/main/java/cn/reghao/autodop/common/utils/serializer/LocalDateTimeAdapter.java

@@ -7,7 +7,7 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 
 /**
- * 序列化/反序列化 Java8 LocalDateTime
+ * Gson 序列化/反序列化 Java8 LocalDateTime
  *
  * @author reghao
  * @date 2021-03-04 19:34:31

+ 8 - 8
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/cache/BuildDeployCache.java

@@ -1,13 +1,13 @@
 package cn.reghao.autodop.dmaster.app.cache;
 
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.ProjConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
+import cn.reghao.autodop.dmaster.app.entity.config.ProjOrchestration;
 import cn.reghao.autodop.dmaster.app.entity.log.BuildLog;
 import cn.reghao.autodop.dmaster.app.repository.log.BuildLogRepository;
 import cn.reghao.autodop.dmaster.app.repository.config.AppConfigRepository;
 import cn.reghao.autodop.dmaster.app.repository.config.ProjConfigRepository;
-import cn.reghao.autodop.dmaster.cluster.entity.MachineInfo;
-import cn.reghao.autodop.dmaster.cluster.repository.MachineInfoRepository;
+import cn.reghao.autodop.dmaster.machine.entity.MachineInfo;
+import cn.reghao.autodop.dmaster.machine.repository.MachineInfoRepository;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 
@@ -37,16 +37,16 @@ public class BuildDeployCache {
     }
 
     @Cacheable(cacheNames = "buildDeployCache", key = "#appId")
-    public AppConfig findByAppId(String appId) {
-        AppConfig app = appRepository.findByIsDeleteFalseAndAppId(appId);
+    public AppOrchestration findByAppId(String appId) {
+        AppOrchestration app = appRepository.findByIsDeleteFalseAndAppId(appId);
         return app;
     }
 
-    public List<AppConfig> findEnabledApps(String env) {
+    public List<AppOrchestration> findEnabledApps(String env) {
         return appRepository.findAllByIsDeleteFalseAndEnableTrueAndEnv(env);
     }
 
-    public ProjConfig findByProjId(String projId) {
+    public ProjOrchestration findByProjId(String projId) {
         return null;
     }
 

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/constant/NotifierType.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/constant/NotifyType.java

@@ -6,6 +6,6 @@ package cn.reghao.autodop.dmaster.app.constant;
  * @author reghao
  * @date 2020-03-01 17:18:53
  */
-public enum NotifierType {
+public enum NotifyType {
     webhook, email, sms
 }

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/constant/build/CompilerType.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/constant/build/CompileType.java

@@ -1,11 +1,11 @@
 package cn.reghao.autodop.dmaster.app.constant.build;
 
 /**
- * 编译工具类型,应和和 @AppType 一致
+ * 编译方式类型
  *
  * @author reghao
  * @date 2019-10-18 14:31:29
  */
-public enum CompilerType {
+public enum CompileType {
     none, shell, maven, docker
 }

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/ConfigController.java

@@ -3,7 +3,7 @@ package cn.reghao.autodop.dmaster.app.controller;
 import cn.reghao.autodop.common.dagent.app.api.data.deploy.PackerType;
 import cn.reghao.autodop.common.result.WebResult;
 import cn.reghao.autodop.dmaster.app.constant.*;
-import cn.reghao.autodop.dmaster.app.constant.build.CompilerType;
+import cn.reghao.autodop.dmaster.app.constant.build.CompileType;
 import cn.reghao.autodop.dmaster.app.constant.build.RepoAuthType;
 import cn.reghao.autodop.dmaster.app.constant.build.RepoType;
 import cn.reghao.autodop.dmaster.app.service.ConfigOptionsService;
@@ -48,7 +48,7 @@ public class ConfigController {
                 }
                 break;
             case notifier:
-                for (NotifierType config : NotifierType.values()) {
+                for (NotifyType config : NotifyType.values()) {
                     map.put(config.name(), config.name());
                 }
                 break;
@@ -58,7 +58,7 @@ public class ConfigController {
                 }
                 break;
             case compiler:
-                for (CompilerType config : CompilerType.values()) {
+                for (CompileType config : CompileType.values()) {
                     map.put(config.name(), config.name());
                 }
                 break;

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

@@ -26,7 +26,7 @@ public class WebhookController {
     @ApiOperation(value = "通过 webhook 自动部署应用")
     @PostMapping("/hook")
     public String hook(@RequestBody String body) {
-        JsonObject jsonObject = JsonConverter.jsonToJsonObject(body);
+        JsonObject jsonObject = JsonConverter.jsonToJsonElement(body).getAsJsonObject();
         String repo = jsonObject.get("repository").getAsJsonObject().get("url").getAsString();
         String ref = jsonObject.get("ref").getAsString();
         String branch = ref.substring(ref.lastIndexOf("/")+1);

+ 43 - 44
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/crud/OrchestrateCrudController.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/config/AppConfigController.java

@@ -1,12 +1,12 @@
-package cn.reghao.autodop.dmaster.app.controller.crud;
+package cn.reghao.autodop.dmaster.app.controller.config;
 
 import cn.reghao.autodop.common.result.WebResult;
 import cn.reghao.autodop.dmaster.common.db.PageList;
 import cn.reghao.autodop.common.utils.serializer.JsonConverter;
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.ProjConfig;
-import cn.reghao.autodop.dmaster.app.service.crud.orchestarte.AppCrudService;
-import cn.reghao.autodop.dmaster.app.service.crud.orchestarte.ProjCrudService;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
+import cn.reghao.autodop.dmaster.app.entity.config.ProjOrchestration;
+import cn.reghao.autodop.dmaster.app.service.config.app.AppCrudService;
+import cn.reghao.autodop.dmaster.app.service.config.app.ProjCrudService;
 import cn.reghao.autodop.dmaster.app.vo.orchestration.AppVO;
 import cn.reghao.autodop.dmaster.app.vo.orchestration.ProjVO;
 import io.swagger.annotations.Api;
@@ -22,24 +22,24 @@ import java.util.stream.Collectors;
  * @date 2019-11-27 11:29:43
  */
 @Slf4j
-@Api(tags = "应用编排 CRUD 接口")
+@Api(tags = "应用配置 CRUD 接口")
 @RestController
 @RequestMapping("/api/config/orchestrate")
-public class OrchestrateCrudController {
+public class AppConfigController {
     private AppCrudService appCrudService;
     private ProjCrudService projCrudService;
 
-    public OrchestrateCrudController(AppCrudService appCrudService, ProjCrudService projCrudService) {
+    public AppConfigController(AppCrudService appCrudService, ProjCrudService projCrudService) {
         this.appCrudService = appCrudService;
         this.projCrudService = projCrudService;
     }
 
-    /* 应用编排 */
+    /* 应用配置 */
     @ApiOperation(value = "添加应用编排")
     @PostMapping(value = "/app", consumes = "application/json")
     public ResponseEntity<String> addAppOrchestration(@RequestBody String json) throws Exception {
         AppVO appVO = (AppVO) JsonConverter.jsonToObject(json, AppVO.class);
-        AppConfig app = AppVO.to(appVO);
+        AppOrchestration app = AppVO.to(appVO);
         appCrudService.addOrUpdate(app);
         return ResponseEntity.ok().body(WebResult.success("ok"));
     }
@@ -52,26 +52,11 @@ public class OrchestrateCrudController {
         return ResponseEntity.ok().body(WebResult.success("ok"));
     }
 
-    @ApiOperation(value = "分页获取应用编排")
-    @GetMapping("/app")
-    public ResponseEntity<String> getAppOrchestrationByPage(@RequestParam("page") int page,
-                                                            @RequestParam("size") int size,
-                                                            @RequestParam("env") String env) {
-        PageList<AppConfig> pageList = appCrudService.getByPage(page, size, env);
-        PageList<AppVO> vos = new PageList<>();
-        vos.setTotalPages(pageList.getTotalPages());
-        vos.setTotalSize(pageList.getTotalSize());
-        vos.setHasNext(pageList.isHasNext());
-        vos.setPageSize(pageList.getPageSize());
-        vos.setList(pageList.getList().stream().map(AppVO::from).collect(Collectors.toList()));
-        return ResponseEntity.ok().body(WebResult.success(vos));
-    }
-
     @ApiOperation(value = "修改应用编排")
     @PutMapping("/app")
     public ResponseEntity<String> modifyAppOrchestration(@RequestBody String json) throws Exception {
         AppVO appVO = (AppVO) JsonConverter.jsonToObject(json, AppVO.class);
-        AppConfig app = AppVO.to(appVO);
+        AppOrchestration app = AppVO.to(appVO);
         appCrudService.update(app);
         return ResponseEntity.ok().body(WebResult.success("ok"));
     }
@@ -83,12 +68,27 @@ public class OrchestrateCrudController {
         return ResponseEntity.ok().body(WebResult.success("ok"));
     }
 
+    @ApiOperation(value = "分页获取应用编排")
+    @GetMapping("/app")
+    public ResponseEntity<String> getAppOrchestrationByPage(@RequestParam("page") int page,
+                                                            @RequestParam("size") int size,
+                                                            @RequestParam("env") String env) {
+        PageList<AppOrchestration> pageList = appCrudService.getByPage(page, size, env);
+        PageList<AppVO> vos = new PageList<>();
+        vos.setTotalPages(pageList.getTotalPages());
+        vos.setTotalSize(pageList.getTotalSize());
+        vos.setHasNext(pageList.isHasNext());
+        vos.setPageSize(pageList.getPageSize());
+        vos.setList(pageList.getList().stream().map(AppVO::from).collect(Collectors.toList()));
+        return ResponseEntity.ok().body(WebResult.success(vos));
+    }
+
     /* 项目编排 */
     @ApiOperation(value = "添加项目编排")
     @PostMapping(value = "/proj", consumes = "application/json")
     public ResponseEntity<String> addProjOrchestration(@RequestBody String json) throws Exception {
         ProjVO projVO = (ProjVO) JsonConverter.jsonToObject(json, ProjVO.class);
-        ProjConfig proj = ProjVO.to(projVO);
+        ProjOrchestration proj = ProjVO.to(projVO);
         projCrudService.addOrUpdate(proj);
         return ResponseEntity.ok().body(WebResult.success("ok"));
     }
@@ -101,26 +101,10 @@ public class OrchestrateCrudController {
         return ResponseEntity.ok().body(WebResult.success("ok"));
     }
 
-    @ApiOperation(value = "分页获取项目编排")
-    @GetMapping("/proj")
-    public ResponseEntity<String> getProjOrchestrationByPage(@RequestParam("page") int page,
-                                                             @RequestParam("size") int size,
-                                                             @RequestParam("env") String env) {
-        PageList<ProjConfig> pageList = projCrudService.getByPage(page, size, env);
-        PageList<ProjVO> vos = new PageList<>();
-        vos.setTotalPages(pageList.getTotalPages());
-        vos.setTotalSize(pageList.getTotalSize());
-        vos.setHasNext(pageList.isHasNext());
-        vos.setPageSize(pageList.getPageSize());
-        vos.setList(pageList.getList().stream().map(ProjVO::from).collect(Collectors.toList()));
-
-        return ResponseEntity.ok().body(WebResult.success(vos));
-    }
-
     @ApiOperation(value = "修改项目编排")
     @PutMapping("/proj")
     public ResponseEntity<String> modifyProjOrchestration(@RequestBody String json) throws Exception {
-        ProjConfig proj = (ProjConfig) JsonConverter.jsonToObject(json, ProjConfig.class);
+        ProjOrchestration proj = (ProjOrchestration) JsonConverter.jsonToObject(json, ProjOrchestration.class);
         projCrudService.addOrUpdate(proj);
         return ResponseEntity.ok().body(WebResult.success("ok"));
     }
@@ -131,4 +115,19 @@ public class OrchestrateCrudController {
         projCrudService.delete(uniqueKey);
         return ResponseEntity.ok().body(WebResult.success("ok"));
     }
+
+    @ApiOperation(value = "分页获取项目编排")
+    @GetMapping("/proj")
+    public ResponseEntity<String> getProjOrchestrationByPage(@RequestParam("page") int page,
+                                                             @RequestParam("size") int size,
+                                                             @RequestParam("env") String env) {
+        PageList<ProjOrchestration> pageList = projCrudService.getByPage(page, size, env);
+        PageList<ProjVO> vos = new PageList<>();
+        vos.setTotalPages(pageList.getTotalPages());
+        vos.setTotalSize(pageList.getTotalSize());
+        vos.setHasNext(pageList.isHasNext());
+        vos.setPageSize(pageList.getPageSize());
+        vos.setList(pageList.getList().stream().map(ProjVO::from).collect(Collectors.toList()));
+        return ResponseEntity.ok().body(WebResult.success(vos));
+    }
 }

+ 151 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/config/BuildConfigController.java

@@ -0,0 +1,151 @@
+package cn.reghao.autodop.dmaster.app.controller.config;
+
+import cn.reghao.autodop.common.result.WebResult;
+import cn.reghao.autodop.dmaster.app.entity.config.build.BuildDir;
+import cn.reghao.autodop.dmaster.app.service.config.build.BuildDirService;
+import cn.reghao.autodop.dmaster.common.db.PageList;
+import cn.reghao.autodop.common.utils.serializer.JsonConverter;
+import cn.reghao.autodop.dmaster.app.entity.config.build.CompilerConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.build.PackerConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.build.RepoAuthConfig;
+import cn.reghao.autodop.dmaster.app.service.config.build.CompilerConfigService;
+import cn.reghao.autodop.dmaster.app.service.config.build.PackerConfigService;
+import cn.reghao.autodop.dmaster.app.service.config.build.RepoAuthConfigService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author reghao
+ * @date 2019-08-30 18:49:15
+ */
+@Slf4j
+@Api(tags = "应用构建配置 CRUD 接口")
+@RestController
+@RequestMapping("/api/config/build")
+public class BuildConfigController {
+    private BuildDirService buildDirService;
+    private RepoAuthConfigService repoAuthConfigService;
+    private CompilerConfigService compilerConfigService;
+    private PackerConfigService packerConfigService;
+
+    public BuildConfigController(BuildDirService buildDirService,
+                                 RepoAuthConfigService repoAuthConfigService,
+                                 CompilerConfigService compilerConfigService,
+                                 PackerConfigService packerConfigService) {
+        this.buildDirService = buildDirService;
+        this.repoAuthConfigService = repoAuthConfigService;
+        this.compilerConfigService = compilerConfigService;
+        this.packerConfigService = packerConfigService;
+    }
+
+    /* 构建配置 */
+    @ApiOperation(value = "获取构建目录配置")
+    @GetMapping("/dir")
+    public ResponseEntity<String> getBuildDirByPage(@RequestParam("page") int page, @RequestParam("size") int size) {
+        PageList<BuildDir> pageList = buildDirService.getByPage(page, size);
+        return ResponseEntity.ok().body(WebResult.success(pageList));
+    }
+
+    @ApiOperation(value = "修改构建目录配置")
+    @PutMapping("/dir")
+    public ResponseEntity<String> modifyBuildDir(@RequestBody String json) throws Exception {
+        BuildDir buildDir = JsonConverter.jsonToObject(json, BuildDir.class);
+        return ResponseEntity.ok().body(WebResult.success("ok"));
+    }
+
+    /* 仓库认证配置 */
+    @ApiOperation(value = "添加仓库认证配置")
+    @PostMapping(value = "/repo", consumes = "application/json")
+    public ResponseEntity<String> addRepoConfig(@RequestBody String json) throws Exception {
+        RepoAuthConfig repoAuthConfig = JsonConverter.jsonToObject(json, RepoAuthConfig.class);
+        repoAuthConfigService.addOrUpdate(repoAuthConfig);
+        return ResponseEntity.ok().body(WebResult.success("ok"));
+    }
+
+    @ApiOperation(value = "修改仓库认证配置")
+    @PutMapping("/repo")
+    public ResponseEntity<String> modifyRepoConfig(@RequestBody String json) throws Exception {
+        RepoAuthConfig repoAuthConfig = JsonConverter.jsonToObject(json, RepoAuthConfig.class);
+        repoAuthConfigService.addOrUpdate(repoAuthConfig);
+        return ResponseEntity.ok().body(WebResult.success("ok"));
+    }
+
+    @ApiOperation(value = "删除仓库认证配置")
+    @DeleteMapping("/repo/{uniqueKey}")
+    public ResponseEntity<String> deleteRepoConfig(@PathVariable("uniqueKey") String uniqueKey) throws Exception {
+        repoAuthConfigService.delete(uniqueKey);
+        return ResponseEntity.ok().body(WebResult.success("ok"));
+    }
+
+    @ApiOperation(value = "分页获取仓库认证配置")
+    @GetMapping("/repo")
+    public ResponseEntity<String> getRepoConfigByPage(@RequestParam("page") int page, @RequestParam("size") int size) {
+        PageList<RepoAuthConfig> pageList = repoAuthConfigService.getByPage(page, size);
+        return ResponseEntity.ok().body(WebResult.success(pageList));
+    }
+
+    /* 应用编译配置 */
+    @ApiOperation(value = "添加应用编译配置")
+    @PostMapping(value = "/compiler", consumes = "application/json")
+    public ResponseEntity<String> addCompileConfig(@RequestBody String json) throws Exception {
+        CompilerConfig compilerConfig = JsonConverter.jsonToObject(json, CompilerConfig.class);
+        compilerConfigService.addOrUpdate(compilerConfig);
+        return ResponseEntity.ok().body(WebResult.success("ok"));
+    }
+
+    @ApiOperation(value = "修改应用编译配置")
+    @PutMapping("/compiler")
+    public ResponseEntity<String> modifyCompileConfig(@RequestBody String json) throws Exception {
+        CompilerConfig compilerConfig = JsonConverter.jsonToObject(json, CompilerConfig.class);
+        compilerConfigService.addOrUpdate(compilerConfig);
+        return ResponseEntity.ok().body(WebResult.success("ok"));
+    }
+
+    @ApiOperation(value = "删除应用编译配置")
+    @DeleteMapping("/compiler/{uniqueKey}")
+    public ResponseEntity<String> deleteCompileConfig(@PathVariable("uniqueKey") String uniqueKey) throws Exception {
+        compilerConfigService.delete(uniqueKey);
+        return ResponseEntity.ok().body(WebResult.success("ok"));
+    }
+
+    @ApiOperation(value = "分页获取应用编译配置")
+    @GetMapping("/compiler")
+    public ResponseEntity<String> getCompileConfigByPage(@RequestParam("page") int page, @RequestParam("size") int size) {
+        PageList<CompilerConfig> pageList = compilerConfigService.getByPage(page, size);
+        return ResponseEntity.ok().body(WebResult.success(pageList));
+    }
+
+    /* 应用打包配置 */
+    @ApiOperation(value = "添加应用打包配置")
+    @PostMapping(value = "/packer", consumes = "application/json")
+    public ResponseEntity<String> addPackConfig(@RequestBody String json) throws Exception {
+        PackerConfig packerConfig = JsonConverter.jsonToObject(json, PackerConfig.class);
+        packerConfigService.addOrUpdate(packerConfig);
+        return ResponseEntity.ok().body(WebResult.success("ok"));
+    }
+
+    @ApiOperation(value = "修改应用打包配置")
+    @PutMapping("/packer")
+    public ResponseEntity<String> modifyPackConfig(@RequestBody String json) throws Exception {
+        PackerConfig packerConfig = JsonConverter.jsonToObject(json, PackerConfig.class);
+        packerConfigService.addOrUpdate(packerConfig);
+        return ResponseEntity.ok().body(WebResult.success("ok"));
+    }
+
+    @ApiOperation(value = "删除应用打包配置")
+    @DeleteMapping("/packer/{uniqueKey}")
+    public ResponseEntity<String> deletePackConfig(@PathVariable("uniqueKey") String uniqueKey) throws Exception {
+        packerConfigService.delete(uniqueKey);
+        return ResponseEntity.ok().body(WebResult.success("ok"));
+    }
+
+    @ApiOperation(value = "分页获取应用打包配置")
+    @GetMapping("/packer")
+    public ResponseEntity<String> getPackConfigByPage(@RequestParam("page") int page, @RequestParam("size") int size) {
+        PageList<PackerConfig> pageList = packerConfigService.getByPage(page, size);
+        return ResponseEntity.ok().body(WebResult.success(pageList));
+    }
+}

+ 0 - 164
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/crud/BuildConfigCrudController.java

@@ -1,164 +0,0 @@
-package cn.reghao.autodop.dmaster.app.controller.crud;
-
-import cn.reghao.autodop.common.result.WebResult;
-import cn.reghao.autodop.dmaster.app.entity.config.build.BuildDir;
-import cn.reghao.autodop.dmaster.app.service.crud.build.BuildDirCrudService;
-import cn.reghao.autodop.dmaster.common.db.PageList;
-import cn.reghao.autodop.common.utils.serializer.JsonConverter;
-import cn.reghao.autodop.dmaster.app.entity.config.build.CompilerConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.build.PackerConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.build.RepoConfig;
-import cn.reghao.autodop.dmaster.app.service.crud.build.CompilerConfigCrudService;
-import cn.reghao.autodop.dmaster.app.service.crud.build.PackerConfigCrudService;
-import cn.reghao.autodop.dmaster.app.service.crud.build.RepoConfigCrudService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author reghao
- * @date 2019-08-30 18:49:15
- */
-@Slf4j
-@Api(tags = "构建配置 CRUD 接口")
-@RestController
-@RequestMapping("/api/config/build")
-public class BuildConfigCrudController {
-    private BuildDirCrudService buildDirCrudService;
-    private RepoConfigCrudService repoConfigCrudService;
-    private CompilerConfigCrudService compilerConfigCrudService;
-    private PackerConfigCrudService packerConfigCrudService;
-
-    public BuildConfigCrudController(BuildDirCrudService buildDirCrudService,
-                                     RepoConfigCrudService repoConfigCrudService,
-                                     CompilerConfigCrudService compilerConfigCrudService,
-                                     PackerConfigCrudService packerConfigCrudService) {
-        this.buildDirCrudService = buildDirCrudService;
-        this.repoConfigCrudService = repoConfigCrudService;
-        this.compilerConfigCrudService = compilerConfigCrudService;
-        this.packerConfigCrudService = packerConfigCrudService;
-    }
-
-    /* 构建目录配置 */
-    @ApiOperation(value = "添加本地目录配置")
-    @PostMapping(value = "/dir", consumes = "application/json")
-    public ResponseEntity<String> addLocalDir(@RequestBody String json) throws Exception {
-        return ResponseEntity.ok().body(WebResult.success("系统已自动创建..."));
-    }
-
-    @ApiOperation(value = "分页获取本地目录配置")
-    @GetMapping("/dir")
-    public ResponseEntity<String> getLocalDirByPage(@RequestParam("page") int page, @RequestParam("size") int size) {
-        PageList<BuildDir> pageList = buildDirCrudService.getByPage(page, size);
-        return ResponseEntity.ok().body(WebResult.success(pageList));
-    }
-
-    @ApiOperation(value = "修改本地目录配置")
-    @PutMapping("/dir")
-    public ResponseEntity<String> modifyLocalDir(@RequestBody String json) throws Exception {
-        BuildDir buildDir = (BuildDir) JsonConverter.jsonToObject(json, BuildDir.class);
-        buildDirCrudService.addOrUpdate(buildDir);
-        return ResponseEntity.ok().body(WebResult.success("ok"));
-    }
-
-    @ApiOperation(value = "删除本地目录配置")
-    @DeleteMapping("/dir/{uniqueKey}")
-    public ResponseEntity<String> deleteLocalDir(@PathVariable("uniqueKey") String uniqueKey) throws Exception {
-        return ResponseEntity.ok().body(WebResult.success("不允许删除..."));
-    }
-
-    /* 仓库配置 */
-    @ApiOperation(value = "添加仓库配置")
-    @PostMapping(value = "/repo", consumes = "application/json")
-    public ResponseEntity<String> addRepoConfig(@RequestBody String json) throws Exception {
-        RepoConfig repoConfig = (RepoConfig) JsonConverter.jsonToObject(json, RepoConfig.class);
-        repoConfigCrudService.addOrUpdate(repoConfig);
-        return ResponseEntity.ok().body(WebResult.success("ok"));
-    }
-
-    @ApiOperation(value = "分页获取仓库配置")
-    @GetMapping("/repo")
-    public ResponseEntity<String> getRepoConfigByPage(@RequestParam("page") int page, @RequestParam("size") int size) {
-        PageList<RepoConfig> pageList = repoConfigCrudService.getByPage(page, size);
-        return ResponseEntity.ok().body(WebResult.success(pageList));
-    }
-
-    @ApiOperation(value = "修改仓库配置")
-    @PutMapping("/repo")
-    public ResponseEntity<String> modifyRepoConfig(@RequestBody String json) throws Exception {
-        RepoConfig repoConfig = (RepoConfig) JsonConverter.jsonToObject(json, RepoConfig.class);
-        repoConfigCrudService.addOrUpdate(repoConfig);
-        return ResponseEntity.ok().body(WebResult.success("ok"));
-    }
-
-    @ApiOperation(value = "删除仓库配置")
-    @DeleteMapping("/repo/{uniqueKey}")
-    public ResponseEntity<String> deleteRepoConfig(@PathVariable("uniqueKey") String uniqueKey) throws Exception {
-        repoConfigCrudService.delete(uniqueKey);
-        return ResponseEntity.ok().body(WebResult.success("ok"));
-    }
-    
-    /* 编译器配置 */
-    @ApiOperation(value = "添加编译器配置")
-    @PostMapping(value = "/compiler", consumes = "application/json")
-    public ResponseEntity<String> addCompileConfig(@RequestBody String json) throws Exception {
-        CompilerConfig compilerConfig = (CompilerConfig) JsonConverter.jsonToObject(json, CompilerConfig.class);
-        compilerConfigCrudService.addOrUpdate(compilerConfig);
-        return ResponseEntity.ok().body(WebResult.success("ok"));
-    }
-
-    @ApiOperation(value = "分页获取编译器配置")
-    @GetMapping("/compiler")
-    public ResponseEntity<String> getCompileConfigByPage(@RequestParam("page") int page, @RequestParam("size") int size) {
-        PageList<CompilerConfig> pageList = compilerConfigCrudService.getByPage(page, size);
-        return ResponseEntity.ok().body(WebResult.success(pageList));
-    }
-
-    @ApiOperation(value = "修改编译器配置")
-    @PutMapping("/compiler")
-    public ResponseEntity<String> modifyCompileConfig(@RequestBody String json) throws Exception {
-        CompilerConfig compilerConfig = (CompilerConfig) JsonConverter.jsonToObject(json, CompilerConfig.class);
-        compilerConfigCrudService.addOrUpdate(compilerConfig);
-        return ResponseEntity.ok().body(WebResult.success("ok"));
-    }
-
-    @ApiOperation(value = "删除编译器配置")
-    @DeleteMapping("/compiler/{uniqueKey}")
-    public ResponseEntity<String> deleteCompileConfig(@PathVariable("uniqueKey") String uniqueKey) throws Exception {
-        compilerConfigCrudService.delete(uniqueKey);
-        return ResponseEntity.ok().body(WebResult.success("ok"));
-    }
-
-    /* 打包方式配置 */
-    @ApiOperation(value = "添加打包方式配置")
-    @PostMapping(value = "/packer", consumes = "application/json")
-    public ResponseEntity<String> addPackConfig(@RequestBody String json) throws Exception {
-        PackerConfig packerConfig = (PackerConfig) JsonConverter.jsonToObject(json, PackerConfig.class);
-        packerConfigCrudService.addOrUpdate(packerConfig);
-        return ResponseEntity.ok().body(WebResult.success("ok"));
-    }
-
-    @ApiOperation(value = "分页获取打包方式配置")
-    @GetMapping("/packer")
-    public ResponseEntity<String> getPackConfigByPage(@RequestParam("page") int page, @RequestParam("size") int size) {
-        PageList<PackerConfig> pageList = packerConfigCrudService.getByPage(page, size);
-        return ResponseEntity.ok().body(WebResult.success(pageList));
-    }
-
-    @ApiOperation(value = "修改打包方式配置")
-    @PutMapping("/packer")
-    public ResponseEntity<String> modifyPackConfig(@RequestBody String json) throws Exception {
-        PackerConfig packerConfig = (PackerConfig) JsonConverter.jsonToObject(json, PackerConfig.class);
-        packerConfigCrudService.addOrUpdate(packerConfig);
-        return ResponseEntity.ok().body(WebResult.success("ok"));
-    }
-
-    @ApiOperation(value = "删除打包方式配置")
-    @DeleteMapping("/packer/{uniqueKey}")
-    public ResponseEntity<String> deletePackConfig(@PathVariable("uniqueKey") String uniqueKey) throws Exception {
-        packerConfigCrudService.delete(uniqueKey);
-        return ResponseEntity.ok().body(WebResult.success("ok"));
-    }
-}

+ 0 - 59
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/crud/GlobalCrudController.java

@@ -1,59 +0,0 @@
-package cn.reghao.autodop.dmaster.app.controller.crud;
-
-import cn.reghao.autodop.common.result.WebResult;
-import cn.reghao.autodop.dmaster.common.db.PageList;
-import cn.reghao.autodop.common.utils.serializer.JsonConverter;
-import cn.reghao.autodop.dmaster.app.entity.config.NotifierConfig;
-import cn.reghao.autodop.dmaster.app.service.crud.NotifierCrudService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author reghao
- * @date 2019-08-30 18:49:15
- */
-@Slf4j
-@Api(tags = "全局配置 CRUD 接口")
-@RestController
-@RequestMapping("/api/config/global")
-public class GlobalCrudController {
-    private NotifierCrudService notifierCrudService;
-
-    public GlobalCrudController(NotifierCrudService notifierCrudService) {
-        this.notifierCrudService = notifierCrudService;
-    }
-
-    /* 通知配置 */
-    @ApiOperation(value = "添加通知配置")
-    @PostMapping(value = "/notifier", consumes = "application/json")
-    public ResponseEntity<String> addNotifierConfig(@RequestBody String json) throws Exception {
-        NotifierConfig notifierConfig = (NotifierConfig) JsonConverter.jsonToObject(json, NotifierConfig.class);
-        notifierCrudService.addOrUpdate(notifierConfig);
-        return ResponseEntity.ok().body(WebResult.success("ok"));
-    }
-
-    @ApiOperation(value = "分页获取通知配置")
-    @GetMapping("/notifier")
-    public ResponseEntity<String> getNotifierConfigByPage(@RequestParam("page") int page, @RequestParam("size") int size) {
-        PageList<NotifierConfig> pageList = notifierCrudService.getByPage(page, size);
-        return ResponseEntity.ok().body(WebResult.success(pageList));
-    }
-
-    @ApiOperation(value = "修改通知配置")
-    @PutMapping("/notifier")
-    public ResponseEntity<String> modifyNotifierConfig(@RequestBody String json) throws Exception {
-        NotifierConfig notifierConfig = (NotifierConfig) JsonConverter.jsonToObject(json, NotifierConfig.class);
-        notifierCrudService.addOrUpdate(notifierConfig);
-        return ResponseEntity.ok().body(WebResult.success("ok"));
-    }
-
-    @ApiOperation(value = "删除通知配置")
-    @DeleteMapping("/notifier/{uniqueKey}")
-    public ResponseEntity<String> deleteNotifierConfig(@PathVariable("uniqueKey") String uniqueKey) throws Exception {
-        notifierCrudService.delete(uniqueKey);
-        return ResponseEntity.ok().body(WebResult.success("ok"));
-    }
-}

+ 8 - 10
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/AppConfig.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/AppOrchestration.java

@@ -22,7 +22,7 @@ import java.util.List;
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Entity
-public class AppConfig extends BaseEntity implements Cloneable {
+public class AppOrchestration extends BaseEntity implements Cloneable {
     @Column(nullable = false, unique = true)
     private String appId;
     @Column(nullable = false)
@@ -54,10 +54,9 @@ public class AppConfig extends BaseEntity implements Cloneable {
     private BuildConfig buildConfig;
     @ManyToOne(cascade = CascadeType.PERSIST)
     @JoinColumn(name = "proj_config_id", foreignKey = @ForeignKey(value = ConstraintMode.NO_CONSTRAINT))
-    private ProjConfig proj;
+    private ProjOrchestration proj;
 
     // 编译应用时所处的目录,以仓库目录为起点
-    // TODO 检查 compileHome 格式
     @Column(nullable = false)
     private String compileHome;
     // 打包脚本,若使用的 docker,则是 dockerfile 的内容
@@ -72,10 +71,10 @@ public class AppConfig extends BaseEntity implements Cloneable {
     /* 运行配置 */
     private RunningConfig runningConfig;
 
-    // TODO 映射实体集合?一个应用应该有多个通知配置
-    @ManyToOne(cascade = CascadeType.PERSIST)
-    @JoinColumn(name = "notification_id", foreignKey = @ForeignKey(value = ConstraintMode.NO_CONSTRAINT))
-    private NotifierConfig notifierConfig;
+    @ElementCollection(targetClass = NotifyReceiver.class)
+    @LazyCollection(LazyCollectionOption.FALSE)
+    private List<NotifyReceiver> notifyReceivers;
+
     @ManyToOne(cascade = CascadeType.PERSIST)
     @JoinColumn(name = "role_id", foreignKey = @ForeignKey(value = ConstraintMode.NO_CONSTRAINT))
     private Role role;
@@ -84,11 +83,10 @@ public class AppConfig extends BaseEntity implements Cloneable {
 
     @Override
     public Object clone() throws CloneNotSupportedException {
-        Object obj = super.clone();
-        return obj;
+        return super.clone();
     }
 
-    public AppConfig vo() {
+    public AppOrchestration vo() {
         this.setId(null);
         this.setIsDelete(null);
         this.setCreateTime(null);

+ 0 - 69
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/NotifierConfig.java

@@ -1,69 +0,0 @@
-package cn.reghao.autodop.dmaster.app.entity.config;
-
-import cn.reghao.autodop.common.orm.BaseEntity;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import org.hibernate.annotations.LazyCollection;
-import org.hibernate.annotations.LazyCollectionOption;
-
-import javax.persistence.*;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author reghao
- * @date 2020-03-06 21:20:06
- */
-@NoArgsConstructor
-@Data
-@Entity
-public class NotifierConfig extends BaseEntity {
-    @Column(nullable = false, unique = true)
-    private String name;
-    @Column(nullable = false)
-    private String type;
-    // 可选
-    @ElementCollection
-    @JoinTable(name = "notifier_config_payload",joinColumns = @JoinColumn(name = "notifier_config_id"))
-    private Map<String, String> payload;
-    @ElementCollection(targetClass = String.class)
-    @LazyCollection(LazyCollectionOption.FALSE)
-    private List<String> receivers;
-
-    public NotifierConfig(String name) {
-        this.name = name;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (obj == this) {
-            return true;
-        }
-
-        if (obj instanceof NotifierConfig) {
-            NotifierConfig n = (NotifierConfig) obj;
-            return n.name.equals(this.name) &&
-                    n.type.equals(this.type) &&
-                    n.payload.equals(this.payload);
-        }
-
-        return false;
-    }
-
-    @Override
-    public int hashCode() {
-        int result = 17;
-        result = result * 31 + name.hashCode();
-        result = result * 31 + type.hashCode();
-        result = result * 31 + payload.hashCode();
-        return result;
-    }
-
-    public NotifierConfig vo() {
-        this.setId(null);
-        this.setIsDelete(null);
-        this.setCreateTime(null);
-        this.setUpdateTime(null);
-        return this;
-    }
-}

+ 17 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/NotifyReceiver.java

@@ -0,0 +1,17 @@
+package cn.reghao.autodop.dmaster.app.entity.config;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+/**
+ * @author reghao
+ * @date 2020-03-06 21:20:06
+ */
+@Data
+@Embeddable
+public class NotifyReceiver {
+    @Column(nullable = false)
+    private String notifyType;
+    private String receiver;
+}

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/ProjConfig.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/ProjOrchestration.java

@@ -16,7 +16,7 @@ import javax.persistence.*;
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Entity
-public class ProjConfig extends BaseEntity implements Cloneable {
+public class ProjOrchestration extends BaseEntity implements Cloneable {
     @Column(nullable = false, unique = true)
     private String projId;
     private String description;
@@ -29,7 +29,7 @@ public class ProjConfig extends BaseEntity implements Cloneable {
     // 同一个项目内所有应用的构建策略是相同的
     private BuildConfig buildConfig;
 
-    public ProjConfig(String projId) {
+    public ProjOrchestration(String projId) {
         this.projId = projId;
     }
 

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/build/BuildConfig.java

@@ -13,7 +13,7 @@ import javax.persistence.*;
 public class BuildConfig {
     @ManyToOne(cascade = CascadeType.PERSIST)
     @JoinColumn(name = "repo_config_id", foreignKey = @ForeignKey(value = ConstraintMode.NO_CONSTRAINT))
-    private RepoConfig repoConfig;
+    private RepoAuthConfig repoAuthConfig;
     @ManyToOne(cascade = CascadeType.PERSIST)
     @JoinColumn(name = "compiler_config_id", foreignKey = @ForeignKey(value = ConstraintMode.NO_CONSTRAINT))
     private CompilerConfig compilerConfig;

+ 2 - 10
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/build/BuildDir.java

@@ -8,7 +8,7 @@ import javax.persistence.Column;
 import javax.persistence.Entity;
 
 /**
- * 应用构建需要的本地目录
+ * 应用构建需要使用的本地目录
  *
  * @author reghao
  * @date 2019-08-27 00:17:55
@@ -20,7 +20,7 @@ public class BuildDir extends BaseEntity {
     // 主机唯一标识
     @Column(nullable = false, unique = true)
     private String machineId;
-    // 本地目录,包含 local-repo, compile-dir 和 pack-dir 三个目录
+    // 本地目录,包含 local-repo, compile-dir 和 pack-dir 三个目录
     @Column(nullable = false)
     private String localDir;
     // 总容量
@@ -32,12 +32,4 @@ public class BuildDir extends BaseEntity {
     // 可用容量
     @Column(nullable = false)
     private String available;
-
-    public BuildDir vo() {
-        this.setId(null);
-        this.setIsDelete(null);
-        this.setCreateTime(null);
-        this.setUpdateTime(null);
-        return this;
-    }
 }

+ 3 - 19
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/build/CompilerConfig.java

@@ -9,7 +9,7 @@ import javax.persistence.Column;
 import javax.persistence.Entity;
 
 /**
- * 编译配置
+ * 编译方式配置
  *
  * @author reghao
  * @date 2021-02-05 17:37:28
@@ -19,30 +19,14 @@ import javax.persistence.Entity;
 @EqualsAndHashCode(callSuper = false)
 @Entity
 public class CompilerConfig extends BaseEntity {
-    @Column(nullable = false, unique = true)
-    private String name;
     @Column(nullable = false)
     private String type;
-    @Column(nullable = false)
+    @Column(nullable = false, unique = true)
+    private String name;
     private String homePath;
-    @Column(nullable = false)
-    private String binPath;
-    @Column(nullable = false)
-    private String version;
-    @Column(nullable = false)
-    private String env;
-    @Column(nullable = false)
     private String compileCmd;
 
     public CompilerConfig(String name) {
         this.name = name;
     }
-
-    public CompilerConfig vo() {
-        this.setId(null);
-        this.setIsDelete(null);
-        this.setCreateTime(null);
-        this.setUpdateTime(null);
-        return this;
-    }
 }

+ 3 - 11
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/build/PackerConfig.java

@@ -9,7 +9,7 @@ import javax.persistence.Column;
 import javax.persistence.Entity;
 
 /**
- * 打包配置
+ * 打包方式配置
  *
  * @author reghao
  * @date 2020-05-13 16:40:22
@@ -19,10 +19,10 @@ import javax.persistence.Entity;
 @EqualsAndHashCode(callSuper = false)
 @Entity
 public class PackerConfig extends BaseEntity {
-    @Column(nullable = false, unique = true)
-    private String name;
     @Column(nullable = false)
     private String type;
+    @Column(nullable = false, unique = true)
+    private String name;
     // 打包后的应用存放的位置,可以是一个本地目录,也可以是一个网络位置
     // 根据打包类型来确定
     @Column(nullable = false)
@@ -31,12 +31,4 @@ public class PackerConfig extends BaseEntity {
     public PackerConfig(String name) {
         this.name = name;
     }
-
-    public PackerConfig vo() {
-        this.setId(null);
-        this.setIsDelete(null);
-        this.setCreateTime(null);
-        this.setUpdateTime(null);
-        return this;
-    }
 }

+ 5 - 13
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/build/RepoConfig.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/config/build/RepoAuthConfig.java

@@ -10,7 +10,7 @@ import javax.persistence.Entity;
 import javax.persistence.Lob;
 
 /**
- * 仓库配置
+ * 仓库认证配置
  *
  * @author reghao
  * @date 2020-05-13 22:50:38
@@ -19,11 +19,11 @@ import javax.persistence.Lob;
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Entity
-public class RepoConfig extends BaseEntity {
-    @Column(nullable = false, unique = true)
-    private String name;
+public class RepoAuthConfig extends BaseEntity {
     @Column(nullable = false)
     private String type;
+    @Column(nullable = false, unique = true)
+    private String name;
     @Column(nullable = false)
     private String authType;
     // TODO 根据 authType 选择 username, password 或 rsaPrikey
@@ -33,15 +33,7 @@ public class RepoConfig extends BaseEntity {
     @Column(columnDefinition="text")
     private String rsaPrikey;
 
-    public RepoConfig(String name) {
+    public RepoAuthConfig(String name) {
         this.name = name;
     }
-
-    public RepoConfig vo() {
-        this.setId(null);
-        this.setIsDelete(null);
-        this.setCreateTime(null);
-        this.setUpdateTime(null);
-        return this;
-    }
 }

+ 9 - 9
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/log/BuildLog.java

@@ -1,6 +1,6 @@
 package cn.reghao.autodop.dmaster.app.entity.log;
 
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
 import cn.reghao.autodop.common.orm.BaseDocument;
 import cn.reghao.autodop.dmaster.app.constant.BuildStage;
 import lombok.Data;
@@ -56,15 +56,15 @@ public class BuildLog extends BaseDocument {
         return this;
     }
 
-    public static BuildLog of(AppConfig appConfig) {
+    public static BuildLog of(AppOrchestration appOrchestration) {
         BuildLog buildLog = new BuildLog();
-        buildLog.setAppId(appConfig.getAppId());
-        buildLog.setAppType(appConfig.getAppType());
-        buildLog.setEnv(appConfig.getEnv());
-        buildLog.setRepo(appConfig.getBuildConfig().getRepoConfig().getName());
-        buildLog.setCompiler(appConfig.getBuildConfig().getCompilerConfig().getName());
-        buildLog.setPacker(appConfig.getBuildConfig().getPackerConfig().getName());
-        buildLog.setPackScript(appConfig.getPackScript());
+        buildLog.setAppId(appOrchestration.getAppId());
+        buildLog.setAppType(appOrchestration.getAppType());
+        buildLog.setEnv(appOrchestration.getEnv());
+        buildLog.setRepo(appOrchestration.getBuildConfig().getRepoAuthConfig().getName());
+        buildLog.setCompiler(appOrchestration.getBuildConfig().getCompilerConfig().getName());
+        buildLog.setPacker(appOrchestration.getBuildConfig().getPackerConfig().getName());
+        buildLog.setPackScript(appOrchestration.getPackScript());
         return buildLog;
     }
 }

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/log/CommitLog.java

@@ -1,6 +1,6 @@
 package cn.reghao.autodop.dmaster.app.entity.log;
 
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
 import cn.reghao.autodop.dmaster.app.service.build.tools.repo.CommitInfo;
 import cn.reghao.autodop.common.orm.BaseDocument;
 import lombok.Data;
@@ -48,11 +48,11 @@ public class CommitLog extends BaseDocument {
         return this;
     }
 
-    public static CommitLog of (AppConfig app, CommitInfo commitInfo) {
+    public static CommitLog of (AppOrchestration app, CommitInfo commitInfo) {
         CommitLog commitLog = new CommitLog();
         commitLog.setAppId(app.getAppId());
         commitLog.setEnv(app.getEnv());
-        commitLog.setRepo(app.getBuildConfig().getRepoConfig().getName());
+        commitLog.setRepo(app.getBuildConfig().getRepoAuthConfig().getName());
         commitLog.setRemote(commitInfo.getRemote());
         commitLog.setBranch(commitInfo.getBranch());
         commitLog.setLocal(commitInfo.getLocal());

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/entity/status/BuildDeployApp.java

@@ -5,7 +5,7 @@ import cn.reghao.autodop.dmaster.app.constant.BuildDeployType;
 import cn.reghao.autodop.dmaster.app.entity.log.BuildLog;
 import cn.reghao.autodop.dmaster.app.entity.log.DeployLog;
 import cn.reghao.autodop.common.orm.BaseEntity;
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -48,7 +48,7 @@ public class BuildDeployApp extends BaseEntity {
         return this;
     }
 
-    public static BuildDeployApp of(AppConfig app) {
+    public static BuildDeployApp of(AppOrchestration app) {
         BuildDeployApp buildDeployApp = new BuildDeployApp();
         buildDeployApp.setAppId(app.getAppId());
         buildDeployApp.setAppType(app.getAppType());

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/interceptor/AppIntegrateReinitInterceptor.java

@@ -1,6 +1,6 @@
 package cn.reghao.autodop.dmaster.app.interceptor;
 
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
 import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
@@ -36,8 +36,8 @@ public class AppIntegrateReinitInterceptor {
         MethodSignature signature = (MethodSignature) joinPoint.getSignature();
         String methodName = signature.getName();
         Object[] args = joinPoint.getArgs();
-        if ("update".equals(methodName) && args[0] instanceof AppConfig) {
-            AppConfig app = (AppConfig) args[0];
+        if ("update".equals(methodName) && args[0] instanceof AppOrchestration) {
+            AppOrchestration app = (AppOrchestration) args[0];
             String appId = app.getAppId();
             changedApp.add(appId);
         }

+ 8 - 8
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/repository/config/AppConfigRepository.java

@@ -1,6 +1,6 @@
 package cn.reghao.autodop.dmaster.app.repository.config;
 
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
@@ -15,14 +15,14 @@ import java.util.List;
  * @author reghao
  * @date 2020-01-21 14:53:03
  */
-public interface AppConfigRepository extends JpaRepository<AppConfig, Long>, JpaSpecificationExecutor<AppConfig> {
-    List<AppConfig> findAllByIsDeleteFalseAndEnableTrueAndEnv(String env);
-    List<AppConfig> findAllByIsDeleteFalseAndEnableTrueAndAppType(String appType);
-    Page<AppConfig> findByIsDeleteFalse(Pageable pageable);
-    Page<AppConfig> findByIsDeleteFalseAndEnv(String env, Pageable pageable);
-    Page<AppConfig> findByIsDeleteFalseAndEnableIsTrueAndEnv(String env, Pageable pageable);
+public interface AppConfigRepository extends JpaRepository<AppOrchestration, Long>, JpaSpecificationExecutor<AppOrchestration> {
+    List<AppOrchestration> findAllByIsDeleteFalseAndEnableTrueAndEnv(String env);
+    List<AppOrchestration> findAllByIsDeleteFalseAndEnableTrueAndAppType(String appType);
+    Page<AppOrchestration> findByIsDeleteFalse(Pageable pageable);
+    Page<AppOrchestration> findByIsDeleteFalseAndEnv(String env, Pageable pageable);
+    Page<AppOrchestration> findByIsDeleteFalseAndEnableIsTrueAndEnv(String env, Pageable pageable);
 
-    AppConfig findByIsDeleteFalseAndAppId(String appId);
+    AppOrchestration findByIsDeleteFalseAndAppId(String appId);
 
     @Modifying
     @Transactional

+ 0 - 21
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/repository/config/NotifierConfigRepository.java

@@ -1,21 +0,0 @@
-package cn.reghao.autodop.dmaster.app.repository.config;
-
-import cn.reghao.autodop.dmaster.app.entity.config.NotifierConfig;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-
-import javax.transaction.Transactional;
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2020-01-21 14:53:03
- */
-public interface NotifierConfigRepository extends JpaRepository<NotifierConfig, Long> {
-    NotifierConfig findByIsDeleteFalseAndName(String name);
-    List<NotifierConfig> findAllByIsDeleteFalse();
-
-    @Modifying
-    @Transactional
-    void deleteByName(String name);
-}

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/repository/config/ProjConfigRepository.java

@@ -1,6 +1,6 @@
 package cn.reghao.autodop.dmaster.app.repository.config;
 
-import cn.reghao.autodop.dmaster.app.entity.config.ProjConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.ProjOrchestration;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.Modifying;
 
@@ -11,8 +11,8 @@ import javax.transaction.Transactional;
  * @author reghao
  * @date 2020-01-21 14:53:03
  */
-public interface ProjConfigRepository extends JpaRepository<ProjConfig, Long> {
-    ProjConfig findByIsDeleteFalseAndProjId(String projId);
+public interface ProjConfigRepository extends JpaRepository<ProjOrchestration, Long> {
+    ProjOrchestration findByIsDeleteFalseAndProjId(String projId);
     //Page<ProjOrchestration> findByIsDeleteFalseAndEnv(String env, Pageable pageable);
 
     @Modifying

+ 15 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/repository/config/build/RepoAuthConfigRepository.java

@@ -0,0 +1,15 @@
+package cn.reghao.autodop.dmaster.app.repository.config.build;
+
+import cn.reghao.autodop.dmaster.app.entity.config.build.RepoAuthConfig;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import java.util.List;
+
+/**
+ * @author reghao
+ * @date 2020-01-21 14:53:03
+ */
+public interface RepoAuthConfigRepository extends JpaRepository<RepoAuthConfig, Long> {
+    RepoAuthConfig findByIsDeleteFalseAndName(String name);
+    List<RepoAuthConfig> findAllByIsDeleteFalse();
+}

+ 0 - 21
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/repository/config/build/RepoConfigRepository.java

@@ -1,21 +0,0 @@
-package cn.reghao.autodop.dmaster.app.repository.config.build;
-
-import cn.reghao.autodop.dmaster.app.entity.config.build.RepoConfig;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-
-import javax.transaction.Transactional;
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2020-01-21 14:53:03
- */
-public interface RepoConfigRepository extends JpaRepository<RepoConfig, Long> {
-    RepoConfig findByIsDeleteFalseAndName(String name);
-    List<RepoConfig> findAllByIsDeleteFalse();
-
-    @Modifying
-    @Transactional
-    void deleteByName(String repoName);
-}

+ 15 - 14
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/AppStatusService.java

@@ -11,9 +11,9 @@ import cn.reghao.autodop.common.dagent.app.api.data.log.LogConfig;
 import cn.reghao.autodop.common.utils.serializer.JsonArrayDeserializer;
 import cn.reghao.autodop.common.utils.serializer.JsonConverter;
 import cn.reghao.autodop.dmaster.app.cache.BuildDeployCache;
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
 import cn.reghao.autodop.dmaster.app.entity.config.deploy.DeployConfig;
-import cn.reghao.autodop.dmaster.app.service.crud.log.AppStatusCrudService;
+import cn.reghao.autodop.dmaster.app.service.config.log.AppStatusCrudService;
 import cn.reghao.autodop.common.dagent.app.api.data.log.LogFile;
 import cn.reghao.autodop.dmaster.common.db.PageList;
 import org.springframework.stereotype.Service;
@@ -50,7 +50,7 @@ public class AppStatusService {
      * @date 2021-03-04 下午2:09
      */
     public void refreshDeployedApps(String env) {
-        List<AppConfig> enabledApps = cache.findEnabledApps(env);
+        List<AppOrchestration> enabledApps = cache.findEnabledApps(env);
     }
 
     public PageList<DeployedAppStatus> deployedAppStatus(int page, int size, String env) {
@@ -66,8 +66,8 @@ public class AppStatusService {
      * @date 2021-02-26 上午8:23
      */
     public List<LogFile> logFiles(String appId, String machineId) {
-        AppConfig app = cache.findByAppId(appId);
-        List<LogConfig> logConfigs = app.getRunningConfig().getLogConfigs()
+        AppOrchestration app = cache.findByAppId(appId);
+        /*List<LogConfig> logConfigs = app.getRunningConfig().getLogConfigs()
                 .stream()
                 .filter(LogConfig::getIsDir)
                 .map(logConfig -> new LogConfig(
@@ -98,7 +98,8 @@ public class AppStatusService {
             JsonArrayDeserializer<LogFile> deserializer = new JsonArrayDeserializer<>();
             List<LogFile> logFiles = deserializer.fromJsonArray(result, LogFile.class);
             return logFiles;
-        }
+        }*/
+
         return null;
     }
 
@@ -110,8 +111,8 @@ public class AppStatusService {
      * @date 2021-02-26 上午8:23
      */
     public List<String> logContent(String appId, String logType, String logLevel, String machineId, String logFile) {
-        AppConfig app = cache.findByAppId(appId);
-        List<LogConfig> logConfigs = app.getRunningConfig().getLogConfigs().stream()
+        AppOrchestration app = cache.findByAppId(appId);
+        /*List<LogConfig> logConfigs = app.getRunningConfig().getLogConfigs().stream()
                 .filter(logConfig -> logConfig.getType().equals(logType) && logConfig.getLevel().equals(logLevel))
                 .collect(Collectors.toList());
         LogConfig logConfig = logConfigs.get(0);
@@ -144,7 +145,7 @@ public class AppStatusService {
             JsonArrayDeserializer<String> deserializer = new JsonArrayDeserializer<>();
             List<String> logContent = deserializer.fromJsonArray(result, String.class);
             return logContent;
-        }
+        }*/
         return null;
     }
 
@@ -200,26 +201,26 @@ public class AppStatusService {
     }
 
     public Map<String, DeployedAppStatus> appStatus(String appId) {
-        AppConfig app = cache.findByAppId(appId);
+        AppOrchestration app = cache.findByAppId(appId);
         return getAppStatusMap(app, AppOps.appStatusOps);
     }
 
     public Map<String, DeployedAppStatus> restart(String appId) {
-        AppConfig app = cache.findByAppId(appId);
+        AppOrchestration app = cache.findByAppId(appId);
         return getAppStatusMap(app, AppOps.appRestartOps);
     }
 
     public Map<String, DeployedAppStatus> stop(String appId) {
-        AppConfig app = cache.findByAppId(appId);
+        AppOrchestration app = cache.findByAppId(appId);
         return getAppStatusMap(app, AppOps.appStopOps);
     }
 
     public Map<String, DeployedAppStatus> start(String appId) {
-        AppConfig app = cache.findByAppId(appId);
+        AppOrchestration app = cache.findByAppId(appId);
         return getAppStatusMap(app, AppOps.appStartOps);
     }
 
-    private Map<String, DeployedAppStatus> getAppStatusMap(AppConfig app, AppOps appOps) {
+    private Map<String, DeployedAppStatus> getAppStatusMap(AppOrchestration app, AppOps appOps) {
         List<MqMessage> mqMessages = new ArrayList<>();
         for (DeployConfig deployConfig : app.getDeployConfigs()) {
             AppIdArgs appIdArgs = new AppIdArgs(app.getBuildConfig().getPackerConfig().getType(), app.getAppId());

+ 6 - 6
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/BuildDeployDispatcher.java

@@ -4,7 +4,7 @@ import cn.reghao.autodop.common.utils.DateTimeConverter;
 import cn.reghao.autodop.dmaster.app.cache.BuildDeployCache;
 import cn.reghao.autodop.dmaster.app.constant.BuildDeployResult;
 import cn.reghao.autodop.dmaster.app.constant.BuildStage;
-import cn.reghao.autodop.dmaster.app.entity.config.NotifierConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.NotifyReceiver;
 import cn.reghao.autodop.dmaster.app.entity.config.deploy.DeployConfig;
 import cn.reghao.autodop.dmaster.app.entity.log.*;
 import cn.reghao.autodop.dmaster.app.entity.status.BuildDeployApp;
@@ -12,7 +12,7 @@ import cn.reghao.autodop.dmaster.app.interceptor.AppIntegrateReinitInterceptor;
 import cn.reghao.autodop.dmaster.app.service.build.AppIntegrate;
 import cn.reghao.autodop.dmaster.app.service.build.tools.repo.CommitInfo;
 import cn.reghao.autodop.dmaster.app.service.deploy.AppDeployer;
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
 import cn.reghao.autodop.dmaster.app.service.deploy.DeployNotifyMsg;
 import cn.reghao.autodop.dmaster.app.service.log.BuildDeployLogConsumer;
 import cn.reghao.autodop.common.utils.ExceptionUtil;
@@ -72,11 +72,11 @@ public class BuildDeployDispatcher {
         AppIntegrate appIntegrate = integrateMap.get(appId);
         if (appIntegrate != null) {
             if (reinitInterceptor.isAppChanged(appId)) {
-                AppConfig app = cache.findByAppId(appId);
+                AppOrchestration app = cache.findByAppId(appId);
                 appIntegrate.reInit(app);
             }
         } else {
-            AppConfig app = cache.findByAppId(appId);
+            AppOrchestration app = cache.findByAppId(appId);
             if (app == null) {
                 onBuilding.remove(appId);
                 throw new Exception(appId + " 不存在...");
@@ -178,9 +178,9 @@ public class BuildDeployDispatcher {
         deployLogs.forEach(deployLog -> logConsumer.addDeployLog(deployLog));
 
         // TODO 部署完成后发出通知
-        NotifierConfig notifierConfig = cache.findByAppId(buildLog.getAppId()).getNotifierConfig();
+        /*NotifyReceiver notifyReceiver = cache.findByAppId(buildLog.getAppId()).getNotifyReceiver();
         DeployNotifyMsg deployNotifyMsg = DeployNotifyMsg.deployNotifyMsg(deployLogs);
-        notifyService.notify(notifierConfig, deployNotifyMsg);
+        notifyService.notify(notifyReceiver, deployNotifyMsg);*/
 
         return BuildDeployApp.of(deployLogs);
     }

+ 1 - 5
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/BuildService.java

@@ -1,8 +1,6 @@
 package cn.reghao.autodop.dmaster.app.service;
 
 import cn.reghao.autodop.dmaster.app.cache.BuildDeployCache;
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.deploy.DeployConfig;
 import cn.reghao.autodop.dmaster.app.entity.status.BuildDeployApp;
 import cn.reghao.autodop.dmaster.app.entity.log.BuildLog;
 import cn.reghao.autodop.dmaster.app.entity.log.DeployLog;
@@ -13,7 +11,7 @@ import cn.reghao.autodop.dmaster.app.repository.log.DeployLogRepository;
 import cn.reghao.autodop.dmaster.app.entity.log.CommitLog;
 import cn.reghao.autodop.dmaster.app.repository.status.BuildDeployAppRepository;
 import cn.reghao.autodop.dmaster.common.db.PageList;
-import cn.reghao.autodop.dmaster.app.service.crud.BuildDeployAppCrudService;
+import cn.reghao.autodop.dmaster.app.service.config.BuildDeployAppCrudService;
 import cn.reghao.autodop.dmaster.app.vo.CurrentRunningCommit;
 import cn.reghao.autodop.dmaster.app.vo.SuccessfullyBuildVO;
 import org.springframework.data.domain.Page;
@@ -21,8 +19,6 @@ import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
-import java.util.Set;
 import java.util.stream.Collectors;
 
 /**

+ 6 - 15
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/ConfigOptionsService.java

@@ -1,14 +1,12 @@
 package cn.reghao.autodop.dmaster.app.service;
 
 import cn.reghao.autodop.dmaster.app.constant.ConfigOptions;
-import cn.reghao.autodop.dmaster.app.entity.config.NotifierConfig;
 import cn.reghao.autodop.dmaster.app.entity.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.entity.config.build.PackerConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.build.RepoConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.build.RepoAuthConfig;
 import cn.reghao.autodop.dmaster.app.repository.config.build.CompilerConfigRepository;
 import cn.reghao.autodop.dmaster.app.repository.config.build.PackerConfigRepository;
-import cn.reghao.autodop.dmaster.app.repository.config.build.RepoConfigRepository;
-import cn.reghao.autodop.dmaster.app.repository.config.NotifierConfigRepository;
+import cn.reghao.autodop.dmaster.app.repository.config.build.RepoAuthConfigRepository;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -21,26 +19,23 @@ import java.util.stream.Collectors;
  */
 @Service
 public class ConfigOptionsService {
-    private RepoConfigRepository repoRepository;
+    private RepoAuthConfigRepository repoRepository;
     private CompilerConfigRepository compilerRepository;
     private PackerConfigRepository packerRepository;
-    private NotifierConfigRepository notifierRepository;
 
-    public ConfigOptionsService(RepoConfigRepository repoRepository,
+    public ConfigOptionsService(RepoAuthConfigRepository repoRepository,
                                 CompilerConfigRepository compilerRepository,
-                                PackerConfigRepository packerRepository,
-                                NotifierConfigRepository notifierRepository) {
+                                PackerConfigRepository packerRepository) {
         this.repoRepository = repoRepository;
         this.compilerRepository = compilerRepository;
         this.packerRepository = packerRepository;
-        this.notifierRepository = notifierRepository;
     }
 
     public List<String> options(String type) {
         switch (ConfigOptions.valueOf(type)) {
             case repoConfig:
                 return repoRepository.findAllByIsDeleteFalse().stream()
-                        .map(RepoConfig::getName)
+                        .map(RepoAuthConfig::getName)
                         .collect(Collectors.toList());
             case compilerConfig:
                 return compilerRepository.findAllByIsDeleteFalse().stream()
@@ -50,10 +45,6 @@ public class ConfigOptionsService {
                 return packerRepository.findAllByIsDeleteFalse().stream()
                         .map(PackerConfig::getName)
                         .collect(Collectors.toList());
-            case notifierConfig:
-                return notifierRepository.findAllByIsDeleteFalse().stream()
-                        .map(NotifierConfig::getName)
-                        .collect(Collectors.toList());
         }
         return new ArrayList<>();
     }

+ 6 - 6
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/RefreshService.java

@@ -1,11 +1,11 @@
 package cn.reghao.autodop.dmaster.app.service;
 
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
 import cn.reghao.autodop.dmaster.app.entity.status.BuildDeployApp;
 import cn.reghao.autodop.dmaster.app.repository.config.AppConfigRepository;
 import cn.reghao.autodop.dmaster.app.repository.log.DeployLogRepository;
 import cn.reghao.autodop.dmaster.app.repository.status.BuildDeployAppRepository;
-import cn.reghao.autodop.dmaster.app.service.crud.BuildDeployAppCrudService;
+import cn.reghao.autodop.dmaster.app.service.config.BuildDeployAppCrudService;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
@@ -53,8 +53,8 @@ public class RefreshService {
 
         int page = 1;
         int size = 50;
-        Page<AppConfig> appConfigPage = appConfigRepository.findByIsDeleteFalseAndEnv(env, pageRequest(page, size));
-        List<AppConfig> apps = appConfigPage.stream()
+        Page<AppOrchestration> appConfigPage = appConfigRepository.findByIsDeleteFalseAndEnv(env, pageRequest(page, size));
+        List<AppOrchestration> apps = appConfigPage.stream()
                 .filter(appConfig -> !buildDeployAppIds.contains(appConfig.getAppId()))
                 .collect(Collectors.toList());
 
@@ -80,8 +80,8 @@ public class RefreshService {
      * @return
      * @date 2021-03-04 下午2:08
      */
-    private void refresh(List<AppConfig> appConfigs) {
-        List<BuildDeployApp> list = appConfigs.stream().map(BuildDeployApp::of).collect(Collectors.toList());
+    private void refresh(List<AppOrchestration> appOrchestrations) {
+        List<BuildDeployApp> list = appOrchestrations.stream().map(BuildDeployApp::of).collect(Collectors.toList());
         if (!list.isEmpty()) {
             buildDeployAppCrudService.batchAdd(list);
         }

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/RemoteCallService.java

@@ -4,9 +4,9 @@ import cn.reghao.autodop.common.amqp.MqMessage;
 import cn.reghao.autodop.common.amqp.RabbitProducer;
 import cn.reghao.autodop.common.amqp.RpcResult;
 import cn.reghao.autodop.common.utils.ExceptionUtil;
-import cn.reghao.autodop.dmaster.cluster.entity.MachineInfo;
-import cn.reghao.autodop.dmaster.cluster.entity.NetworkInfo;
-import cn.reghao.autodop.dmaster.cluster.repository.MachineInfoRepository;
+import cn.reghao.autodop.dmaster.machine.entity.MachineInfo;
+import cn.reghao.autodop.dmaster.machine.entity.NetworkInfo;
+import cn.reghao.autodop.dmaster.machine.repository.MachineInfoRepository;
 import cn.reghao.autodop.dmaster.common.thread.ThreadPoolWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;

+ 16 - 16
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/AppIntegrate.java

@@ -1,14 +1,14 @@
 package cn.reghao.autodop.dmaster.app.service.build;
 
 import cn.reghao.autodop.common.dagent.app.api.data.deploy.PackerType;
-import cn.reghao.autodop.dmaster.app.constant.build.CompilerType;
+import cn.reghao.autodop.dmaster.app.constant.build.CompileType;
 import cn.reghao.autodop.dmaster.app.constant.build.RepoType;
 import cn.reghao.autodop.dmaster.app.entity.config.build.BuildConfig;
 import cn.reghao.autodop.dmaster.app.entity.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.entity.config.build.PackerConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.build.RepoConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.ProjConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.build.RepoAuthConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
+import cn.reghao.autodop.dmaster.app.entity.config.ProjOrchestration;
 import cn.reghao.autodop.dmaster.app.service.build.tools.compiler.CodeCompiler;
 import cn.reghao.autodop.dmaster.app.service.build.tools.compiler.MavenCompiler;
 import cn.reghao.autodop.dmaster.app.service.build.tools.compiler.NullCompiler;
@@ -38,7 +38,7 @@ public class AppIntegrate {
     // TODO 应用二进制文件存储到本地时使用
     private String appPackDir;
 
-    private AppConfig app;
+    private AppOrchestration app;
     // 远程仓库最近一次提交的信息
     private CommitInfo latestCommitInfo;
 
@@ -46,12 +46,12 @@ public class AppIntegrate {
     private CodeCompiler codeCompiler;
     private CodePacker codePacker;
 
-    public AppIntegrate(AppConfig app) {
+    public AppIntegrate(AppOrchestration app) {
         this.app = app;
         init();
     }
 
-    public AppConfig app() {
+    public AppOrchestration app() {
         return app;
     }
 
@@ -62,7 +62,7 @@ public class AppIntegrate {
      * @return
      * @date 2020-08-06 上午10:39
      */
-    public void reInit(AppConfig app) {
+    public void reInit(AppOrchestration app) {
         this.app = app;
         init();
     }
@@ -87,7 +87,7 @@ public class AppIntegrate {
      */
     private void initBuildConfig() {
         BuildConfig buildConfig;
-        ProjConfig proj = app.getProj();
+        ProjOrchestration proj = app.getProj();
         if (proj != null) {
             buildConfig = proj.getBuildConfig();
             app.setBuildConfig(buildConfig);
@@ -96,25 +96,25 @@ public class AppIntegrate {
         }
 
         // 初始化更新配置
-        RepoConfig repoConfig = buildConfig.getRepoConfig();
-        switch (RepoType.valueOf(repoConfig.getType())) {
+        RepoAuthConfig repoAuthConfig = buildConfig.getRepoAuthConfig();
+        switch (RepoType.valueOf(repoAuthConfig.getType())) {
             case git:
-                codeUpdater = new GitImpl(repoConfig);
+                codeUpdater = new GitImpl(repoAuthConfig);
                 break;
             case svn:
-                codeUpdater = new SvnImpl(repoConfig);
+                codeUpdater = new SvnImpl(repoAuthConfig);
                 break;
             default:
         }
 
         // 初始化编译配置
         CompilerConfig compilerConfig = buildConfig.getCompilerConfig();
-        switch (CompilerType.valueOf(compilerConfig.getType())) {
+        switch (CompileType.valueOf(compilerConfig.getType())) {
             case shell:
                 codeCompiler = new ShellCompiler(compilerConfig);
                 break;
             case maven:
-                codeCompiler = new MavenCompiler(compilerConfig, app.getDirname());
+                codeCompiler = new MavenCompiler(compilerConfig.getHomePath(), app.getEnv(), app.getDirname());
                 break;
             case docker:
                 codeCompiler = new NullCompiler();
@@ -145,7 +145,7 @@ public class AppIntegrate {
         String branch;
         // TODO 区分 GIT 和 SVN pull 代码时的不同
         String local = appLocalRepo;
-        ProjConfig proj = app.getProj();
+        ProjOrchestration proj = app.getProj();
         if (proj != null) {
             remote = proj.getProjRepo();
             branch = app.getBranch();

+ 4 - 4
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/BuilderUtil.java

@@ -3,8 +3,8 @@ package cn.reghao.autodop.dmaster.app.service.build;
 import cn.reghao.autodop.common.utils.FileOps;
 import cn.reghao.autodop.common.utils.text.ReplaceCharacter;
 import cn.reghao.autodop.dmaster.app.constant.AppType;
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.ProjConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
+import cn.reghao.autodop.dmaster.app.entity.config.ProjOrchestration;
 import cn.reghao.autodop.dmaster.common.config.SysConfig;
 import lombok.extern.slf4j.Slf4j;
 
@@ -23,7 +23,7 @@ public class BuilderUtil {
      * @param appLocalRepo 应用代码的本地仓库位置
      * @date 2019-12-03 上午9:55
      */
-    public static void copyToCompileDir(String appLocalRepo, AppConfig app) throws IOException {
+    public static void copyToCompileDir(String appLocalRepo, AppOrchestration app) throws IOException {
         String appCompileDir = SysConfig.compileDir + "/" + app.getAppId();
         File compileDir = new File(appCompileDir);
         if (!compileDir.exists() && !FileOps.mkdirs(compileDir)) {
@@ -32,7 +32,7 @@ public class BuilderUtil {
             FileOps.eraseDir(compileDir);
         }
 
-        ProjConfig proj = app.getProj();
+        ProjOrchestration proj = app.getProj();
         String dirname;
         if (proj != null) {
             dirname = proj.getDirname();

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/compiler/MavenCompiler.java

@@ -24,9 +24,9 @@ public class MavenCompiler implements CodeCompiler {
     private Invoker invoker;
     private List<String> compileLog;
 
-    public MavenCompiler(CompilerConfig compilerConfig, String dirname) {
-        System.setProperty("maven.home", compilerConfig.getHomePath());
-        this.env = compilerConfig.getEnv();
+    public MavenCompiler(String homePath, String env, String dirname) {
+        System.setProperty("maven.home", homePath);
+        this.env = env;
         this.request = new DefaultInvocationRequest();
         this.invoker = new DefaultInvoker();
         this.compileLog = new ArrayList<>();

+ 10 - 10
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/repo/GitImpl.java

@@ -2,7 +2,7 @@ package cn.reghao.autodop.dmaster.app.service.build.tools.repo;
 
 import cn.reghao.autodop.common.utils.text.TextFile;
 import cn.reghao.autodop.dmaster.app.constant.build.RepoAuthType;
-import cn.reghao.autodop.dmaster.app.entity.config.build.RepoConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.build.RepoAuthConfig;
 import cn.reghao.autodop.dmaster.app.entity.log.ChangedFile;
 import cn.reghao.autodop.dmaster.app.exception.UpdateException;
 import com.jcraft.jsch.JSch;
@@ -40,13 +40,13 @@ public class GitImpl implements CodeUpdater {
     private UsernamePasswordCredentialsProvider credentials;
     private SshSessionFactory sshSessionFactory;
 
-    public GitImpl(RepoConfig repoConfig) {
-        switch (RepoAuthType.valueOf(repoConfig.getAuthType())) {
+    public GitImpl(RepoAuthConfig repoAuthConfig) {
+        switch (RepoAuthType.valueOf(repoAuthConfig.getAuthType())) {
             case http:
-                httpAuth(repoConfig.getUsername(), repoConfig.getPassword());
+                httpAuth(repoAuthConfig.getUsername(), repoAuthConfig.getPassword());
                 break;
             case ssh:
-                sshAuth(repoConfig.getRsaPrikey());
+                sshAuth(repoAuthConfig.getRsaPrikey());
                 break;
             default:
         }
@@ -251,12 +251,12 @@ public class GitImpl implements CodeUpdater {
         String username = "azyadmin";
         String password = "xjV^Ilw2";
 
-        RepoConfig repoConfig = new RepoConfig();
-        repoConfig.setAuthType(RepoAuthType.http.name());
-        repoConfig.setUsername(username);
-        repoConfig.setPassword(password);
+        RepoAuthConfig repoAuthConfig = new RepoAuthConfig();
+        repoAuthConfig.setAuthType(RepoAuthType.http.name());
+        repoAuthConfig.setUsername(username);
+        repoAuthConfig.setPassword(password);
 
-        GitImpl git = new GitImpl(repoConfig);
+        GitImpl git = new GitImpl(repoAuthConfig);
         git.clone(remote, "develop", "/home/reghao/Downloads/zzz");
     }
 }

+ 3 - 4
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/build/tools/repo/SvnImpl.java

@@ -1,8 +1,7 @@
 package cn.reghao.autodop.dmaster.app.service.build.tools.repo;
 
-import cn.reghao.autodop.dmaster.app.entity.config.build.RepoConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.build.RepoAuthConfig;
 import cn.reghao.autodop.dmaster.app.entity.log.ChangedFile;
-import cn.reghao.autodop.dmaster.app.entity.log.CommitLog;
 import org.tmatesoft.svn.core.*;
 import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
 import org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryFactoryImpl;
@@ -25,9 +24,9 @@ public class SvnImpl implements CodeUpdater {
     private SVNUpdateClient updateClient;
     private SVNStatusClient statusClient;
 
-    public SvnImpl(RepoConfig repoConfig) {
+    public SvnImpl(RepoAuthConfig repoAuthConfig) {
         ISVNAuthenticationManager authManager =
-                SVNWCUtil.createDefaultAuthenticationManager(repoConfig.getUsername(), repoConfig.getPassword().toCharArray());
+                SVNWCUtil.createDefaultAuthenticationManager(repoAuthConfig.getUsername(), repoAuthConfig.getPassword().toCharArray());
         SVNRepositoryFactoryImpl.setup();
         DefaultSVNOptions options = SVNWCUtil.createDefaultOptions(true);
         SVNClientManager clientManager = SVNClientManager.newInstance(options, authManager);

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

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.app.service.crud;
+package cn.reghao.autodop.dmaster.app.service.config;
 
 import cn.reghao.autodop.dmaster.common.db.CrudOps;
 import cn.reghao.autodop.dmaster.common.db.PageList;

+ 19 - 43
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/SharedEntityChecker.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/SharedEntityChecker.java

@@ -1,16 +1,14 @@
-package cn.reghao.autodop.dmaster.app.service.crud;
+package cn.reghao.autodop.dmaster.app.service.config;
 
-import cn.reghao.autodop.dmaster.app.entity.config.NotifierConfig;
 import cn.reghao.autodop.dmaster.app.entity.config.build.BuildConfig;
 import cn.reghao.autodop.dmaster.app.entity.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.entity.config.build.PackerConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.build.RepoConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.ProjConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.build.RepoAuthConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
+import cn.reghao.autodop.dmaster.app.entity.config.ProjOrchestration;
 import cn.reghao.autodop.dmaster.app.repository.config.build.CompilerConfigRepository;
 import cn.reghao.autodop.dmaster.app.repository.config.build.PackerConfigRepository;
-import cn.reghao.autodop.dmaster.app.repository.config.build.RepoConfigRepository;
-import cn.reghao.autodop.dmaster.app.repository.config.NotifierConfigRepository;
+import cn.reghao.autodop.dmaster.app.repository.config.build.RepoAuthConfigRepository;
 import cn.reghao.autodop.dmaster.app.repository.config.ProjConfigRepository;
 import cn.reghao.autodop.dmaster.auth.entity.Role;
 import cn.reghao.autodop.dmaster.auth.repository.RoleRepository;
@@ -25,29 +23,26 @@ import org.springframework.stereotype.Service;
 @Service
 public class SharedEntityChecker {
     private ProjConfigRepository projRepository;
-    private RepoConfigRepository repoConfigRepository;
+    private RepoAuthConfigRepository repoAuthConfigRepository;
     private CompilerConfigRepository compilerConfigRepository;
     private PackerConfigRepository packerConfigRepository;
-    private NotifierConfigRepository notifierConfigRepository;
     private RoleRepository roleRepository;
 
     public SharedEntityChecker(ProjConfigRepository projRepository,
-                               RepoConfigRepository repoConfigRepository,
+                               RepoAuthConfigRepository repoAuthConfigRepository,
                                CompilerConfigRepository compilerConfigRepository,
                                PackerConfigRepository packerConfigRepository,
-                               NotifierConfigRepository notifierConfigRepository,
                                RoleRepository roleRepository) {
         this.projRepository = projRepository;
-        this.repoConfigRepository = repoConfigRepository;
+        this.repoAuthConfigRepository = repoAuthConfigRepository;
         this.compilerConfigRepository = compilerConfigRepository;
         this.packerConfigRepository = packerConfigRepository;
-        this.notifierConfigRepository = notifierConfigRepository;
         this.roleRepository = roleRepository;
     }
 
-    public void checkAndSetProj(AppConfig app) throws Exception {
-        ProjConfig proj = app.getProj();
-        ProjConfig projEntity = projRepository.findByIsDeleteFalseAndProjId(proj.getProjId());
+    public void checkAndSetProj(AppOrchestration app) throws Exception {
+        ProjOrchestration proj = app.getProj();
+        ProjOrchestration projEntity = projRepository.findByIsDeleteFalseAndProjId(proj.getProjId());
         if (projEntity != null) {
             app.setProj(projEntity);
         } else {
@@ -63,13 +58,13 @@ public class SharedEntityChecker {
      * @date 2020-09-30 下午3:17
      */
     @Deprecated
-    public void checkAndSetBuildConfig(AppConfig app) throws Exception {
+    public void checkAndSetBuildConfig(AppOrchestration app) throws Exception {
         BuildConfig buildConfig = app.getBuildConfig();
         if (buildConfig != null) {
-            RepoConfig repo = buildConfig.getRepoConfig();
-            RepoConfig repoEntity = repoConfigRepository.findByIsDeleteFalseAndName(repo.getName());
+            RepoAuthConfig repo = buildConfig.getRepoAuthConfig();
+            RepoAuthConfig repoEntity = repoAuthConfigRepository.findByIsDeleteFalseAndName(repo.getName());
             if (repoEntity != null) {
-                buildConfig.setRepoConfig(repoEntity);
+                buildConfig.setRepoAuthConfig(repoEntity);
             } else {
                 throw new Exception("仓库配置 " + repo.getName() + " 不存在...");
             }
@@ -94,10 +89,10 @@ public class SharedEntityChecker {
 
     public void checkAndSetBuildConfig(BuildConfig buildConfig) throws Exception {
         if (buildConfig != null) {
-            RepoConfig repo = buildConfig.getRepoConfig();
-            RepoConfig repoEntity = repoConfigRepository.findByIsDeleteFalseAndName(repo.getName());
+            RepoAuthConfig repo = buildConfig.getRepoAuthConfig();
+            RepoAuthConfig repoEntity = repoAuthConfigRepository.findByIsDeleteFalseAndName(repo.getName());
             if (repoEntity != null) {
-                buildConfig.setRepoConfig(repoEntity);
+                buildConfig.setRepoAuthConfig(repoEntity);
             } else {
                 throw new Exception("仓库配置 " + repo.getName() + " 不存在...");
             }
@@ -120,26 +115,7 @@ public class SharedEntityChecker {
         }
     }
 
-    /**
-     * 检查通知共享配置
-     *
-     * @param
-     * @return
-     * @date 2020-09-30 下午3:18
-     */
-    public void checkAndSetNotifier(AppConfig app) throws Exception {
-        NotifierConfig notifierConfig = app.getNotifierConfig();
-        if (notifierConfig != null) {
-            NotifierConfig notifierConfigEntity = notifierConfigRepository.findByIsDeleteFalseAndName(notifierConfig.getName());
-            if (notifierConfigEntity != null) {
-                app.setNotifierConfig(notifierConfigEntity);
-            } else {
-                throw new Exception("通知配置 " + notifierConfig.getName() + " 不存在...");
-            }
-        }
-    }
-
-    public void checkAndSetRole(AppConfig app) throws Exception {
+    public void checkAndSetRole(AppOrchestration app) throws Exception {
         Role role = app.getRole();
         if (role != null) {
             Role roleEntity = roleRepository.findRoleByName(role.getName());

+ 24 - 28
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/orchestarte/AppCrudService.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/app/AppCrudService.java

@@ -1,21 +1,19 @@
-package cn.reghao.autodop.dmaster.app.service.crud.orchestarte;
+package cn.reghao.autodop.dmaster.app.service.config.app;
 
 import cn.reghao.autodop.dmaster.app.constant.AppType;
 import cn.reghao.autodop.dmaster.common.db.CrudOps;
 import cn.reghao.autodop.dmaster.common.db.PageList;
 import cn.reghao.autodop.dmaster.app.entity.status.BuildDeployApp;
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
 import cn.reghao.autodop.dmaster.app.repository.config.AppConfigRepository;
-import cn.reghao.autodop.dmaster.app.service.crud.BuildDeployAppCrudService;
-import cn.reghao.autodop.dmaster.app.service.crud.SharedEntityChecker;
+import cn.reghao.autodop.dmaster.app.service.config.BuildDeployAppCrudService;
+import cn.reghao.autodop.dmaster.app.service.config.SharedEntityChecker;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 
-import javax.persistence.criteria.Join;
-import javax.persistence.criteria.JoinType;
 import javax.persistence.criteria.Predicate;
 import java.time.LocalDateTime;
 import java.util.List;
@@ -26,7 +24,7 @@ import java.util.List;
  */
 //@CacheConfig(cacheNames = {"appCache"})
 @Service
-public class AppCrudService implements CrudOps<AppConfig> {
+public class AppCrudService implements CrudOps<AppOrchestration> {
     private AppConfigRepository appRepository;
     private SharedEntityChecker sharedEntityChecker;
     private BuildDeployAppCrudService buildDeployAppCrudService;
@@ -40,9 +38,9 @@ public class AppCrudService implements CrudOps<AppConfig> {
     }
 
     @Override
-    public void add(AppConfig app) throws Exception {
+    public void add(AppOrchestration app) throws Exception {
         checkSharedEntity(app);
-        AppConfig appEntity = appRepository.findByIsDeleteFalseAndAppId(app.getAppId());
+        AppOrchestration appEntity = appRepository.findByIsDeleteFalseAndAppId(app.getAppId());
         if (appEntity == null) {
             app.setIsDelete(false);
             appRepository.save(app);
@@ -51,9 +49,9 @@ public class AppCrudService implements CrudOps<AppConfig> {
     }
 
     @Override
-    public void update(AppConfig app) throws Exception {
+    public void update(AppOrchestration app) throws Exception {
         checkSharedEntity(app);
-        AppConfig appEntity = appRepository.findByIsDeleteFalseAndAppId(app.getAppId());
+        AppOrchestration appEntity = appRepository.findByIsDeleteFalseAndAppId(app.getAppId());
         if (appEntity != null) {
             app.setId(appEntity.getId());
             app.setCreateTime(appEntity.getCreateTime());
@@ -64,27 +62,25 @@ public class AppCrudService implements CrudOps<AppConfig> {
         }
     }
 
-    private void checkSharedEntity(AppConfig app) throws Exception {
+    private void checkSharedEntity(AppOrchestration app) throws Exception {
         if (app.getProj() != null) {
             sharedEntityChecker.checkAndSetProj(app);
         } else {
             sharedEntityChecker.checkAndSetBuildConfig(app.getBuildConfig());
         }
-        sharedEntityChecker.checkAndSetNotifier(app);
         sharedEntityChecker.checkAndSetRole(app);
     }
 
     @Override
-    public void addOrUpdate(AppConfig app) throws Exception {
+    public void addOrUpdate(AppOrchestration app) throws Exception {
         if (app.getProj() != null) {
             sharedEntityChecker.checkAndSetProj(app);
         } else {
             sharedEntityChecker.checkAndSetBuildConfig(app.getBuildConfig());
         }
-        sharedEntityChecker.checkAndSetNotifier(app);
         sharedEntityChecker.checkAndSetRole(app);
 
-        AppConfig appEntity = appRepository.findByIsDeleteFalseAndAppId(app.getAppId());
+        AppOrchestration appEntity = appRepository.findByIsDeleteFalseAndAppId(app.getAppId());
         if (appEntity != null) {
             app.setId(appEntity.getId());
             app.setCreateTime(appEntity.getCreateTime());
@@ -96,21 +92,21 @@ public class AppCrudService implements CrudOps<AppConfig> {
     }
 
     public void copy(String from, String to) throws Exception {
-        AppConfig fromApp = appRepository.findByIsDeleteFalseAndAppId(from);
+        AppOrchestration fromApp = appRepository.findByIsDeleteFalseAndAppId(from);
         if (fromApp == null) {
             throw new Exception("ID 为 " + from + " 的应用配置不存在...");
         }
 
-        AppConfig toApp = appRepository.findByIsDeleteFalseAndAppId(to);
+        AppOrchestration toApp = appRepository.findByIsDeleteFalseAndAppId(to);
         if (toApp == null) {
-            toApp = (AppConfig) fromApp.clone();
+            toApp = (AppOrchestration) fromApp.clone();
             copyToDifferentBranch(toApp, to);
             appRepository.save(toApp);
             buildDeployAppCrudService.addOrUpdate(BuildDeployApp.of(toApp));
         }
     }
 
-    private void copyToDifferentBranch(AppConfig app, String to) {
+    private void copyToDifferentBranch(AppOrchestration app, String to) {
         app.setAppId(to);
         app.setBranch("");
         /*app.setDescription("");
@@ -123,9 +119,9 @@ public class AppCrudService implements CrudOps<AppConfig> {
         app.setRunningConfig(null);
         app.setNotifierConfig(null);*/
         app.setDeployConfigs(null);
-        if (app.getRunningConfig() != null) {
+        /*if (app.getRunningConfig() != null) {
             app.getRunningConfig().setLogConfigs(null);
-        }
+        }*/
 
         app.setId(null);
         app.setCreateTime(null);
@@ -134,13 +130,13 @@ public class AppCrudService implements CrudOps<AppConfig> {
 
     //@Cacheable("appList")
     @Override
-    public PageList<AppConfig> getByPage(int page, int size, String env) {
+    public PageList<AppOrchestration> getByPage(int page, int size, String env) {
         // 默认按更新时间倒序
         PageRequest pageRequest =
                 PageRequest.of(page-1, size, Sort.by(Sort.Direction.DESC, "updateTime"));
         // TODO 指定额外的参数
-        Page<AppConfig> page1 = appRepository.findByIsDeleteFalseAndEnv(env, pageRequest);
-        PageList<AppConfig> pageList = new PageList<>();
+        Page<AppOrchestration> page1 = appRepository.findByIsDeleteFalseAndEnv(env, pageRequest);
+        PageList<AppOrchestration> pageList = new PageList<>();
         pageList.setTotalSize(page1.getTotalElements());
         pageList.setTotalPages(page1.getTotalPages());
         pageList.setList(page1.getContent());
@@ -150,7 +146,7 @@ public class AppCrudService implements CrudOps<AppConfig> {
     //@CacheEvict(cacheNames = { "app" }, key = "#uniqueKey")
     @Override
     public void delete(String uniqueKey) throws Exception {
-        AppConfig appEntity = appRepository.findByIsDeleteFalseAndAppId(uniqueKey);
+        AppOrchestration appEntity = appRepository.findByIsDeleteFalseAndAppId(uniqueKey);
         if (appEntity == null) {
             throw new Exception(uniqueKey + " 不存在");
         } else {
@@ -160,8 +156,8 @@ public class AppCrudService implements CrudOps<AppConfig> {
         }
     }
 
-    public List<AppConfig> find(String env) {
-        Specification<AppConfig> spec = (Specification<AppConfig>) (root, query, cb) -> {
+    public List<AppOrchestration> find(String env) {
+        Specification<AppOrchestration> spec = (Specification<AppOrchestration>) (root, query, cb) -> {
             Predicate predicate1 = cb.equal(root.get("env"), env);
             Predicate predicate2 = cb.equal(root.get("appType"), AppType.dotnetCore.name());
             return cb.and(predicate1, predicate2);

+ 14 - 14
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/orchestarte/ProjCrudService.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/app/ProjCrudService.java

@@ -1,10 +1,10 @@
-package cn.reghao.autodop.dmaster.app.service.crud.orchestarte;
+package cn.reghao.autodop.dmaster.app.service.config.app;
 
 import cn.reghao.autodop.dmaster.common.db.CrudOps;
 import cn.reghao.autodop.dmaster.common.db.PageList;
-import cn.reghao.autodop.dmaster.app.entity.config.ProjConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.ProjOrchestration;
 import cn.reghao.autodop.dmaster.app.repository.config.ProjConfigRepository;
-import cn.reghao.autodop.dmaster.app.service.crud.SharedEntityChecker;
+import cn.reghao.autodop.dmaster.app.service.config.SharedEntityChecker;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
@@ -17,7 +17,7 @@ import java.time.LocalDateTime;
  * @date 2020-11-10 21:58:00
  */
 @Service
-public class ProjCrudService implements CrudOps<ProjConfig> {
+public class ProjCrudService implements CrudOps<ProjOrchestration> {
     private ProjConfigRepository projRepository;
     private SharedEntityChecker sharedEntityChecker;
 
@@ -28,9 +28,9 @@ public class ProjCrudService implements CrudOps<ProjConfig> {
     }
 
     @Override
-    public void addOrUpdate(ProjConfig proj) throws Exception {
+    public void addOrUpdate(ProjOrchestration proj) throws Exception {
         sharedEntityChecker.checkAndSetBuildConfig(proj.getBuildConfig());
-        ProjConfig projEntity = projRepository.findByIsDeleteFalseAndProjId(proj.getProjId());
+        ProjOrchestration projEntity = projRepository.findByIsDeleteFalseAndProjId(proj.getProjId());
         if (projEntity != null) {
             proj.setId(projEntity.getId());
             proj.setCreateTime(projEntity.getCreateTime());
@@ -41,20 +41,20 @@ public class ProjCrudService implements CrudOps<ProjConfig> {
     }
 
     public void copy(String from, String to) throws Exception {
-        ProjConfig fromProj = projRepository.findByIsDeleteFalseAndProjId(from);
+        ProjOrchestration fromProj = projRepository.findByIsDeleteFalseAndProjId(from);
         if (fromProj == null) {
             throw new Exception("ID 为 " + from + " 的项目配置不存在...");
         }
 
-        ProjConfig toProj = projRepository.findByIsDeleteFalseAndProjId(to);
+        ProjOrchestration toProj = projRepository.findByIsDeleteFalseAndProjId(to);
         if (toProj == null) {
-            toProj = (ProjConfig) fromProj.clone();
+            toProj = (ProjOrchestration) fromProj.clone();
             copyToDifferentProj(toProj, to);
             projRepository.save(toProj);
         }
     }
 
-    private void copyToDifferentProj(ProjConfig proj, String to) {
+    private void copyToDifferentProj(ProjOrchestration proj, String to) {
         proj.setProjId(to);
         proj.setDescription("");
         proj.setProjRepo("");
@@ -66,13 +66,13 @@ public class ProjCrudService implements CrudOps<ProjConfig> {
     }
 
     @Override
-    public PageList<ProjConfig> getByPage(int page, int size, String env) {
+    public PageList<ProjOrchestration> getByPage(int page, int size, String env) {
         // 默认按更新时间倒序
         PageRequest pageRequest =
                 PageRequest.of(page-1, size, Sort.by(Sort.Direction.DESC, "updateTime"));
-        Page<ProjConfig> page1 = projRepository.findAll(pageRequest);
+        Page<ProjOrchestration> page1 = projRepository.findAll(pageRequest);
 
-        PageList<ProjConfig> pageList = new PageList<>();
+        PageList<ProjOrchestration> pageList = new PageList<>();
         pageList.setTotalSize(page1.getTotalElements());
         pageList.setTotalPages(page1.getTotalPages());
         pageList.setList(page1.getContent());
@@ -81,7 +81,7 @@ public class ProjCrudService implements CrudOps<ProjConfig> {
 
     @Override
     public void delete(String uniqueKey) throws Exception {
-        ProjConfig projEntity = projRepository.findByIsDeleteFalseAndProjId(uniqueKey);
+        ProjOrchestration projEntity = projRepository.findByIsDeleteFalseAndProjId(uniqueKey);
         if (projEntity == null) {
             throw new Exception(uniqueKey + " 不存在");
         }

+ 36 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/build/BuildDirService.java

@@ -0,0 +1,36 @@
+package cn.reghao.autodop.dmaster.app.service.config.build;
+
+import cn.reghao.autodop.dmaster.app.entity.config.build.BuildDir;
+import cn.reghao.autodop.dmaster.app.repository.config.build.BuildDirRepository;
+import cn.reghao.autodop.dmaster.common.db.CrudOps;
+import cn.reghao.autodop.dmaster.common.db.PageList;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author reghao
+ * @date 2020-11-10 21:58:00
+ */
+@Service
+public class BuildDirService implements CrudOps<BuildDir> {
+    private BuildDirRepository buildDirRepository;
+
+    public BuildDirService(BuildDirRepository buildDirRepository) {
+        this.buildDirRepository = buildDirRepository;
+    }
+
+    @Override
+    public PageList<BuildDir> getByPage(int page, int size) {
+        // 默认按更新时间倒序
+        PageRequest pageRequest =
+                PageRequest.of(page-1, size, Sort.by(Sort.Direction.DESC, "updateTime"));
+        Page<BuildDir> compilerConfigs = buildDirRepository.findAll(pageRequest);
+        PageList<BuildDir> pageList = new PageList<>();
+        pageList.setTotalSize(compilerConfigs.getTotalElements());
+        pageList.setTotalPages(compilerConfigs.getTotalPages());
+        pageList.setList(compilerConfigs.getContent());
+        return pageList;
+    }
+}

+ 14 - 14
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/build/CompilerConfigCrudService.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/build/CompilerConfigService.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.app.service.crud.build;
+package cn.reghao.autodop.dmaster.app.service.config.build;
 
 import cn.reghao.autodop.dmaster.common.db.CrudOps;
 import cn.reghao.autodop.dmaster.common.db.PageList;
@@ -17,10 +17,10 @@ import java.util.stream.Collectors;
  * @date 2020-11-10 21:58:00
  */
 @Service
-public class CompilerConfigCrudService implements CrudOps<CompilerConfig> {
+public class CompilerConfigService implements CrudOps<CompilerConfig> {
     private CompilerConfigRepository compilerRepository;
 
-    public CompilerConfigCrudService(CompilerConfigRepository compilerRepository) {
+    public CompilerConfigService(CompilerConfigRepository compilerRepository) {
         this.compilerRepository = compilerRepository;
     }
 
@@ -39,6 +39,16 @@ public class CompilerConfigCrudService implements CrudOps<CompilerConfig> {
         compilerRepository.save(appCompile);
     }
 
+    @Override
+    public void delete(String uniqueKey) throws Exception {
+        CompilerConfig compileEntity = compilerRepository.findByIsDeleteFalseAndName(uniqueKey);
+        if (compileEntity == null) {
+            throw new Exception(uniqueKey + "不存在...");
+        }
+        compileEntity.setIsDelete(true);
+        compilerRepository.save(compileEntity);
+    }
+
     @Override
     public PageList<CompilerConfig> getByPage(int page, int size) {
         // 默认按更新时间倒序
@@ -48,17 +58,7 @@ public class CompilerConfigCrudService implements CrudOps<CompilerConfig> {
         PageList<CompilerConfig> pageList = new PageList<>();
         pageList.setTotalSize(compilerConfigs.getTotalElements());
         pageList.setTotalPages(compilerConfigs.getTotalPages());
-        pageList.setList(compilerConfigs.getContent().stream().map(CompilerConfig::vo).collect(Collectors.toList()));
+        pageList.setList(compilerConfigs.getContent());
         return pageList;
     }
-
-    @Override
-    public void delete(String uniqueKey) throws Exception {
-        CompilerConfig compileEntity = compilerRepository.findByIsDeleteFalseAndName(uniqueKey);
-        if (compileEntity == null) {
-            throw new Exception(uniqueKey + "不存在...");
-        }
-        compileEntity.setIsDelete(true);
-        compilerRepository.save(compileEntity);
-    }
 }

+ 14 - 14
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/build/PackerConfigCrudService.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/build/PackerConfigService.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.app.service.crud.build;
+package cn.reghao.autodop.dmaster.app.service.config.build;
 
 import cn.reghao.autodop.dmaster.common.db.CrudOps;
 import cn.reghao.autodop.dmaster.common.db.PageList;
@@ -18,10 +18,10 @@ import java.util.stream.Collectors;
  * @date 2020-11-10 21:58:00
  */
 @Service
-public class PackerConfigCrudService implements CrudOps<PackerConfig> {
+public class PackerConfigService implements CrudOps<PackerConfig> {
     private PackerConfigRepository packerRepository;
 
-    public PackerConfigCrudService(PackerConfigRepository packerRepository) {
+    public PackerConfigService(PackerConfigRepository packerRepository) {
         this.packerRepository = packerRepository;
     }
 
@@ -42,6 +42,16 @@ public class PackerConfigCrudService implements CrudOps<PackerConfig> {
         packerRepository.save(packerConfig);
     }
 
+    @Override
+    public void delete(String uniqueKey) throws Exception {
+        PackerConfig packEntity = packerRepository.findByIsDeleteFalseAndName(uniqueKey);
+        if (packEntity == null) {
+            throw new Exception(uniqueKey + "不存在...");
+        }
+        packEntity.setIsDelete(true);
+        packerRepository.save(packEntity);
+    }
+
     @Override
     public PageList<PackerConfig> getByPage(int page, int size) {
         // 默认按更新时间倒序
@@ -51,17 +61,7 @@ public class PackerConfigCrudService implements CrudOps<PackerConfig> {
         PageList<PackerConfig> pageList = new PageList<>();
         pageList.setTotalSize(packerConfigs.getTotalElements());
         pageList.setTotalPages(packerConfigs.getTotalPages());
-        pageList.setList(packerConfigs.getContent().stream().map(PackerConfig::vo).collect(Collectors.toList()));
+        pageList.setList(packerConfigs.getContent());
         return pageList;
     }
-
-    @Override
-    public void delete(String uniqueKey) throws Exception {
-        PackerConfig packEntity = packerRepository.findByIsDeleteFalseAndName(uniqueKey);
-        if (packEntity == null) {
-            throw new Exception(uniqueKey + "不存在...");
-        }
-        packEntity.setIsDelete(true);
-        packerRepository.save(packEntity);
-    }
 }

+ 61 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/build/RepoAuthConfigService.java

@@ -0,0 +1,61 @@
+package cn.reghao.autodop.dmaster.app.service.config.build;
+
+import cn.reghao.autodop.dmaster.common.db.CrudOps;
+import cn.reghao.autodop.dmaster.common.db.PageList;
+import cn.reghao.autodop.dmaster.app.entity.config.build.RepoAuthConfig;
+import cn.reghao.autodop.dmaster.app.repository.config.build.RepoAuthConfigRepository;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author reghao
+ * @date 2020-11-10 21:58:00
+ */
+@Service
+public class RepoAuthConfigService implements CrudOps<RepoAuthConfig> {
+    private RepoAuthConfigRepository repoAuthRepository;
+
+    public RepoAuthConfigService(RepoAuthConfigRepository repoAuthRepository) {
+        this.repoAuthRepository = repoAuthRepository;
+    }
+
+    @Override
+    public void addOrUpdate(RepoAuthConfig repoAuthConfig) throws Exception {
+        RepoAuthConfig repoAuthConfigEntity = repoAuthRepository.findByIsDeleteFalseAndName(repoAuthConfig.getName());
+        if (repoAuthConfigEntity != null) {
+            repoAuthConfig.setId(repoAuthConfigEntity.getId());
+            repoAuthConfig.setCreateTime(repoAuthConfigEntity.getCreateTime());
+            repoAuthConfig.setUpdateTime(LocalDateTime.now());
+        }
+        repoAuthConfig.setIsDelete(false);
+        repoAuthRepository.save(repoAuthConfig);
+    }
+
+    @Override
+    public void delete(String uniqueKey) throws Exception {
+        RepoAuthConfig repoAuthConfigEntity = repoAuthRepository.findByIsDeleteFalseAndName(uniqueKey);
+        if (repoAuthConfigEntity == null) {
+            throw new Exception(uniqueKey + "不存在...");
+        }
+        repoAuthConfigEntity.setIsDelete(true);
+        repoAuthRepository.save(repoAuthConfigEntity);
+    }
+
+    @Override
+    public PageList<RepoAuthConfig> getByPage(int page, int size) {
+        // 默认按更新时间倒序
+        PageRequest pageRequest =
+                PageRequest.of(page-1, size, Sort.by(Sort.Direction.DESC, "updateTime"));
+        Page<RepoAuthConfig> repoConfigs = repoAuthRepository.findAll(pageRequest);
+
+        PageList<RepoAuthConfig> pageList = new PageList<>();
+        pageList.setTotalSize(repoConfigs.getTotalElements());
+        pageList.setTotalPages(repoConfigs.getTotalPages());
+        pageList.setList(repoConfigs.getContent());
+        return pageList;
+    }
+}

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/log/AppStatusCrudService.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/log/AppStatusCrudService.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.app.service.crud.log;
+package cn.reghao.autodop.dmaster.app.service.config.log;
 
 import cn.reghao.autodop.common.dagent.app.api.data.DeployedAppStatus;
 import cn.reghao.autodop.dmaster.app.repository.status.AppStatusRepository;

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/log/BuildLogCrudService.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/log/BuildLogCrudService.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.app.service.crud.log;
+package cn.reghao.autodop.dmaster.app.service.config.log;
 
 import cn.reghao.autodop.dmaster.app.entity.log.BuildLog;
 import cn.reghao.autodop.dmaster.app.repository.log.BuildLogRepository;

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/log/CommitLogCrudService.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/log/CommitLogCrudService.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.app.service.crud.log;
+package cn.reghao.autodop.dmaster.app.service.config.log;
 
 import cn.reghao.autodop.dmaster.app.entity.log.CommitLog;
 import cn.reghao.autodop.dmaster.app.repository.log.CommitLogRepository;

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/log/DeployLogCrudService.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/config/log/DeployLogCrudService.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.app.service.crud.log;
+package cn.reghao.autodop.dmaster.app.service.config.log;
 
 import cn.reghao.autodop.dmaster.app.entity.log.BuildLog;
 import cn.reghao.autodop.dmaster.app.entity.log.DeployLog;

+ 0 - 64
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/NotifierCrudService.java

@@ -1,64 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.crud;
-
-import cn.reghao.autodop.dmaster.common.db.CrudOps;
-import cn.reghao.autodop.dmaster.common.db.PageList;
-import cn.reghao.autodop.dmaster.app.entity.config.NotifierConfig;
-import cn.reghao.autodop.dmaster.app.repository.config.NotifierConfigRepository;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Sort;
-import org.springframework.stereotype.Service;
-
-import java.time.LocalDateTime;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2020-11-10 21:58:00
- */
-@Service
-public class NotifierCrudService implements CrudOps<NotifierConfig> {
-    private NotifierConfigRepository notifierConfigRepository;
-
-    public NotifierCrudService(NotifierConfigRepository notifierConfigRepository) {
-        this.notifierConfigRepository = notifierConfigRepository;
-    }
-
-    @Override
-    public void addOrUpdate(NotifierConfig notifierConfig) throws Exception {
-        NotifierConfig notifierEntity =
-                notifierConfigRepository.findByIsDeleteFalseAndName(notifierConfig.getName());
-        if (notifierEntity != null) {
-            notifierConfig.setId(notifierEntity.getId());
-            notifierConfig.setCreateTime(notifierEntity.getCreateTime());
-            notifierConfig.setUpdateTime(LocalDateTime.now());
-        }
-        notifierConfig.setIsDelete(false);
-        notifierConfigRepository.save(notifierConfig);
-    }
-
-    @Override
-    public PageList<NotifierConfig> getByPage(int page, int size) {
-        // 默认按更新时间倒序
-        PageRequest pageRequest =
-                PageRequest.of(page-1, size, Sort.by(Sort.Direction.DESC, "updateTime"));
-        Page<NotifierConfig> notifiers = notifierConfigRepository.findAll(pageRequest);
-
-        PageList<NotifierConfig> pageList = new PageList<>();
-        pageList.setTotalSize(notifiers.getTotalElements());
-        pageList.setTotalPages(notifiers.getTotalPages());
-        pageList.setList(notifiers.getContent().stream().map(NotifierConfig::vo).collect(Collectors.toList()));
-        return pageList;
-    }
-
-    @Override
-    public void delete(String uniqueKey) throws Exception {
-        NotifierConfig notifierEntity = notifierConfigRepository.findByIsDeleteFalseAndName(uniqueKey);
-        if (notifierEntity == null) {
-            throw new Exception(uniqueKey + "不存在...");
-        }
-        // TODO 处理其他实体对共享实体的引用
-        notifierEntity.setIsDelete(true);
-        notifierConfigRepository.save(notifierEntity);
-    }
-}

+ 0 - 92
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/build/BuildDirCrudService.java

@@ -1,92 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.crud.build;
-
-import cn.reghao.autodop.dmaster.common.db.CrudOps;
-import cn.reghao.autodop.dmaster.common.db.PageList;
-import cn.reghao.autodop.dmaster.app.entity.config.build.BuildDir;
-import cn.reghao.autodop.dmaster.app.repository.config.build.BuildDirRepository;
-import cn.reghao.autodop.dmaster.common.config.SysConfig;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Sort;
-import org.springframework.stereotype.Service;
-
-import java.io.File;
-import java.time.LocalDateTime;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2020-11-10 21:58:00
- */
-@Service
-public class BuildDirCrudService implements CrudOps<BuildDir> {
-    private BuildDirRepository buildDirRepository;
-
-    public BuildDirCrudService(BuildDirRepository buildDirRepository) {
-        this.buildDirRepository = buildDirRepository;
-    }
-
-    @Override
-    public void addOrUpdate(BuildDir buildDir) throws Exception {
-        // 检查并创建目录
-        checkOrMkdir(buildDir.getLocalDir());
-        // 只做修改,不新增
-        String hostId = buildDir.getMachineId();
-        BuildDir buildDirEntity = buildDirRepository.findByMachineId(hostId);
-        if (buildDirEntity != null) {
-            buildDir.setId(buildDirEntity.getId());
-            buildDir.setCreateTime(buildDirEntity.getCreateTime());
-            buildDir.setUpdateTime(LocalDateTime.now());
-            buildDir.setIsDelete(buildDirEntity.getIsDelete());
-
-            buildDirRepository.save(buildDir);
-
-            SysConfig.localRepo = buildDir.getLocalDir() + "/local-repo";
-            SysConfig.compileDir = buildDir.getLocalDir() + "/compile-dir";
-            SysConfig.packDir = buildDir.getLocalDir() + "/pack-dir";
-        } else {
-            throw new Exception(hostId + " 不存在...");
-        }
-    }
-
-    private void checkOrMkdir(String dirPath) throws Exception {
-        File dir = new File(dirPath);
-        if (!dir.exists() && !dir.mkdirs()) {
-            throw new Exception(dirPath + " 不存在且创建失败...");
-        }
-
-        dir = new File(dirPath + "/" + "localRepo");
-        if (!dir.mkdirs()) {
-            throw new Exception(dirPath + " 创建失败...");
-        }
-
-        dir = new File(dirPath + "/" + "compileDir");
-        if (!dir.mkdirs()) {
-            throw new Exception(dirPath + " 创建失败...");
-        }
-
-        dir = new File(dirPath + "/" + "packDir");
-        if (!dir.mkdirs()) {
-            throw new Exception(dirPath + " 创建失败...");
-        }
-    }
-
-    @Override
-    public PageList<BuildDir> getByPage(int page, int size) {
-        // 默认按更新时间倒序
-        PageRequest pageRequest =
-                PageRequest.of(page-1, size, Sort.by(Sort.Direction.DESC, "updateTime"));
-        Page<BuildDir> page1 = buildDirRepository.findAll(pageRequest);
-
-        PageList<BuildDir> pageList = new PageList<>();
-        pageList.setTotalSize(page1.getTotalElements());
-        pageList.setTotalPages(page1.getTotalPages());
-        pageList.setList(page1.getContent().stream().map(BuildDir::vo).collect(Collectors.toList()));
-        return pageList;
-    }
-
-    @Override
-    public void delete(String uniqueKey) throws Exception {
-        System.out.println("暂不实现 LocalDir 的删除...");
-    }
-}

+ 0 - 62
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/crud/build/RepoConfigCrudService.java

@@ -1,62 +0,0 @@
-package cn.reghao.autodop.dmaster.app.service.crud.build;
-
-import cn.reghao.autodop.dmaster.common.db.CrudOps;
-import cn.reghao.autodop.dmaster.common.db.PageList;
-import cn.reghao.autodop.dmaster.app.entity.config.build.RepoConfig;
-import cn.reghao.autodop.dmaster.app.repository.config.build.RepoConfigRepository;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Sort;
-import org.springframework.stereotype.Service;
-
-import java.time.LocalDateTime;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2020-11-10 21:58:00
- */
-@Service
-public class RepoConfigCrudService implements CrudOps<RepoConfig> {
-    private RepoConfigRepository repoRepository;
-
-    public RepoConfigCrudService(RepoConfigRepository repoRepository) {
-        this.repoRepository = repoRepository;
-    }
-
-    @Override
-    public void addOrUpdate(RepoConfig repoConfig) throws Exception {
-        RepoConfig repoConfigEntity = repoRepository.findByIsDeleteFalseAndName(repoConfig.getName());
-        if (repoConfigEntity != null) {
-            repoConfig.setId(repoConfigEntity.getId());
-            repoConfig.setCreateTime(repoConfigEntity.getCreateTime());
-            repoConfig.setUpdateTime(LocalDateTime.now());
-        }
-        repoConfig.setIsDelete(false);
-        repoRepository.save(repoConfig);
-    }
-
-    @Override
-    public PageList<RepoConfig> getByPage(int page, int size) {
-        // 默认按更新时间倒序
-        PageRequest pageRequest =
-                PageRequest.of(page-1, size, Sort.by(Sort.Direction.DESC, "updateTime"));
-        Page<RepoConfig> repoConfigs = repoRepository.findAll(pageRequest);
-
-        PageList<RepoConfig> pageList = new PageList<>();
-        pageList.setTotalSize(repoConfigs.getTotalElements());
-        pageList.setTotalPages(repoConfigs.getTotalPages());
-        pageList.setList(repoConfigs.getContent().stream().map(RepoConfig::vo).collect(Collectors.toList()));
-        return pageList;
-    }
-
-    @Override
-    public void delete(String uniqueKey) throws Exception {
-        RepoConfig repoConfigEntity = repoRepository.findByIsDeleteFalseAndName(uniqueKey);
-        if (repoConfigEntity == null) {
-            throw new Exception(uniqueKey + "不存在...");
-        }
-        repoConfigEntity.setIsDelete(true);
-        repoRepository.save(repoConfigEntity);
-    }
-}

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/deploy/AppDeployer.java

@@ -14,9 +14,9 @@ import cn.reghao.autodop.dmaster.app.entity.log.BuildLog;
 import cn.reghao.autodop.dmaster.app.entity.log.DeployLog;
 import cn.reghao.autodop.dmaster.app.service.RemoteCallService;
 import cn.reghao.autodop.dmaster.app.service.log.BuildDeployLogConsumer;
-import cn.reghao.autodop.dmaster.cluster.entity.MachineInfo;
-import cn.reghao.autodop.dmaster.cluster.entity.NetworkInfo;
-import cn.reghao.autodop.dmaster.cluster.repository.MachineInfoRepository;
+import cn.reghao.autodop.dmaster.machine.entity.MachineInfo;
+import cn.reghao.autodop.dmaster.machine.entity.NetworkInfo;
+import cn.reghao.autodop.dmaster.machine.repository.MachineInfoRepository;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 

+ 5 - 5
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/log/BuildDeployLogService.java

@@ -3,11 +3,11 @@ package cn.reghao.autodop.dmaster.app.service.log;
 import cn.reghao.autodop.common.dagent.app.api.data.DeployedAppStatus;
 import cn.reghao.autodop.dmaster.app.entity.log.*;
 import cn.reghao.autodop.dmaster.app.entity.status.BuildDeployApp;
-import cn.reghao.autodop.dmaster.app.service.crud.log.AppStatusCrudService;
-import cn.reghao.autodop.dmaster.app.service.crud.BuildDeployAppCrudService;
-import cn.reghao.autodop.dmaster.app.service.crud.log.BuildLogCrudService;
-import cn.reghao.autodop.dmaster.app.service.crud.log.CommitLogCrudService;
-import cn.reghao.autodop.dmaster.app.service.crud.log.DeployLogCrudService;
+import cn.reghao.autodop.dmaster.app.service.config.log.AppStatusCrudService;
+import cn.reghao.autodop.dmaster.app.service.config.BuildDeployAppCrudService;
+import cn.reghao.autodop.dmaster.app.service.config.log.BuildLogCrudService;
+import cn.reghao.autodop.dmaster.app.service.config.log.CommitLogCrudService;
+import cn.reghao.autodop.dmaster.app.service.config.log.DeployLogCrudService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/vo/BuildConfigVO.java

@@ -3,7 +3,7 @@ package cn.reghao.autodop.dmaster.app.vo;
 import cn.reghao.autodop.dmaster.app.entity.config.build.BuildConfig;
 import cn.reghao.autodop.dmaster.app.entity.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.entity.config.build.PackerConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.build.RepoConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.build.RepoAuthConfig;
 import lombok.Data;
 
 /**
@@ -18,7 +18,7 @@ public class BuildConfigVO {
 
     public static BuildConfigVO from(BuildConfig buildConfig) {
         BuildConfigVO vo = new BuildConfigVO();
-        vo.repo = buildConfig.getRepoConfig().getName();
+        vo.repo = buildConfig.getRepoAuthConfig().getName();
         vo.compiler = buildConfig.getCompilerConfig().getName();
         vo.packer = buildConfig.getPackerConfig().getName();
         return vo;
@@ -28,7 +28,7 @@ public class BuildConfigVO {
         BuildConfig buildConfig = new BuildConfig();
         String repo = vo.getRepo();
         if (repo != null) {
-            buildConfig.setRepoConfig(new RepoConfig(repo));
+            buildConfig.setRepoAuthConfig(new RepoAuthConfig(repo));
         }
 
         String compiler = vo.getCompiler();

+ 30 - 34
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/vo/orchestration/AppVO.java

@@ -5,19 +5,17 @@ import cn.reghao.autodop.common.dagent.app.api.data.log.LogLevel;
 import cn.reghao.autodop.common.dagent.app.api.data.log.LogType;
 import cn.reghao.autodop.common.utils.serializer.JsonConverter;
 import cn.reghao.autodop.common.dagent.app.api.data.deploy.PackerType;
-import cn.reghao.autodop.dmaster.app.constant.build.CompilerType;
+import cn.reghao.autodop.dmaster.app.constant.build.CompileType;
 import cn.reghao.autodop.dmaster.app.constant.build.RepoAuthType;
 import cn.reghao.autodop.dmaster.app.constant.build.RepoType;
-import cn.reghao.autodop.dmaster.app.entity.config.NotifierConfig;
-import cn.reghao.autodop.dmaster.app.constant.NotifierType;
 import cn.reghao.autodop.dmaster.app.entity.config.build.BuildConfig;
 import cn.reghao.autodop.dmaster.app.entity.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.entity.config.build.PackerConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.build.RepoConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.build.RepoAuthConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
 import cn.reghao.autodop.dmaster.app.constant.AppType;
 import cn.reghao.autodop.dmaster.app.constant.EnvType;
-import cn.reghao.autodop.dmaster.app.entity.config.ProjConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.ProjOrchestration;
 import cn.reghao.autodop.dmaster.app.entity.config.deploy.DeployConfig;
 import cn.reghao.autodop.dmaster.app.entity.config.deploy.RunningConfig;
 import cn.reghao.autodop.dmaster.app.vo.BuildConfigVO;
@@ -58,7 +56,7 @@ public class AppVO {
     private String notifier;
     private String role;
 
-    public static AppVO from(AppConfig app) {
+    public static AppVO from(AppOrchestration app) {
         AppVO vo = new AppVO();
         vo.appId = app.getAppId();
         vo.env = app.getEnv();
@@ -82,9 +80,9 @@ public class AppVO {
         vo.deployConfigs = app.getDeployConfigs();
         vo.runningConfig = app.getRunningConfig();
 
-        if (app.getNotifierConfig() != null) {
-            vo.notifier = app.getNotifierConfig().getName();
-        }
+        /*if (app.getNotifyReceiver() != null) {
+            vo.notifier = app.getNotifyReceiver().getName();
+        }*/
 
         if (app.getRole() != null) {
             vo.role = app.getRole().getName();
@@ -93,8 +91,8 @@ public class AppVO {
         return vo;
     }
 
-    public static AppConfig to(AppVO vo) {
-        AppConfig app = new AppConfig();
+    public static AppOrchestration to(AppVO vo) {
+        AppOrchestration app = new AppOrchestration();
         app.setAppId(vo.appId);
         app.setEnv(vo.env);
         app.setDescription(vo.description);
@@ -111,16 +109,16 @@ public class AppVO {
         if (vo.getBuildConfig() != null) {
             app.setBuildConfig(BuildConfigVO.to(vo.getBuildConfig()));
         } else {
-            app.setProj(new ProjConfig(vo.getProjId()));
+            app.setProj(new ProjOrchestration(vo.getProjId()));
         }
 
         app.setDeployConfigs(vo.getDeployConfigs());
         app.setRunningConfig(vo.getRunningConfig());
 
         String notifier = vo.getNotifier();
-        if (notifier != null) {
-            app.setNotifierConfig(new NotifierConfig(notifier));
-        }
+        /*if (notifier != null) {
+            app.setNotifyReceiver(new NotifyReceiver(notifier));
+        }*/
 
         String role = vo.getRole();
         if (role != null) {
@@ -131,7 +129,7 @@ public class AppVO {
     }
 
     public static void main(String[] args) {
-        AppConfig app = new AppConfig();
+        AppOrchestration app = new AppOrchestration();
         app.setAppId("content");
         app.setEnv(EnvType.test.name());
         app.setDescription("内容服务");
@@ -144,21 +142,19 @@ public class AppVO {
         app.setCompileHome("");
 
         BuildConfig buildConfig = new BuildConfig();
-        RepoConfig repoConfig = new RepoConfig();
-        repoConfig.setName("git-codeup");
-        repoConfig.setType(RepoType.git.name());
-        repoConfig.setAuthType(RepoAuthType.ssh.name());
-        repoConfig.setRsaPrikey("rsa private key");
-        buildConfig.setRepoConfig(repoConfig);
+        RepoAuthConfig repoAuthConfig = new RepoAuthConfig();
+        repoAuthConfig.setName("git-codeup");
+        repoAuthConfig.setType(RepoType.git.name());
+        repoAuthConfig.setAuthType(RepoAuthType.ssh.name());
+        repoAuthConfig.setRsaPrikey("rsa private key");
+        buildConfig.setRepoAuthConfig(repoAuthConfig);
 
         CompilerConfig compilerConfig = new CompilerConfig();
         compilerConfig.setName("dotnet5-dev");
-        compilerConfig.setType(CompilerType.shell.name());
-        compilerConfig.setHomePath("/home/reghao/dev/env/dotnet/dotnet-sdk-5.0.100-linux-x64");
+        compilerConfig.setType(CompileType.shell.name());
+        /*compilerConfig.setHomePath("/home/reghao/dev/env/dotnet/dotnet-sdk-5.0.100-linux-x64");
         compilerConfig.setBinPath("/home/reghao/dev/env/dotnet/dotnet-sdk-5.0.100-linux-x64/dotnet");
-        compilerConfig.setEnv("dev");
-        compilerConfig.setVersion("5.0");
-        compilerConfig.setCompileCmd("dotnet publish");
+        compilerConfig.setCompileCmd("dotnet publish");*/
         buildConfig.setCompilerConfig(compilerConfig);
 
         PackerConfig packerConfig = new PackerConfig();
@@ -193,16 +189,16 @@ public class AppVO {
         logConfig1.setLevel(LogLevel.info.name());
         logConfig1.setLogPath("/Logs/Info");
         logs.add(logConfig);
-        runningConfig.setLogConfigs(logs);
+        //runningConfig.setLogConfigs(logs);
         app.setRunningConfig(runningConfig);
 
-        NotifierConfig notifierConfig = new NotifierConfig();
-        notifierConfig.setName("ding-dev");
-        notifierConfig.setType(NotifierType.webhook.name());
+        /*NotifyReceiver notifyReceiver = new NotifyReceiver();
+        notifyReceiver.setName("ding-dev");
+        notifyReceiver.setType(NotifyType.webhook.name());
         List<String> receivers = new ArrayList<>();
         receivers.add("https://oapi.dingtalk.com/robot/send?access_token=ba9cf0d846cff8c471168e0d2f91ec0c44645a086cf5e4e421697c9b0c606bd2");
-        notifierConfig.setReceivers(receivers);
-        app.setNotifierConfig(notifierConfig);
+        notifyReceiver.setReceivers(receivers);
+        app.setNotifyReceiver(notifyReceiver);*/
 
         String json = JsonConverter.objectToJson(AppVO.from(app));
         System.out.println(json);

+ 16 - 18
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/vo/orchestration/ProjVO.java

@@ -1,15 +1,15 @@
 package cn.reghao.autodop.dmaster.app.vo.orchestration;
 
 import cn.reghao.autodop.common.utils.serializer.JsonConverter;
-import cn.reghao.autodop.dmaster.app.constant.build.CompilerType;
+import cn.reghao.autodop.dmaster.app.constant.build.CompileType;
 import cn.reghao.autodop.common.dagent.app.api.data.deploy.PackerType;
 import cn.reghao.autodop.dmaster.app.constant.build.RepoAuthType;
 import cn.reghao.autodop.dmaster.app.constant.build.RepoType;
 import cn.reghao.autodop.dmaster.app.entity.config.build.BuildConfig;
 import cn.reghao.autodop.dmaster.app.entity.config.build.CompilerConfig;
 import cn.reghao.autodop.dmaster.app.entity.config.build.PackerConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.build.RepoConfig;
-import cn.reghao.autodop.dmaster.app.entity.config.ProjConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.build.RepoAuthConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.ProjOrchestration;
 import cn.reghao.autodop.dmaster.app.vo.BuildConfigVO;
 import lombok.Data;
 
@@ -25,7 +25,7 @@ public class ProjVO {
     private String dirname;
     private BuildConfigVO buildConfigVO;
 
-    public static ProjVO from(ProjConfig proj) {
+    public static ProjVO from(ProjOrchestration proj) {
         ProjVO vo = new ProjVO();
         vo.projId = proj.getProjId();
         vo.description = proj.getDescription();
@@ -35,8 +35,8 @@ public class ProjVO {
         return vo;
     }
     
-    public static ProjConfig to(ProjVO vo) {
-        ProjConfig proj = new ProjConfig();
+    public static ProjOrchestration to(ProjVO vo) {
+        ProjOrchestration proj = new ProjOrchestration();
         proj.setProjId(vo.projId);
         proj.setDescription(vo.description);
         proj.setProjRepo(vo.projRepo);
@@ -46,7 +46,7 @@ public class ProjVO {
     }
 
     public static void main(String[] args) {
-        ProjConfig proj = new ProjConfig();
+        ProjOrchestration proj = new ProjOrchestration();
         proj.setProjId("spiderlab");
         proj.setDescription("分布式爬虫系统");
         proj.setProjRepo("http://git.reghao.cn/reghao/spiderlab.git");
@@ -54,20 +54,18 @@ public class ProjVO {
 
         /* 构建配置 */
         BuildConfig buildConfig = new BuildConfig();
-        RepoConfig repoConfig = new RepoConfig();
-        repoConfig.setName("git-codeup");
-        repoConfig.setType(RepoType.git.name());
-        repoConfig.setAuthType(RepoAuthType.ssh.name());
-        repoConfig.setRsaPrikey("rsa private key");
-        buildConfig.setRepoConfig(repoConfig);
+        RepoAuthConfig repoAuthConfig = new RepoAuthConfig();
+        repoAuthConfig.setName("git-codeup");
+        repoAuthConfig.setType(RepoType.git.name());
+        repoAuthConfig.setAuthType(RepoAuthType.ssh.name());
+        repoAuthConfig.setRsaPrikey("rsa private key");
+        buildConfig.setRepoAuthConfig(repoAuthConfig);
 
         CompilerConfig compilerConfig = new CompilerConfig();
         compilerConfig.setName("dotnet5-dev");
-        compilerConfig.setType(CompilerType.shell.name());
-        compilerConfig.setHomePath("/home/reghao/dev/env/dotnet/dotnet-sdk-5.0.100-linux-x64");
-        compilerConfig.setBinPath("/home/reghao/dev/env/dotnet/dotnet-sdk-5.0.100-linux-x64/dotnet");
-        compilerConfig.setEnv("dev");
-        compilerConfig.setVersion("5.0");
+        compilerConfig.setType(CompileType.shell.name());
+        /*compilerConfig.setHomePath("/home/reghao/dev/env/dotnet/dotnet-sdk-5.0.100-linux-x64");
+        compilerConfig.setBinPath("/home/reghao/dev/env/dotnet/dotnet-sdk-5.0.100-linux-x64/dotnet");*/
         compilerConfig.setCompileCmd("dotnet publish");
         buildConfig.setCompilerConfig(compilerConfig);
 

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/auth/config/WebSecurityConfig.java

@@ -37,12 +37,12 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
         // TODO 具体的权限验证在 JwtTokenFilter 中完成
         http.authorizeRequests()
                 .expressionHandler(webExpressionHandler())
-                .antMatchers("/**").permitAll()
                 // TODO 放行所有接口(测试时使用)
-                .antMatchers("/api/monitor/**").permitAll()
+                .antMatchers("/**").permitAll()
+                /*.antMatchers("/api/monitor/**").permitAll()
                 .antMatchers("/api/vm/**").permitAll()
                 .antMatchers("/logout").permitAll()
-                .antMatchers("/actuator/health").permitAll()
+                .antMatchers("/actuator/health").permitAll()*/
                 .anyRequest().authenticated();
 
         // 异常处理

+ 10 - 11
dmaster/src/main/java/cn/reghao/autodop/dmaster/common/db/CrudOps.java

@@ -17,30 +17,29 @@ public interface CrudOps<T> {
     }
 
     default void addOrUpdate(T t) throws Exception {
-
     }
 
-    default PageList<T> getByPage(int page, int size) {
-        return null;
+    default void update(T t) throws Exception {
     }
 
-    default PageList<T> getByPage(int page, int size, String field) {
-        return null;
+    default void batchUpdate(List<T> t) throws Exception {
     }
 
-    default void get(String uniqueKey) {
-    }
+    default void delete(String uniqueKey) throws Exception {
 
-    default void update(T t) throws Exception {
     }
 
-    default void batchUpdate(List<T> t) throws Exception {
+    default void batchDelete(Set<String> uniqueKeys) {
     }
 
-    default void delete(String uniqueKey) throws Exception {
+    default PageList<T> getByPage(int page, int size) {
+        return null;
+    }
 
+    default PageList<T> getByPage(int page, int size, String field) {
+        return null;
     }
 
-    default void batchDelete(Set<String> uniqueKeys) {
+    default void get(String uniqueKey) {
     }
 }

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/controller/MachineController.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/controller/MachineController.java

@@ -1,6 +1,6 @@
-package cn.reghao.autodop.dmaster.cluster.controller;
+package cn.reghao.autodop.dmaster.machine.controller;
 
-import cn.reghao.autodop.dmaster.cluster.service.MachineService;
+import cn.reghao.autodop.dmaster.machine.service.MachineService;
 import io.swagger.annotations.Api;
 import org.springframework.web.bind.annotation.*;
 

+ 4 - 4
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/controller/crud/MachineCrudController.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/controller/crud/MachineCrudController.java

@@ -1,10 +1,10 @@
-package cn.reghao.autodop.dmaster.cluster.controller.crud;
+package cn.reghao.autodop.dmaster.machine.controller.crud;
 
 import cn.reghao.autodop.common.result.WebResult;
-import cn.reghao.autodop.dmaster.cluster.entity.MachineInfo;
-import cn.reghao.autodop.dmaster.cluster.vo.MachineInfoVO;
+import cn.reghao.autodop.dmaster.machine.entity.MachineInfo;
+import cn.reghao.autodop.dmaster.machine.vo.MachineInfoVO;
 import cn.reghao.autodop.dmaster.common.db.PageList;
-import cn.reghao.autodop.dmaster.cluster.service.crud.MachineCrudService;
+import cn.reghao.autodop.dmaster.machine.service.crud.MachineCrudService;
 import cn.reghao.autodop.dmaster.utils.amqp.MachineDispatcher;
 import io.swagger.annotations.Api;
 import org.springframework.web.bind.annotation.GetMapping;

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/controller/crud/MachineLogCrudController.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/controller/crud/MachineLogCrudController.java

@@ -1,7 +1,7 @@
-package cn.reghao.autodop.dmaster.cluster.controller.crud;
+package cn.reghao.autodop.dmaster.machine.controller.crud;
 
 import cn.reghao.autodop.common.result.WebResult;
-import cn.reghao.autodop.dmaster.cluster.service.crud.MachineLogCrudService;
+import cn.reghao.autodop.dmaster.machine.service.crud.MachineLogCrudService;
 import io.swagger.annotations.Api;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/CPUInfo.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/CPUInfo.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.cluster.entity;
+package cn.reghao.autodop.dmaster.machine.entity;
 
 import lombok.Data;
 

+ 1 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/DiskInfo.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/DiskInfo.java

@@ -1,9 +1,8 @@
-package cn.reghao.autodop.dmaster.cluster.entity;
+package cn.reghao.autodop.dmaster.machine.entity;
 
 import lombok.Data;
 
 import javax.persistence.Embeddable;
-import javax.persistence.Entity;
 
 /**
  * df -h 命令输出

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/MachineHeartbeat.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MachineHeartbeat.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.cluster.entity;
+package cn.reghao.autodop.dmaster.machine.entity;
 
 import cn.reghao.autodop.common.dagent.machine.hardware.disk.DiskInfo;
 import cn.reghao.autodop.common.dagent.machine.hardware.memory.MemoryInfo;

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/MachineInfo.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MachineInfo.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.cluster.entity;
+package cn.reghao.autodop.dmaster.machine.entity;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/MachineLog.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MachineLog.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.cluster.entity;
+package cn.reghao.autodop.dmaster.machine.entity;
 
 import cn.reghao.autodop.common.orm.BaseDocument;
 import lombok.Data;

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/MachineShell.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MachineShell.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.cluster.entity;
+package cn.reghao.autodop.dmaster.machine.entity;
 
 import lombok.Data;
 

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/MachineShellArgs.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MachineShellArgs.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.cluster.entity;
+package cn.reghao.autodop.dmaster.machine.entity;
 
 import lombok.Data;
 

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/MachineState.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MachineState.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.cluster.entity;
+package cn.reghao.autodop.dmaster.machine.entity;
 
 import lombok.Data;
 

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/MemoryInfo.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/MemoryInfo.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.cluster.entity;
+package cn.reghao.autodop.dmaster.machine.entity;
 
 import lombok.Data;
 

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/NetworkInfo.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/NetworkInfo.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.cluster.entity;
+package cn.reghao.autodop.dmaster.machine.entity;
 
 import lombok.Data;
 

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/entity/OSInfo.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/entity/OSInfo.java

@@ -1,4 +1,4 @@
-package cn.reghao.autodop.dmaster.cluster.entity;
+package cn.reghao.autodop.dmaster.machine.entity;
 
 import lombok.Data;
 

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/repository/MachineInfoRepository.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/repository/MachineInfoRepository.java

@@ -1,6 +1,6 @@
-package cn.reghao.autodop.dmaster.cluster.repository;
+package cn.reghao.autodop.dmaster.machine.repository;
 
-import cn.reghao.autodop.dmaster.cluster.entity.MachineInfo;
+import cn.reghao.autodop.dmaster.machine.entity.MachineInfo;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/repository/MachineLogRepository.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/repository/MachineLogRepository.java

@@ -1,6 +1,6 @@
-package cn.reghao.autodop.dmaster.cluster.repository;
+package cn.reghao.autodop.dmaster.machine.repository;
 
-import cn.reghao.autodop.dmaster.cluster.entity.MachineLog;
+import cn.reghao.autodop.dmaster.machine.entity.MachineLog;
 import org.springframework.data.mongodb.repository.MongoRepository;
 
 /**

+ 4 - 4
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/service/MachineService.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/service/MachineService.java

@@ -1,8 +1,8 @@
-package cn.reghao.autodop.dmaster.cluster.service;
+package cn.reghao.autodop.dmaster.machine.service;
 
-import cn.reghao.autodop.dmaster.cluster.repository.MachineLogRepository;
-import cn.reghao.autodop.dmaster.cluster.repository.MachineInfoRepository;
-import cn.reghao.autodop.dmaster.cluster.vo.MachineInfoVO;
+import cn.reghao.autodop.dmaster.machine.repository.MachineLogRepository;
+import cn.reghao.autodop.dmaster.machine.repository.MachineInfoRepository;
+import cn.reghao.autodop.dmaster.machine.vo.MachineInfoVO;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/service/crud/MachineCrudService.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/service/crud/MachineCrudService.java

@@ -1,7 +1,7 @@
-package cn.reghao.autodop.dmaster.cluster.service.crud;
+package cn.reghao.autodop.dmaster.machine.service.crud;
 
-import cn.reghao.autodop.dmaster.cluster.entity.MachineInfo;
-import cn.reghao.autodop.dmaster.cluster.repository.MachineInfoRepository;
+import cn.reghao.autodop.dmaster.machine.entity.MachineInfo;
+import cn.reghao.autodop.dmaster.machine.repository.MachineInfoRepository;
 import cn.reghao.autodop.dmaster.common.db.CrudOps;
 import cn.reghao.autodop.dmaster.common.db.PageList;
 import org.springframework.data.domain.Page;

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/service/crud/MachineLogCrudService.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/service/crud/MachineLogCrudService.java

@@ -1,9 +1,9 @@
-package cn.reghao.autodop.dmaster.cluster.service.crud;
+package cn.reghao.autodop.dmaster.machine.service.crud;
 
-import cn.reghao.autodop.dmaster.cluster.entity.MachineLog;
+import cn.reghao.autodop.dmaster.machine.entity.MachineLog;
 import cn.reghao.autodop.dmaster.common.db.CrudOps;
 import cn.reghao.autodop.dmaster.common.db.PageList;
-import cn.reghao.autodop.dmaster.cluster.repository.MachineLogRepository;
+import cn.reghao.autodop.dmaster.machine.repository.MachineLogRepository;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/cluster/vo/MachineInfoVO.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/vo/MachineInfoVO.java

@@ -1,7 +1,7 @@
-package cn.reghao.autodop.dmaster.cluster.vo;
+package cn.reghao.autodop.dmaster.machine.vo;
 
-import cn.reghao.autodop.dmaster.cluster.entity.MachineInfo;
-import cn.reghao.autodop.dmaster.cluster.entity.NetworkInfo;
+import cn.reghao.autodop.dmaster.machine.entity.MachineInfo;
+import cn.reghao.autodop.dmaster.machine.entity.NetworkInfo;
 import lombok.Data;
 
 import java.util.List;

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/HealthCheckJob.java

@@ -2,7 +2,7 @@ package cn.reghao.autodop.dmaster.monitor;
 
 import cn.reghao.autodop.common.http.DefaultWebRequest;
 import cn.reghao.autodop.common.http.WebRequest;
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
 import lombok.extern.slf4j.Slf4j;
 import org.quartz.*;
 
@@ -25,6 +25,6 @@ public class HealthCheckJob implements Job {
     @Override
     public void execute(JobExecutionContext context) throws JobExecutionException {
         JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();
-        List<AppConfig> list = (List<AppConfig>) jobDataMap.get("appConfigs");
+        List<AppOrchestration> list = (List<AppOrchestration>) jobDataMap.get("appConfigs");
     }
 }

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/MonitorScheduler.java

@@ -1,8 +1,8 @@
 package cn.reghao.autodop.dmaster.monitor;
 
 import cn.reghao.autodop.dmaster.app.constant.EnvType;
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
-import cn.reghao.autodop.dmaster.app.service.crud.orchestarte.AppCrudService;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
+import cn.reghao.autodop.dmaster.app.service.config.app.AppCrudService;
 import lombok.extern.slf4j.Slf4j;
 import org.quartz.*;
 import org.quartz.impl.StdSchedulerFactory;
@@ -28,7 +28,7 @@ public class MonitorScheduler {
     }
 
     public void add(Class<? extends Job> clazz, String jobId, String cronExp) throws SchedulerException {
-        List<AppConfig> list = appCrudService.find(EnvType.prod.name());
+        List<AppOrchestration> list = appCrudService.find(EnvType.prod.name());
         JobDataMap jobDataMap = new JobDataMap();
         jobDataMap.put("appConfigs", list);
 

+ 5 - 5
dmaster/src/main/java/cn/reghao/autodop/dmaster/utils/amqp/MachineDispatcher.java

@@ -3,11 +3,11 @@ package cn.reghao.autodop.dmaster.utils.amqp;
 import cn.reghao.autodop.common.dagent.machine.api.MachineOps;
 import cn.reghao.autodop.common.utils.DateTimeConverter;
 import cn.reghao.autodop.common.utils.serializer.JsonConverter;
-import cn.reghao.autodop.dmaster.cluster.entity.MachineHeartbeat;
-import cn.reghao.autodop.dmaster.cluster.entity.MachineLog;
-import cn.reghao.autodop.dmaster.cluster.entity.MachineInfo;
-import cn.reghao.autodop.dmaster.cluster.service.crud.MachineCrudService;
-import cn.reghao.autodop.dmaster.cluster.service.crud.MachineLogCrudService;
+import cn.reghao.autodop.dmaster.machine.entity.MachineHeartbeat;
+import cn.reghao.autodop.dmaster.machine.entity.MachineLog;
+import cn.reghao.autodop.dmaster.machine.entity.MachineInfo;
+import cn.reghao.autodop.dmaster.machine.service.crud.MachineCrudService;
+import cn.reghao.autodop.dmaster.machine.service.crud.MachineLogCrudService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/utils/hibernate/HibernateSessionOps.java

@@ -37,7 +37,7 @@ public class HibernateSessionOps {
             String projId = "";
             String hql = "update app_orchestration ";
             Query query = session
-                    .createQuery("select app from AppConfig app where app.projId = :projId")
+                    .createQuery("select app from AppOrchestration app where app.projId = :projId")
                     .setParameter("projId", projId);
 
             query.getResultList();

+ 3 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/utils/notifier/EmailNotify.java

@@ -1,6 +1,6 @@
 package cn.reghao.autodop.dmaster.utils.notifier;
 
-import cn.reghao.autodop.dmaster.app.entity.config.NotifierConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.NotifyReceiver;
 
 import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
@@ -19,8 +19,8 @@ public class EmailNotify implements Notify<EmailMsg> {
         this.sender = new EmailSender(account, password, smtp, sender);
     }
 
-    public EmailNotify(NotifierConfig notifierConfig) throws UnsupportedEncodingException {
-        Map<String, String> map = notifierConfig.getPayload();
+    public EmailNotify(NotifyReceiver notifyReceiver) throws UnsupportedEncodingException {
+        Map<String, String> map = new HashMap<>();
         String account = map.get("account");
         String password = map.get("password");
         String smtp = map.get("smtp");

+ 11 - 14
dmaster/src/main/java/cn/reghao/autodop/dmaster/utils/notifier/NotifyService.java

@@ -1,12 +1,13 @@
 package cn.reghao.autodop.dmaster.utils.notifier;
 
-import cn.reghao.autodop.dmaster.app.constant.NotifierType;
-import cn.reghao.autodop.dmaster.app.entity.config.NotifierConfig;
+import cn.reghao.autodop.dmaster.app.constant.NotifyType;
+import cn.reghao.autodop.dmaster.app.entity.config.NotifyReceiver;
 import cn.reghao.autodop.dmaster.app.service.deploy.DeployNotifyMsg;
 import cn.reghao.autodop.dmaster.common.thread.ThreadPoolWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ExecutorService;
 
@@ -21,26 +22,23 @@ import java.util.concurrent.ExecutorService;
 public class NotifyService {
     private ExecutorService threadPool = ThreadPoolWrapper.threadPool("notify-service");
 
-    public void notify(NotifierConfig notifierConfig, Object msg) {
-        switch (NotifierType.valueOf(notifierConfig.getType())) {
+    public void notify(NotifyReceiver notifyReceiver, Object msg) {
+        switch (NotifyType.valueOf(notifyReceiver.getNotifyType())) {
             case webhook:
                 DingNotify dingNotify = new DingNotify();
                 if (msg instanceof DeployNotifyMsg) {
                     DeployNotifyMsg deployNotifyMsg = (DeployNotifyMsg) msg;
-                    notifierConfig.getReceivers().forEach(receiver ->
-                            threadPool.execute(
-                                    new NotifyTask<>(dingNotify, receiver,
-                                            new DingMsg(deployNotifyMsg.getTitle(), deployNotifyMsg.getText()))));
+                    threadPool.execute(new NotifyTask<>(dingNotify, notifyReceiver.getReceiver(),
+                            new DingMsg(deployNotifyMsg.getTitle(), deployNotifyMsg.getText())));
                 }
                 break;
             case sms:
-                Map<String, String> payload = notifierConfig.getPayload();
+                Map<String, String> payload = new HashMap<>();
                 SmsNotify smsNotify = new SmsNotify(payload);
-                notifierConfig.getReceivers().forEach(receiver ->
-                        threadPool.execute(new NotifyTask<>(smsNotify, receiver, msg.toString())));
+                threadPool.execute(new NotifyTask<>(smsNotify, notifyReceiver.getReceiver(), msg.toString()));
                 break;
             case email:
-                Map<String, String> map = notifierConfig.getPayload();
+                Map<String, String> map = new HashMap<>();
                 String account = map.get("account");
                 String password = map.get("password");
                 String smtp = map.get("smtp");
@@ -50,8 +48,7 @@ public class NotifyService {
                     EmailNotify emailNotify = new EmailNotify(account, password, smtp, sender);
                     EmailMsg emailMsg = new EmailMsg(subject, msg.toString());
                     emailMsg.setContent(msg.toString());
-                    notifierConfig.getReceivers().forEach(receiver ->
-                            threadPool.execute(new NotifyTask<>(emailNotify, receiver, emailMsg)));
+                    threadPool.execute(new NotifyTask<>(emailNotify, notifyReceiver.getReceiver(), emailMsg));
                 } catch (Exception e) {
                     e.printStackTrace();
                 }

+ 4 - 3
dmaster/src/main/java/cn/reghao/autodop/dmaster/utils/notifier/SmsNotify.java

@@ -3,7 +3,7 @@ package cn.reghao.autodop.dmaster.utils.notifier;
 import cn.reghao.autodop.common.http.DefaultWebRequest;
 import cn.reghao.autodop.common.http.WebRequest;
 import cn.reghao.autodop.common.http.WebResponse;
-import cn.reghao.autodop.dmaster.app.entity.config.NotifierConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.NotifyReceiver;
 import lombok.extern.slf4j.Slf4j;
 import org.dom4j.DocumentHelper;
 import org.dom4j.Element;
@@ -55,8 +55,9 @@ public class SmsNotify implements Notify<String> {
 
     public static void main(String[] args) throws Exception {
         String mobilePhone = "15682110907";
-        NotifierConfig notifierConfig = new NotifierConfig();
-        SmsNotify smsNotify = new SmsNotify(notifierConfig.getPayload());
+        NotifyReceiver notifyReceiver = new NotifyReceiver();
+        Map<String, String> smsConfig = new HashMap<>();
+        SmsNotify smsNotify = new SmsNotify(smsConfig);
         String content = "【大脑课堂】验证码:191599,您正在通过兑换码开通帐号,验证码15分钟内有效。大脑课堂,让大脑更自由!";
         content = "【监控报警】192.168.0.11 机器上的 content 服务宕机,正在尝试重启...";
         smsNotify.send(mobilePhone, content);

+ 13 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/ws/MessageBody.java

@@ -0,0 +1,13 @@
+package cn.reghao.autodop.dmaster.ws;
+
+import lombok.Data;
+
+/**
+ * @author reghao
+ * @date 2021-04-16 16:52:15
+ */
+@Data
+public class MessageBody {
+    private String content;
+    private String destination;
+}

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/ws/WebsocketConfig.java

@@ -8,7 +8,7 @@ import org.springframework.web.socket.server.standard.ServerEndpointExporter;
  * @author reghao
  * @date 2021-02-10 22:34:36
  */
-//@Configuration
+@Configuration
 public class WebsocketConfig {
     @Bean
     public ServerEndpointExporter serverEndpointExporter() {

+ 2 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/ws/WebsocketController.java

@@ -9,8 +9,8 @@ import javax.websocket.server.ServerEndpoint;
  * @author reghao
  * @date 2021-02-10 22:33:52
  */
-/*@ServerEndpoint(value = "/ws")
-@Controller*/
+@ServerEndpoint(value = "/ws")
+@Controller
 public class WebsocketController {
     @OnOpen
     public void onOpen(Session session) {

+ 1 - 1
dmaster/src/main/resources/application-dev.yml

@@ -2,7 +2,7 @@ spring:
   datasource:
     url: jdbc:mysql://localhost/reghao_devops_rdb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
     username: dev
-    password: Dev@12345678
+    password: Dev@123456
   data:
     mongodb:
       uri: mongodb://localhost/reghao_devops_rdb

+ 3 - 5
dmaster/src/test/java/cn/reghao/autodop/dmaster/app/service/RefreshServiceTest.java

@@ -5,9 +5,9 @@ import cn.reghao.autodop.common.http.WebRequest;
 import cn.reghao.autodop.common.http.WebResponse;
 import cn.reghao.autodop.dmaster.DmasterApplication;
 import cn.reghao.autodop.dmaster.app.constant.EnvType;
-import cn.reghao.autodop.dmaster.app.entity.config.AppConfig;
+import cn.reghao.autodop.dmaster.app.entity.config.AppOrchestration;
 import cn.reghao.autodop.dmaster.app.entity.config.deploy.RunningConfig;
-import cn.reghao.autodop.dmaster.app.service.crud.orchestarte.AppCrudService;
+import cn.reghao.autodop.dmaster.app.service.config.app.AppCrudService;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
@@ -21,8 +21,6 @@ import org.springframework.test.context.junit4.SpringRunner;
 import java.util.ArrayList;
 import java.util.List;
 
-import static org.junit.jupiter.api.Assertions.*;
-
 @Slf4j
 @ActiveProfiles("dev")
 @SpringBootTest(classes = DmasterApplication.class)
@@ -38,7 +36,7 @@ class RefreshServiceTest {
         WebRequest webRequest = new DefaultWebRequest();
 
         //refreshService.refreshBuildList("test");
-        List<AppConfig> list = appCrudService.find(EnvType.prod.name());
+        List<AppOrchestration> list = appCrudService.find(EnvType.prod.name());
         List<HealthCheck> healthChecks = new ArrayList<>();
         list.forEach(appConfig -> {
             RunningConfig runningConfig = appConfig.getRunningConfig();