diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/ReportAgentApplyResultCommand.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentApplyResultReportRequest.java similarity index 94% rename from gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/ReportAgentApplyResultCommand.java rename to gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentApplyResultReportRequest.java index 173b86a..d8c17fb 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/ReportAgentApplyResultCommand.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentApplyResultReportRequest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.dt.gatepilot.apiserver.application.command; +package com.dt.gatepilot.apiserver.application.dto; import com.dt.gatepilot.domain.enums.ConfigApplyState; import com.dt.gatepilot.domain.resource.meta.ResourceMetadataConstants; @@ -25,7 +25,7 @@ * agent 上报配置应用结果请求。 */ @Data -public class ReportAgentApplyResultCommand { +public class AgentApplyResultReportRequest { /** * 节点命名空间。 diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/PullAgentConfigCommand.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentConfigPullRequest.java similarity index 94% rename from gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/PullAgentConfigCommand.java rename to gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentConfigPullRequest.java index 4f54f51..6c058cc 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/PullAgentConfigCommand.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentConfigPullRequest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.dt.gatepilot.apiserver.application.command; +package com.dt.gatepilot.apiserver.application.dto; import com.dt.gatepilot.domain.resource.meta.ResourceMetadataConstants; import jakarta.validation.constraints.NotBlank; @@ -25,7 +25,7 @@ * agent 拉取已发布配置请求。 */ @Data -public class PullAgentConfigCommand { +public class AgentConfigPullRequest { /** * 节点命名空间。 diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentConfigPullResult.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentConfigPullResponse.java similarity index 96% rename from gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentConfigPullResult.java rename to gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentConfigPullResponse.java index 3fe1112..a6f0a8c 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentConfigPullResult.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentConfigPullResponse.java @@ -22,7 +22,7 @@ * agent 拉取已发布配置响应。 */ @Data -public class AgentConfigPullResult { +public class AgentConfigPullResponse { /** * 是否存在新配置。 diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/AgentHeartbeatCommand.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentHeartbeatRequest.java similarity index 96% rename from gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/AgentHeartbeatCommand.java rename to gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentHeartbeatRequest.java index 156e73f..abc9c82 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/AgentHeartbeatCommand.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/AgentHeartbeatRequest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.dt.gatepilot.apiserver.application.command; +package com.dt.gatepilot.apiserver.application.dto; import com.dt.gatepilot.domain.enums.ConfigApplyState; import com.dt.gatepilot.domain.enums.NodePhase; @@ -30,7 +30,7 @@ * agent 心跳请求。 */ @Data -public class AgentHeartbeatCommand { +public class AgentHeartbeatRequest { /** * 节点命名空间。 diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ConfigDiffResult.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ConfigDiffResponse.java similarity index 98% rename from gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ConfigDiffResult.java rename to gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ConfigDiffResponse.java index 80bc865..ccbc365 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ConfigDiffResult.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ConfigDiffResponse.java @@ -23,7 +23,7 @@ * 配置版本 diff 响应。 */ @Data -public class ConfigDiffResult { +public class ConfigDiffResponse { /** * 命名空间。 diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/CreateReleaseCommand.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/CreateReleaseRequest.java similarity index 94% rename from gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/CreateReleaseCommand.java rename to gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/CreateReleaseRequest.java index ea87f96..ffeea34 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/CreateReleaseCommand.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/CreateReleaseRequest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.dt.gatepilot.apiserver.application.command; +package com.dt.gatepilot.apiserver.application.dto; import com.dt.gatepilot.domain.resource.meta.LabelSelector; import com.dt.gatepilot.domain.resource.meta.ResourceReference; @@ -26,7 +26,7 @@ * 控制面发布请求。 */ @Data -public class CreateReleaseCommand { +public class CreateReleaseRequest { /** * 命名空间。 diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/CreateRollbackCommand.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/CreateRollbackRequest.java similarity index 92% rename from gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/CreateRollbackCommand.java rename to gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/CreateRollbackRequest.java index 382175e..29e2be3 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/CreateRollbackCommand.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/CreateRollbackRequest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.dt.gatepilot.apiserver.application.command; +package com.dt.gatepilot.apiserver.application.dto; import jakarta.validation.constraints.NotBlank; import lombok.Data; @@ -22,7 +22,7 @@ * 控制面回滚请求。 */ @Data -public class CreateRollbackCommand { +public class CreateRollbackRequest { /** * 命名空间。 diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ProjectTemplateDryRunResponse.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ProjectTemplateDryRunResponse.java index 153f239..a1377d5 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ProjectTemplateDryRunResponse.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ProjectTemplateDryRunResponse.java @@ -38,5 +38,5 @@ public class ProjectTemplateDryRunResponse { /** * 校验消息 */ - private List messages = new ArrayList<>(); + private List messages = new ArrayList<>(); } diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ProjectTemplatePreviewResponse.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ProjectTemplatePreviewResponse.java index 60dd8b1..f73d197 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ProjectTemplatePreviewResponse.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ProjectTemplatePreviewResponse.java @@ -15,7 +15,7 @@ */ package com.dt.gatepilot.apiserver.application.dto; -import com.dt.gatepilot.apiserver.application.command.CreateReleaseCommand; +import com.dt.gatepilot.apiserver.application.dto.CreateReleaseRequest; import java.util.ArrayList; import java.util.List; import lombok.Data; @@ -49,7 +49,7 @@ public class ProjectTemplatePreviewResponse { /** * 发布请求预览 */ - private CreateReleaseCommand releaseRequest; + private CreateReleaseRequest releaseRequest; /** * 资源差异摘要 diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/RegisterAgentCommand.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/RegisterAgentRequest.java similarity index 95% rename from gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/RegisterAgentCommand.java rename to gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/RegisterAgentRequest.java index 5f6cbf9..b1c228c 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/RegisterAgentCommand.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/RegisterAgentRequest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.dt.gatepilot.apiserver.application.command; +package com.dt.gatepilot.apiserver.application.dto; import com.dt.gatepilot.domain.enums.NodeRole; import com.dt.gatepilot.domain.resource.meta.LabelSelector; @@ -29,7 +29,7 @@ * agent 节点注册请求。 */ @Data -public class RegisterAgentCommand { +public class RegisterAgentRequest { /** * 节点命名空间。 diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ReleaseDryRunResult.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ReleaseDryRunResponse.java similarity index 98% rename from gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ReleaseDryRunResult.java rename to gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ReleaseDryRunResponse.java index 0920abe..cdbb4ff 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ReleaseDryRunResult.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ReleaseDryRunResponse.java @@ -24,7 +24,7 @@ * 发布 dry-run 校验响应。 */ @Data -public class ReleaseDryRunResult { +public class ReleaseDryRunResponse { /** * 命名空间。 diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ReleaseResult.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ReleaseResponse.java similarity index 97% rename from gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ReleaseResult.java rename to gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ReleaseResponse.java index 2754685..a9a0f97 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ReleaseResult.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/ReleaseResponse.java @@ -22,7 +22,7 @@ * 发布请求响应。 */ @Data -public class ReleaseResult { +public class ReleaseResponse { /** * 发布请求标识。 diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/ReportRuntimeAuditCommand.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/RuntimeAuditReportRequest.java similarity index 95% rename from gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/ReportRuntimeAuditCommand.java rename to gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/RuntimeAuditReportRequest.java index fd978cd..f3beb81 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/command/ReportRuntimeAuditCommand.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/RuntimeAuditReportRequest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.dt.gatepilot.apiserver.application.command; +package com.dt.gatepilot.apiserver.application.dto; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; @@ -23,10 +23,10 @@ import lombok.Data; /** - * agent 上报运行审计命令。 + * agent 上报运行审计请求。 */ @Data -public class ReportRuntimeAuditCommand { +public class RuntimeAuditReportRequest { /** * 命名空间。 diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/RuntimeAuditReportResult.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/RuntimeAuditReportResponse.java similarity index 91% rename from gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/RuntimeAuditReportResult.java rename to gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/RuntimeAuditReportResponse.java index 0e42f90..e252905 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/RuntimeAuditReportResult.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/dto/RuntimeAuditReportResponse.java @@ -18,10 +18,10 @@ import lombok.Data; /** - * 运行审计上报结果。 + * 运行审计上报响应。 */ @Data -public class RuntimeAuditReportResult { +public class RuntimeAuditReportResponse { /** * 接收条数。 diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotAgentService.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotAgentService.java index d3331a9..4e2988f 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotAgentService.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotAgentService.java @@ -15,6 +15,15 @@ */ package com.dt.gatepilot.apiserver.application.service; +import com.dt.gatepilot.apiserver.application.dto.AgentApplyResultReportRequest; +import com.dt.gatepilot.apiserver.application.dto.AgentConfigPullRequest; +import com.dt.gatepilot.apiserver.application.dto.AgentConfigPullResponse; +import com.dt.gatepilot.apiserver.application.dto.AgentHeartbeatRequest; +import com.dt.gatepilot.apiserver.application.dto.RegisterAgentRequest; +import com.dt.gatepilot.apiserver.domain.model.CursorPage; +import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourcePaths; +import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourceType; +import com.dt.gatepilot.apiserver.infrastructure.config.ConditionalOnGatePilotApiserverEnabled; import com.dt.gatepilot.domain.enums.ConfigApplyState; import com.dt.gatepilot.domain.enums.NodePhase; import com.dt.gatepilot.domain.enums.ResourceKind; @@ -22,15 +31,6 @@ import com.dt.gatepilot.domain.resource.node.GatewayNode; import com.dt.gatepilot.domain.resource.node.GatewayNodeStatus; import com.dt.gatepilot.domain.resource.publish.PublishedConfig; -import com.dt.gatepilot.apiserver.application.command.ReportAgentApplyResultCommand; -import com.dt.gatepilot.apiserver.application.command.PullAgentConfigCommand; -import com.dt.gatepilot.apiserver.application.command.AgentHeartbeatCommand; -import com.dt.gatepilot.apiserver.application.command.RegisterAgentCommand; -import com.dt.gatepilot.apiserver.application.dto.AgentConfigPullResult; -import com.dt.gatepilot.apiserver.domain.model.CursorPage; -import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourcePaths; -import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourceType; -import com.dt.gatepilot.apiserver.infrastructure.config.ConditionalOnGatePilotApiserverEnabled; import java.time.Instant; import java.util.ArrayList; import java.util.Comparator; @@ -63,7 +63,7 @@ public GatePilotAgentService(GatePilotResourceService resourceService) { * @param request 注册请求 * @return 节点资源 */ - public GatewayNode register(RegisterAgentCommand request) { + public GatewayNode register(RegisterAgentRequest request) { GatewayNode node = new GatewayNode(); // 节点资源名和 nodeId 保持一致,便于控制台排查 node.getMetadata().setName(request.getNodeId()); @@ -92,7 +92,7 @@ public GatewayNode register(RegisterAgentCommand request) { * @param request 心跳请求 * @return 节点资源 */ - public GatewayNode heartbeat(AgentHeartbeatCommand request) { + public GatewayNode heartbeat(AgentHeartbeatRequest request) { GatewayNode node = loadOrCreateNode(request.getNamespace(), request.getNodeId()); GatewayNodeStatus status = node.getStatus(); // 心跳以最新快照覆盖节点状态 @@ -123,7 +123,7 @@ public GatewayNode heartbeat(AgentHeartbeatCommand request) { * @param request 拉取请求 * @return 拉取响应 */ - public AgentConfigPullResult pullConfig(PullAgentConfigCommand request) { + public AgentConfigPullResponse pullConfig(AgentConfigPullRequest request) { PublishedConfig latest = listPublishedConfigs(request.getNamespace()) .stream() .filter(config -> request.getConfigShards().isEmpty() @@ -131,7 +131,7 @@ public AgentConfigPullResult pullConfig(PullAgentConfigCommand request) { .filter(config -> isolationGroupMatches(config, request)) .max(Comparator.comparing(config -> Objects.requireNonNullElse(config.getSpec().getSequence(), 0L))) .orElse(null); - AgentConfigPullResult response = new AgentConfigPullResult(); + AgentConfigPullResponse response = new AgentConfigPullResponse(); if (latest == null) { // 没有目标配置时让 agent 保持当前 last-good response.setChanged(false); @@ -155,7 +155,7 @@ public AgentConfigPullResult pullConfig(PullAgentConfigCommand request) { * @param request 上报请求 * @return 节点资源 */ - public GatewayNode reportApplyResult(ReportAgentApplyResultCommand request) { + public GatewayNode reportApplyResult(AgentApplyResultReportRequest request) { GatewayNode node = loadOrCreateNode(request.getNamespace(), request.getNodeId()); GatewayNodeStatus status = node.getStatus(); // agent 上报的 apply 结果是节点状态的事实来源 @@ -194,7 +194,7 @@ private List listPublishedConfigs(String namespace) { return configs; } - private boolean isolationGroupMatches(PublishedConfig config, PullAgentConfigCommand request) { + private boolean isolationGroupMatches(PublishedConfig config, AgentConfigPullRequest request) { String targetIsolationGroup = config.getSpec().getIsolationGroup(); return !StringUtils.hasText(targetIsolationGroup) || Objects.equals(targetIsolationGroup, request.getIsolationGroup()); @@ -205,7 +205,7 @@ private GatewayNode loadOrCreateNode(String namespace, String nodeId) { return (GatewayNode) resourceService.get(GatePilotResourcePaths.NODES, namespace, nodeId); } catch (RuntimeException exception) { // 心跳先到时自动补节点,避免部署顺序影响状态上报 - RegisterAgentCommand request = new RegisterAgentCommand(); + RegisterAgentRequest request = new RegisterAgentRequest(); request.setNamespace(namespace); request.setNodeId(nodeId); return register(request); diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotConfigSnapshotService.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotConfigSnapshotService.java index 7203d56..52e31b5 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotConfigSnapshotService.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotConfigSnapshotService.java @@ -21,7 +21,7 @@ import com.dt.gatepilot.domain.resource.config.GatewayConfigSnapshot; import com.dt.gatepilot.domain.resource.publish.PublishedConfig; import com.dt.gatepilot.apiserver.application.dto.ConfigSnapshotSummaryResponse; -import com.dt.gatepilot.apiserver.application.dto.ConfigDiffResult; +import com.dt.gatepilot.apiserver.application.dto.ConfigDiffResponse; import com.dt.gatepilot.apiserver.domain.model.CursorPage; import com.dt.gatepilot.apiserver.domain.repository.ResourceStoreConstants; import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourcePaths; @@ -207,14 +207,14 @@ public Optional findSnapshot(String namespace, String ver * @param configShard 配置分片 * @return diff 响应 */ - public ConfigDiffResult diff(String namespace, String baseVersion, String targetVersion, String configShard) { + public ConfigDiffResponse diff(String namespace, String baseVersion, String targetVersion, String configShard) { GatewayConfigSnapshot base = findSnapshot(namespace, baseVersion, configShard) .orElseThrow(() -> notFound("基线配置快照不存在: " + baseVersion)); GatewayConfigSnapshot target = findSnapshot(namespace, targetVersion, configShard) .orElseThrow(() -> notFound("目标配置快照不存在: " + targetVersion)); PublishedConfig baseConfig = base.getSpec().getPublishedConfig(); PublishedConfig targetConfig = target.getSpec().getPublishedConfig(); - ConfigDiffResult response = new ConfigDiffResult(); + ConfigDiffResponse response = new ConfigDiffResponse(); // diff 只比较快照中的 PublishedConfig 内容 response.setNamespace(namespace); response.setBaseVersion(baseVersion); @@ -248,7 +248,7 @@ public ConfigDiffResult diff(String namespace, String baseVersion, String target return response; } - private DiffStats appendDiffItems(ConfigDiffResult response, + private DiffStats appendDiffItems(ConfigDiffResponse response, String resourceType, List baseItems, List targetItems, @@ -296,12 +296,12 @@ private Map indexByKey(List items, Function keyMapp return index; } - private ConfigDiffResult.ConfigDiffItem diffItem(String resourceType, + private ConfigDiffResponse.ConfigDiffItem diffItem(String resourceType, String name, String changeType, String baseHash, String targetHash) { - ConfigDiffResult.ConfigDiffItem item = new ConfigDiffResult.ConfigDiffItem(); + ConfigDiffResponse.ConfigDiffItem item = new ConfigDiffResponse.ConfigDiffItem(); // diff item 只保留摘要,详情后续按需再查询快照 item.setResourceType(resourceType); item.setName(name); diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotReleaseService.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotReleaseService.java index 9f7c4eb..9b345d6 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotReleaseService.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotReleaseService.java @@ -15,10 +15,10 @@ */ package com.dt.gatepilot.apiserver.application.service; -import com.dt.gatepilot.apiserver.application.command.CreateReleaseCommand; -import com.dt.gatepilot.apiserver.application.command.CreateRollbackCommand; -import com.dt.gatepilot.apiserver.application.dto.ReleaseDryRunResult; -import com.dt.gatepilot.apiserver.application.dto.ReleaseResult; +import com.dt.gatepilot.apiserver.application.dto.CreateReleaseRequest; +import com.dt.gatepilot.apiserver.application.dto.CreateRollbackRequest; +import com.dt.gatepilot.apiserver.application.dto.ReleaseDryRunResponse; +import com.dt.gatepilot.apiserver.application.dto.ReleaseResponse; import com.dt.gatepilot.apiserver.domain.model.CursorPage; import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourcePaths; import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourceType; @@ -83,7 +83,7 @@ public GatePilotReleaseService(GatePilotResourceService resourceService, * @param request 发布请求 * @return 发布响应 */ - public ReleaseResult createRelease(CreateReleaseCommand request) { + public ReleaseResponse createRelease(CreateReleaseRequest request) { Instant now = Instant.now(); String releaseId = identityGenerator.nextReleaseId(); String version = identityGenerator.releaseVersion(request.getProjectName(), releaseId); @@ -92,7 +92,7 @@ public ReleaseResult createRelease(CreateReleaseCommand request) { // 发布入口只保存事件,具体推进由 controller-manager 异步处理 resourceService.save(eventType, request.getNamespace(), releaseId, event); - ReleaseResult response = new ReleaseResult(); + ReleaseResponse response = new ReleaseResponse(); response.setReleaseId(releaseId); response.setVersion(version); response.setPhase(GatePilotReleaseConstants.PHASE_PENDING); @@ -107,9 +107,9 @@ public ReleaseResult createRelease(CreateReleaseCommand request) { * @param request 发布请求 * @return dry-run 结果 */ - public ReleaseDryRunResult dryRun(CreateReleaseCommand request) { + public ReleaseDryRunResponse dryRun(CreateReleaseRequest request) { Instant now = Instant.now(); - ReleaseDryRunResult response = new ReleaseDryRunResult(); + ReleaseDryRunResponse response = new ReleaseDryRunResponse(); response.setNamespace(request.getNamespace()); response.setProjectName(request.getProjectName()); response.setVersion(identityGenerator.dryRunVersion(request.getProjectName())); @@ -152,7 +152,7 @@ public ReleaseDryRunResult dryRun(CreateReleaseCommand request) { * @param request 回滚请求 * @return 发布响应 */ - public ReleaseResult createRollback(CreateRollbackCommand request) { + public ReleaseResponse createRollback(CreateRollbackRequest request) { Instant now = Instant.now(); GatewayConfigSnapshot snapshot = snapshotService.findSnapshot( request.getNamespace(), @@ -172,7 +172,7 @@ public ReleaseResult createRollback(CreateRollbackCommand request) { GatePilotResourceType snapshotType = resourceService.requireResourceType(ResourceKind.CONFIG_SNAPSHOT); resourceService.save(snapshotType, request.getNamespace(), snapshot.getMetadata().getName(), snapshot); - ReleaseResult response = new ReleaseResult(); + ReleaseResponse response = new ReleaseResponse(); response.setReleaseId(releaseId); response.setVersion(version); response.setPhase(GatePilotReleaseConstants.PHASE_PENDING); @@ -181,7 +181,7 @@ public ReleaseResult createRollback(CreateRollbackCommand request) { return response; } - private GatewayEvent buildReleaseEvent(CreateReleaseCommand request, String releaseId, String version, Instant now) { + private GatewayEvent buildReleaseEvent(CreateReleaseRequest request, String releaseId, String version, Instant now) { GatewayEvent event = new GatewayEvent(); ResourceMetadata metadata = event.getMetadata(); metadata.setName(releaseId); @@ -216,7 +216,7 @@ private GatewayEvent buildReleaseEvent(CreateReleaseCommand request, String rele return event; } - private GatewayEvent buildRollbackEvent(CreateRollbackCommand request, + private GatewayEvent buildRollbackEvent(CreateRollbackRequest request, GatewayConfigSnapshot snapshot, String releaseId, String version, @@ -269,7 +269,7 @@ private boolean resourceExists(String resourcePath, String namespace, String nam } } - private List projectRoutes(CreateReleaseCommand request) { + private List projectRoutes(CreateReleaseRequest request) { return listAll(GatePilotResourcePaths.ROUTES, request.getNamespace(), GatewayRoute.class).stream() .filter(route -> projectMatches(route.getSpec().getProjectRef(), route.getMetadata().getLabels().get(ResourceMetadataConstants.LABEL_PROJECT), @@ -277,7 +277,7 @@ private List projectRoutes(CreateReleaseCommand request) { .toList(); } - private List projectUpstreams(CreateReleaseCommand request) { + private List projectUpstreams(CreateReleaseRequest request) { return listAll(GatePilotResourcePaths.UPSTREAMS, request.getNamespace(), Upstream.class).stream() .filter(upstream -> projectMatches(upstream.getSpec().getProjectRef(), upstream.getMetadata().getLabels().get(ResourceMetadataConstants.LABEL_PROJECT), @@ -285,7 +285,7 @@ private List projectUpstreams(CreateReleaseCommand request) { .toList(); } - private List projectTrafficPolicies(CreateReleaseCommand request) { + private List projectTrafficPolicies(CreateReleaseRequest request) { return listAll(GatePilotResourcePaths.TRAFFIC_POLICIES, request.getNamespace(), TrafficPolicy.class).stream() .filter(policy -> projectMatches(policy.getSpec().getProjectRef(), policy.getMetadata().getLabels().get(ResourceMetadataConstants.LABEL_PROJECT), @@ -293,7 +293,7 @@ private List projectTrafficPolicies(CreateReleaseCommand request) .toList(); } - private List projectReleasePolicies(CreateReleaseCommand request) { + private List projectReleasePolicies(CreateReleaseRequest request) { return listAll(GatePilotResourcePaths.RELEASE_POLICIES, request.getNamespace(), ReleasePolicy.class).stream() .filter(policy -> projectMatches(policy.getSpec().getProjectRef(), policy.getMetadata().getLabels().get(ResourceMetadataConstants.LABEL_PROJECT), @@ -301,7 +301,7 @@ private List projectReleasePolicies(CreateReleaseCommand request) .toList(); } - private List projectAuthPolicies(CreateReleaseCommand request) { + private List projectAuthPolicies(CreateReleaseRequest request) { return listAll(GatePilotResourcePaths.AUTH_POLICIES, request.getNamespace(), AuthPolicy.class).stream() .filter(policy -> projectMatches(policy.getSpec().getProjectRef(), policy.getMetadata().getLabels().get(ResourceMetadataConstants.LABEL_PROJECT), @@ -309,7 +309,7 @@ private List projectAuthPolicies(CreateReleaseCommand request) { .toList(); } - private boolean projectMatches(ResourceReference projectRef, String projectLabel, CreateReleaseCommand request) { + private boolean projectMatches(ResourceReference projectRef, String projectLabel, CreateReleaseRequest request) { if (projectRef != null && StringUtils.hasText(projectRef.getName())) { // projectRef 是主判断依据,label 只做兼容 return Objects.equals(projectRef.getName(), request.getProjectName()) @@ -319,7 +319,7 @@ private boolean projectMatches(ResourceReference projectRef, String projectLabel return Objects.equals(projectLabel, request.getProjectName()); } - private void validateRoutes(ReleaseDryRunResult response, + private void validateRoutes(ReleaseDryRunResponse response, List routes, List upstreams, List trafficPolicies, @@ -335,7 +335,7 @@ private void validateRoutes(ReleaseDryRunResult response, } } - private void validateRoutePath(ReleaseDryRunResult response, GatewayRoute route) { + private void validateRoutePath(ReleaseDryRunResponse response, GatewayRoute route) { String path = route.getSpec().getPath() == null ? null : route.getSpec().getPath().getValue(); if (!StringUtils.hasText(path)) { addDryRunMessage(response, GatePilotReleaseConstants.DRY_RUN_LEVEL_ERROR, @@ -344,7 +344,7 @@ private void validateRoutePath(ReleaseDryRunResult response, GatewayRoute route) } } - private void validateRouteHosts(ReleaseDryRunResult response, GatewayRoute route) { + private void validateRouteHosts(ReleaseDryRunResponse response, GatewayRoute route) { if (route.getSpec().getHosts().isEmpty()) { addDryRunMessage(response, GatePilotReleaseConstants.DRY_RUN_LEVEL_WARN, GatePilotReleaseConstants.REASON_ROUTE_HOST_MISSING, @@ -352,7 +352,7 @@ private void validateRouteHosts(ReleaseDryRunResult response, GatewayRoute route } } - private void validateRouteUpstream(ReleaseDryRunResult response, GatewayRoute route, Set upstreamNames) { + private void validateRouteUpstream(ReleaseDryRunResponse response, GatewayRoute route, Set upstreamNames) { ResourceReference upstreamRef = route.getSpec().getUpstreamRef(); String upstreamName = upstreamRef == null ? null : upstreamRef.getName(); if (!StringUtils.hasText(upstreamName) || !upstreamNames.contains(upstreamName)) { @@ -365,7 +365,7 @@ private void validateRouteUpstream(ReleaseDryRunResult response, GatewayRoute ro } } - private void validateRoutePolicies(ReleaseDryRunResult response, GatewayRoute route, Set policyNames) { + private void validateRoutePolicies(ReleaseDryRunResponse response, GatewayRoute route, Set policyNames) { for (ResourceReference policyRef : route.getSpec().getPolicyRefs()) { if (policyRef != null && StringUtils.hasText(policyRef.getName()) && !policyNames.contains(policyRef.getName())) { @@ -379,7 +379,7 @@ private void validateRoutePolicies(ReleaseDryRunResult response, GatewayRoute ro } } - private void validateUpstreams(ReleaseDryRunResult response, + private void validateUpstreams(ReleaseDryRunResponse response, List upstreams, List registryCenters) { Set registryNames = registryNames(registryCenters); @@ -400,7 +400,7 @@ private void validateUpstreams(ReleaseDryRunResult response, } } - private void validateNacosDiscovery(ReleaseDryRunResult response, + private void validateNacosDiscovery(ReleaseDryRunResponse response, Upstream upstream, Upstream.UpstreamDiscoverySpec discovery, Set registryNames) { @@ -422,7 +422,7 @@ private void validateNacosDiscovery(ReleaseDryRunResult response, } } - private void validateUpstreamLoadBalance(ReleaseDryRunResult response, Upstream upstream) { + private void validateUpstreamLoadBalance(ReleaseDryRunResponse response, Upstream upstream) { LoadBalanceStrategy strategy = upstream.getSpec().getLoadBalance(); if (strategy != null && !strategy.isSupported()) { // 未被成熟组件承接的策略必须在发布前阻断 @@ -435,7 +435,7 @@ private void validateUpstreamLoadBalance(ReleaseDryRunResult response, Upstream } } - private void validateReleasePolicies(ReleaseDryRunResult response, + private void validateReleasePolicies(ReleaseDryRunResponse response, List releasePolicies, List upstreams) { Set upstreamNames = names(upstreams); @@ -448,7 +448,7 @@ private void validateReleasePolicies(ReleaseDryRunResult response, } } - private void validateReleaseUpstreamRef(ReleaseDryRunResult response, + private void validateReleaseUpstreamRef(ReleaseDryRunResponse response, ReleasePolicy policy, Set upstreamNames, ResourceReference upstreamRef) { @@ -505,8 +505,8 @@ private Set policyNames(List trafficPolicies, return names; } - private void addDryRunMessage(ReleaseDryRunResult response, String level, String reason, String message) { - ReleaseDryRunResult.DryRunMessage dryRunMessage = new ReleaseDryRunResult.DryRunMessage(); + private void addDryRunMessage(ReleaseDryRunResponse response, String level, String reason, String message) { + ReleaseDryRunResponse.DryRunMessage dryRunMessage = new ReleaseDryRunResponse.DryRunMessage(); // dry-run 信息面向控制台展示,保留明确的 level 和 reason dryRunMessage.setLevel(level); dryRunMessage.setReason(reason); diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotRuntimeAuditService.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotRuntimeAuditService.java index 1cd8a37..fc076c3 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotRuntimeAuditService.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/GatePilotRuntimeAuditService.java @@ -15,8 +15,8 @@ */ package com.dt.gatepilot.apiserver.application.service; -import com.dt.gatepilot.apiserver.application.command.ReportRuntimeAuditCommand; -import com.dt.gatepilot.apiserver.application.dto.RuntimeAuditReportResult; +import com.dt.gatepilot.apiserver.application.dto.RuntimeAuditReportRequest; +import com.dt.gatepilot.apiserver.application.dto.RuntimeAuditReportResponse; import com.dt.gatepilot.apiserver.domain.audit.RuntimeAuditQuery; import com.dt.gatepilot.apiserver.domain.audit.RuntimeAuditRecord; import com.dt.gatepilot.apiserver.domain.audit.RuntimeAuditStore; @@ -51,19 +51,19 @@ public GatePilotRuntimeAuditService(RuntimeAuditStore runtimeAuditStore) { /** * 接收 agent 上报的运行审计。 * - * @param command 上报命令 - * @return 上报结果 + * @param request 上报请求 + * @return 上报响应 */ - public RuntimeAuditReportResult report(ReportRuntimeAuditCommand command) { - List records = Objects.requireNonNullElse(command.getEvents(), - List.of()) + public RuntimeAuditReportResponse report(RuntimeAuditReportRequest request) { + List records = Objects.requireNonNullElse(request.getEvents(), + List.of()) .stream() - .map(item -> record(command, item)) + .map(item -> record(request, item)) .toList(); runtimeAuditStore.saveBatch(records); - RuntimeAuditReportResult result = new RuntimeAuditReportResult(); - result.setAcceptedCount(records.size()); - return result; + RuntimeAuditReportResponse response = new RuntimeAuditReportResponse(); + response.setAcceptedCount(records.size()); + return response; } /** @@ -79,16 +79,16 @@ public CursorPage list(RuntimeAuditQuery query) { /** * 转换运行审计记录。 * - * @param command 上报命令 + * @param request 上报请求 * @param item 审计事件 * @return 审计记录 */ - private RuntimeAuditRecord record(ReportRuntimeAuditCommand command, - ReportRuntimeAuditCommand.RuntimeAuditItem item) { + private RuntimeAuditRecord record(RuntimeAuditReportRequest request, + RuntimeAuditReportRequest.RuntimeAuditItem item) { RuntimeAuditRecord record = new RuntimeAuditRecord(); // 命名空间和节点由 agent 上报外层统一赋值 - record.setNamespace(command.getNamespace()); - record.setNodeId(command.getNodeId()); + record.setNamespace(request.getNamespace()); + record.setNodeId(request.getNodeId()); record.setTraceId(item.getTraceId()); record.setClientIp(item.getClientIp()); record.setMethod(item.getMethod()); diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/ProjectTemplateService.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/ProjectTemplateService.java index 6157f35..8af99fb 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/ProjectTemplateService.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/application/service/ProjectTemplateService.java @@ -15,13 +15,13 @@ */ package com.dt.gatepilot.apiserver.application.service; -import com.dt.gatepilot.apiserver.application.command.CreateReleaseCommand; +import com.dt.gatepilot.apiserver.application.dto.CreateReleaseRequest; import com.dt.gatepilot.apiserver.application.dto.ProjectTemplateApplyResponse; import com.dt.gatepilot.apiserver.application.dto.ProjectTemplateDefaultsResponse; import com.dt.gatepilot.apiserver.application.dto.ProjectTemplateDryRunResponse; import com.dt.gatepilot.apiserver.application.dto.ProjectTemplatePreviewResponse; import com.dt.gatepilot.apiserver.application.dto.ProjectTemplateRenderRequest; -import com.dt.gatepilot.apiserver.application.dto.ReleaseDryRunResult; +import com.dt.gatepilot.apiserver.application.dto.ReleaseDryRunResponse; import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourceType; import com.dt.gatepilot.apiserver.infrastructure.config.ConditionalOnGatePilotApiserverEnabled; import com.dt.gatepilot.domain.enums.AuthType; @@ -195,7 +195,7 @@ private void validateNacosUpstream(ProjectTemplateDryRunResponse response, } private void addMessage(ProjectTemplateDryRunResponse response, String reason, String message) { - ReleaseDryRunResult.DryRunMessage dryRunMessage = new ReleaseDryRunResult.DryRunMessage(); + ReleaseDryRunResponse.DryRunMessage dryRunMessage = new ReleaseDryRunResponse.DryRunMessage(); // 模板 dry-run 消息直接给 Console 展示 dryRunMessage.setLevel(ProjectTemplateConstants.DRY_RUN_LEVEL_ERROR); dryRunMessage.setReason(reason); @@ -338,17 +338,17 @@ private void fillDiff(ProjectTemplatePreviewResponse response) { diff.setChanged(diff.getCreateCount() > 0 || diff.getUpdateCount() > 0); } - private CreateReleaseCommand releaseRequest(TemplateValues values, List envelopes) { - CreateReleaseCommand command = new CreateReleaseCommand(); - command.setNamespace(values.namespace()); - command.setProjectName(values.projectName()); - command.setConfigShard(values.configShard()); - command.setDescription(ProjectTemplateConstants.DEFAULT_RELEASE_DESCRIPTION); - command.setCreatedBy(ProjectTemplateConstants.DEFAULT_CREATED_BY); - command.setResourceRefs(envelopes.stream() + private CreateReleaseRequest releaseRequest(TemplateValues values, List envelopes) { + CreateReleaseRequest request = new CreateReleaseRequest(); + request.setNamespace(values.namespace()); + request.setProjectName(values.projectName()); + request.setConfigShard(values.configShard()); + request.setDescription(ProjectTemplateConstants.DEFAULT_RELEASE_DESCRIPTION); + request.setCreatedBy(ProjectTemplateConstants.DEFAULT_CREATED_BY); + request.setResourceRefs(envelopes.stream() .map(envelope -> ref(envelope.kind(), envelope.namespace(), envelope.name())) .toList()); - return command; + return request; } private List render(TemplateValues values) { diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotAgentController.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotAgentController.java index c2f1b28..f457244 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotAgentController.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotAgentController.java @@ -16,11 +16,11 @@ package com.dt.gatepilot.apiserver.interfaces.rest; import com.dt.gatepilot.domain.resource.node.GatewayNode; -import com.dt.gatepilot.apiserver.application.command.ReportAgentApplyResultCommand; -import com.dt.gatepilot.apiserver.application.command.PullAgentConfigCommand; -import com.dt.gatepilot.apiserver.application.command.AgentHeartbeatCommand; -import com.dt.gatepilot.apiserver.application.command.RegisterAgentCommand; -import com.dt.gatepilot.apiserver.application.dto.AgentConfigPullResult; +import com.dt.gatepilot.apiserver.application.dto.AgentApplyResultReportRequest; +import com.dt.gatepilot.apiserver.application.dto.AgentConfigPullRequest; +import com.dt.gatepilot.apiserver.application.dto.AgentHeartbeatRequest; +import com.dt.gatepilot.apiserver.application.dto.RegisterAgentRequest; +import com.dt.gatepilot.apiserver.application.dto.AgentConfigPullResponse; import com.dt.gatepilot.apiserver.application.service.GatePilotAgentService; import com.dt.gatepilot.apiserver.infrastructure.config.ConditionalOnGatePilotApiserverEnabled; import com.getboot.web.api.response.ApiResponse; @@ -57,7 +57,7 @@ public GatePilotAgentController(GatePilotAgentService agentService) { * @return 节点资源 */ @PostMapping(GatePilotApiPaths.AGENT_REGISTER) - public Mono> register(@Valid @RequestBody RegisterAgentCommand request) { + public Mono> register(@Valid @RequestBody RegisterAgentRequest request) { // 注册只落节点资源,发布策略不在这里决策 return Mono.just(ApiResponse.success(agentService.register(request), "节点注册成功")); } @@ -69,7 +69,7 @@ public Mono> register(@Valid @RequestBody RegisterAgent * @return 节点资源 */ @PostMapping(GatePilotApiPaths.AGENT_HEARTBEAT) - public Mono> heartbeat(@Valid @RequestBody AgentHeartbeatCommand request) { + public Mono> heartbeat(@Valid @RequestBody AgentHeartbeatRequest request) { // 心跳只更新节点状态,保持接口轻量 return Mono.just(ApiResponse.success(agentService.heartbeat(request), "心跳已接收")); } @@ -81,7 +81,7 @@ public Mono> heartbeat(@Valid @RequestBody AgentHeartbe * @return 已发布配置 */ @PostMapping(GatePilotApiPaths.AGENT_CONFIG_PULL) - public Mono> pullConfig(@Valid @RequestBody PullAgentConfigCommand request) { + public Mono> pullConfig(@Valid @RequestBody AgentConfigPullRequest request) { // agent 只拉已发布配置,不接触草稿资源 return Mono.just(ApiResponse.success(agentService.pullConfig(request))); } @@ -94,7 +94,7 @@ public Mono> pullConfig(@Valid @RequestBody P */ @PostMapping(GatePilotApiPaths.AGENT_APPLY_RESULTS) public Mono> reportApplyResult( - @Valid @RequestBody ReportAgentApplyResultCommand request) { + @Valid @RequestBody AgentApplyResultReportRequest request) { // apply 结果最终沉淀到节点状态 return Mono.just(ApiResponse.success(agentService.reportApplyResult(request), "应用结果已接收")); } diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotConfigSnapshotController.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotConfigSnapshotController.java index 5fb0808..1d92b78 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotConfigSnapshotController.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotConfigSnapshotController.java @@ -15,7 +15,7 @@ */ package com.dt.gatepilot.apiserver.interfaces.rest; -import com.dt.gatepilot.apiserver.application.dto.ConfigDiffResult; +import com.dt.gatepilot.apiserver.application.dto.ConfigDiffResponse; import com.dt.gatepilot.apiserver.application.dto.ConfigSnapshotSummaryResponse; import com.dt.gatepilot.apiserver.application.service.GatePilotConfigSnapshotService; import com.dt.gatepilot.apiserver.domain.model.CursorPage; @@ -78,7 +78,7 @@ public Mono>> list( * @return diff 响应 */ @GetMapping(GatePilotApiPaths.CONFIG_SNAPSHOT_DIFF) - public Mono> diff(@RequestParam String namespace, + public Mono> diff(@RequestParam String namespace, @RequestParam String baseVersion, @RequestParam String targetVersion, @RequestParam(required = false) String configShard) { diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotReleaseController.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotReleaseController.java index b6bb7d7..23d7d5d 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotReleaseController.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotReleaseController.java @@ -15,10 +15,10 @@ */ package com.dt.gatepilot.apiserver.interfaces.rest; -import com.dt.gatepilot.apiserver.application.command.CreateReleaseCommand; -import com.dt.gatepilot.apiserver.application.command.CreateRollbackCommand; -import com.dt.gatepilot.apiserver.application.dto.ReleaseDryRunResult; -import com.dt.gatepilot.apiserver.application.dto.ReleaseResult; +import com.dt.gatepilot.apiserver.application.dto.CreateReleaseRequest; +import com.dt.gatepilot.apiserver.application.dto.CreateRollbackRequest; +import com.dt.gatepilot.apiserver.application.dto.ReleaseDryRunResponse; +import com.dt.gatepilot.apiserver.application.dto.ReleaseResponse; import com.dt.gatepilot.apiserver.application.service.GatePilotReleaseService; import com.dt.gatepilot.apiserver.infrastructure.config.ConditionalOnGatePilotApiserverEnabled; import com.getboot.web.api.response.ApiResponse; @@ -55,7 +55,7 @@ public GatePilotReleaseController(GatePilotReleaseService releaseService) { * @return 发布响应 */ @PostMapping - public Mono> createRelease(@Valid @RequestBody CreateReleaseCommand request) { + public Mono> createRelease(@Valid @RequestBody CreateReleaseRequest request) { // apiserver 只创建发布意图,推进交给 controller-manager return Mono.just(ApiResponse.success(releaseService.createRelease(request), "发布请求已创建")); } @@ -67,7 +67,7 @@ public Mono> createRelease(@Valid @RequestBody Create * @return dry-run 响应 */ @PostMapping(GatePilotApiPaths.RELEASE_DRY_RUN) - public Mono> dryRun(@Valid @RequestBody CreateReleaseCommand request) { + public Mono> dryRun(@Valid @RequestBody CreateReleaseRequest request) { // dry-run 只做控制面校验,不生成发布事件 return Mono.just(ApiResponse.success(releaseService.dryRun(request), "dry-run 校验完成")); } @@ -79,7 +79,7 @@ public Mono> dryRun(@Valid @RequestBody CreateR * @return 回滚发布响应 */ @PostMapping(GatePilotApiPaths.RELEASE_ROLLBACK) - public Mono> rollback(@Valid @RequestBody CreateRollbackCommand request) { + public Mono> rollback(@Valid @RequestBody CreateRollbackRequest request) { // 回滚也是发布意图,后续异步 reconcile return Mono.just(ApiResponse.success(releaseService.createRollback(request), "回滚请求已创建")); } diff --git a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotRuntimeAuditController.java b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotRuntimeAuditController.java index 24e7376..05d8ef7 100644 --- a/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotRuntimeAuditController.java +++ b/gatepilot-apiserver/src/main/java/com/dt/gatepilot/apiserver/interfaces/rest/GatePilotRuntimeAuditController.java @@ -15,8 +15,8 @@ */ package com.dt.gatepilot.apiserver.interfaces.rest; -import com.dt.gatepilot.apiserver.application.command.ReportRuntimeAuditCommand; -import com.dt.gatepilot.apiserver.application.dto.RuntimeAuditReportResult; +import com.dt.gatepilot.apiserver.application.dto.RuntimeAuditReportRequest; +import com.dt.gatepilot.apiserver.application.dto.RuntimeAuditReportResponse; import com.dt.gatepilot.apiserver.application.service.GatePilotRuntimeAuditService; import com.dt.gatepilot.apiserver.domain.audit.RuntimeAuditConstants; import com.dt.gatepilot.apiserver.domain.audit.RuntimeAuditQuery; @@ -65,7 +65,7 @@ public GatePilotRuntimeAuditController(GatePilotRuntimeAuditService runtimeAudit * @return 上报结果 */ @PostMapping(GatePilotApiPaths.AGENTS + GatePilotApiPaths.AGENT_AUDITS) - public Mono> report(@Valid @RequestBody ReportRuntimeAuditCommand request) { + public Mono> report(@Valid @RequestBody RuntimeAuditReportRequest request) { // agent 只负责上报,查询由 apiserver 统一提供 return Mono.just(ApiResponse.success(runtimeAuditService.report(request), RuntimeAuditConstants.MESSAGE_AUDIT_ACCEPTED)); diff --git a/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotAgentServiceTest.java b/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotAgentServiceTest.java index d80a534..da0b6d5 100644 --- a/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotAgentServiceTest.java +++ b/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotAgentServiceTest.java @@ -18,9 +18,9 @@ import com.dt.gatepilot.domain.resource.node.GatewayNode; import com.dt.gatepilot.domain.resource.node.GatewayNodeStatus; import com.dt.gatepilot.domain.resource.publish.PublishedConfig; -import com.dt.gatepilot.apiserver.application.command.AgentHeartbeatCommand; -import com.dt.gatepilot.apiserver.application.command.PullAgentConfigCommand; -import com.dt.gatepilot.apiserver.application.dto.AgentConfigPullResult; +import com.dt.gatepilot.apiserver.application.dto.AgentHeartbeatRequest; +import com.dt.gatepilot.apiserver.application.dto.AgentConfigPullRequest; +import com.dt.gatepilot.apiserver.application.dto.AgentConfigPullResponse; import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourceRegistry; import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourceType; import com.dt.gatepilot.apiserver.domain.resource.ResourceMetadataSupport; @@ -49,7 +49,7 @@ class GatePilotAgentServiceTest { @Test void shouldPersistHealthMetricsAndUpstreamHealthFromHeartbeat() { - AgentHeartbeatCommand request = new AgentHeartbeatCommand(); + AgentHeartbeatRequest request = new AgentHeartbeatRequest(); request.setNamespace("default"); request.setNodeId("node-1"); GatewayNodeStatus.NodeHealth health = new GatewayNodeStatus.NodeHealth(); @@ -90,12 +90,12 @@ void shouldPullPublishedConfigBeyondFirstResourcePage() { resourceService.save(resourceType, "default", name, publishedConfig("old-" + index, index, "shard-a")); } resourceService.save(resourceType, "default", "z-target", publishedConfig("v-target", 1000L, "shard-a")); - PullAgentConfigCommand request = new PullAgentConfigCommand(); + AgentConfigPullRequest request = new AgentConfigPullRequest(); request.setNamespace("default"); request.setNodeId("node-1"); request.getConfigShards().add("shard-a"); - AgentConfigPullResult result = agentService.pullConfig(request); + AgentConfigPullResponse result = agentService.pullConfig(request); assertThat(result.isChanged()).isTrue(); assertThat(result.getPublishedConfig().getSpec().getVersion()).isEqualTo("v-target"); diff --git a/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotConfigSnapshotServiceTest.java b/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotConfigSnapshotServiceTest.java index b59f23e..13a90dc 100644 --- a/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotConfigSnapshotServiceTest.java +++ b/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotConfigSnapshotServiceTest.java @@ -19,7 +19,7 @@ import com.dt.gatepilot.domain.resource.meta.ResourceReference; import com.dt.gatepilot.domain.resource.config.GatewayConfigSnapshot; import com.dt.gatepilot.domain.resource.publish.PublishedConfig; -import com.dt.gatepilot.apiserver.application.dto.ConfigDiffResult; +import com.dt.gatepilot.apiserver.application.dto.ConfigDiffResponse; import com.dt.gatepilot.apiserver.application.dto.ConfigSnapshotSummaryResponse; import com.dt.gatepilot.apiserver.domain.model.CursorPage; import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourceRegistry; @@ -59,7 +59,7 @@ void shouldSavePublishedConfigSnapshotAndDiffVersions() { target.getSpec().getUpstreams().add(upstream("upstream-b", "10.0.0.2")); GatewayConfigSnapshot targetSnapshot = snapshotService.saveSnapshot(target, "rel-2", "tester", "target"); - ConfigDiffResult diff = snapshotService.diff("default", "v1", "v2", "shard-a"); + ConfigDiffResponse diff = snapshotService.diff("default", "v1", "v2", "shard-a"); assertThat(targetSnapshot.getMetadata().getName()).isEqualTo("v2-shard-a"); assertThat(diff.isChanged()).isTrue(); @@ -68,7 +68,7 @@ void shouldSavePublishedConfigSnapshotAndDiffVersions() { assertThat(diff.getRemovedUpstreams()).isEqualTo(1); assertThat(diff.getAddedUpstreams()).isEqualTo(1); assertThat(diff.getItems()) - .extracting(ConfigDiffResult.ConfigDiffItem::getChangeType) + .extracting(ConfigDiffResponse.ConfigDiffItem::getChangeType) .contains("ADDED", "CHANGED", "REMOVED"); } diff --git a/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotReleaseServiceTest.java b/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotReleaseServiceTest.java index 5ea1df3..be9572c 100644 --- a/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotReleaseServiceTest.java +++ b/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotReleaseServiceTest.java @@ -15,10 +15,10 @@ */ package com.dt.gatepilot.apiserver.application.service; -import com.dt.gatepilot.apiserver.application.command.CreateReleaseCommand; -import com.dt.gatepilot.apiserver.application.command.CreateRollbackCommand; -import com.dt.gatepilot.apiserver.application.dto.ReleaseDryRunResult; -import com.dt.gatepilot.apiserver.application.dto.ReleaseResult; +import com.dt.gatepilot.apiserver.application.dto.CreateReleaseRequest; +import com.dt.gatepilot.apiserver.application.dto.CreateRollbackRequest; +import com.dt.gatepilot.apiserver.application.dto.ReleaseDryRunResponse; +import com.dt.gatepilot.apiserver.application.dto.ReleaseResponse; import com.dt.gatepilot.apiserver.domain.model.CursorPage; import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourceRegistry; import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourceType; @@ -67,16 +67,16 @@ class GatePilotReleaseServiceTest { @Test void shouldDryRunReleaseWithoutWritingReleaseEvent() { - CreateReleaseCommand request = new CreateReleaseCommand(); + CreateReleaseRequest request = new CreateReleaseRequest(); request.setNamespace("default"); request.setProjectName("missing"); - ReleaseDryRunResult response = releaseService.dryRun(request); + ReleaseDryRunResponse response = releaseService.dryRun(request); CursorPage events = resourceService.list("events", "default", null, 50); assertThat(response.isPassed()).isFalse(); assertThat(response.getMessages()) - .extracting(ReleaseDryRunResult.DryRunMessage::getReason) + .extracting(ReleaseDryRunResponse.DryRunMessage::getReason) .contains("ProjectNotFound"); assertThat(response.getVersion()).matches(DRY_RUN_VERSION_PATTERN); assertThat(response.getVersion()).doesNotContain(String.valueOf(response.getCheckedAt().toEpochMilli())); @@ -86,13 +86,13 @@ void shouldDryRunReleaseWithoutWritingReleaseEvent() { @Test void shouldCreateUniqueReleaseVersionsForBackToBackRequests() { saveProject("default", "game"); - CreateReleaseCommand request = new CreateReleaseCommand(); + CreateReleaseRequest request = new CreateReleaseRequest(); request.setNamespace("default"); request.setProjectName("game"); request.setCreatedBy("operator"); - ReleaseResult first = releaseService.createRelease(request); - ReleaseResult second = releaseService.createRelease(request); + ReleaseResponse first = releaseService.createRelease(request); + ReleaseResponse second = releaseService.createRelease(request); assertThat(first.getVersion()).isNotEqualTo(second.getVersion()); assertThat(first.getVersion()).matches(RELEASE_VERSION_PATTERN); @@ -105,17 +105,17 @@ void shouldValidateProjectScopedRoutesAndReferencesOnDryRun() { saveProject("default", "game"); saveRouteWithMissingRefs(); saveEmptyUpstream(); - CreateReleaseCommand request = new CreateReleaseCommand(); + CreateReleaseRequest request = new CreateReleaseRequest(); request.setNamespace("default"); request.setProjectName("game"); - ReleaseDryRunResult response = releaseService.dryRun(request); + ReleaseDryRunResponse response = releaseService.dryRun(request); assertThat(response.isPassed()).isFalse(); assertThat(response.getRouteCount()).isEqualTo(1); assertThat(response.getUpstreamCount()).isEqualTo(1); assertThat(response.getMessages()) - .extracting(ReleaseDryRunResult.DryRunMessage::getReason) + .extracting(ReleaseDryRunResponse.DryRunMessage::getReason) .contains( GatePilotReleaseConstants.REASON_ROUTE_HOST_MISSING, GatePilotReleaseConstants.REASON_ROUTE_UPSTREAM_MISSING, @@ -131,11 +131,11 @@ void shouldDryRunAllPagesWhenProjectHasLargeRouteSet() { for (int index = 0; index <= GatePilotReleaseConstants.DRY_RUN_LOOKUP_LIMIT; index++) { saveValidRoute(index); } - CreateReleaseCommand request = new CreateReleaseCommand(); + CreateReleaseRequest request = new CreateReleaseRequest(); request.setNamespace("default"); request.setProjectName("game"); - ReleaseDryRunResult response = releaseService.dryRun(request); + ReleaseDryRunResponse response = releaseService.dryRun(request); assertThat(response.isPassed()).isTrue(); assertThat(response.getRouteCount()).isEqualTo(GatePilotReleaseConstants.DRY_RUN_LOOKUP_LIMIT + 1); @@ -147,15 +147,15 @@ void shouldRejectUnsupportedLoadBalanceStrategyOnDryRun() { saveProject("default", "game"); saveUnsupportedLoadBalanceUpstream(); saveRouteForUpstream("hash-route", "hash-upstream"); - CreateReleaseCommand request = new CreateReleaseCommand(); + CreateReleaseRequest request = new CreateReleaseRequest(); request.setNamespace("default"); request.setProjectName("game"); - ReleaseDryRunResult response = releaseService.dryRun(request); + ReleaseDryRunResponse response = releaseService.dryRun(request); assertThat(response.isPassed()).isFalse(); assertThat(response.getMessages()) - .extracting(ReleaseDryRunResult.DryRunMessage::getReason) + .extracting(ReleaseDryRunResponse.DryRunMessage::getReason) .contains(GatePilotReleaseConstants.REASON_UPSTREAM_LOAD_BALANCE_UNSUPPORTED); } @@ -165,15 +165,15 @@ void shouldAllowNacosUpstreamWithoutStaticEndpointsOnDryRun() { saveRegistryCenter(); saveNacosUpstream(); saveRouteForUpstream("nacos-route", "nacos-upstream"); - CreateReleaseCommand request = new CreateReleaseCommand(); + CreateReleaseRequest request = new CreateReleaseRequest(); request.setNamespace("default"); request.setProjectName("game"); - ReleaseDryRunResult response = releaseService.dryRun(request); + ReleaseDryRunResponse response = releaseService.dryRun(request); assertThat(response.isPassed()).isTrue(); assertThat(response.getMessages()) - .extracting(ReleaseDryRunResult.DryRunMessage::getReason) + .extracting(ReleaseDryRunResponse.DryRunMessage::getReason) .doesNotContain(GatePilotReleaseConstants.REASON_UPSTREAM_ENDPOINT_MISSING); } @@ -182,14 +182,14 @@ void shouldCreateRollbackEventAndMarkSnapshot() { saveProject("default", "game"); PublishedConfig config = publishedConfig("default", "game", "v1", "shard-a"); GatewayConfigSnapshot snapshot = snapshotService.saveSnapshot(config, "rel-1", "tester", "stable"); - CreateRollbackCommand request = new CreateRollbackCommand(); + CreateRollbackRequest request = new CreateRollbackRequest(); request.setNamespace("default"); request.setProjectName("game"); request.setTargetVersion("v1"); request.setConfigShard("shard-a"); request.setCreatedBy("operator"); - ReleaseResult response = releaseService.createRollback(request); + ReleaseResponse response = releaseService.createRollback(request); GatewayConfigSnapshot updatedSnapshot = snapshotService.findSnapshot("default", "game", "v1", "shard-a") .orElseThrow(); CursorPage events = resourceService.list("events", "default", null, 50); diff --git a/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotRuntimeAuditServiceTest.java b/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotRuntimeAuditServiceTest.java index 343bca6..53fd39e 100644 --- a/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotRuntimeAuditServiceTest.java +++ b/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/GatePilotRuntimeAuditServiceTest.java @@ -15,8 +15,8 @@ */ package com.dt.gatepilot.apiserver.application.service; -import com.dt.gatepilot.apiserver.application.command.ReportRuntimeAuditCommand; -import com.dt.gatepilot.apiserver.application.dto.RuntimeAuditReportResult; +import com.dt.gatepilot.apiserver.application.dto.RuntimeAuditReportRequest; +import com.dt.gatepilot.apiserver.application.dto.RuntimeAuditReportResponse; import com.dt.gatepilot.apiserver.domain.audit.RuntimeAuditQuery; import com.dt.gatepilot.apiserver.domain.audit.RuntimeAuditRecord; import com.dt.gatepilot.apiserver.domain.model.CursorPage; @@ -36,20 +36,20 @@ class GatePilotRuntimeAuditServiceTest { @Test void shouldReportAndListRuntimeAudits() { GatePilotRuntimeAuditService service = new GatePilotRuntimeAuditService(new InMemoryRuntimeAuditStore()); - ReportRuntimeAuditCommand command = new ReportRuntimeAuditCommand(); + RuntimeAuditReportRequest request = new RuntimeAuditReportRequest(); Instant baseTime = Instant.parse("2026-04-27T00:00:00Z"); - command.setNamespace("default"); - command.setNodeId("node-1"); - command.getEvents().add(item("trace-1", "project-a", "route-a", "SUCCESS", baseTime.plusSeconds(10))); - command.getEvents().add(item("trace-2", "project-b", "route-a", "LIMITED", baseTime.plusSeconds(120))); + request.setNamespace("default"); + request.setNodeId("node-1"); + request.getEvents().add(item("trace-1", "project-a", "route-a", "SUCCESS", baseTime.plusSeconds(10))); + request.getEvents().add(item("trace-2", "project-b", "route-a", "LIMITED", baseTime.plusSeconds(120))); - RuntimeAuditReportResult result = service.report(command); + RuntimeAuditReportResponse response = service.report(request); RuntimeAuditQuery query = query("default", "route-a", 10); query.setProjectName("project-a"); query.setEndedAt(toLocalDateTime(baseTime.plusSeconds(30))); CursorPage page = service.list(query); - assertThat(result.getAcceptedCount()).isEqualTo(2); + assertThat(response.getAcceptedCount()).isEqualTo(2); assertThat(page.getTotal()).isEqualTo(1); assertThat(page.getItems()).hasSize(1); assertThat(page.getItems().get(0).getTraceId()).isEqualTo("trace-1"); @@ -57,12 +57,12 @@ void shouldReportAndListRuntimeAudits() { assertThat(page.getItems().get(0).getNodeId()).isEqualTo("node-1"); } - private ReportRuntimeAuditCommand.RuntimeAuditItem item(String traceId, + private RuntimeAuditReportRequest.RuntimeAuditItem item(String traceId, String projectName, String routeId, String outcome, Instant occurredAt) { - ReportRuntimeAuditCommand.RuntimeAuditItem item = new ReportRuntimeAuditCommand.RuntimeAuditItem(); + RuntimeAuditReportRequest.RuntimeAuditItem item = new RuntimeAuditReportRequest.RuntimeAuditItem(); // 测试只填查询链路会使用的字段 item.setTraceId(traceId); item.setProjectName(projectName); diff --git a/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/ProjectTemplateServiceTest.java b/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/ProjectTemplateServiceTest.java index e238361..43cec11 100644 --- a/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/ProjectTemplateServiceTest.java +++ b/gatepilot-apiserver/src/test/java/com/dt/gatepilot/apiserver/application/service/ProjectTemplateServiceTest.java @@ -15,13 +15,13 @@ */ package com.dt.gatepilot.apiserver.application.service; -import com.dt.gatepilot.apiserver.application.command.CreateReleaseCommand; +import com.dt.gatepilot.apiserver.application.dto.CreateReleaseRequest; import com.dt.gatepilot.apiserver.application.dto.ProjectTemplateApplyResponse; import com.dt.gatepilot.apiserver.application.dto.ProjectTemplateDefaultsResponse; import com.dt.gatepilot.apiserver.application.dto.ProjectTemplateDryRunResponse; import com.dt.gatepilot.apiserver.application.dto.ProjectTemplatePreviewResponse; import com.dt.gatepilot.apiserver.application.dto.ProjectTemplateRenderRequest; -import com.dt.gatepilot.apiserver.application.dto.ReleaseDryRunResult; +import com.dt.gatepilot.apiserver.application.dto.ReleaseDryRunResponse; import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourceRegistry; import com.dt.gatepilot.apiserver.domain.resource.ResourceMetadataSupport; import com.dt.gatepilot.apiserver.infrastructure.persistence.memory.InMemoryGatePilotResourceStore; @@ -65,7 +65,7 @@ void shouldPreviewAndApplyProjectTemplateResources() { ProjectTemplateApplyResponse apply = templateService.apply(request); ProjectTemplatePreviewResponse previewAfterApply = templateService.preview(request); ProjectTemplateApplyResponse secondApply = templateService.apply(request); - ReleaseDryRunResult releaseDryRun = releaseService.dryRun(releaseRequest()); + ReleaseDryRunResponse releaseDryRun = releaseService.dryRun(releaseRequest()); assertThat(dryRun.isPassed()).isTrue(); assertThat(apply.getSavedResourceCount()).isEqualTo(6); @@ -89,7 +89,7 @@ void shouldRejectUnsupportedLoadBalanceStrategy() { assertThat(dryRun.isPassed()).isFalse(); assertThat(dryRun.getMessages()) - .extracting(ReleaseDryRunResult.DryRunMessage::getReason) + .extracting(ReleaseDryRunResponse.DryRunMessage::getReason) .contains(ProjectTemplateConstants.REASON_TEMPLATE_INVALID); } @@ -175,10 +175,10 @@ private ProjectTemplateRenderRequest request() { return request; } - private CreateReleaseCommand releaseRequest() { - CreateReleaseCommand command = new CreateReleaseCommand(); - command.setNamespace("default"); - command.setProjectName("game"); - return command; + private CreateReleaseRequest releaseRequest() { + CreateReleaseRequest request = new CreateReleaseRequest(); + request.setNamespace("default"); + request.setProjectName("game"); + return request; } } diff --git a/gatepilot-console/src/api/client.ts b/gatepilot-console/src/api/client.ts index e09c259..d9d3868 100644 --- a/gatepilot-console/src/api/client.ts +++ b/gatepilot-console/src/api/client.ts @@ -304,7 +304,7 @@ export interface DryRunMessage { message: string; } -export interface ReleaseDryRunResult { +export interface ReleaseDryRunResponse { namespace: string; projectName: string; version: string; @@ -343,7 +343,7 @@ export interface CreateReleaseRequest { targetNodeSelector?: unknown; } -export interface ReleaseResult { +export interface ReleaseResponse { releaseId: string; version: string; phase: string; @@ -629,16 +629,16 @@ export async function applyProjectTemplate( return postJson('/templates/projects/apply', request); } -export async function createRelease(request: CreateReleaseRequest): Promise { - return postJson('/releases', request); +export async function createRelease(request: CreateReleaseRequest): Promise { + return postJson('/releases', request); } -export async function dryRunRelease(request: CreateReleaseRequest): Promise { - return postJson('/releases/dry-run', request); +export async function dryRunRelease(request: CreateReleaseRequest): Promise { + return postJson('/releases/dry-run', request); } -export async function createRollback(request: CreateRollbackRequest): Promise { - return postJson('/releases/rollback', request); +export async function createRollback(request: CreateRollbackRequest): Promise { + return postJson('/releases/rollback', request); } export async function listRuntimeAudits(params: { diff --git a/gatepilot-console/src/views/ProjectTemplateView.vue b/gatepilot-console/src/views/ProjectTemplateView.vue index 8a4eb77..8f0421a 100644 --- a/gatepilot-console/src/views/ProjectTemplateView.vue +++ b/gatepilot-console/src/views/ProjectTemplateView.vue @@ -573,7 +573,7 @@ import { ProjectTemplatePreviewResponse, ProjectTemplateRenderedResource, ProjectTemplateRenderRequest, - ReleaseResult, + ReleaseResponse, applyProjectTemplate, createRelease, dryRunProjectTemplate, @@ -652,7 +652,7 @@ const defaults = ref(null); const preview = ref(null); const dryRun = ref(null); const applyResult = ref(null); -const releaseResult = ref(null); +const releaseResult = ref(null); const selectedResource = ref(null); const platformResources = reactive({ namespaces: [] as PlatformResource[], diff --git a/gatepilot-console/src/views/ReleaseCenterView.vue b/gatepilot-console/src/views/ReleaseCenterView.vue index 7657fff..cdf18f7 100644 --- a/gatepilot-console/src/views/ReleaseCenterView.vue +++ b/gatepilot-console/src/views/ReleaseCenterView.vue @@ -239,8 +239,8 @@ import { ConfigSnapshotSummaryResponse, CreateReleaseRequest, CreateRollbackRequest, - ReleaseDryRunResult, - ReleaseResult, + ReleaseDryRunResponse, + ReleaseResponse, RouteCatalogResponse, createRelease, createRollback, @@ -283,8 +283,8 @@ const loading = ref(false); const busy = ref(false); const error = ref(''); const notice = ref(''); -const dryRun = ref(null); -const releaseResult = ref(null); +const dryRun = ref(null); +const releaseResult = ref(null); const projects = ref([]); const namespaces = ref([]); const versions = ref([]); diff --git a/gatepilot-embedded/src/test/java/com/dt/gatepilot/embedded/infrastructure/controller/GatePilotControllerResourceAdapterTest.java b/gatepilot-embedded/src/test/java/com/dt/gatepilot/embedded/infrastructure/controller/GatePilotControllerResourceAdapterTest.java index 12bf5ce..02679b3 100644 --- a/gatepilot-embedded/src/test/java/com/dt/gatepilot/embedded/infrastructure/controller/GatePilotControllerResourceAdapterTest.java +++ b/gatepilot-embedded/src/test/java/com/dt/gatepilot/embedded/infrastructure/controller/GatePilotControllerResourceAdapterTest.java @@ -36,14 +36,14 @@ import com.dt.gatepilot.domain.resource.publish.PublishedConfig; import com.dt.gatepilot.domain.resource.route.GatewayRoute; import com.dt.gatepilot.domain.resource.upstream.Upstream; -import com.dt.gatepilot.apiserver.application.command.ReportAgentApplyResultCommand; -import com.dt.gatepilot.apiserver.application.command.PullAgentConfigCommand; -import com.dt.gatepilot.apiserver.application.command.CreateReleaseCommand; -import com.dt.gatepilot.apiserver.application.command.CreateRollbackCommand; -import com.dt.gatepilot.apiserver.application.dto.AgentConfigPullResult; +import com.dt.gatepilot.apiserver.application.dto.AgentApplyResultReportRequest; +import com.dt.gatepilot.apiserver.application.dto.AgentConfigPullRequest; +import com.dt.gatepilot.apiserver.application.dto.CreateReleaseRequest; +import com.dt.gatepilot.apiserver.application.dto.CreateRollbackRequest; +import com.dt.gatepilot.apiserver.application.dto.AgentConfigPullResponse; import com.dt.gatepilot.apiserver.domain.model.CursorPage; import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourcePaths; -import com.dt.gatepilot.apiserver.application.dto.ReleaseResult; +import com.dt.gatepilot.apiserver.application.dto.ReleaseResponse; import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourceRegistry; import com.dt.gatepilot.apiserver.domain.resource.GatePilotResourceType; import com.dt.gatepilot.apiserver.domain.resource.ResourceMetadataSupport; @@ -130,20 +130,20 @@ void shouldReconcileReleaseIntentAndMakePublishedConfigPullableByAgent() { saveUpstream(); saveRoute("/game"); saveNode(); - CreateReleaseCommand request = new CreateReleaseCommand(); + CreateReleaseRequest request = new CreateReleaseRequest(); request.setNamespace("default"); request.setProjectName("game"); request.setConfigShard("shard-a"); request.setCreatedBy("operator"); request.setDescription("发布 game 项目"); - ReleaseResult release = releaseService.createRelease(request); + ReleaseResponse release = releaseService.createRelease(request); int processed = reconcileController.reconcileBatch(10); - PullAgentConfigCommand pullRequest = new PullAgentConfigCommand(); + AgentConfigPullRequest pullRequest = new AgentConfigPullRequest(); pullRequest.setNamespace("default"); pullRequest.setNodeId("node-1"); pullRequest.getConfigShards().add("shard-a"); - AgentConfigPullResult pullResponse = agentService.pullConfig(pullRequest); + AgentConfigPullResponse pullResponse = agentService.pullConfig(pullRequest); CursorPage snapshots = resourceService.list("config-snapshots", "default", null, 50); CursorPage events = resourceService.list("events", "default", null, 50); @@ -169,25 +169,25 @@ void shouldReconcileRollbackIntentFromSavedSnapshot() { saveUpstream(); saveRoute("/game"); saveNode(); - ReleaseResult firstRelease = releaseService.createRelease(releaseCommand("operator", "发布 v1")); + ReleaseResponse firstRelease = releaseService.createRelease(releaseCommand("operator", "发布 v1")); reconcileController.reconcileBatch(10); saveRoute("/game-v2"); - ReleaseResult secondRelease = releaseService.createRelease(releaseCommand("operator", "发布 v2")); + ReleaseResponse secondRelease = releaseService.createRelease(releaseCommand("operator", "发布 v2")); reconcileController.reconcileBatch(10); - CreateRollbackCommand rollbackCommand = new CreateRollbackCommand(); + CreateRollbackRequest rollbackCommand = new CreateRollbackRequest(); rollbackCommand.setNamespace("default"); rollbackCommand.setProjectName("game"); rollbackCommand.setTargetVersion(firstRelease.getVersion()); rollbackCommand.setConfigShard("shard-a"); rollbackCommand.setCreatedBy("operator"); - ReleaseResult rollback = releaseService.createRollback(rollbackCommand); + ReleaseResponse rollback = releaseService.createRollback(rollbackCommand); int processed = reconcileController.reconcileBatch(10); - PullAgentConfigCommand pullRequest = new PullAgentConfigCommand(); + AgentConfigPullRequest pullRequest = new AgentConfigPullRequest(); pullRequest.setNamespace("default"); pullRequest.setNodeId("node-1"); pullRequest.getConfigShards().add("shard-a"); - AgentConfigPullResult pullResponse = agentService.pullConfig(pullRequest); + AgentConfigPullResponse pullResponse = agentService.pullConfig(pullRequest); CursorPage events = resourceService.list("events", "default", null, 50); assertThat(secondRelease.getVersion()).isNotEqualTo(firstRelease.getVersion()); @@ -210,10 +210,10 @@ void shouldAggregateMultipleProxyApplyResultsAndKeepScaleOutPullable() { saveRoute("/game"); saveNode("node-1", "shard-a", "game-high", "az-a"); saveNode("node-2", "shard-a", "game-high", "az-b"); - ReleaseResult firstRelease = releaseService.createRelease(releaseCommand("operator", "发布 v1")); + ReleaseResponse firstRelease = releaseService.createRelease(releaseCommand("operator", "发布 v1")); reconcileController.reconcileBatch(10); - AgentConfigPullResult node1Pull = pullConfig("node-1", "shard-a", "game-high", null, null); - AgentConfigPullResult node2Pull = pullConfig("node-2", "shard-a", "game-high", null, null); + AgentConfigPullResponse node1Pull = pullConfig("node-1", "shard-a", "game-high", null, null); + AgentConfigPullResponse node2Pull = pullConfig("node-2", "shard-a", "game-high", null, null); PublishedConfig firstConfig = node1Pull.getPublishedConfig(); reportApply("node-1", firstRelease.getVersion(), firstConfig.getSpec().getConfigHash(), @@ -224,12 +224,12 @@ void shouldAggregateMultipleProxyApplyResultsAndKeepScaleOutPullable() { PublishedConfig refreshedConfig = storedPublishedConfig(firstConfig); saveNode("node-3", "shard-a", "game-high", "az-c"); saveNode("node-4", "shard-a", "other-high", "az-d"); - AgentConfigPullResult scaledNodePull = pullConfig("node-3", "shard-a", "game-high", null, null); - AgentConfigPullResult otherGroupPull = pullConfig("node-4", "shard-a", "other-high", null, null); + AgentConfigPullResponse scaledNodePull = pullConfig("node-3", "shard-a", "game-high", null, null); + AgentConfigPullResponse otherGroupPull = pullConfig("node-4", "shard-a", "other-high", null, null); saveRoute("/game-v2"); - ReleaseResult secondRelease = releaseService.createRelease(releaseCommand("operator", "发布 v2")); + ReleaseResponse secondRelease = releaseService.createRelease(releaseCommand("operator", "发布 v2")); reconcileController.reconcileBatch(10); - AgentConfigPullResult secondPull = pullConfig("node-1", "shard-a", "game-high", + AgentConfigPullResponse secondPull = pullConfig("node-1", "shard-a", "game-high", firstRelease.getVersion(), 1L); assertThat(node2Pull.isChanged()).isTrue(); @@ -266,7 +266,7 @@ void shouldCompleteReleaseApplyPipelineThroughAgentAndProxy() { new InProcessProxyApplyClient(new ProxyConfigApplier(new PublishedConfigCompiler(), runtimeState)) ); - ReleaseResult release = releaseService.createRelease(releaseCommand("operator", "端到端发布")); + ReleaseResponse release = releaseService.createRelease(releaseCommand("operator", "端到端发布")); int processed = reconcileController.reconcileBatch(10); Optional applyResult = coordinator.pullAndApply(); int refreshed = statusController.refreshBatch(10); @@ -306,10 +306,10 @@ void shouldLoadThousandProjectsGenerateConfigAndPageResources() { String targetProjectName = scaleProjectName(SCALE_PROJECT_COUNT - 1); // 发布最后一个项目,逼着 adapter 跨页读取路由和上游 - ReleaseResult release = releaseService.createRelease(releaseCommand(targetProjectName, + ReleaseResponse release = releaseService.createRelease(releaseCommand(targetProjectName, TEST_OPERATOR, "千项目发布压测")); int processed = reconcileController.reconcileBatch(10); - AgentConfigPullResult pullResponse = pullConfig(DEFAULT_NODE_ID, DEFAULT_CONFIG_SHARD, null, null, null); + AgentConfigPullResponse pullResponse = pullConfig(DEFAULT_NODE_ID, DEFAULT_CONFIG_SHARD, null, null, null); PublishedConfig publishedConfig = pullResponse.getPublishedConfig(); assertThat(processed).isEqualTo(1); @@ -358,8 +358,8 @@ void shouldReadDesiredStateBeyondFirstResourcePage() { .containsExactly("game-service"); } - private CreateReleaseCommand releaseCommand(String createdBy, String description) { - CreateReleaseCommand request = new CreateReleaseCommand(); + private CreateReleaseRequest releaseCommand(String createdBy, String description) { + CreateReleaseRequest request = new CreateReleaseRequest(); request.setNamespace("default"); request.setProjectName("game"); request.setConfigShard("shard-a"); @@ -368,8 +368,8 @@ private CreateReleaseCommand releaseCommand(String createdBy, String description return request; } - private CreateReleaseCommand releaseCommand(String projectName, String createdBy, String description) { - CreateReleaseCommand request = releaseCommand(createdBy, description); + private CreateReleaseRequest releaseCommand(String projectName, String createdBy, String description) { + CreateReleaseRequest request = releaseCommand(createdBy, description); request.setProjectName(projectName); return request; } @@ -440,12 +440,12 @@ private void saveNode(String nodeId, String configShard, String isolationGroup, resourceService.save(resourceType, "default", nodeId, node); } - private AgentConfigPullResult pullConfig(String nodeId, + private AgentConfigPullResponse pullConfig(String nodeId, String configShard, String isolationGroup, String currentVersion, Long currentSequence) { - PullAgentConfigCommand request = new PullAgentConfigCommand(); + AgentConfigPullRequest request = new AgentConfigPullRequest(); request.setNamespace("default"); request.setNodeId(nodeId); request.setIsolationGroup(isolationGroup); @@ -456,7 +456,7 @@ private AgentConfigPullResult pullConfig(String nodeId, } private void reportApply(String nodeId, String version, String configHash, ConfigApplyState state, String message) { - ReportAgentApplyResultCommand request = new ReportAgentApplyResultCommand(); + AgentApplyResultReportRequest request = new AgentApplyResultReportRequest(); request.setNamespace("default"); request.setNodeId(nodeId); request.setVersion(version); @@ -559,7 +559,7 @@ public void heartbeat(AgentHeartbeatSnapshot heartbeat) { @Override public Optional pullConfig(AgentConfigCursor cursor) { - PullAgentConfigCommand request = new PullAgentConfigCommand(); + AgentConfigPullRequest request = new AgentConfigPullRequest(); request.setNamespace(cursor.getNamespace()); request.setNodeId(cursor.getNodeId()); request.setZone(cursor.getZone());