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.constant.ApiResultCsts;
import com.imitate.common.constant.TpCsts;
import com.imitate.common.enums.ErrorCodeEnum;
import com.imitate.common.k8s.mgr.ClusterManager;
import com.imitate.common.k8s.pojo.RunPod;
import com.imitate.common.k8s.service.DiskService;
import com.imitate.common.k8s.service.RunPodService;
import com.imitate.common.k8s.util.ContainerUtil;
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.GitService;
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.Qualifier;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;

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

@Autowired
private AppConfig appConfig;

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

@PublicUrl(signValidate = true)
@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));
JSONObject resp = new JSONObject();

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

@PublicUrl(signValidate = true)
@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);

String tpiRepoName = TpCsts.TP_UNIFY_REPO_NAME;
String tpiWorkspace = diskService.getTpiWorkspaceHostPath(tpiID);
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);
return R.ok();
}


@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);

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


@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);
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
public class GetVsCodeParam {
@NotBlank(message = "tpiID不能为空")
private String tpiID;
@NotNull(message = "podType不能为空")
private Integer podType = 5;
@@ -24,4 +23,8 @@ public class GetVsCodeParam {
private String bigDataFile;
private Boolean createImage;
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
public class VsCodeDeleteParam {

@NotBlank(message = "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