Skip to content

<feature>[kms]: support kms#3307

Open
zstack-robot-1 wants to merge 1 commit intofeature-zsv-5.0.0-vm-support-vtpm-and-secucebootfrom
sync/tao.yang/ZSV-11331@@2
Open

<feature>[kms]: support kms#3307
zstack-robot-1 wants to merge 1 commit intofeature-zsv-5.0.0-vm-support-vtpm-and-secucebootfrom
sync/tao.yang/ZSV-11331@@2

Conversation

@zstack-robot-1
Copy link
Collaborator

DBImpact

Resolves: ZSV-11331

Change-Id: I786f686371626e6674636772676c68747768716a

sync from gitlab !9128

DBImpact

Resolves: ZSV-11331

Change-Id: I786f686371626e6674636772676c68747768716a
@coderabbitai
Copy link

coderabbitai bot commented Feb 6, 2026

功能概览

本次提交通过引入五张新的数据库表(KeyProviderVO、KmsVO、NkpVO、HostKeyIdentityVO、EncryptedResourceKeyRefVO)和相关约束,为ZStack模式添加了KMS密钥管理功能集,同时扩展了SDK以支持相应的API操作。

变更明细

聚合分类 / 文件 摘要
数据库模式更新
conf/db/zsv/V5.0.0__schema.sql
新增五张公共表以支持KMS功能:KeyProviderVO(密钥提供商)、KmsVO(KMS配置及证书)、NkpVO(密钥导出参数)、HostKeyIdentityVO(主机密钥身份)、EncryptedResourceKeyRefVO(加密资源密钥引用),包含外键、索引和约束。
SDK映射配置
sdk/src/main/java/SourceClassMap.java
为KeyProvider、Kms、Nkp及NkpRestoreInfo类型添加双向源-目标映射关系。
KMS创建与删除操作
sdk/src/main/java/org/zstack/sdk/CreateKmsAction.java, sdk/src/main/java/org/zstack/sdk/CreateKmsResult.java, sdk/src/main/java/org/zstack/sdk/DeleteKmsAction.java, sdk/src/main/java/org/zstack/sdk/DeleteKmsResult.java
实现KMS资源的创建和删除API操作,包括参数验证、REST端点配置、同步/异步调用支持和结果处理。
NKP创建、删除与恢复操作
sdk/src/main/java/org/zstack/sdk/CreateNkpAction.java, sdk/src/main/java/org/zstack/sdk/CreateNkpResult.java, sdk/src/main/java/org/zstack/sdk/DeleteNkpAction.java, sdk/src/main/java/org/zstack/sdk/DeleteNkpResult.java, sdk/src/main/java/org/zstack/sdk/BackupNkpAction.java, sdk/src/main/java/org/zstack/sdk/BackupNkpResult.java, sdk/src/main/java/org/zstack/sdk/RestoreNkpAction.java, sdk/src/main/java/org/zstack/sdk/RestoreNkpResult.java, sdk/src/main/java/org/zstack/sdk/UpdateNkpAction.java, sdk/src/main/java/org/zstack/sdk/UpdateNkpResult.java
为NKP(密钥导出配置)提供完整的CRUD操作和备份/恢复功能,包括REST元数据配置和错误处理。
KMS更新与查询操作
sdk/src/main/java/org/zstack/sdk/UpdateKmsAction.java, sdk/src/main/java/org/zstack/sdk/UpdateKmsResult.java, sdk/src/main/java/org/zstack/sdk/QueryKmsAction.java, sdk/src/main/java/org/zstack/sdk/QueryKmsResult.java
实现KMS配置的更新和批量查询功能,支持分页和错误处理。
密钥提供商管理操作
sdk/src/main/java/org/zstack/sdk/QueryKeyProviderAction.java, sdk/src/main/java/org/zstack/sdk/QueryKeyProviderResult.java, sdk/src/main/java/org/zstack/sdk/SetDefaultKeyProviderAction.java, sdk/src/main/java/org/zstack/sdk/SetDefaultKeyProviderResult.java, sdk/src/main/java/org/zstack/sdk/RekeyKeyProviderRefsAction.java, sdk/src/main/java/org/zstack/sdk/RekeyKeyProviderRefsResult.java
提供密钥提供商的查询、设置默认提供商及重新加密密钥引用等操作。
SDK数据传输对象
sdk/src/main/java/org/zstack/sdk/KeyProviderInventory.java, sdk/src/main/java/org/zstack/sdk/KmsInventory.java, sdk/src/main/java/org/zstack/sdk/NkpInventory.java, sdk/src/main/java/org/zstack/sdk/NkpRestoreInfo.java
定义KMS相关实体的数据传输对象,包含标准的getter/setter方法。
测试库增强
testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy
扩展ApiHelper类,新增357行代码支持监控、告警、资源配置等相关API的测试辅助方法。

预估代码审查工作量

🎯 3 (中等) | ⏱️ ~35 分钟

兔子诗

🐰 密钥守护新功能啊,
KMS表格齐整齐,
SDK操作洋洋洒洒,
加密资源保护得当,
一次提交万事通!

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed 标题清晰准确地反映了本次提交的主要变更:引入KMS(密钥管理系统)功能支持。
Description check ✅ Passed 描述与变更集相关,包含问题跟踪号(ZSV-11331)和变更源信息,表明这是从GitLab同步的合并请求。

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

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch sync/tao.yang/ZSV-11331@@2

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

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.

1 participant