Skip to content

<doc>[docs]: <description#4116

Open
ZStack-Robot wants to merge 1 commit into
zsv_5.1.0from
sync/tao.gan/live-migrate-data-volumes-ZSV-12280@@2
Open

<doc>[docs]: <description#4116
ZStack-Robot wants to merge 1 commit into
zsv_5.1.0from
sync/tao.gan/live-migrate-data-volumes-ZSV-12280@@2

Conversation

@ZStack-Robot
Copy link
Copy Markdown
Collaborator

Resolves: ZSV-12280

Change-Id: I63616c67617a64706662726775727a6c6e6e647a

sync from gitlab !10014

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 27, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 8d0bc5c0-6ba8-4894-83e8-687dff3586cd

📥 Commits

Reviewing files that changed from the base of the PR and between ee1f5af and 614b691.

📒 Files selected for processing (1)
  • sdk/src/main/java/org/zstack/sdk/PrimaryStorageMigrateVmAction.java
🚧 Files skipped from review as they are similar to previous changes (1)
  • sdk/src/main/java/org/zstack/sdk/PrimaryStorageMigrateVmAction.java

Walkthrough

在 SDK 的 PrimaryStorageMigrateVmAction 中:将 vmInstanceUuid 标记为 @Deprecated,并新增可选字段 volumeMigrationSpecs(java.util.List),其余请求/响应逻辑未变更。

变更

存储迁移API参数更新

层级 / 文件 摘要
参数定义变更 - vmInstanceUuid废弃与volumeMigrationSpecs新增
sdk/src/main/java/org/zstack/sdk/PrimaryStorageMigrateVmAction.java
vmInstanceUuid字段添加@Deprecated注解;新增公开字段volumeMigrationSpecs,类型为java.util.List,标注为可选参数@Param(required = false, ...),位置在bandwidth之后、systemTags之前。

Mermaid 序列图

(本变更为简单参数定义更新,无需绘制序列图)

代码审查工作量估计

🎯 2 (Simple) | ⏱️ ~10 分钟

庆祝诗

🐰 旧参弃影轻飘去,
新规卷阵静入怀,
四行变更风不动,
SDK 路上又一栈,
轻啜萝卜庆一回。

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive PR 标题为 "[docs]: <description",过于简洁且不清楚,未能准确传达主要变更内容。 建议修改标题为更具体的描述,例如:"Add volumeMigrationSpecs parameter to PrimaryStorageMigrateVmAction and deprecate vmInstanceUuid"。
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed PR 描述虽然简洁但与变更集相关,提及了问题编号 ZSV-12280 和同步信息,与代码变更存在关联。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch sync/tao.gan/live-migrate-data-volumes-ZSV-12280@@2

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/modules/core/pages/vm-migrate-impl-assessment.md`:
- Line 113: 当前文档中存在一个不带语言标记的围栏代码块(```),触发 markdownlint
MD040;请在该代码块的起始反引号后添加合适的语言标记(例如 `text` 或其他最贴切的语言标识),确保渲染一致性并消除 MD040 警告。
- Line 11: The document's Flow counts are inconsistent: reconcile the total Flow
count for handle(PrimaryStorageMigrateVmMsg) so the top summary, the table
entries (`#1`~`#9`), and later references like "5/8 个 Flow" all use the same number;
update either the header (currently "8 个 Flow") or the table (currently listing
`#1`~`#9`) and then change downstream mentions (including the occurrences around
lines 21, 33 and 271) so they consistently state the chosen total and any
derived fractions (e.g., "5/9" if you keep 9) and ensure the note about "5/8 个
Flow" is corrected to the matching numerator/denominator.

