LingxinMeng 2 年之前
父節點
當前提交
faea52022e
共有 61 個文件被更改,包括 376 次插入224 次删除
  1. 9 2
      api-common/pom.xml
  2. 42 0
      api-common/src/main/java/api/common/util/HttpUtil.java
  3. 13 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/constant/ConstantConfiguration.java
  4. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/docker/DockerConfiguration.java
  5. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/esmini/EsminiConfiguration.java
  6. 4 4
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/kubernetes/KubernetesConfiguration.java
  7. 5 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/consumer/ProjectConsumer.java
  8. 29 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/controller/FileController.java
  9. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/AlgorithmEntity.java
  10. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/CameraEntity.java
  11. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/ClusterEntity.java
  12. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/CpuNodeEntity.java
  13. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/IndexTemplateEntity.java
  14. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/InfoEntity.java
  15. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/LeafIndexEntity.java
  16. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/ModelEntity.java
  17. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/NodeEntity.java
  18. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/OgtEntity.java
  19. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/PartitionEntity.java
  20. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/PrefixEntity.java
  21. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/ProjectEntity.java
  22. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/ScenarioEntity.java
  23. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/SceneEntity.java
  24. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/ScoreEntity.java
  25. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/SensorsEntity.java
  26. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/TaskEntity.java
  27. 3 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/TaskMessageEntity.java
  28. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/UserEntity.java
  29. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/VehicleEntity.java
  30. 4 4
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/model/DockerNodeModel.java
  31. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/model/DynamicsModel.java
  32. 5 5
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/model/NodeModel.java
  33. 20 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/model/VehicleModel.java
  34. 0 18
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/VehicleTO.java
  35. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/AlgorithmMapper.java
  36. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/AutoSubProjectMapper.java
  37. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/ClusterMapper.java
  38. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/IndexMapper.java
  39. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/IndexTemplateMapper.java
  40. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/ManualProjectMapper.java
  41. 2 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SceneMapper.java
  42. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorCameraMapper.java
  43. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorOgtMapper.java
  44. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/TaskMapper.java
  45. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/UserMapper.java
  46. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/VehicleMapper.java
  47. 7 7
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/scheduler/AlgorithmScheduler.java
  48. 30 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/FileService.java
  49. 4 4
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/ProjectService.java
  50. 1 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/TaskIndexManager.java
  51. 3 3
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/TaskService.java
  52. 17 15
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/ProjectUtil.java
  53. 1 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/TaskUtil.java
  54. 25 23
      simulation-resource-scheduler/src/main/resources/bootstrap-dev.yaml
  55. 18 0
      simulation-resource-video/src/main/java/com/css/simulation/resource/video/configuration/constant/ConstantConfiguration.java
  56. 3 1
      simulation-resource-video/src/main/java/com/css/simulation/resource/video/configuration/minio/MinioConfiguration.java
  57. 9 53
      simulation-resource-video/src/main/java/com/css/simulation/resource/video/controller/VideoController.java
  58. 20 26
      simulation-resource-video/src/main/java/com/css/simulation/resource/video/service/VideoService.java
  59. 0 10
      simulation-resource-video/src/main/resources/bootstrap-aliyun.yaml
  60. 65 1
      simulation-resource-video/src/main/resources/bootstrap-dev.yaml
  61. 1 5
      simulation-resource-video/src/main/resources/bootstrap.yaml

+ 9 - 2
api-common/pom.xml

@@ -63,11 +63,18 @@
             <version>${jackson-core.version}</version>
         </dependency>
 
