|
|
@@ -1,5 +1,7 @@
|
|
|
package cn.reghao.autodop.dmaster.app.service.config.impl;
|
|
|
|
|
|
+import cn.reghao.autodop.common.docker.po.Config;
|
|
|
+import cn.reghao.autodop.common.msg.rpc.dto.app.PackType;
|
|
|
import cn.reghao.autodop.dmaster.app.db.crud.config.AppDeployConfigCrud;
|
|
|
import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
|
|
|
import cn.reghao.autodop.dmaster.app.db.query.config.AppDeployConfigQuery;
|
|
|
@@ -7,10 +9,12 @@ import cn.reghao.autodop.dmaster.app.model.dto.AppDeployConfigDto;
|
|
|
import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
|
|
|
import cn.reghao.autodop.dmaster.app.model.po.config.AppDeployConfig;
|
|
|
import cn.reghao.autodop.dmaster.app.service.config.AppDeployConfigService;
|
|
|
+import cn.reghao.autodop.dmaster.app.service.config.AppDeployingService;
|
|
|
import cn.reghao.autodop.dmaster.machine.db.query.MachineHostQuery;
|
|
|
import cn.reghao.autodop.dmaster.machine.model.po.MachineHost;
|
|
|
import cn.reghao.jdkutil.result.Result;
|
|
|
import cn.reghao.jdkutil.result.ResultStatus;
|
|
|
+import cn.reghao.jdkutil.serializer.JsonConverter;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
@@ -22,15 +26,18 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
public class AppDeployConfigServiceImpl implements AppDeployConfigService {
|
|
|
private final AppDeployConfigQuery deployConfigQuery;
|
|
|
private final AppDeployConfigCrud deployConfigCrud;
|
|
|
- private AppConfigQuery appConfigQuery;
|
|
|
- private MachineHostQuery machineHostQuery;
|
|
|
+ private final AppConfigQuery appConfigQuery;
|
|
|
+ private final MachineHostQuery machineHostQuery;
|
|
|
+ private final AppDeployingService deployingService;
|
|
|
|
|
|
public AppDeployConfigServiceImpl(AppDeployConfigQuery deployConfigQuery, AppDeployConfigCrud deployConfigCrud,
|
|
|
- AppConfigQuery appConfigQuery, MachineHostQuery machineHostQuery) {
|
|
|
+ AppConfigQuery appConfigQuery, MachineHostQuery machineHostQuery,
|
|
|
+ AppDeployingService deployingService) {
|
|
|
this.deployConfigQuery = deployConfigQuery;
|
|
|
this.deployConfigCrud = deployConfigCrud;
|
|
|
this.appConfigQuery = appConfigQuery;
|
|
|
this.machineHostQuery = machineHostQuery;
|
|
|
+ this.deployingService = deployingService;
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@@ -39,32 +46,55 @@ public class AppDeployConfigServiceImpl implements AppDeployConfigService {
|
|
|
String appId = appDeployConfigDto.getAppId();
|
|
|
AppConfig appConfig = appConfigQuery.findByAppId(appId);
|
|
|
if (appConfig == null) {
|
|
|
-
|
|
|
+ String msg = String.format("%s 不存在", appId);
|
|
|
+ return Result.result(ResultStatus.ERROR, msg);
|
|
|
}
|
|
|
|
|
|
String machineId = appDeployConfigDto.getMachineId();
|
|
|
MachineHost machineHost = machineHostQuery.findByMachineId(machineId);
|
|
|
if (machineHost == null) {
|
|
|
-
|
|
|
+ String msg = String.format("%s 不存在", machineId);
|
|
|
+ return Result.result(ResultStatus.ERROR, msg);
|
|
|
}
|
|
|
|
|
|
+ // TODO 处理与 AppDeployConfig 关联的数据
|
|
|
+ // TODO 检测脚本是否合法
|
|
|
String packType = appDeployConfigDto.getPackType();
|
|
|
String startScript = appDeployConfigDto.getStartScript();
|
|
|
+ if (packType.equals(PackType.docker.name())) {
|
|
|
+ Config dockerConfig = JsonConverter.jsonToObject(startScript, Config.class);
|
|
|
+ }
|
|
|
|
|
|
- //deployConfigCrud.save(appDeployConfig);
|
|
|
- return Result.result(ResultStatus.SUCCESS, "msg");
|
|
|
+ AppDeployConfig appDeployConfig = new AppDeployConfig(appConfig, machineHost, packType, startScript);
|
|
|
+ appDeployConfig = deployConfigCrud.save(appDeployConfig);
|
|
|
+
|
|
|
+ deployingService.add(appDeployConfig);
|
|
|
+ return Result.result(ResultStatus.SUCCESS);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public Result modify(AppDeployConfigDto appDeployConfigDto) {
|
|
|
- //deployConfigCrud.update(appDeployConfig);
|
|
|
- return Result.result(ResultStatus.SUCCESS, "msg");
|
|
|
+ int appDeployConfigId = appDeployConfigDto.getAppDeployConfigId();
|
|
|
+ AppDeployConfig appDeployConfig = deployConfigQuery.findById(appDeployConfigId);
|
|
|
+ if (appDeployConfig == null) {
|
|
|
+ String msg = String.format("%s 不存在", appDeployConfigId);
|
|
|
+ return Result.result(ResultStatus.ERROR, msg);
|
|
|
+ }
|
|
|
+
|
|
|
+ appDeployConfig.setStartScript(appDeployConfigDto.getStartScript());
|
|
|
+ deployConfigCrud.update(appDeployConfig);
|
|
|
+ return Result.result(ResultStatus.SUCCESS, "更新 startScript 成功");
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public Result delete(int appDeployConfigId) {
|
|
|
+ // TODO 处理与 AppDeployConfig 关联的数据
|
|
|
AppDeployConfig appDeployConfig = deployConfigQuery.findById(appDeployConfigId);
|
|
|
- return Result.result(ResultStatus.SUCCESS);
|
|
|
+ if (appDeployConfig != null) {
|
|
|
+ deployingService.delete(appDeployConfig);
|
|
|
+ deployConfigCrud.delete(appDeployConfig);
|
|
|
+ }
|
|
|
+ return Result.result(ResultStatus.SUCCESS, "没有删除和 AppDeployConfig 关联的数据");
|
|
|
}
|
|
|
}
|