In `@docs/modules/core/pages/vm-migrate-volume-specs.md`:
- Line 232: The doc currently contradicts itself about
APIPrimaryStorageMigrateVmMsg: Line 232 says the old fields are kept without
deprecation, while lines 13/31/66 state they are marked with `@Deprecated` for
backward compatibility; decide on one policy and make the text consistent:
either (A) explicitly state that old fields are retained and NOT deprecated, and
update the `@Deprecated` mentions to removed, or (B) state that old fields are
marked with `@Deprecated` for compatibility and update Line 232 to reflect
deprecation; ensure references to APIPrimaryStorageMigrateVmMsg and
volumeMigrationSpecs consistently describe the chosen approach and that
`@Deprecated` is used only where intended.
- Around line 123-137: The fenced code block in vm-migrate-volume-specs.md lacks
a language tag (causing MD040); update the opening fence to include a language
identifier (e.g., change ``` to ```text or ```mermaid) for the block that starts
with "APIPrimaryStorageMigrateVmMsg" and contains the
FlowChain/RootMigrationFlow/DataVolumeMigrationFlow diagram so the linter
recognizes the fence language.

In `@docs/modules/core/pages/vm-migrate-with-snapshots.md`:
- Around line 21-35: The fenced code block starting at the snippet showing
APIPrimaryStorageMigrateVmMsg.withSnapshots /
PrimaryStorageMigrateVmMsg.withSnapshots should be annotated with a language to
satisfy MD040; update the triple-backtick fence to specify `text` so the block
is treated as plain text (affecting the section that mentions
APIPrimaryStorageMigrateVmMsg.withSnapshots,
PrimaryStorageMigrateVmMsg.withSnapshots, PrimaryStorageLiveMigrateVmMsg,
PrimaryStorageOfflineMigrateVmMsg,
MigrateVolumeOnPrimaryStorageMsg.migrateWithSnapshots and
StorageMigrationConstant.WITH_SNAPSHOTS).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 105c5719-157b-43e8-9aeb-90838b8c90bb

📥 Commits

Reviewing files that changed from the base of the PR and between 8740fbd and 9f47e6b.

📒 Files selected for processing (3)
  • docs/modules/core/pages/vm-migrate-impl-assessment.md
  • docs/modules/core/pages/vm-migrate-volume-specs.md
  • docs/modules/core/pages/vm-migrate-with-snapshots.md

Comment thread docs/modules/core/pages/vm-migrate-impl-assessment.md Outdated
Comment thread docs/modules/core/pages/vm-migrate-impl-assessment.md Outdated
Comment thread docs/modules/core/pages/vm-migrate-volume-specs.md Outdated
Comment thread docs/modules/core/pages/vm-migrate-volume-specs.md Outdated
Comment thread docs/modules/core/pages/vm-migrate-with-snapshots.md Outdated
@MatheMatrix MatheMatrix force-pushed the sync/tao.gan/live-migrate-data-volumes-ZSV-12280@@2 branch from 9f47e6b to c5182cc Compare May 27, 2026 06:30
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (3)
docs/modules/core/pages/vm-migrate-with-snapshots.md (1)

21-35: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

补充 fenced code block 语言声明。

Line 21 的代码块未声明语言,建议改为 ```text 以消除 MD040。

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/modules/core/pages/vm-migrate-with-snapshots.md` around lines 21 - 35,
The fenced code block showing the withSnapshots migration flow (containing
symbols like APIPrimaryStorageMigrateVmMsg.withSnapshots,
PrimaryStorageMigrateVmMsg.withSnapshots, PrimaryStorageLiveMigrateVmMsg,
PrimaryStorageOfflineMigrateVmMsg,
MigrateVolumeOnPrimaryStorageMsg.migrateWithSnapshots, and
StorageMigrationConstant.WITH_SNAPSHOTS) is missing a language specifier; update
that markdown fence to declare the language as text (i.e., replace the opening
``` with ```text) so the linter rule MD040 is satisfied.
docs/modules/core/pages/vm-migrate-volume-specs.md (2)

123-137: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

补充代码块语言标识以消除 MD040。

Line 123 的 fenced code block 仍未声明语言,建议改为 ```text(或实际语法对应语言),避免 markdownlint 持续告警。

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/modules/core/pages/vm-migrate-volume-specs.md` around lines 123 - 137,
The fenced code block showing the flow (starting with
APIPrimaryStorageMigrateVmMsg → Interceptor.normalize →
StorageMigrationBase.handle ... APIPrimaryStorageMigrateVmEvent) lacks a
language tag and triggers MD040; edit that block to add a language identifier
such as ```text (or the appropriate language) before the block so markdownlint
stops flagging it; locate the block containing APIPrimaryStorageMigrateVmMsg,
Interceptor.normalize, StorageMigrationBase.handle, chainSubmit, FlowChain,
RootMigrationFlow, DataVolumeMigrationFlow and MigrateVolumeOnPrimaryStorageMsg
and prepend the language token to the opening backticks.

232-232: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

统一 @Deprecated 策略口径,避免前后矛盾。

Line 232“老字段保留不弃用”与 Line 13/31/66“标记 @Deprecated”冲突。请统一为单一策略,避免对 API 契约与实施步骤产生歧义。

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/modules/core/pages/vm-migrate-volume-specs.md` at line 232, The
documentation has conflicting deprecation guidance: Line 232 says keep the old
field without deprecating, while Lines 13/31/66 state to mark fields with
`@Deprecated`; resolve by choosing one consistent strategy for
APIPrimaryStorageMigrateVmMsg—either (A) keep the old field and explicitly
remove any `@Deprecated` markers and update all mentions to state "old field
retained (not deprecated)," or (B) mark the old field as `@Deprecated` everywhere
and document migration to volumeMigrationSpecs, updating all instances (Lines
13/31/66/232) to the same wording; ensure the chosen policy is applied
consistently to APIPrimaryStorageMigrateVmMsg, volumeMigrationSpecs, and any
referenced fields in this doc.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/modules/core/pages/vm-migrate-capability-matrix.md`:
- Around line 32-42: The fenced code block starting at the shown snippet lacks a
language tag which triggers MD040; update the markdown by adding a language
identifier (e.g., use ```text) to the code fence that contains the pseudo-code
loop (the block showing flow with metric.isCapable, metric.isSupportLive,
metric.isSupportOffline, metric.isSupportWithDataVolume,
metric.isSupportWithSnapshot and the final throw) so the linter recognizes it as
a text/code block and MD040 is satisfied.
- Around line 190-207: The fenced code block that starts with
"APIPrimaryStorageMigrateVmMsg" in vm-migrate-capability-matrix.md lacks a
language identifier; update the opening fence from ``` to ```text (or replace
with the appropriate diagram language such as mermaid if you plan to convert to
diagram syntax) so the block is explicitly marked as plain text/diagram and
renders correctly.

---

Duplicate comments:
In `@docs/modules/core/pages/vm-migrate-volume-specs.md`:
- Around line 123-137: The fenced code block showing the flow (starting with
APIPrimaryStorageMigrateVmMsg → Interceptor.normalize →
StorageMigrationBase.handle ... APIPrimaryStorageMigrateVmEvent) lacks a
language tag and triggers MD040; edit that block to add a language identifier
such as ```text (or the appropriate language) before the block so markdownlint
stops flagging it; locate the block containing APIPrimaryStorageMigrateVmMsg,
Interceptor.normalize, StorageMigrationBase.handle, chainSubmit, FlowChain,
RootMigrationFlow, DataVolumeMigrationFlow and MigrateVolumeOnPrimaryStorageMsg
and prepend the language token to the opening backticks.
- Line 232: The documentation has conflicting deprecation guidance: Line 232
says keep the old field without deprecating, while Lines 13/31/66 state to mark
fields with `@Deprecated`; resolve by choosing one consistent strategy for
APIPrimaryStorageMigrateVmMsg—either (A) keep the old field and explicitly
remove any `@Deprecated` markers and update all mentions to state "old field
retained (not deprecated)," or (B) mark the old field as `@Deprecated` everywhere
and document migration to volumeMigrationSpecs, updating all instances (Lines
13/31/66/232) to the same wording; ensure the chosen policy is applied
consistently to APIPrimaryStorageMigrateVmMsg, volumeMigrationSpecs, and any
referenced fields in this doc.

In `@docs/modules/core/pages/vm-migrate-with-snapshots.md`:
- Around line 21-35: The fenced code block showing the withSnapshots migration
flow (containing symbols like APIPrimaryStorageMigrateVmMsg.withSnapshots,
PrimaryStorageMigrateVmMsg.withSnapshots, PrimaryStorageLiveMigrateVmMsg,
PrimaryStorageOfflineMigrateVmMsg,
MigrateVolumeOnPrimaryStorageMsg.migrateWithSnapshots, and
StorageMigrationConstant.WITH_SNAPSHOTS) is missing a language specifier; update
that markdown fence to declare the language as text (i.e., replace the opening
``` with ```text) so the linter rule MD040 is satisfied.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: b2ee4d62-b936-41e9-9b6e-40d58e007968

📥 Commits

Reviewing files that changed from the base of the PR and between 9f47e6b and c5182cc.

📒 Files selected for processing (4)
  • docs/modules/core/pages/vm-migrate-capability-matrix.md
  • docs/modules/core/pages/vm-migrate-impl-assessment.md
  • docs/modules/core/pages/vm-migrate-volume-specs.md
  • docs/modules/core/pages/vm-migrate-with-snapshots.md

Comment thread docs/modules/core/pages/vm-migrate-capability-matrix.md Outdated
Comment thread docs/modules/core/pages/vm-migrate-capability-matrix.md Outdated
@MatheMatrix MatheMatrix force-pushed the sync/tao.gan/live-migrate-data-volumes-ZSV-12280@@2 branch 8 times, most recently from 205e2b3 to ee1f5af Compare May 28, 2026 07:39
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@sdk/src/main/java/org/zstack/sdk/PrimaryStorageMigrateVmAction.java`:
- Around line 31-33: Add a Javadoc block to the deprecated field
dstPrimaryStorageUuid describing why it was deprecated, the recommended
replacement (volumeMigrationSpecs), and the planned removal version (if known);
update the comment above the field dstPrimaryStorageUuid to state the
deprecation reason, point callers to use volumeMigrationSpecs instead, and
include an estimated removal version or "TBD" if unknown.
- Around line 53-54: The field volumeMigrationSpecs in class
PrimaryStorageMigrateVmAction is declared as a raw java.util.List; change it to
a parameterized type (e.g. java.util.List<VolumeMigrationSpec> or the actual
spec class used for "卷级迁移目标") to restore type safety and remove unchecked
warnings, update the import or fully-qualify the generic type as needed, and
ensure any usages (constructors, getters/setters, serializers) referencing
volumeMigrationSpecs are updated to the new generic type to match the change.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: a28245a5-5bb2-4426-b173-5c670433a603

📥 Commits

Reviewing files that changed from the base of the PR and between c5182cc and ee1f5af.

📒 Files selected for processing (1)
  • sdk/src/main/java/org/zstack/sdk/PrimaryStorageMigrateVmAction.java

Comment on lines +31 to 33
@Deprecated
@Param(required = true, nonempty = false, nullElements = false, emptyString = true, noTrim = false)
public java.lang.String dstPrimaryStorageUuid;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

@Deprecated 字段缺少 Javadoc 注释

根据编码规范第 3 条,接口和公开方法必须配有有效的 Javadoc 注释。当标记字段为 @Deprecated 时,应添加 Javadoc 注释说明:

  1. 废弃的原因
  2. 建议使用的替代方案(根据 PR 描述,应该是新增的 volumeMigrationSpecs 字段)
  3. 预计移除的版本(如适用)
📝 建议添加 Javadoc 注释
+    /**
+     * `@deprecated` 使用 {`@link` `#volumeMigrationSpecs`} 替代,以支持卷级别的迁移目标指定
+     */
     `@Deprecated`
     `@Param`(required = true, nonempty = false, nullElements = false, emptyString = true, noTrim = false)
     public java.lang.String dstPrimaryStorageUuid;

As per coding guidelines: 代码应尽量做到自解释,对于较长的注释,需要仔细校对并随代码更新,确保内容正确。接口方法必须配有有效的 Javadoc 注释。

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@sdk/src/main/java/org/zstack/sdk/PrimaryStorageMigrateVmAction.java` around
lines 31 - 33, Add a Javadoc block to the deprecated field dstPrimaryStorageUuid
describing why it was deprecated, the recommended replacement
(volumeMigrationSpecs), and the planned removal version (if known); update the
comment above the field dstPrimaryStorageUuid to state the deprecation reason,
point callers to use volumeMigrationSpecs instead, and include an estimated
removal version or "TBD" if unknown.

Comment on lines +53 to +54
@Param(required = false, nonempty = false, nullElements = false, emptyString = true, noTrim = false)
public java.util.List volumeMigrationSpecs;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

使用原始 List 类型降低了类型安全性

字段 volumeMigrationSpecs 声明为原始类型 java.util.List,没有指定泛型参数。这会导致:

  1. 编译器无法进行类型检查,可能在运行时抛出 ClassCastException
  2. 代码可读性降低,开发者无法从签名了解列表元素的具体类型
  3. 产生编译器警告(unchecked warnings)

根据 PR 描述,该字段用于 "指定卷级迁移目标",应该有明确的元素类型定义。请指定具体的泛型参数(例如 java.util.List<VolumeMigrationSpec> 或其他适当的类型)。

♻️ 建议指定泛型类型
     `@Param`(required = false, nonempty = false, nullElements = false, emptyString = true, noTrim = false)
-    public java.util.List volumeMigrationSpecs;
+    public java.util.List<VolumeMigrationSpec> volumeMigrationSpecs;

注:请根据实际的卷迁移规范类名调整泛型参数。

As per coding guidelines: 命名应尽量用完整的单词组合表达意图,并在名称中体现数据类型或用途。

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@sdk/src/main/java/org/zstack/sdk/PrimaryStorageMigrateVmAction.java` around
lines 53 - 54, The field volumeMigrationSpecs in class
PrimaryStorageMigrateVmAction is declared as a raw java.util.List; change it to
a parameterized type (e.g. java.util.List<VolumeMigrationSpec> or the actual
spec class used for "卷级迁移目标") to restore type safety and remove unchecked
warnings, update the import or fully-qualify the generic type as needed, and
ensure any usages (constructors, getters/setters, serializers) referencing
volumeMigrationSpecs are updated to the new generic type to match the change.

Resolves: ZSV-12280

Change-Id: If1b25061ef00e849ad1b7f1bc6de897432baea41
@MatheMatrix MatheMatrix force-pushed the sync/tao.gan/live-migrate-data-volumes-ZSV-12280@@2 branch from ee1f5af to 614b691 Compare May 28, 2026 10:24
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 28, 2026

Actionable comments posted: 0

@ZStack-Robot
Copy link
Copy Markdown
Collaborator Author

Comment from yaohua.wu:

Review: MR !10014 — ZSV-12280

Background

  • Jira: ZSV-12280 — 5.1.0 更改数据存储支持数据盘指定不同目标(P0 Bug)
  • 需求概述: VM 存储迁移时允许为不同数据盘指定各自目标主存储。
  • 本 MR 范围: zstack 侧 SDK 同步。sdk/.../PrimaryStorageMigrateVmAction.javadstPrimaryStorageUuid@Deprecated,并新增 volumeMigrationSpecs 列表参数。该 SDK action 由 premium 侧 API 消息 @APIParam 自动生成。
  • 关联 MR: zstackio/premium !14094 — per-volume 目标主存储迁移的核心实现(新增 VolumeMigrationSpec、重写 StorageMigrationApiInterceptor 校验、改造 KvmStorageLiveMigrationFlowChain)。本 SDK 文件是其 @APIParam 的镜像产物。

P0 — Critical

无。

P1 — Warning

# File:Line Issue Fix
1 PrimaryStorageMigrateVmAction.java:31-33 dstPrimaryStorageUuid 同时是 @Deprecatedrequired = true,语义自相矛盾:调用方被标记"请勿使用",却又被强制必须传。根因在关联 MR !14094 的 APIPrimaryStorageMigrateVmMsg —— 该字段 @APIParam 未显式设 required=false,默认 required=true,生成出的 SDK 因此也是 required=true。后果:真正"只用 volumeMigrationSpecs"的新调用方式无法实现(框架会先报 dstPrimaryStorageUuid 必填),premium 侧 normalize() 的 either-or 校验形同虚设。 这是生成产物,不要直接改 SDK。请在 premium !14094 把 dstPrimaryStorageUuid 改为 @APIParam(..., required = false),再重新生成 SDK,本文件 required 自然变为 false

P2 — Suggestion

# File:Line Issue Fix
2 PrimaryStorageMigrateVmAction.java:53-54 CodeRabbit 建议把 public java.util.List volumeMigrationSpecs; 改为参数化泛型 List<VolumeMigrationSpec>此建议不适用于本仓:SDK action 是自动生成代码,所有 List 型参数(如同文件的 systemTags)一律用裸 java.util.List,手动加泛型会被下次生成覆盖且引入 SDK 不该依赖的内部类型。 维持裸 java.util.List,无需修改;该 CodeRabbit 线程可关闭。
3 MR 标题 / commit MR 标题为 <doc>[docs]: <description,但当前实际内容是 SDK action 同步(<fix>[sdk]: sync sdk action...)。早期版本含 docs 文件,现已只剩 SDK 文件,标题与内容不符。 把 MR 标题与类型校正为 <fix>[sdk],补全 description 占位符。

Coverage

  • 跨仓一致性:本 SDK volumeMigrationSpecs 与 premium APIPrimaryStorageMigrateVmMsg.volumeMigrationSpecs 字段名/可选性一致 ✓。唯一不一致点是 Test1 #1required 语义,需在 premium 侧修正后回流。
  • 当前 changes_count = 1,仅 SDK 一个文件;merge_status = can_be_merged,目标分支 zsv_5.1.0
  • CodeRabbit 标记 "Actionable comments posted: 0",其早前两条(Javadoc / 泛型)均为生成代码上的噪声,无需采纳。

Verdict: REVISION_REQUIRED

本仓自身无需改动代码(#2 维持原样、#3 仅标题),但 #1required 语义依赖关联 MR !14094 在 API 侧改为 required=false 并重新生成 SDK 后才算闭环。建议两 MR 同步处理后再一起合并。


🤖 Robot Reviewer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants