Browse Source

修改参数

master
educoder 3 years ago
parent
commit
1412a1b963
3 changed files with 38 additions and 41 deletions
  1. +30
    -35
      web/src/main/java/com/imitate/web/module/game/controller/VscodeController.java
  2. +4
    -1
      web/src/main/java/com/imitate/web/params/GetVsCodeParam.java
  3. +4
    -5
      web/src/main/java/com/imitate/web/params/VsCodeDeleteParam.java

+ 30
- 35
web/src/main/java/com/imitate/web/module/game/controller/VscodeController.java View File

@@ -7,16 +7,14 @@ import com.imitate.common.annotation.PublicUrl;
import com.imitate.common.bean.ApiResult; import com.imitate.common.bean.ApiResult;
import com.imitate.common.constant.ApiResultCsts; import com.imitate.common.constant.ApiResultCsts;
import com.imitate.common.constant.TpCsts; import com.imitate.common.constant.TpCsts;
import com.imitate.common.enums.ErrorCodeEnum;
import com.imitate.common.k8s.mgr.ClusterManager; import com.imitate.common.k8s.mgr.ClusterManager;
import com.imitate.common.k8s.pojo.RunPod; import com.imitate.common.k8s.pojo.RunPod;
import com.imitate.common.k8s.service.DiskService; import com.imitate.common.k8s.service.DiskService;
import com.imitate.common.k8s.service.RunPodService; import com.imitate.common.k8s.service.RunPodService;
import com.imitate.common.k8s.util.ContainerUtil; import com.imitate.common.k8s.util.ContainerUtil;
import com.imitate.common.sys.settings.AppConfig; import com.imitate.common.sys.settings.AppConfig;
import com.imitate.common.util.Base64Util;
import com.imitate.common.util.R;
import com.imitate.common.util.ThreadUtils;
import com.imitate.common.util.TpUtils;
import com.imitate.common.util.*;
import com.imitate.web.module.game.service.GameService; import com.imitate.web.module.game.service.GameService;
import com.imitate.web.module.game.service.GitService; import com.imitate.web.module.game.service.GitService;
import com.imitate.web.module.game.service.ProxyService; import com.imitate.web.module.game.service.ProxyService;
@@ -32,6 +30,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;