-        <!-- http 客户端 -->
+        <!-- http 客户端 - 开始 -->
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpclient</artifactId>
+            <version>${httpclient.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpmime</artifactId>
+            <version>${httpclient.version}</version>
+        </dependency>
+        <!-- http 客户端 - 结束 -->
 
         <!-- lombok -->
         <dependency>
@@ -111,4 +118,4 @@
 
     </dependencies>
 
-</project>
+</project>

+ 42 - 0
api-common/src/main/java/api/common/util/HttpUtil.java

@@ -1,13 +1,19 @@
 package api.common.util;
 
 import lombok.extern.slf4j.Slf4j;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
 import org.apache.http.client.config.RequestConfig;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.conn.ssl.NoopHostnameVerifier;
 import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.entity.ContentType;
 import org.apache.http.entity.StringEntity;
+import org.apache.http.entity.mime.HttpMultipartMode;
+import org.apache.http.entity.mime.MultipartEntityBuilder;
+import org.apache.http.entity.mime.content.FileBody;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.util.EntityUtils;
@@ -15,8 +21,10 @@ import org.apache.http.util.EntityUtils;
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.X509TrustManager;
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 import java.security.cert.X509Certificate;
 import java.util.Map;
 
@@ -92,6 +100,40 @@ public class HttpUtil {
                 .build();
     }
 
+    /**
+     * 发送本地文件
+     *
+     * @param url  http请求路径
+     * @param file 文件对象
+     * @return 响应体
+     */
+    public static String post(String url, File file) {
+        String result = null;
+        try {
+            CloseableHttpClient client = getCloseableHttpClient();
+            RequestConfig config = getRequestConfig();
+            //1 创建 post 请求
+            HttpPost post = new HttpPost(url);
+            post.setConfig(config);
+            //2 设置请求体
+            post.setEntity(MultipartEntityBuilder.create().setCharset(StandardCharsets.UTF_8).setMode(HttpMultipartMode.BROWSER_COMPATIBLE)  //设置浏览器兼容模式
+                    .addPart("file", new FileBody(file, ContentType.MULTIPART_FORM_DATA)).build());
+            //3 获取响应结果
+            HttpResponse response = client.execute(post);
+            HttpEntity responseEntity = response.getEntity();
+            result = EntityUtils.toString(responseEntity);
+            //4 关闭流
+            EntityUtils.consume(responseEntity);
+            return result;
+        } catch (org.apache.http.conn.ConnectTimeoutException cte) {
+            log.debug(url + " 请求超时。", cte);
+            log.info(url + " 请求超时。");
+        } catch (Exception e) {
+            log.info("请求 " + url + " 失败。", e);
+        }
+        return result;
+    }
+
 
     /**
      * 默认请求头的 get 请求

+ 13 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/constant/ConstantConfiguration.java

@@ -0,0 +1,13 @@
+package com.css.simulation.resource.scheduler.configuration.constant;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+@Data
+@Configuration
+@ConfigurationProperties(prefix = "prefix")
+public class ConstantConfiguration {
+    private String temporaryDirectory;
+    private String uploadOsgbUrl;
+}

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/docker/DockerConfiguration.java

@@ -1,6 +1,6 @@
 package com.css.simulation.resource.scheduler.configuration.docker;
 
-import com.css.simulation.resource.scheduler.entity.DockerNodeTO;
+import com.css.simulation.resource.scheduler.data.model.DockerNodeModel;
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
@@ -15,5 +15,5 @@ public class DockerConfiguration {
     private String registryVolume;
     private Integer maxAlgorithmImage;
     private Integer minAlgorithmImage;
-    private List<DockerNodeTO> nodeList;
+    private List<DockerNodeModel> nodeList;
 }

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/esmini/EsminiConfiguration.java

@@ -1,6 +1,6 @@
 package com.css.simulation.resource.scheduler.configuration.esmini;
 
-import com.css.simulation.resource.scheduler.entity.CpuNodeEntity;
+import com.css.simulation.resource.scheduler.data.entity.CpuNodeEntity;
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;

+ 4 - 4
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/kubernetes/KubernetesConfiguration.java

@@ -1,6 +1,6 @@
 package com.css.simulation.resource.scheduler.configuration.kubernetes;
 
-import com.css.simulation.resource.scheduler.entity.GpuNodeEntity;
+import com.css.simulation.resource.scheduler.data.model.NodeModel;
 import io.kubernetes.client.openapi.ApiClient;
 import io.kubernetes.client.util.ClientBuilder;
 import io.kubernetes.client.util.KubeConfig;
@@ -29,9 +29,9 @@ public class KubernetesConfiguration {
     private String commandVtdCarsimNogpu;
     private String carsimImage;
     private String carsimCommand;
-    private List<GpuNodeEntity> nodeList;
-    private List<GpuNodeEntity> cpuList;
-    private List<GpuNodeEntity> gpuList;
+    private List<NodeModel> nodeList;
+    private List<NodeModel> cpuList;
+    private List<NodeModel> gpuList;
 
     @Bean
     @SneakyThrows

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

@@ -4,6 +4,9 @@ package com.css.simulation.resource.scheduler.consumer;
 import api.common.pojo.constants.DictConstants;
 import api.common.pojo.dto.ProjectMessageDTO;
 import api.common.util.*;
+import com.css.simulation.resource.scheduler.data.entity.*;
+import com.css.simulation.resource.scheduler.data.model.DynamicsModel;
+import com.css.simulation.resource.scheduler.data.model.VehicleModel;
 import com.css.simulation.resource.scheduler.entity.*;
 import com.css.simulation.resource.scheduler.mapper.*;
 import com.css.simulation.resource.scheduler.service.ProjectManager;
@@ -197,7 +200,7 @@ public class ProjectConsumer {
                         log.info("已经将 xosc、xodr、osgb 上传到 minio 的结果文件目录:" + projectResultPathOfMinio);
 
                         // 组装 task 消息
-                        TaskMessageEntity taskMessageEntity = TaskMessageEntity.builder().info(InfoEntity.builder().project_id(taskEntity.getPId()).task_id(taskEntity.getId()).task_path(taskEntity.getRunResultFilePath()).default_time(videoTime).build()).scenario(ScenarioEntity.builder().scenario_osc(xoscPathOfMinio).scenario_odr(xodrPathOfMinio).scenario_osgb(osgbPathOfMinio).build()).vehicle(VehicleTO.builder().model(ModelEntity.builder().model_label(vehicleEntity.getModelLabel()).build()).dynamics(DynamicsTO.builder().dynamics_maxspeed(vehicleEntity.getMaxSpeed()).dynamics_enginepower(vehicleEntity.getEnginePower()).dynamics_maxdecel(vehicleEntity.getMaxDeceleration()).dynamics_maxsteering(vehicleEntity.getMaxSteeringAngle()).dynamics_mass(vehicleEntity.getMass()).dynamics_frontsurfaceeffective(vehicleEntity.getFrontSurfaceEffective()).dynamics_airdragcoefficient(vehicleEntity.getAirDragCoefficient()).dynamics_rollingresistance(vehicleEntity.getRollingResistanceCoefficient()).dynamics_wheeldiameter(vehicleEntity.getWheelDiameter()).dynamics_wheeldrive(vehicleEntity.getWheelDrive()).dynamics_overallefficiency(vehicleEntity.getOverallEfficiency()).dynamics_distfront(vehicleEntity.getFrontDistance()).dynamics_distrear(vehicleEntity.getRearDistance()).dynamics_distleft(vehicleEntity.getLeftDistance()).dynamics_distright(vehicleEntity.getRightDistance()).dynamics_distheight(vehicleEntity.getHeightDistance()).dynamics_wheelbase(vehicleEntity.getWheelbase()).build()).sensors(SensorsEntity.builder()   // 根据 vehicleId 查询绑定的传感器列表
+                        TaskMessageEntity taskMessageEntity = TaskMessageEntity.builder().info(InfoEntity.builder().project_id(taskEntity.getPId()).task_id(taskEntity.getId()).task_path(taskEntity.getRunResultFilePath()).default_time(videoTime).build()).scenario(ScenarioEntity.builder().scenario_osc(xoscPathOfMinio).scenario_odr(xodrPathOfMinio).scenario_osgb(osgbPathOfMinio).build()).vehicle(VehicleModel.builder().model(ModelEntity.builder().model_label(vehicleEntity.getModelLabel()).build()).dynamics(DynamicsModel.builder().dynamics_maxspeed(vehicleEntity.getMaxSpeed()).dynamics_enginepower(vehicleEntity.getEnginePower()).dynamics_maxdecel(vehicleEntity.getMaxDeceleration()).dynamics_maxsteering(vehicleEntity.getMaxSteeringAngle()).dynamics_mass(vehicleEntity.getMass()).dynamics_frontsurfaceeffective(vehicleEntity.getFrontSurfaceEffective()).dynamics_airdragcoefficient(vehicleEntity.getAirDragCoefficient()).dynamics_rollingresistance(vehicleEntity.getRollingResistanceCoefficient()).dynamics_wheeldiameter(vehicleEntity.getWheelDiameter()).dynamics_wheeldrive(vehicleEntity.getWheelDrive()).dynamics_overallefficiency(vehicleEntity.getOverallEfficiency()).dynamics_distfront(vehicleEntity.getFrontDistance()).dynamics_distrear(vehicleEntity.getRearDistance()).dynamics_distleft(vehicleEntity.getLeftDistance()).dynamics_distright(vehicleEntity.getRightDistance()).dynamics_distheight(vehicleEntity.getHeightDistance()).dynamics_wheelbase(vehicleEntity.getWheelbase()).build()).sensors(SensorsEntity.builder()   // 根据 vehicleId 查询绑定的传感器列表
                                 .camera(cameraEntityList).OGT(ogtEntityList).build()).build()).build();
                         FileUtil.writeStringToLocalFile(JsonUtil.beanToJson(taskMessageEntity), projectPath + taskId + ".json");
                         log.info("项目 " + projectId + " 将任务消息转成 json 保存到临时目录等待资源分配后执行:" + taskMessageEntity.getInfo().getTask_id());
@@ -272,7 +275,7 @@ public class ProjectConsumer {
 
                         // 组装 task 消息
                         // carsim 不需要查询模型参数
-                        TaskMessageEntity taskMessageEntity = TaskMessageEntity.builder().info(InfoEntity.builder().project_id(taskEntity.getPId()).task_id(taskEntity.getId()).task_path(taskEntity.getRunResultFilePath()).default_time(videoTime).build()).scenario(ScenarioEntity.builder().scenario_osc(xoscPathOfMinio).scenario_odr(xodrPathOfMinio).scenario_osgb(osgbPathOfMinio).build()).vehicle(VehicleTO.builder().model(ModelEntity.builder().model_label(vehicleEntity.getModelLabel()).build()).dynamics(null).sensors(SensorsEntity.builder()   // 根据 vehicleId 查询绑定的传感器列表
+                        TaskMessageEntity taskMessageEntity = TaskMessageEntity.builder().info(InfoEntity.builder().project_id(taskEntity.getPId()).task_id(taskEntity.getId()).task_path(taskEntity.getRunResultFilePath()).default_time(videoTime).build()).scenario(ScenarioEntity.builder().scenario_osc(xoscPathOfMinio).scenario_odr(xodrPathOfMinio).scenario_osgb(osgbPathOfMinio).build()).vehicle(VehicleModel.builder().model(ModelEntity.builder().model_label(vehicleEntity.getModelLabel()).build()).dynamics(null).sensors(SensorsEntity.builder()   // 根据 vehicleId 查询绑定的传感器列表
                                 .camera(cameraEntityList).OGT(ogtEntityList).build()).build()).build();
 
                         FileUtil.writeStringToLocalFile(JsonUtil.beanToJson(taskMessageEntity), projectPath + taskId + ".json");

+ 29 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/controller/FileController.java

@@ -0,0 +1,29 @@
+package com.css.simulation.resource.scheduler.controller;
+
+import api.common.pojo.common.ResponseBodyVO;
+import com.css.simulation.resource.scheduler.service.FileService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+
+@RequestMapping("/file")
+@RestController
+@Slf4j
+public class FileController {
+    @Resource
+    private FileService fileService;
+
+    @RequestMapping(value = "/uploadOsgb")
+    public ResponseBodyVO<String> uploadOsgb(
+            @RequestPart("file") MultipartFile file
+    ) {
+        fileService.uploadOsgb(file);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
+    }
+
+
+}

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/AlgorithmEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/AlgorithmEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.AllArgsConstructor;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/CameraEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/CameraEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ClusterEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/ClusterEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/CpuNodeEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/CpuNodeEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/IndexTemplateEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/IndexTemplateEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/InfoEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/InfoEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/LeafIndexEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/LeafIndexEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import api.common.pojo.common.CommonPO;
 import lombok.*;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ModelEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/ModelEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/NodeEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/NodeEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/OgtEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/OgtEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/PartitionEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/PartitionEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 
 import lombok.AllArgsConstructor;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/PrefixEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/PrefixEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 
 import lombok.AllArgsConstructor;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ProjectEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/ProjectEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ScenarioEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/ScenarioEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/SceneEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/SceneEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/ScoreEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/ScoreEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/SensorsEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/SensorsEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/TaskEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/TaskEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import api.common.pojo.common.CommonPO;
 import lombok.*;

+ 3 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/TaskMessageEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/TaskMessageEntity.java

@@ -1,5 +1,6 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
+import com.css.simulation.resource.scheduler.data.model.VehicleModel;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -121,6 +122,6 @@ public class TaskMessageEntity {
 
     private InfoEntity info;
     private ScenarioEntity scenario;
-    private VehicleTO vehicle;
+    private VehicleModel vehicle;
 
 }

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/UserEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/UserEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/VehicleEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/entity/VehicleEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 4 - 4
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/DockerNodeTO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/model/DockerNodeModel.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.model;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class DockerNodeTO implements Cloneable{
+public class DockerNodeModel implements Cloneable{
     private String name;
     private String hostname;
     private String username;
@@ -17,10 +17,10 @@ public class DockerNodeTO implements Cloneable{
 
 
     @Override
-    public DockerNodeTO clone() {
+    public DockerNodeModel clone() {
         try {
             // TODO: copy mutable state here, so the clone can't change the internals of the original
-            return (DockerNodeTO) super.clone();
+            return (DockerNodeModel) super.clone();
         } catch (CloneNotSupportedException e) {
             throw new AssertionError();
         }

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/DynamicsTO.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/model/DynamicsModel.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.model;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -11,7 +11,7 @@ import java.math.BigDecimal;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class DynamicsTO {
+public class DynamicsModel {
 
     /**
      * 		"dynamics": {

+ 5 - 5
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/GpuNodeEntity.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/model/NodeModel.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.entity;
+package com.css.simulation.resource.scheduler.data.model;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -9,16 +9,16 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class GpuNodeEntity implements Cloneable {
+public class NodeModel implements Cloneable {
     private String hostname;
+    private String ip;
     private Integer parallelism;
 
-
     @Override
-    public GpuNodeEntity clone() {
+    public NodeModel clone() {
         try {
             // TODO: copy mutable state here, so the clone can't change the internals of the original
-            return (GpuNodeEntity) super.clone();
+            return (NodeModel) super.clone();
         } catch (CloneNotSupportedException e) {
             throw new AssertionError();
         }

+ 20 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/data/model/VehicleModel.java

@@ -0,0 +1,20 @@
+package com.css.simulation.resource.scheduler.data.model;
+
+import com.css.simulation.resource.scheduler.data.entity.ModelEntity;
+import com.css.simulation.resource.scheduler.data.entity.SensorsEntity;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class VehicleModel {
+
+    private ModelEntity model;
+    private DynamicsModel dynamics;
+    private SensorsEntity sensors;
+
+}

+ 0 - 18
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/entity/VehicleTO.java

@@ -1,18 +0,0 @@
-package com.css.simulation.resource.scheduler.entity;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class VehicleTO {
-
-    private ModelEntity model;
-    private DynamicsTO dynamics;
-    private SensorsEntity sensors;
-
-}

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/AlgorithmMapper.java

@@ -1,7 +1,7 @@
 package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.entity.AlgorithmEntity;
+import com.css.simulation.resource.scheduler.data.entity.AlgorithmEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/AutoSubProjectMapper.java

@@ -2,7 +2,7 @@ package com.css.simulation.resource.scheduler.mapper;
 
 
 import api.common.pojo.po.scheduler.SchedulerProjectPO;
-import com.css.simulation.resource.scheduler.entity.ProjectEntity;
+import com.css.simulation.resource.scheduler.data.entity.ProjectEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/ClusterMapper.java

@@ -1,7 +1,7 @@
 package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.entity.ClusterEntity;
+import com.css.simulation.resource.scheduler.data.entity.ClusterEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/IndexMapper.java

@@ -1,7 +1,7 @@
 package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.entity.LeafIndexEntity;
+import com.css.simulation.resource.scheduler.data.entity.LeafIndexEntity;
 import org.apache.ibatis.annotations.*;
 
 import java.util.List;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/IndexTemplateMapper.java

@@ -1,7 +1,7 @@
 package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.entity.IndexTemplateEntity;
+import com.css.simulation.resource.scheduler.data.entity.IndexTemplateEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/ManualProjectMapper.java

@@ -2,7 +2,7 @@ package com.css.simulation.resource.scheduler.mapper;
 
 
 import api.common.pojo.po.scheduler.SchedulerProjectPO;
-import com.css.simulation.resource.scheduler.entity.ProjectEntity;
+import com.css.simulation.resource.scheduler.data.entity.ProjectEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 

+ 2 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SceneMapper.java

@@ -1,8 +1,8 @@
 package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.entity.IndexTemplateEntity;
-import com.css.simulation.resource.scheduler.entity.SceneEntity;
+import com.css.simulation.resource.scheduler.data.entity.IndexTemplateEntity;
+import com.css.simulation.resource.scheduler.data.entity.SceneEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorCameraMapper.java

@@ -1,6 +1,6 @@
 package com.css.simulation.resource.scheduler.mapper;
 
-import com.css.simulation.resource.scheduler.entity.CameraEntity;
+import com.css.simulation.resource.scheduler.data.entity.CameraEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorOgtMapper.java

@@ -1,6 +1,6 @@
 package com.css.simulation.resource.scheduler.mapper;
 
-import com.css.simulation.resource.scheduler.entity.OgtEntity;
+import com.css.simulation.resource.scheduler.data.entity.OgtEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/TaskMapper.java

@@ -1,7 +1,7 @@
 package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.entity.TaskEntity;
+import com.css.simulation.resource.scheduler.data.entity.TaskEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 import org.springframework.context.annotation.Scope;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/UserMapper.java

@@ -1,7 +1,7 @@
 package com.css.simulation.resource.scheduler.mapper;
 
 
-import com.css.simulation.resource.scheduler.entity.UserEntity;
+import com.css.simulation.resource.scheduler.data.entity.UserEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/VehicleMapper.java

@@ -1,6 +1,6 @@
 package com.css.simulation.resource.scheduler.mapper;
 
-import com.css.simulation.resource.scheduler.entity.VehicleEntity;
+import com.css.simulation.resource.scheduler.data.entity.VehicleEntity;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.type.JdbcType;
 

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

@@ -3,8 +3,8 @@ package com.css.simulation.resource.scheduler.scheduler;
 import api.common.util.SshUtil;
 import com.css.simulation.resource.scheduler.configuration.docker.DockerConfiguration;
 import com.css.simulation.resource.scheduler.mapper.AlgorithmMapper;
-import com.css.simulation.resource.scheduler.entity.AlgorithmEntity;
-import com.css.simulation.resource.scheduler.entity.DockerNodeTO;
+import com.css.simulation.resource.scheduler.data.entity.AlgorithmEntity;
+import com.css.simulation.resource.scheduler.data.model.DockerNodeModel;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.sshd.client.SshClient;
@@ -57,11 +57,11 @@ public class AlgorithmScheduler {
         //3 修改数据库为未导入
         algorithmMapper.updateDockerImportAndDockerImageByIdList("0", "", algorithmIdToUpdateList);
         //4 删除镜像
-        List<DockerNodeTO> nodeList = dockerConfiguration.getNodeList();
-        for (DockerNodeTO dockerNodeTO : nodeList) {
-            String hostname = dockerNodeTO.getHostname();
-            String username = dockerNodeTO.getUsername();
-            String password = dockerNodeTO.getPassword();
+        List<DockerNodeModel> nodeList = dockerConfiguration.getNodeList();
+        for (DockerNodeModel dockerNodeModel : nodeList) {
+            String hostname = dockerNodeModel.getHostname();
+            String username = dockerNodeModel.getUsername();
+            String password = dockerNodeModel.getPassword();
             SshClient client = SshUtil.getClient();
             ClientSession session = SshUtil.getSession(client, hostname, username, password);
             SshUtil.execute(session, dockerRmiCommand.toString());

+ 30 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/FileService.java

@@ -0,0 +1,30 @@
+package com.css.simulation.resource.scheduler.service;
+
+import api.common.util.FileUtil;
+import api.common.util.HttpUtil;
+import com.css.simulation.resource.scheduler.configuration.constant.ConstantConfiguration;
+import com.css.simulation.resource.scheduler.configuration.kubernetes.KubernetesConfiguration;
+import com.css.simulation.resource.scheduler.data.model.NodeModel;
+import lombok.SneakyThrows;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.util.List;
+
+@Service
+public class FileService {
+    @Resource
+    KubernetesConfiguration kubernetesConfiguration;
+    @Resource
+    ConstantConfiguration constantConfiguration;
+
+    @SneakyThrows
+    public void uploadOsgb(MultipartFile file) {
+        final String targetFilePath = constantConfiguration.getTemporaryDirectory() + "/esmini-osgb";
+        FileUtil.writeInputStreamToLocalFile(file.getInputStream(), targetFilePath);
+        final List<NodeModel> nodeModels = kubernetesConfiguration.getCpuList();
+        nodeModels.forEach(nodeModel -> HttpUtil.post(constantConfiguration.getUploadOsgbUrl().replace("simulation-resource-video", nodeModel.getIp()), new File(targetFilePath)));
+    }
+}

+ 4 - 4
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/ProjectService.java

@@ -7,10 +7,10 @@ import api.common.util.*;
 import com.css.simulation.resource.scheduler.configuration.docker.DockerConfiguration;
 import com.css.simulation.resource.scheduler.configuration.git.GitConfiguration;
 import com.css.simulation.resource.scheduler.configuration.redis.CustomRedisClient;
-import com.css.simulation.resource.scheduler.entity.AlgorithmEntity;
-import com.css.simulation.resource.scheduler.entity.IndexTemplateEntity;
-import com.css.simulation.resource.scheduler.entity.PrefixEntity;
-import com.css.simulation.resource.scheduler.entity.SceneEntity;
+import com.css.simulation.resource.scheduler.data.entity.AlgorithmEntity;
+import com.css.simulation.resource.scheduler.data.entity.IndexTemplateEntity;
+import com.css.simulation.resource.scheduler.data.entity.PrefixEntity;
+import com.css.simulation.resource.scheduler.data.entity.SceneEntity;
 import com.css.simulation.resource.scheduler.mapper.*;
 import com.css.simulation.resource.scheduler.util.*;
 import com.fasterxml.jackson.databind.ObjectMapper;

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/TaskIndexManager.java

@@ -1,7 +1,7 @@
 package com.css.simulation.resource.scheduler.service;
 
 import com.css.simulation.resource.scheduler.mapper.IndexMapper;
-import com.css.simulation.resource.scheduler.entity.LeafIndexEntity;
+import com.css.simulation.resource.scheduler.data.entity.LeafIndexEntity;
 import org.apache.ibatis.session.ExecutorType;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;

+ 3 - 3
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/TaskService.java

@@ -1,9 +1,9 @@
 package com.css.simulation.resource.scheduler.service;
 
 import com.css.simulation.resource.scheduler.configuration.redis.CustomRedisClient;
-import com.css.simulation.resource.scheduler.entity.PrefixEntity;
-import com.css.simulation.resource.scheduler.entity.ProjectEntity;
-import com.css.simulation.resource.scheduler.entity.TaskEntity;
+import com.css.simulation.resource.scheduler.data.entity.PrefixEntity;
+import com.css.simulation.resource.scheduler.data.entity.ProjectEntity;
+import com.css.simulation.resource.scheduler.data.entity.TaskEntity;
 import com.css.simulation.resource.scheduler.mapper.TaskMapper;
 import com.css.simulation.resource.scheduler.util.ProjectUtil;
 import com.css.simulation.resource.scheduler.util.TaskUtil;

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

@@ -6,6 +6,8 @@ import api.common.util.*;
 import com.css.simulation.resource.scheduler.configuration.esmini.EsminiConfiguration;
 import com.css.simulation.resource.scheduler.configuration.kubernetes.KubernetesConfiguration;
 import com.css.simulation.resource.scheduler.configuration.redis.CustomRedisClient;
+import com.css.simulation.resource.scheduler.data.entity.*;
+import com.css.simulation.resource.scheduler.data.model.NodeModel;
 import com.css.simulation.resource.scheduler.entity.*;
 import com.css.simulation.resource.scheduler.mapper.AutoSubProjectMapper;
 import com.css.simulation.resource.scheduler.mapper.ClusterMapper;
@@ -233,11 +235,11 @@ public class ProjectUtil {
      * @return 节点映射(节点名,并行度)
      */
     public Map<String, Integer> getNodeMap() {
-        List<GpuNodeEntity> initialNodeList = kubernetesConfiguration.getNodeList(); // 预设并行度的节点列表
+        List<NodeModel> initialNodeList = kubernetesConfiguration.getNodeList(); // 预设并行度的节点列表
         log.info("预设并行度的节点列表为:" + initialNodeList);
         Map<String, Integer> resultNodeMap = new HashMap<>();    // 用于执行的节点映射(节点名,并行度)
-        for (GpuNodeEntity kubernetesNodeSource : initialNodeList) {
-            GpuNodeEntity kubernetesNodeCopy = kubernetesNodeSource.clone();
+        for (NodeModel kubernetesNodeSource : initialNodeList) {
+            NodeModel kubernetesNodeCopy = kubernetesNodeSource.clone();
             String nodeName = kubernetesNodeCopy.getHostname();
             int maxParallelism = kubernetesNodeCopy.getParallelism();
             String restParallelismKey = "gpu-node:" + nodeName + ":parallelism";
@@ -262,11 +264,11 @@ public class ProjectUtil {
      * @return 集群剩余并行度
      */
     public int getRestParallelism() {
-        List<GpuNodeEntity> initialNodeList = kubernetesConfiguration.getNodeList(); // 预设并行度的节点列表
+        List<NodeModel> initialNodeList = kubernetesConfiguration.getNodeList(); // 预设并行度的节点列表
         // 遍历所有节点,获取还有剩余并行度的节点
-        List<GpuNodeEntity> restNodeList = new ArrayList<>();    // 剩余并行度的节点列表
-        for (GpuNodeEntity kubernetesNodeSource : initialNodeList) {
-            GpuNodeEntity kubernetesNodeCopy = kubernetesNodeSource.clone();
+        List<NodeModel> restNodeList = new ArrayList<>();    // 剩余并行度的节点列表
+        for (NodeModel kubernetesNodeSource : initialNodeList) {
+            NodeModel kubernetesNodeCopy = kubernetesNodeSource.clone();
             String nodeName = kubernetesNodeCopy.getHostname();   // 节点名称
             int maxParallelism = kubernetesNodeCopy.getParallelism();
             String restParallelismString = stringRedisTemplate.opsForValue().get("gpu-node:" + nodeName + ":parallelism");// 获取节点剩余并行度的 key
@@ -284,7 +286,7 @@ public class ProjectUtil {
             }
         }
         log.info(" 集群剩余并行度为:" + restNodeList);
-        return restNodeList.size() == 0 ? 0 : restNodeList.stream().mapToInt(GpuNodeEntity::getParallelism).sum();
+        return restNodeList.size() == 0 ? 0 : restNodeList.stream().mapToInt(NodeModel::getParallelism).sum();
     }
 
     /**
@@ -294,12 +296,12 @@ public class ProjectUtil {
      * @return 节点映射(节点名,并行度)
      */
     public Map<String, Integer> getNodeMapToUse(int parallelism) {
-        List<GpuNodeEntity> initialNodeList = kubernetesConfiguration.getNodeList(); // 预设并行度的节点列表
+        List<NodeModel> initialNodeList = kubernetesConfiguration.getNodeList(); // 预设并行度的节点列表
         log.info("预设并行度的节点列表为:" + initialNodeList);
         // 遍历所有节点,获取还有剩余并行度的节点
-        List<GpuNodeEntity> restNodeList = new ArrayList<>();    // 剩余并行度的节点列表
-        for (GpuNodeEntity kubernetesNodeSource : initialNodeList) {
-            GpuNodeEntity kubernetesNodeCopy = kubernetesNodeSource.clone();
+        List<NodeModel> restNodeList = new ArrayList<>();    // 剩余并行度的节点列表
+        for (NodeModel kubernetesNodeSource : initialNodeList) {
+            NodeModel kubernetesNodeCopy = kubernetesNodeSource.clone();
             String nodeName = kubernetesNodeCopy.getHostname();   // 节点名称
             int maxParallelism = kubernetesNodeCopy.getParallelism();
             String restParallelismString = stringRedisTemplate.opsForValue().get("gpu-node:" + nodeName + ":parallelism");// 获取节点剩余并行度的 key
@@ -320,7 +322,7 @@ public class ProjectUtil {
         Map<String, Integer> resultNodeMap = new HashMap<>();    // 用于执行的节点映射(节点名,并行度)
         if (!CollectionUtil.isEmpty(restNodeList)) {
             if (restNodeList.size() == 1) {
-                GpuNodeEntity tempNode = restNodeList.get(0);
+                NodeModel tempNode = restNodeList.get(0);
                 String tempNodeName = tempNode.getHostname();
                 int tempParallelism = tempNode.getParallelism();
                 resultNodeMap.put(tempNodeName, Math.min(tempParallelism, parallelism));
@@ -329,7 +331,7 @@ public class ProjectUtil {
                 for (int i = 0; i < parallelism; i++) {
                     // 每次降序排序都取剩余并行度最大的一个。
                     restNodeList.sort((o1, o2) -> o2.getParallelism() - o1.getParallelism());
-                    GpuNodeEntity tempNode = restNodeList.get(0);
+                    NodeModel tempNode = restNodeList.get(0);
                     String tempNodeName = tempNode.getHostname();
                     int tempParallelism = tempNode.getParallelism();
                     if (tempParallelism > 0) {
@@ -449,7 +451,7 @@ public class ProjectUtil {
         //1 先检查缓存中的并行度是否超过,超过了就不加缓存的并行度了,常用于测试
         String key = "gpu-node:" + nodeName + ":parallelism";
         final int currentRestParallelism = Integer.parseInt(customRedisClient.get(key));
-        final List<GpuNodeEntity> nodeList = kubernetesConfiguration.getNodeList();
+        final List<NodeModel> nodeList = kubernetesConfiguration.getNodeList();
         nodeList.forEach(node -> {
             if (nodeName.equals(node.getHostname())) {
                 if (currentRestParallelism + 1 < node.getParallelism()) {

+ 1 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/TaskUtil.java

@@ -5,6 +5,7 @@ import api.common.util.*;
 import com.css.simulation.resource.scheduler.configuration.feign.VideoFeignClient;
 import com.css.simulation.resource.scheduler.configuration.kubernetes.KubernetesConfiguration;
 import com.css.simulation.resource.scheduler.configuration.redis.CustomRedisClient;
+import com.css.simulation.resource.scheduler.data.entity.*;
 import com.css.simulation.resource.scheduler.entity.*;
 import com.css.simulation.resource.scheduler.mapper.*;
 import com.css.simulation.resource.scheduler.service.TaskIndexManager;

+ 25 - 23
simulation-resource-scheduler/src/main/resources/bootstrap-dev.yaml

@@ -3,6 +3,31 @@ server:
   servlet:
     context-path: /simulation/resource/scheduler
 
+#* -------------------------------- Comment --------------------------------
+constant:
+  temporary-directory: "/mnt/disk001/simulation-cloud/simulation-resource-scheduler-8004/temp/"
+  upload-osgb-url: "http://simulation-resource-video/simulation/resource/video/uploadOsgb"
+
+scheduler:
+  simulation-cloud-ip: 10.14.85.241
+  host:
+    hostname: 10.14.85.237
+    username: root
+    password: Ubuntu_cicv
+  start-topic: project
+  stop-topic: stopProject
+  linux-path:
+    temp: /mnt/disk001/simulation-cloud/simulation-resource-scheduler-8004/temp/
+    pod-template-yaml: /mnt/disk001/simulation-cloud/simulation-resource-scheduler-8004/pod-template/pod-template.yaml
+    vtd-pod-template-yaml: /mnt/disk001/simulation-cloud/simulation-resource-scheduler-8004/pod-template/vtd-pod-template.yaml
+    carsim-pod-template-yaml: /mnt/disk001/simulation-cloud/simulation-resource-scheduler-8004/pod-template/carsim-pod-template.yaml
+    pod-yaml-directory: /mnt/disk001/simulation-cloud/simulation-resource-scheduler-8004/pod-yaml/
+    score-py: /SimulationCloud/Evaluate
+  minio-path:
+    project-result: /project/
+
+#* -------------------------------- 外部接口 --------------------------------
+
 simulation-cloud:
   client-id: simulation-oauth-client
   client-secret: hPT7zVteEXvRzS41NhJXoQYqtGmai3W0
@@ -185,26 +210,3 @@ docker:
       hostname: 20.7.1.108
       username: root
       password: Ubuntu_cicv
-
-scheduler:
-  simulation-cloud-ip: 10.14.85.241
-  host:
-    hostname: 10.14.85.237
-    username: root
-    password: Ubuntu_cicv
-  start-topic: project
-  stop-topic: stopProject
-  linux-path:
-    temp: /mnt/disk001/simulation-cloud/simulation-resource-scheduler-8004/temp/
-    pod-template-yaml: /mnt/disk001/simulation-cloud/simulation-resource-scheduler-8004/pod-template/pod-template.yaml
-    vtd-pod-template-yaml: /mnt/disk001/simulation-cloud/simulation-resource-scheduler-8004/pod-template/vtd-pod-template.yaml
-    carsim-pod-template-yaml: /mnt/disk001/simulation-cloud/simulation-resource-scheduler-8004/pod-template/carsim-pod-template.yaml
-    pod-yaml-directory: /mnt/disk001/simulation-cloud/simulation-resource-scheduler-8004/pod-yaml/
-    score-py: /SimulationCloud/Evaluate
-  minio-path:
-    project-result: /project/
-
-esmini:
-  node-list:
-    - hostname: simulation003
-      parallelism: 1

+ 18 - 0
simulation-resource-video/src/main/java/com/css/simulation/resource/video/configuration/constant/ConstantConfiguration.java

@@ -0,0 +1,18 @@
+package com.css.simulation.resource.video.configuration.constant;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+@Data
+@Configuration
+@ConfigurationProperties(prefix = "constant")
+public class ConstantConfiguration {
+    private String esminiOsgbDirectory;
+    private String xvfbCommand;
+    private String esminiCommand;
+    private String xoscGenerateCommand;
+    private String linuxTempDirectory;
+    private String[] esminiNodeList;
+
+}

+ 3 - 1
simulation-resource-video/src/main/java/com/css/simulation/resource/video/configuration/minio/MinioConfiguration.java

@@ -13,6 +13,8 @@ public class MinioConfiguration {
     private String endpoint;
     private String accessKey;
     private String secretKey;
+    private String bucketName;
+    private String projectResultDirectory;
 
     @Bean
     public MinioClient minioClient() {
@@ -21,4 +23,4 @@ public class MinioConfiguration {
                 .credentials(accessKey, secretKey)
                 .build();
     }
-}
+}

+ 9 - 53
simulation-resource-video/src/main/java/com/css/simulation/resource/video/controller/VideoController.java

@@ -1,12 +1,9 @@
 package com.css.simulation.resource.video.controller;
 
 import api.common.pojo.common.ResponseBodyVO;
-import api.common.pojo.po.scene.VehicleTypePO;
-import api.common.util.LinuxUtil;
 import api.common.util.StringUtil;
 import com.css.simulation.resource.video.service.VideoService;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -24,9 +21,6 @@ public class VideoController {
 
     @Resource
     private VideoService videoService;
-    @Value("${scheduler.video-test-command}")
-    private String testCommand;
-
 
     /**
      * 接受 xosc 文件
@@ -48,75 +42,37 @@ public class VideoController {
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
     }
 
-
-    /**
-     * 接受 xosc 文件
-     */
-    @RequestMapping(value = "/test")
-    public void testGenerateVideo() {
-//        LinuxUtil.execute("/root/disk1/simulation-cloud/esmini/code-examples-bin/image-capture /root/disk1/simulation-cloud/esmini/resources/xosc/lane_change_crest.xosc /root/disk1/simulation-cloud/esmini/test/screenshot ");
-        LinuxUtil.execute(testCommand);
-    }
-
-
     @RequestMapping(value = "/uploadToLocal")
-    @ResponseBody
-    public ResponseBodyVO<Map<String, String>> uploadToLocal(@RequestBody MultipartFile file) {
+    public ResponseBodyVO<Map<String, String>> uploadToLocal(
+            @RequestParam("name") String name,
+            @RequestParam("type") String type,
+            @RequestParam("objectPath") String objectPath,
+            @RequestPart("file") MultipartFile file
+    ) {
         // 获取文件原本的名字
         String originName = file.getOriginalFilename();
         String fileName = originName.substring(0, originName.lastIndexOf("."));
-/*        // 判断文件是否是pdf文件
-        Set<String> set = new HashSet<>();
-        set.add(".pdf");
-        set.add(".doc");
-        set.add(".docx");*/
-        // 取出文件的后缀
-        /*int count = 0;
-        for(int i = 0; i < originName.length(); i++){
-            if(originName.charAt(i) == '.'){
-                count = i;
-                break;
-            }
-        }
-        String endName = originName.substring(count); //取出文件类型
-       // String fileType = originName.substring(count + 1); //文件类型
-        if(!".osgb".contains(endName)){
-            //return new String("上传的文件类型错误,只能上传osgb类型的文件");
-            return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE, "上传的文件类型错误,只能上传osgb类型的文件");
-        }*/
         // 创建保存路径
-        //日期格式
+        // 日期格式
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSS");
         String format = sdf.format(new Date());
-        // String savePath = System.getProperty("user.dir") + "\\" + "files" +   "\\" + fileType + "\\" + format;
         // 保存文件的文件夹
-        //String savePath="C:/Users/CSS/Desktop/ive转osgb/20220919";
-        String savePath = "/root/disk1/simulation-cloud/esmini/resources/models/" + fileName + "/" + format;
+        String savePath = fileName + "/" + format;
         log.info("车辆模型对应osgb地址:" + savePath);
         File folder = new File(savePath);
         // 判断路径是否存在,不存在则自动创建
         if (!folder.exists()) {
-            final boolean mkdirs = folder.mkdirs();
+            folder.mkdirs();
         }
         try {
             file.transferTo(new File(folder, originName));
             Map<String, String> map = new HashMap<>();
             String filePath = savePath + "/" + originName;
-            // return new String("文件路径为:" + filePath);
             map.put("filePath", filePath);
             return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, map);
         } catch (IOException e) {
             return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, e.getMessage());
-            //  return new String(e.getMessage());
         }
     }
 
-    @RequestMapping(value = "/test1")
-    @ResponseBody
-    public ResponseBodyVO<VehicleTypePO> test1(@RequestBody Map<String, String> map) {
-        VehicleTypePO po = videoService.vehicleById(map.get("projectId"), map.get("projectType"));
-        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, po);
-    }
-
-
 }

+ 20 - 26
simulation-resource-video/src/main/java/com/css/simulation/resource/video/service/VideoService.java

@@ -5,11 +5,13 @@ import api.common.util.FileUtil;
 import api.common.util.LinuxUtil;
 import api.common.util.OsUtil;
 import api.common.util.StringUtil;
+import com.css.simulation.resource.video.configuration.constant.ConstantConfiguration;
+import com.css.simulation.resource.video.configuration.minio.MinioConfiguration;
 import com.css.simulation.resource.video.configuration.redis.CustomRedisClient;
 import com.css.simulation.resource.video.data.entity.VehicleEntity;
 import com.css.simulation.resource.video.mapper.ModelConfigMapper;
-import com.css.simulation.resource.video.mapper.SimulationAutomaticProjectMapper;
 import com.css.simulation.resource.video.mapper.ModelVehicleMapper;
+import com.css.simulation.resource.video.mapper.SimulationAutomaticProjectMapper;
 import com.css.simulation.resource.video.util.MinioUtil;
 import io.minio.MinioClient;
 import lombok.SneakyThrows;
@@ -20,7 +22,6 @@ import org.dom4j.Element;
 import org.dom4j.io.OutputFormat;
 import org.dom4j.io.SAXReader;
 import org.dom4j.io.XMLWriter;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -44,7 +45,14 @@ public class VideoService {
     @Resource
     private SimulationAutomaticProjectMapper simulationAutomaticProjectMapper;
     @Resource
+    private MinioConfiguration minioConfiguration;
+    @Resource
     private MinioClient minioClient;
+    @Resource
+    private ConstantConfiguration constantConfiguration;
+    @Resource
+    private CustomRedisClient customRedisClient;
+
     //* -------------------------------- Comment --------------------------------
 
     public static final String oldXoscName = "simulation_my0.xosc";
@@ -55,20 +63,6 @@ public class VideoService {
     public static final String videoName = "simulation_output.mp4";
 
     //* -------------------------------- Comment --------------------------------
-    @Value("${scheduler.linux-path.temp}")
-    private String linuxTempPath;
-    @Value("${scheduler.xvfb-command}")
-    private String xvfbCommand;
-    @Value("${scheduler.esmini-command}")
-    private String esminiCommand;
-    @Value("${scheduler.python-command}")
-    private String pythonCommand;
-    @Value("${scheduler.minio-path.project-result}")
-    private String projectResultPathOfMinio;
-    @Value("${minio.bucket-name}")
-    private String bucketName;
-    @Resource
-    private CustomRedisClient customRedisClient;
 
 
     /**
@@ -88,21 +82,21 @@ public class VideoService {
         customRedisClient.lock(lockName, 1000L, (Long.parseLong(maxSimulationTime) + 10) * 1000L);
         customRedisClient.decrement(cpuNodeParallelismKey, 1);
         try {
-            String rootDirectoryPathOfMinio = projectResultPathOfMinio + projectId + "/" + taskId + "/";
+            String rootDirectoryPathOfMinio = minioConfiguration.getProjectResultDirectory() + projectId + "/" + taskId + "/";
             String xodrPathOfMinio = rootDirectoryPathOfMinio + taskId + ".xodr";
             String osgbPathOfMinio = rootDirectoryPathOfMinio + taskId + ".osgb";
             String csv1PathOfMinio = rootDirectoryPathOfMinio + csv1Name;
             String csv2PathOfMinio = rootDirectoryPathOfMinio + csv2Name;
-            String rootDirectoryPathOfLinux = linuxTempPath + "video/" + projectId + "/" + taskId + "/";
+            String rootDirectoryPathOfLinux = constantConfiguration.getLinuxTempDirectory() + "video/" + projectId + "/" + taskId + "/";
             String xodrPathOfLinux = rootDirectoryPathOfLinux + taskId + ".xodr";
             String osgbPathOfLinux = rootDirectoryPathOfLinux + taskId + ".osgb";
             String csv1PathOfLinux = rootDirectoryPathOfLinux + csv1Name;
             String csv2PathOfLinux = rootDirectoryPathOfLinux + csv2Name;
             log.info("下载 csv、xodr、osgb。");
-            MinioUtil.downloadToFile(minioClient, bucketName, xodrPathOfMinio, xodrPathOfLinux);
-            MinioUtil.downloadToFile(minioClient, bucketName, osgbPathOfMinio, osgbPathOfLinux);
-            MinioUtil.downloadToFile(minioClient, bucketName, csv1PathOfMinio, csv1PathOfLinux);
-            MinioUtil.downloadToFile(minioClient, bucketName, csv2PathOfMinio, csv2PathOfLinux);
+            MinioUtil.downloadToFile(minioClient, minioConfiguration.getBucketName(), xodrPathOfMinio, xodrPathOfLinux);
+            MinioUtil.downloadToFile(minioClient, minioConfiguration.getBucketName(), osgbPathOfMinio, osgbPathOfLinux);
+            MinioUtil.downloadToFile(minioClient, minioConfiguration.getBucketName(), csv1PathOfMinio, csv1PathOfLinux);
+            MinioUtil.downloadToFile(minioClient, minioConfiguration.getBucketName(), csv2PathOfMinio, csv2PathOfLinux);
             log.info("生成 xosc 文件。");
             String xoscPath = generateXosc(rootDirectoryPathOfLinux, xodrPathOfLinux, osgbPathOfLinux, projectId,
                     projectType);
@@ -112,8 +106,8 @@ public class VideoService {
             // 获取屏幕号创建新的虚拟屏幕
             final long newScreenNum = customRedisClient.increment("screen-number", 1);
             log.info("获取新的屏幕号:" + newScreenNum);
-            final String xvfbCommand2 = xvfbCommand.replaceAll("screen-num", String.valueOf(newScreenNum));
-            final String esminiCommand2 = esminiCommand.replaceAll("screen-num", String.valueOf(newScreenNum))
+            final String xvfbCommand2 = constantConfiguration.getXvfbCommand().replaceAll("screen-num", String.valueOf(newScreenNum));
+            final String esminiCommand2 = constantConfiguration.getEsminiCommand().replaceAll("screen-num", String.valueOf(newScreenNum))
                     + " " + xoscPath + " " + pictureDirectoryPath + "/screenshot " + StringUtil.doubleToString(Double
                     .parseDouble(maxSimulationTime), 2);
             OsUtil.exec(xvfbCommand2);
@@ -139,7 +133,7 @@ public class VideoService {
             log.info("删除全部图片==" + removeAll);
             OsUtil.exec(removeAll);
             //6 将视频上传到 minio
-            MinioUtil.uploadFromFile(minioClient, videoTargetPathOfLinux, bucketName, videoTargetPathOfMinio);
+            MinioUtil.uploadFromFile(minioClient, videoTargetPathOfLinux, minioConfiguration.getBucketName(), videoTargetPathOfMinio);
             log.info("上传成功:" + videoTargetPathOfMinio);
             OsUtil.kill(xvfbCommand2);
             //* -------------------------------- 删除临时文件 --------------------------------
@@ -158,7 +152,7 @@ public class VideoService {
     @SneakyThrows
     private String generateXosc(String csvDirectoryPath, String xodrPath, String osgbPath, String projectId, String projectType) {
         //1 生成 xosc 文件
-        String command = pythonCommand + " " + csvDirectoryPath;
+        String command = constantConfiguration.getXoscGenerateCommand() + " " + csvDirectoryPath;
         String execute = LinuxUtil.execute(command);    // 执行命令后生成 xosc 到目录下
         String oldXoscPath = csvDirectoryPath + oldXoscRelativePath;  // 生成文件的路径是固定的
         //2 调用修改xosc

+ 0 - 10
simulation-resource-video/src/main/resources/bootstrap-aliyun.yaml

@@ -1,10 +0,0 @@
-spring:
-  cloud:
-    nacos:
-      discovery:
-        server-addr: 172.17.0.185:8848
-        namespace: 3698bfc2-a612-487a-b2a2-aaad16cd9d9d
-      config:
-        server-addr: 172.17.0.185:8848
-        namespace: 3698bfc2-a612-487a-b2a2-aaad16cd9d9d
-        file-extension: yaml

+ 65 - 1
simulation-resource-video/src/main/resources/bootstrap-dev.yaml

@@ -1,3 +1,7 @@
+server:
+  port: 8007
+  servlet:
+    context-path: /simulation/resource/video
 spring:
   cloud:
     nacos:
@@ -7,4 +11,64 @@ spring:
       config:
         server-addr: 36.110.106.156:8848
         namespace: 3698bfc2-a612-487a-b2a2-aaad16cd9d9d
-        file-extension: yaml
+        file-extension: yaml
+  servlet:
+    multipart:
+      max-file-size: 10GB
+      max-request-size: 10GB
+  datasource:
+    druid:
+      url: jdbc:mysql://10.14.85.240:3306/simulation?characterEncoding=utf8&connectTimeout=60000&socketTimeout=60000&useSSL=false
+      username: root
+      password: 1qaz2wsx!
+      driver-class-name: com.mysql.jdbc.Driver
+      initial-size: 200
+      min-idle: 200
+      max-active: 200
+      max-wait: 300000
+      filter:
+        stat:
+          enabled: true
+        wall:
+          enabled: true
+        slf4j:
+          enabled: true
+      stat-view-servlet:
+        enabled: true
+        url-pattern: /druid/*
+        login-username: druid
+        login-password: 1qaz2wsx!
+  cache:
+    type: redis
+  redis:
+    host: 10.14.85.240
+    port: 6379
+    password: 1qaz2wsx!
+    connect-timeout: 10000
+    timeout: 10000
+    database: 2
+    lettuce:
+      pool:
+        max-active: 8
+        max-idle: 8
+        min-idle: 0
+        max-wait: 1000
+
+constant:
+  xvfb-command: "Xvfb :screen-num -screen 0 1920x1080x24+32 & export DISPLAY=:screen-num"
+  esmini-command: "xvfb-run -n screen-num /root/disk1/simulation-cloud/esmini/code-examples-bin/image-capture"
+  xosc-generate-command: "python3 /mnt/disk001/simulation-cloud/simulation-resource-video-8007/python/simulation_my.py"
+  video-test-command: "/root/disk1/simulation-cloud/esmini/code-examples-bin/image-capture /root/disk1/simulation-cloud/esmini/resources/xosc/lane_change_crest.xosc /root/disk1/simulation-cloud/esmini/test/screenshot"
+  linux-temp-directory: "/mnt/disk001/simulation-cloud/simulation-resource-video-8007/temp/"
+  minio-project-result-directory: "/project/"
+  esmini-osgb-directory: "/root/disk1/simulation-cloud/esmini/resources/models/"
+  esmini-node-list:
+    - "10.14.86.16"
+    - "10.14.86.20"
+
+minio:
+  endpoint: http://10.14.85.242:9000/
+  access-key: minioadmin
+  secret-key: 1qaz2wsx!
+  bucket-name: simulation-cloud
+

+ 1 - 5
simulation-resource-video/src/main/resources/bootstrap.yaml

@@ -1,9 +1,5 @@
 spring:
-  servlet:
-    multipart:
-      max-file-size: 10GB
-      max-request-size: 10GB
   application:
     name: simulation-resource-video
   profiles:
-    active: dev
+    active: dev