martin před 3 roky
rodič
revize
a3e83b351e

+ 10 - 1
pom.xml

@@ -54,7 +54,7 @@
         <minio.version>8.3.5</minio.version>
         <okhttp.version>4.9.3</okhttp.version>
         <kubernetes.version>14.0.0</kubernetes.version>
-        <ganymed-ssh2.version>262</ganymed-ssh2.version>
+        <docker-java.version>3.2.13</docker-java.version>
     </properties>
 
 
@@ -70,6 +70,15 @@
                 <artifactId>logback-classic</artifactId>
                 <version>${logback-classic.version}</version>
             </dependency>
+
+
+            <!-- docker 客户端 -->
+            <dependency>
+                <groupId>com.github.docker-java</groupId>
+                <artifactId>docker-java</artifactId>
+                <version>${docker-java.version}</version>
+            </dependency>
+
             <!-- ssh  -->
             <dependency>
                 <groupId>ch.ethz.ganymed</groupId>

+ 7 - 0
simulation-resource-scheduler/pom.xml

@@ -17,6 +17,13 @@
     </properties>
 
     <dependencies>
+
+        <!-- docker 客户端 -->
+        <dependency>
+            <groupId>com.github.docker-java</groupId>
+            <artifactId>docker-java</artifactId>
+        </dependency>
+
         <!-- kubernetes 客户端 -->
         <dependency>
             <groupId>io.kubernetes</groupId>

+ 7 - 5
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/consumer/ManualProjectConsumer.java

@@ -11,6 +11,7 @@ import com.css.simulation.resource.scheduler.feign.CommonService;
 import com.css.simulation.resource.scheduler.mapper.*;
 import com.css.simulation.resource.scheduler.pojo.dto.*;
 import com.css.simulation.resource.scheduler.pojo.po.*;
+import com.github.dockerjava.api.DockerClient;
 import feign.Response;
 import io.kubernetes.client.openapi.ApiClient;
 import io.kubernetes.client.openapi.ApiException;
@@ -57,8 +58,11 @@ public class ManualProjectConsumer {
     private ApiClient apiClient;
     @Value("${spring.kafka.consumer.topic.manual-project}")
     private String manualProjectTopic;
-    @Value("${scheduler.manual-project.result-path}")
+    @Value("${scheduler.manual-project.result-path-minio}")
     private String manualProjectResultPath;
+    @Value("${scheduler.temp-path-linux}")
+    private String tempPath;
+
 
     @KafkaListener(groupId = "simulation-resource-scheduler", topics = "${spring.kafka.consumer.topic.manual-project}")
     public void testConsumer(ConsumerRecord<String, String> projectRecord) {
@@ -187,15 +191,13 @@ public class ManualProjectConsumer {
         // -------------------------------- 4 算法(一期按单机版做) --------------------------------
         // 私有仓库导入算法镜像(搭建私有仓库)
         String algorithmId = projectMessageDTO.getAlgorithmId();    // 算法 id
-        String localPath = "/opt/module/algorithm/";
         //4-1 根据算法 id 获取算法文件地址
         String minioPath = algorithmMapper.selectMinioPathById(algorithmId);
+        String linuxPath = tempPath + minioPath.substring(1);
         // 下载算法文件到本地( 2 到仓库服务器)
         Response response = commonService.download(new MinioParameter(minioPath));
         InputStream inputStream = response.body().asInputStream();
-        FileUtil.writeInputStreamToLocalFile(inputStream, localPath);
-        //4-2 本地执行 docker load 算法文件成镜像( 2 创建 ssh 连接)
-        LinuxUtil.execute("docker load");
+        //4-2 本地执行 docker load 算法文件成镜像(二期用 docker-java 操作 或 ssh 连接)
 
 
         // -------------------------------- 5 创建 pod 开始执行 --------------------------------

+ 0 - 19
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/pojo/po/MonitorTaskPO.java

@@ -1,19 +0,0 @@
-package com.css.simulation.resource.scheduler.pojo.po;
-
-import api.common.pojo.common.CommonPO;
-import lombok.*;
-
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class MonitorTaskPO extends CommonPO {
-    private String taskId;
-    private String pId;
-    private String sceneId;
-    private String sceneName;
-    private String sceneType;
-    private String runState;
-    private String runResult;
-}

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

@@ -104,7 +104,7 @@ public class TaskService {
     public Boolean taskConfirm(String taskId) {
         // 查询 task 如果不是 pending 则不执行
         String state = taskMapper.selectStateById(taskId);
-        return null;
+        return DictConstants.TASK_PENDING.equals(state);
     }
 
     public double compute(List<IndexPO> leaf) {