import javax.validation.Valid; import javax.validation.Valid;
@@ -45,11 +44,9 @@ import java.util.Map;
*/ */
@RestController @RestController
@RequestMapping("/vscode") @RequestMapping("/vscode")
public class VscodeController {
public class VscodeController extends BasicController {
private final Logger logger = LoggerFactory.getLogger(getClass()); private final Logger logger = LoggerFactory.getLogger(getClass());

@Autowired
private AppConfig appConfig;


@Autowired @Autowired
private VscodeService vscodeService; private VscodeService vscodeService;
@@ -80,8 +77,11 @@ public class VscodeController {


@PublicUrl(signValidate = true) @PublicUrl(signValidate = true)
@RequestMapping(path = "/getVscode",method = RequestMethod.POST) @RequestMapping(path = "/getVscode",method = RequestMethod.POST)
public R getVscode(@Valid @RequestBody GetVsCodeParam vsCodeParam) throws Exception {

public R getVscode(@Valid @RequestBody GetVsCodeParam vsCodeParam, BindingResult bindingResult) throws Exception {
if(bindingResult.hasErrors()){
return actionResultWithBindingResult(ErrorCodeEnum.BIND_EXCEPTION,bindingResult);
}
vsCodeParam.setTpiID(vsCodeParam.getProjectId() + "_" + vsCodeParam.getUserId());
logger.info("[start]获取vscode连接信息 {}", JSONObject.toJSONString(vsCodeParam)); logger.info("[start]获取vscode连接信息 {}", JSONObject.toJSONString(vsCodeParam));
JSONObject resp = new JSONObject(); JSONObject resp = new JSONObject();


@@ -153,48 +153,42 @@ public class VscodeController {


@PublicUrl(signValidate = true) @PublicUrl(signValidate = true)
@PostMapping(path = "/delete") @PostMapping(path = "/delete")
public R delete(@Valid @RequestBody VsCodeDeleteParam vsCodeDeleteParam) {

String tpiID = vsCodeDeleteParam.getTpiID();
public R delete(@Valid @RequestBody VsCodeDeleteParam vsCodeDeleteParam,BindingResult bindingResult) {
if(bindingResult.hasErrors()){
return actionResultWithBindingResult(ErrorCodeEnum.BIND_EXCEPTION,bindingResult);
}
String tpiID = vsCodeDeleteParam.getProjectId() + "_" + vsCodeDeleteParam.getUserID();
logger.info("[start]前端主动调用vscode删除命令,tpiID: {}", tpiID); logger.info("[start]前端主动调用vscode删除命令,tpiID: {}", tpiID);


String tpiRepoName = TpCsts.TP_UNIFY_REPO_NAME; String tpiRepoName = TpCsts.TP_UNIFY_REPO_NAME;
String tpiWorkspace = diskService.getTpiWorkspaceHostPath(tpiID); String tpiWorkspace = diskService.getTpiWorkspaceHostPath(tpiID);
String tpiRepoPath = diskService.buildTpiRepoPath(tpiWorkspace, tpiRepoName); String tpiRepoPath = diskService.buildTpiRepoPath(tpiWorkspace, tpiRepoName);


// 用identifier与私钥拼接与digestKey比较,相等响应,不想等拒绝
String serverDigestKey = DigestUtils.sha1Hex(vsCodeDeleteParam.getIdentifier() + appConfig.getSecretKey());
if (vsCodeDeleteParam.getDigestKey().equals(serverDigestKey)) {
try {
vscodeService.deleteNow(tpiID);


// 删除本地版本库
FileUtils.deleteDirectory(new File(tpiWorkspace));
ThreadUtils.sleep(2000);
try {
vscodeService.deleteNow(tpiID);


// 删除本地版本库
FileUtils.deleteDirectory(new File(tpiWorkspace));
ThreadUtils.sleep(2000);


} catch (Exception e) {
logger.error("主动删除vscode pod {} 失败 {}", tpiID, e);
return R.error("-1", "删除pod失败");
}

} else {
logger.error("主动删除vscode pod{}失败,认证不通过", tpiID);
return R.error("-1", "认证不通过");
} catch (Exception e) {
logger.error("主动删除vscode pod {} 失败 {}", tpiID, e);
return R.error("-1", "删除pod失败");
} }



logger.info("[end]前端主动调用vscode删除命令,tpiID: {}", tpiID); logger.info("[end]前端主动调用vscode删除命令,tpiID: {}", tpiID);
return R.ok(); return R.ok();
} }




@PublicUrl(signValidate = true) @PublicUrl(signValidate = true)
@RequestMapping(path = "/active/{tpiID}", method = RequestMethod.POST)
public R active(@PathVariable("tpiID") String tpiID) {
logger.info("[start]激活vscode pod {},延长到期时间", tpiID);
@RequestMapping(path = "/active", method = RequestMethod.POST)
public R active(@RequestParam String projectId, @RequestParam String userId) {
logger.info("[start]激活vscode pod projectId:{},延长到期时间 userId:{}", projectId,userId);
String tpiID = projectId + "_" + userId;
vscodeService.active(tpiID); vscodeService.active(tpiID);

logger.info("[end]激活vscode pod {},延长到期时间", tpiID); logger.info("[end]激活vscode pod {},延长到期时间", tpiID);
return R.ok(); return R.ok();
} }
@@ -202,7 +196,8 @@ public class VscodeController {




@RequestMapping(path = "/getPort",method = RequestMethod.POST) @RequestMapping(path = "/getPort",method = RequestMethod.POST)
public R getPort(@RequestParam String tpiID, @RequestParam Integer type, @RequestParam Integer port) {
public R getPort(@RequestParam String projectId, @RequestParam String userId, @RequestParam Integer type, @RequestParam Integer port) {
String tpiID = projectId + "_" + userId;
int proxyPort = proxyService.getContainerExternalMappingPort(tpiID, type, port); int proxyPort = proxyService.getContainerExternalMappingPort(tpiID, type, port);
return R.ok().setData(MapUtil.builder("port", proxyPort).build()); return R.ok().setData(MapUtil.builder("port", proxyPort).build());
} }


+ 4
- 1
web/src/main/java/com/imitate/web/params/GetVsCodeParam.java View File

@@ -13,7 +13,6 @@ import javax.validation.constraints.NotNull;


@Data @Data
public class GetVsCodeParam { public class GetVsCodeParam {
@NotBlank(message = "tpiID不能为空")
private String tpiID; private String tpiID;
@NotNull(message = "podType不能为空") @NotNull(message = "podType不能为空")
private Integer podType = 5; private Integer podType = 5;
@@ -24,4 +23,8 @@ public class GetVsCodeParam {
private String bigDataFile; private String bigDataFile;
private Boolean createImage; private Boolean createImage;
private Integer survivalSecond; private Integer survivalSecond;
@NotBlank(message = "项目ID不能为空")
private String projectId;
@NotBlank(message = "用户ID不能为空")
private String userId;
} }

+ 4
- 5
web/src/main/java/com/imitate/web/params/VsCodeDeleteParam.java View File

@@ -12,13 +12,12 @@ import javax.validation.constraints.NotBlank;
@Data @Data
public class VsCodeDeleteParam { public class VsCodeDeleteParam {


@NotBlank(message = "tpiID不能为空")
private String tpiID; private String tpiID;


@NotBlank(message = "identifier不能为空")
private String digestKey;
@NotBlank(message = "项目ID不能为空")
private String projectId;


@NotBlank(message = "identifier不能为空")
private String identifier;
@NotBlank(message = "用户ID不能为空")
private String userID;


} }

Loading…
Cancel
Save