LingxinMeng hace 2 años
padre
commit
1454140156

+ 43 - 0
.gitignore

@@ -0,0 +1,43 @@
+# Compiled class file
+*.class
+
+# VS Code
+.vscode
+
+# Eclipse
+.project
+.classpath
+.settings/
+
+# Intellij
+*.ipr
+*.iml
+*.iws
+.idea/
+
+# Maven
+target/
+
+# Gradle
+build
+.gradle
+
+# Log file
+*.log
+log/
+
+# out
+**/out/
+
+# Mac
+.DS_Store
+
+# others
+*.jar
+*.war
+*.zip
+*.tar
+*.tar.gz
+*.pid
+*.orig
+temp/

+ 12 - 12
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/consumer/ProjectConsumer.java

@@ -206,7 +206,7 @@ public class ProjectConsumer {
                     String osgbPathOfMinio = projectResultPathOfMinio + projectId + "/" + taskId + "/" + taskId + "." + osgbSuffix;
                     MinioUtil.downloadToFile(minioClient, bucketName, scenarioOsgb, osgbPathOfLinux);
                     MinioUtil.uploadFromFile(minioClient, osgbPathOfLinux, bucketName, osgbPathOfMinio);
-                    log.info("cacheManualProject() 已经将 xosc、xodr、osgb 上传到 minio 的结果文件目录:" + projectResultPathOfMinio);
+                    log.info("已经将 xosc、xodr、osgb 上传到 minio 的结果文件目录:" + projectResultPathOfMinio);
 
                     // 组装 task 消息
                     TaskMessageEntity taskMessageEntity = TaskMessageEntity.builder()
@@ -327,7 +327,7 @@ public class ProjectConsumer {
                     String osgbPathOfMinio = projectResultPathOfMinio + projectId + "/" + taskId + "/" + taskId + "." + osgbSuffix;
                     MinioUtil.downloadToFile(minioClient, bucketName, scenarioOsgb, osgbPathOfLinux);
                     MinioUtil.uploadFromFile(minioClient, osgbPathOfLinux, bucketName, osgbPathOfMinio);
-                    log.info("cacheManualProject() 已经将 xosc、xodr、osgb 上传到 minio 的结果文件目录:" + projectResultPathOfMinio);
+                    log.info("已经将 xosc、xodr、osgb 上传到 minio 的结果文件目录:" + projectResultPathOfMinio);
 
                     // 组装 task 消息
                     // carsim 不需要查询模型参数
@@ -377,7 +377,7 @@ public class ProjectConsumer {
     @SneakyThrows
     public void cacheProject(ConsumerRecord<String, String> projectRecord) {
         String initialProjectJson = projectRecord.value();
-        log.info("cacheManualProject() 判断用户是否拥有可分配资源:" + initialProjectJson);
+        log.info("判断用户是否拥有可分配资源:" + initialProjectJson);
         //1 读取 kafka 的 project 信息
         ProjectMessageDTO projectMessageDTO = JsonUtil.jsonToBean(initialProjectJson, ProjectMessageDTO.class);
         String projectId = projectMessageDTO.getProjectId();    // 手动执行项目 id 或 自动执行子项目 id
@@ -390,38 +390,38 @@ public class ProjectConsumer {
         } else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {
             userId = autoSubProjectMapper.selectCreateUserById(projectId);
         } else {
-            log.error("cacheManualProject() 项目类型错误:" + initialProjectJson);
+            log.error("项目类型错误:" + initialProjectJson);
             return;
         }
         if (StringUtil.isEmpty(userId)) {
-            log.error("cacheManualProject() 未查询到项目创建人:" + initialProjectJson);
+            log.error("未查询到项目创建人:" + initialProjectJson);
             return;
         }
         //3 获取用户类型(管理员账户、管理员子账户、普通账户、普通子账户)(独占、共享)
         UserEntity userEntity = userMapper.selectById(userId);
-        log.info("cacheManualProject() 项目 " + projectId + " 的创建人为:" + userEntity);
+        log.info("项目 " + projectId + " 的创建人为:" + userEntity);
         String roleCode = userEntity.getRoleCode();
         String useType = userEntity.getUseType();
         ClusterEntity clusterEntity;
         if (DictConstants.ROLE_CODE_SYSADMIN.equals(roleCode) || DictConstants.ROLE_CODE_ADMIN.equals(roleCode)) {  //3-1 管理员账户和管理员子账户直接执行
-            log.info("cacheManualProject() 项目 " + projectId + " 的创建人 " + userId + " 为管理员账户或管理员子账户,直接判断服务器能否执行。");
+            log.info("项目 " + projectId + " 的创建人 " + userId + " 为管理员账户或管理员子账户,直接判断服务器能否执行。");
             PrefixEntity redisPrefix = projectUtil.getRedisPrefixByClusterIdAndProjectId(DictConstants.SYSTEM_CLUSTER_ID, projectId);
             run(projectMessageDTO, DictConstants.SYSTEM_CLUSTER_ID, redisPrefix.getProjectRunningKey(), redisPrefix.getProjectWaitingKey());
             return;
         } else if (DictConstants.ROLE_CODE_UESR.equals(roleCode)) { //3-2 普通账户,不管是独占还是共享,都在自己的集群里排队,根据自己的独占节点排队
             clusterEntity = clusterMapper.selectByUserId(userId);
-            log.info("cacheManualProject() 项目 " + projectId + " 的创建人 " + userId + " 为普通账户(包括独占或共享都在自己的集群),集群为:" + clusterEntity);
+            log.info("项目 " + projectId + " 的创建人 " + userId + " 为普通账户(包括独占或共享都在自己的集群),集群为:" + clusterEntity);
         } else if (DictConstants.ROLE_CODE_SUBUESR.equals(roleCode)) {
             if (DictConstants.USER_TYPE_EXCLUSIVE.equals(useType)) {   //3-3 普通子账户,根据自己的独占节点排队
                 clusterEntity = clusterMapper.selectByUserId(userId);
-                log.info("cacheManualProject() 项目 " + projectId + " 的创建人 " + userId + " 为普通独占子账户(自己的集群),集群为:" + clusterEntity);
+                log.info("项目 " + projectId + " 的创建人 " + userId + " 为普通独占子账户(自己的集群),集群为:" + clusterEntity);
             } else {    //3-4 共享子账户,根据父账户的共享节点排队
                 String parentUserId = userEntity.getCreateUserId();
                 clusterEntity = clusterMapper.selectByUserId(parentUserId);
-                log.info("cacheManualProject() 项目 " + projectId + " 的创建人 " + userId + " 为普通共享子账户(父账户的集群),集群为:" + clusterEntity);
+                log.info("项目 " + projectId + " 的创建人 " + userId + " 为普通共享子账户(父账户的集群),集群为:" + clusterEntity);
             }
         } else {
-            log.error("cacheManualProject() 项目 " + projectId + " 的创建人 " + userId + " 为未知账户类型,不予执行!");
+            log.error("项目 " + projectId + " 的创建人 " + userId + " 为未知账户类型,不予执行!");
             return;
         }
         // 获取拥有的节点数量,即仿真软件证书数量
@@ -435,7 +435,7 @@ public class ProjectConsumer {
         if (currentParallelismSum + parallelism <= simulationLicenseNumber) {
             run(projectMessageDTO, clusterId, redisPrefix.getProjectRunningKey(), redisPrefix.getProjectWaitingKey());
         } else {
-            log.info("cacheManualProject() 项目 " + projectId + " 并行度超出账户允许,加入等待队列,暂不执行。 ");
+            log.info("项目 " + projectId + " 并行度超出账户允许,加入等待队列,暂不执行。 ");
             wait(redisPrefix.getProjectWaitingKey(), projectMessageDTO);
         }
     }

+ 7 - 7
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/ProjectUtil.java

@@ -138,7 +138,7 @@ public class ProjectUtil {
      */
     @SneakyThrows
     public void createNextPod3(String projectId, String nodeName, String lastPodName) {
-        log.info("createNextPod3() 删除上一个 pod:projectId={},nodeName={},lastPodName={}", projectId, nodeName, lastPodName);
+        log.info("删除上一个 pod:projectId={},nodeName={},lastPodName={}", projectId, nodeName, lastPodName);
         String cpuOrderString = stringRedisTemplate.opsForValue().get("project:" + projectId + ":pod:" + lastPodName + ":cpu");
         deletePod(lastPodName);
         RedisUtil.deleteByKey(stringRedisTemplate, "project:" + projectId + ":pod:" + lastPodName + ":cpu");
@@ -146,7 +146,7 @@ public class ProjectUtil {
         final Set<String> yamlPathCacheKeySet = RedisUtil.getKeySetByPrefix(stringRedisTemplate, "project:" + projectId + ":node:" + nodeName + ":yaml");
         if (CollectionUtil.isEmpty(yamlPathCacheKeySet)) {
             // 如果当前节点没有下一个yaml,则返回一个并行度。
-            log.info("createNextPod3() 节点 " + nodeName + " 已经执行完被分配的项目 " + projectId + " 的所有 pod。");
+            log.info("节点 " + nodeName + " 已经执行完被分配的项目 " + projectId + " 的所有 pod。");
             incrementOneParallelismOfGpuNode(nodeName);
         } else {
             final String yamlPathCacheKey = new ArrayList<>(yamlPathCacheKeySet).get(0);
@@ -159,7 +159,7 @@ public class ProjectUtil {
             FileUtil.writeStringToLocalFile(replace, absolutePath);
             // 创建 pod
             createPod3(projectId, yamlPathCacheKey, cpuOrderString);
-            log.info("createNextPod3() 创建项目 " + projectId + " 在节点 " + nodeName + " 的下一个 pod,使用 cpu 编号为 " + cpuOrderString);
+            log.info("创建项目 " + projectId + " 在节点 " + nodeName + " 的下一个 pod,使用 cpu 编号为 " + cpuOrderString);
         }
     }
 
@@ -169,13 +169,13 @@ public class ProjectUtil {
     public void createPodBegin(String projectId, String redisKey) {
         final String podYamlPath = stringRedisTemplate.opsForValue().get(redisKey);
         if (podYamlPath == null) {
-            throw new RuntimeException("createPod3() 根据缓存 key 获取 yaml 地址为 null:" + redisKey);
+            throw new RuntimeException("根据缓存 key 获取 yaml 地址为 null:" + redisKey);
         }
         stringRedisTemplate.delete(redisKey);
         String nodeName = new File(podYamlPath).getName().split("#")[0];
         String podName = podYamlPath.split("#")[1].split("\\.")[0];
         stringRedisTemplate.opsForValue().set("project:" + projectId + ":pod:" + podName + ":node", nodeName);    // 将 pod 运行在哪个 node 上记录到 redis
-        new Thread(() -> KubernetesUtil.applyYaml(hostname, username, password, podYamlPath), "create-" + podName).start();
+        new Thread(() -> KubernetesUtil.applyYaml(hostname, username, password, podYamlPath), "apply-" + podName).start();
     }
 
 
@@ -185,7 +185,7 @@ public class ProjectUtil {
     public void createPod3(String projectId, String redisKey, String cpuOrderString) {
         final String podYamlPath = stringRedisTemplate.opsForValue().get(redisKey);
         if (podYamlPath == null) {
-            throw new RuntimeException("createPod3() 根据缓存 key 获取 yaml 地址为 null:" + redisKey);
+            throw new RuntimeException("根据缓存 key 获取 yaml 地址为 null:" + redisKey);
         }
         stringRedisTemplate.delete(redisKey);
         String nodeName = new File(podYamlPath).getName().split("#")[0];
@@ -204,7 +204,7 @@ public class ProjectUtil {
         } else if (autoSubProjectEntity != null) {
             return autoSubProjectEntity;
         }
-        throw new RuntimeException("getProjectByProjectId() 不存在项目:" + projectId);
+        throw new RuntimeException("不存在项目:" + projectId);
     }
 
 

+ 2 - 2
simulation-resource-server/src/main/java/com/css/simulation/resource/project/ctrl/SimulationProjectCtrl.java → simulation-resource-server/src/main/java/com/css/simulation/resource/project/controller/SimulationProjectController.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.project.ctrl;
+package com.css.simulation.resource.project.controller;
 
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.param.project.DictParam;
@@ -20,7 +20,7 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/simulationProject")
-public class SimulationProjectCtrl {
+public class SimulationProjectController {
 
     @Resource
     private SimulationProjectService service;

+ 2 - 2
simulation-resource-server/src/main/java/com/css/simulation/resource/project/impl/SimulationProjectServiceImpl.java → simulation-resource-server/src/main/java/com/css/simulation/resource/project/service/impl/SimulationProjectServiceImpl.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.project.impl;
+package com.css.simulation.resource.project.service.impl;
 
 import api.common.pojo.common.PageVO;
 import api.common.pojo.common.ResponseBodyVO;
@@ -2884,7 +2884,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
 
             addElement(document, "3. 算法测试评分情况", null, bf4, 16, false, 40, false);
             addElement(document, "       为排除其他因素的干扰,科学评价算法效果,本报告将测试场景分为仿真异常场景、未参与评分场景、未达标场景和达标场景4类:", null, bf3, 15, false, 30, false);
-            addElement(document, "       1. 仿真异常场景指的是在仿真过程中报自动终止错误的场景,参与得分权重,测试结果均赋0分;", null, bf3, 15, false, 30, false);
+            addElement(document, "       1. 仿真异常场景指的是在仿真过程中报aborted错误的场景,参与得分权重,测试结果均赋0分;", null, bf3, 15, false, 30, false);
             addElement(document, "       2. 评分失败场景是指因为场景与评分规则不匹配导致程序报错无法对仿真结果进行打分的场景,参与得分权重,测试结果均赋0分;", null, bf3, 15, false, 30, false);
             addElement(document, "       3. 未达标场景是指仿真测试未得到满分的场景;", null, bf3, 15, false, 30, false);
             addElement(document, "       4. 达标场景是指仿真测试得到满分的场景。", null, bf3, 15, false, 30, false);

+ 1 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/project/util/PdfBuilder.java

@@ -1,6 +1,6 @@
 package com.css.simulation.resource.project.util;
 
-import com.css.simulation.resource.project.impl.SimulationProjectServiceImpl;
+import com.css.simulation.resource.project.service.impl.SimulationProjectServiceImpl;
 import com.itextpdf.text.*;
 import com.itextpdf.text.pdf.BaseFont;
 import com.itextpdf.text.pdf.ColumnText;