From 0c35416d7dcf6a64e17dbfe3ab8bf056630bbc6a Mon Sep 17 00:00:00 2001 From: HuangXin Date: Sat, 8 Mar 2025 11:31:55 +0800 Subject: [PATCH] =?UTF-8?q?OCT=20REM:=201.=20=E5=A2=9E=E5=8A=A0=E5=BC=82?= =?UTF-8?q?=E6=AD=A5=E6=A8=A1=E5=BC=8F=E4=B8=8B=E9=80=9A=E7=9F=A5=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E9=83=A8=E7=BD=B2=E5=91=BD=E4=BB=A4=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../magent/service/PlatformApiService.java | 17 +++++-- .../impl/MiddlewareManagerServiceImpl.java | 10 +++- .../service/impl/PlatformApiServiceImpl.java | 50 +++++++++++++++++-- src/main/resources/application.properties | 2 +- 4 files changed, 68 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/cmcc/magent/service/PlatformApiService.java b/src/main/java/com/cmcc/magent/service/PlatformApiService.java index 93116b7..5b42cf5 100644 --- a/src/main/java/com/cmcc/magent/service/PlatformApiService.java +++ b/src/main/java/com/cmcc/magent/service/PlatformApiService.java @@ -4,8 +4,6 @@ import com.cmcc.magent.interceptor.MwSignRequestInterceptor; import com.cmcc.magent.pojo.po.RegisterAgent; import org.springframework.cloud.openfeign.FeignClient; -import java.io.IOException; - /** * PlatformApiService 接口定义了与平台 API 通信的核心服务功能。 *

@@ -27,7 +25,18 @@ public interface PlatformApiService { * * @param agent 包含代理注册信息的 {@link RegisterAgent} 对象 * @return 平台返回的结果,通常为一个 JSON 格式的字符串 - * @throws IOException 如果在处理 JSON 时发生错误 */ - String registerAgent(RegisterAgent agent) throws IOException; + String registerAgent(RegisterAgent agent); + + /** + * 回报部署任务结果。 + *

+ * 该方法用于想平台报告部署任务执行的结果。 + *

+ * + * @param deploymentId 部署任务ID + * @param status 部署任务执行结果:0(部署中),1(正常),2(不正常) + * @return 平台返回的结果,通常为一个 JSON 格式的字符串 + */ + String responseDeploymentResult(String deploymentId, int status); } diff --git a/src/main/java/com/cmcc/magent/service/impl/MiddlewareManagerServiceImpl.java b/src/main/java/com/cmcc/magent/service/impl/MiddlewareManagerServiceImpl.java index 9c05b1b..c217831 100644 --- a/src/main/java/com/cmcc/magent/service/impl/MiddlewareManagerServiceImpl.java +++ b/src/main/java/com/cmcc/magent/service/impl/MiddlewareManagerServiceImpl.java @@ -14,6 +14,7 @@ import com.cmcc.magent.misc.JsonUtils; import com.cmcc.magent.pojo.entry.MiddlewareData; import com.cmcc.magent.pojo.po.RemoteFileDetails; import com.cmcc.magent.service.MiddlewareManagerService; +import com.cmcc.magent.service.PlatformApiService; import com.fasterxml.jackson.core.JsonProcessingException; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; @@ -62,6 +63,9 @@ public class MiddlewareManagerServiceImpl implements MiddlewareManagerService { @Resource private OssFactory ossFactory; + @Resource + private PlatformApiService platformApiService; + /** * 根据命令获取对应的文件名。 * @@ -322,9 +326,10 @@ public class MiddlewareManagerServiceImpl implements MiddlewareManagerService { log.info("---- Task {} Finished", data.getUid()); }).whenComplete((v, t) -> { if (t != null) { + platformApiService.responseDeploymentResult(data.getUid(), 2); log.error("---- Task {} Finished With Exception: {}", data.getUid(), t.getMessage()); } else { - log.info("---- Task {} Finished: {}", data.getUid(), v); + log.info("---- Task {} Finished: {}", data.getUid(), platformApiService.responseDeploymentResult(data.getUid(), 1)); } }); } @@ -405,9 +410,10 @@ public class MiddlewareManagerServiceImpl implements MiddlewareManagerService { log.info("---- Task {} Finished", data.getUid()); }).whenComplete((v, t) -> { if (t != null) { + platformApiService.responseDeploymentResult(data.getUid(), 2); log.error("---- Task {} Finished With Exception: {}", data.getUid(), t.getMessage()); } else { - log.info("---- Task {} Finished: {}", data.getUid(), v); + log.info("---- Task {} Finished: {}", data.getUid(), platformApiService.responseDeploymentResult(data.getUid(), 1)); } }); } diff --git a/src/main/java/com/cmcc/magent/service/impl/PlatformApiServiceImpl.java b/src/main/java/com/cmcc/magent/service/impl/PlatformApiServiceImpl.java index 0933ae9..56e7471 100644 --- a/src/main/java/com/cmcc/magent/service/impl/PlatformApiServiceImpl.java +++ b/src/main/java/com/cmcc/magent/service/impl/PlatformApiServiceImpl.java @@ -6,9 +6,12 @@ import com.cmcc.magent.misc.JsonUtils; import com.cmcc.magent.pojo.po.RegisterAgent; import com.cmcc.magent.service.PlatformApiService; import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.io.IOException; +import java.util.HashMap; +import java.util.Map; /** * PlatformApiServiceImpl 是 {@link PlatformApiService} 的具体实现类。 @@ -26,6 +29,7 @@ import java.io.IOException; * @since 2025 -01-07 */ @Service +@Slf4j public class PlatformApiServiceImpl implements PlatformApiService { @Resource private PlatformServiceConfig platformServiceConfig; @@ -39,11 +43,49 @@ public class PlatformApiServiceImpl implements PlatformApiService { * * @param agent 包含代理注册信息的 {@link RegisterAgent} 实例 * @return 平台返回的注册结果,通常为 JSON 格式的字符串 - * @throws IOException IO 异常 */ @Override - public String registerAgent(RegisterAgent agent) throws IOException { - String reqString = JsonUtils.getJson(agent); - return HttpClientUtils.postJson(platformServiceConfig + "/register", null, reqString, null); + public String registerAgent(RegisterAgent agent) { + + String result = ""; + + try { + String reqString = JsonUtils.getJson(agent); + result = HttpClientUtils.postJson(platformServiceConfig + "/register", null, reqString, null); + } catch (IOException e) { + log.error("Register agent client {} exception: {}", agent.getDeviceId(), e.getMessage()); + } + + return result; + } + + /** + * 回报部署任务结果。 + *

+ * 该方法用于想平台报告部署任务执行的结果。 + *

+ * + * @param deploymentId 部署任务ID + * @param status 部署任务执行结果:0(部署中),1(正常),2(不正常) + * @return 平台返回的结果,通常为一个 JSON 格式的字符串 + */ + @Override + public String responseDeploymentResult(String deploymentId, int status) { + Map headers = new HashMap<>(4); + headers.put("Content-Type", "application/x-www-form-urlencoded"); + + Map params = new HashMap<>(4); + params.put("deploymentId", deploymentId); + params.put("status", String.valueOf(status)); + + String result = ""; + + try { + result = HttpClientUtils.post(platformServiceConfig + "/innerapi/instance/update-status", headers, params, null); + } catch (IOException e) { + log.error("Report deployment {} result exception: {}", deploymentId, e.getMessage()); + } + + return result; } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 64ad2e5..05d77dc 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -67,7 +67,7 @@ protocol.crypto-type=0 # Platform Service # Manager Platform URL -service.platform-url=http://xajhuang.com:1300 +service.platform-url=https://172.21.44.35:50443/mw/core # APPID service.platform-appid=appid # cluster name