diff --git a/common/src/main/java/com/imitate/common/k8s/service/RunPodService.java b/common/src/main/java/com/imitate/common/k8s/service/RunPodService.java
index 71a8087..e059101 100644
--- a/common/src/main/java/com/imitate/common/k8s/service/RunPodService.java
+++ b/common/src/main/java/com/imitate/common/k8s/service/RunPodService.java
@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
+import java.time.ZoneOffset;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -508,4 +509,16 @@ public class RunPodService {
}
return pod;
}
+
+
+ /**
+ * 获取实例剩余时间
+ * @param
+ * @return 连接剩余时间
+ */
+ public long getRemainingTime(RunPod runPod) {
+ return runPod.getExpireTime().toInstant(ZoneOffset.of("+8")).toEpochMilli() - System.currentTimeMillis();
+ }
+
+
}
diff --git a/common/src/main/resources/common.properties b/common/src/main/resources/common.properties
index 2c55d66..578d8f8 100644
--- a/common/src/main/resources/common.properties
+++ b/common/src/main/resources/common.properties
@@ -7,7 +7,7 @@ mystarter.config.student.gender=man
useMq=true
-netNames=eth0
+netNames=en0
#web\u56de\u8c03\u5730\u5740
educoderURL=https://www.educoder.net/api/myshixuns/training_task_status.json
simpileEducoderURL=https://www.educoder.net/api/myshixuns/code_runinng_message.json
diff --git a/common/target/classes/common.properties b/common/target/classes/common.properties
index 2c55d66..578d8f8 100644
--- a/common/target/classes/common.properties
+++ b/common/target/classes/common.properties
@@ -7,7 +7,7 @@ mystarter.config.student.gender=man
useMq=true
-netNames=eth0
+netNames=en0
#web\u56de\u8c03\u5730\u5740
educoderURL=https://www.educoder.net/api/myshixuns/training_task_status.json
simpileEducoderURL=https://www.educoder.net/api/myshixuns/code_runinng_message.json
diff --git a/parent/pom.xml b/parent/pom.xml
index 4bb90b9..acc579b 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -237,7 +237,6 @@
1.1.0
-
diff --git a/web/pom.xml b/web/pom.xml
index bbb0c5f..17f3fd2 100644
--- a/web/pom.xml
+++ b/web/pom.xml
@@ -23,6 +23,11 @@
common
0.0.1-SNAPSHOT
+
+ junit
+ junit
+ test
+
diff --git a/web/src/main/java/com/imitate/web/module/game/controller/GameController.java b/web/src/main/java/com/imitate/web/module/game/controller/GameController.java
index a1d3870..9bde43b 100644
--- a/web/src/main/java/com/imitate/web/module/game/controller/GameController.java
+++ b/web/src/main/java/com/imitate/web/module/game/controller/GameController.java
@@ -217,4 +217,6 @@ public class GameController extends BasicController {
return buildParams;
}
+
+
}
diff --git a/web/src/main/java/com/imitate/web/module/game/controller/VscodeController.java b/web/src/main/java/com/imitate/web/module/game/controller/VscodeController.java
index f41be12..c07d849 100644
--- a/web/src/main/java/com/imitate/web/module/game/controller/VscodeController.java
+++ b/web/src/main/java/com/imitate/web/module/game/controller/VscodeController.java
@@ -7,12 +7,15 @@ import com.imitate.common.bean.ApiResult;
import com.imitate.common.constant.ApiResultCsts;
import com.imitate.common.constant.TpCsts;
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.web.module.game.service.GameService;
import com.imitate.web.module.game.service.GitService;
import com.imitate.web.module.game.service.VscodeService;
@@ -61,6 +64,11 @@ public class VscodeController {
@Autowired
private DiskService diskService;
+ @Autowired
+ private RunPodService runPodService;
+
+
+
@Qualifier("gitTaskExecutor")
@Autowired
private ThreadPoolTaskExecutor gitTaskExecutor;
@@ -128,6 +136,12 @@ public class VscodeController {
} else {
Map respData = new HashMap<>(2);
respData.put("url", targetUrl);
+
+ String podName = TpUtils.buildWebPodName(vsCodeParam.getTpiID(), vsCodeParam.getPodType());
+ RunPod runPod = runPodService.getRunPodByName(podName);
+ //存活秒数
+ respData.put("remainingTime",runPodService.getRemainingTime(runPod));
+
return R.ok(respData);
}
}
@@ -182,4 +196,8 @@ public class VscodeController {
}
+
+
+
+
}
diff --git a/web/src/test/java/com/imitate/Test1.java b/web/src/test/java/com/imitate/Test1.java
new file mode 100644
index 0000000..005c0ae
--- /dev/null
+++ b/web/src/test/java/com/imitate/Test1.java
@@ -0,0 +1,72 @@
+package com.imitate;
+
+
+import com.imitate.common.bean.ShellResult;
+import com.imitate.common.util.ShellUtil;
+import com.imitate.web.WebApplication;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.yaml.snakeyaml.Yaml;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+
+@Slf4j
+//@SpringBootTest(classes = {WebApplication.class})
+//@RunWith(SpringRunner.class)
+public class Test1 {
+
+
+
+ // 获取pod详情 解析 docker容器id列表
+ @Test
+ public void Test22(){
+ String command = "kubectl describe pod pod1";
+ //(docker://[A-Za-z0-9]+)
+ ShellResult result = ShellUtil.executeAndGetExitStatus(command);
+ //docker容器 允许存在 1个Pod 多个容器情况
+ List dockerContainerIds = new LinkedList<>();
+ String reg = "docker://[A-Za-z0-9]+";
+ Matcher m;
+ Pattern r;
+ r = Pattern.compile(reg);
+ m = r.matcher(result.getOut());
+ while (m.find()){
+ dockerContainerIds.add(m.group().replace("docker://",""));
+ }
+ log.info("dockerContainerIds:{}",dockerContainerIds);
+ }
+
+
+ @Test
+ public void test33(){
+ String imageName = "ubuntu-vnc";
+ String tag = "v1.0";
+ String containerId = "abcdefg";
+ String author = "yanchao";
+ String comment = "ubuntu is 11";
+
+ //将容器commit成镜像
+ String command = String.format("docker commit -a='%s' -m='%s' %s %s:%s",author,comment,containerId,imageName,tag);
+ ShellUtil.executeAndGetExitStatus(command);
+
+ //检查镜像是否存在
+ String checkVersion = String.format("docker images |grep %s",imageName);
+ ShellResult r1 = ShellUtil.executeAndGetExitStatus(checkVersion);
+ if(r1.getOut().contains(tag)){
+ log.info("镜像创建成功!");
+ }
+
+ }
+
+
+
+}