Skip to content

<feature>[ZCF-5485] resubmit zstack after revert - #4671

Open
MatheMatrix wants to merge 60 commits into
feature-1.3.0-zns-cloudfrom
sync/shixin.ruan/shixin-ZCF-5485@@2
Open

<feature>[ZCF-5485] resubmit zstack after revert#4671
MatheMatrix wants to merge 60 commits into
feature-1.3.0-zns-cloudfrom
sync/shixin.ruan/shixin-ZCF-5485@@2

Conversation

@MatheMatrix

Copy link
Copy Markdown
Owner

Recreated as a cross-project MR from the shixin.ruan fork.

sync from gitlab !10699

Add CP-031 canonical contract fixture mirror.

Resolves: ZCF-5485

Change-Id: I7f7636e7aab58b33bdf244dff28322315dbe211e
Additive context reaches the community L2 create pipeline.

Resolves: ZCF-5485

Change-Id: I49a22b3296cafa8adb32546e0fa55786606e8c2a
Keep the additive context change free of whitespace drift.

Resolves: ZCF-5485

Change-Id: I22eeeee92fa9408f753772bb547cfa30bf9cc6b0
Route projection and recovery creates through the shared pipeline.

Resolves: ZCF-5485

Change-Id: I2bbce4ce622619d468c97938744def38639b675e
Preserve typed create origin at the controller extension boundary.

Resolves: ZCF-5485

Change-Id: I750bc3281eb8a92a9dd800c08fecfd6862c295c9
Additive L3 and IP range context overloads for CP-002.

Resolves: ZCF-5485

Change-Id: I6bd6f7ca57ad17d65f70215f5ec71bdda1709e2c
Projection preserves range identity and skips reverse writes.

Resolves: ZCF-5485

Change-Id: I3cd5c15e897f2ac7c430d0eeeaa201f351a28191
Make L3 factory creation context-aware without breaking providers.

Resolves: ZCF-5485

Change-Id: Ie5cce5b84379cbe4c1d723f88da881b65ea4dea0
Keep typed origin through controller and factory creation.

Resolves: ZCF-5485

Change-Id: I0631e2738bcfee48b56ee3766076dd1e2dc0986f
Route L3 range entry points through the context contract.

Resolves: ZCF-5485

Change-Id: Ic477b8d7bcff48e8d1543a567faf2a08f449556f
Add the internal L3 create message and reply contract.

Resolves: ZCF-5485

Change-Id: I9be239ef9242a177fd2d396fd3e5f2e30e3c84f8
Route internal L3 create through the shared flow and typed reply.

Resolves: ZCF-5485

Change-Id: I35a584ad7b42d8aa5166595f7ed8a5c6e8c5effd
Add typed range mutation and safe conversion contracts.

Resolves: ZCF-5485

Change-Id: I89451f4bc100f53da0f5222712a61602edccdee7
Reject stale and unsafe conversions before database writes.

Resolves: ZCF-5485

Change-Id: Ib1cbb824200bf7e1c0adf1dd96a5300e6bc38242
Add typed prepare and complete messages for remote-first mutation.

Resolves: ZCF-5485

Change-Id: I5d543d03937a1cff6738ba82040c93475f2aea73
Verify continuation payloads cannot be changed after construction.

Resolves: ZCF-5485

Change-Id: Ia30fbb92ef2b9cdb2a38e2935432612df6e15ea1
Fail closed before IP allocation dependency writes.

Resolves: ZCF-5485

Change-Id: I51cc310467b0c72b03fe6192b50f6ae585f128f0
Run admission before VmNic and QoS side effects.

Resolves: ZCF-5485

Change-Id: I38b7b25b8d58257d6df2b35b4b69328c386a64b5
Apply admission before cluster and service attachment writes.

Resolves: ZCF-5485

Change-Id: I8beb86c2aef3cb11c0bd0ab16f521d6028d74e42
Keep confirmed provider metadata until remote deletion succeeds.

Resolves: ZCF-5485

Change-Id: I752fa55ba06723df88dd72b8286588a6bfbdee57
Do not report force delete success for confirmed providers.

Resolves: ZCF-5485

Change-Id: Ie483b57be18deca6454286f5160c5c896f0e5bb6
Carry a typed operation token into L2 deletion handling.

Resolves: ZCF-5485

Change-Id: I89736221cd451b5452207ef05a94aa97c2870686
Expose HTTP status and body without changing legacy handlers.

Resolves: ZCF-5485

Change-Id: I6cf4c661305059171b5f869b74dfe51432baa752
Validate generic resource pull and keep provider extension optional.

Resolves: ZCF-5485

Change-Id: Icfbe580a0605e40df2e9a7a6d901b136954dbb84
Verify status and body are preserved.

Resolves: ZCF-5485

Change-Id: Idc030d936da504aa7cb0205f78e1395f51214d3b
Check Cloud mirror against its SHA-256 manifest.

Resolves: ZCF-5485

Change-Id: Ic20852423d42b8f16261a84634a9af0840bf2ea6
Add typed replies for projected range and network conversion messages.

Resolves: ZCF-5485

Change-Id: I01926f8f269a35e59109de6c80e4bceb6e317f51
Java 8 fixture reader; add pull SDK result.

Resolves: ZCF-5485

Change-Id: I019fe4e548db69dbf0df786380eee59f924a1095
Preserve non-regenerable SDK types during generation.

Resolves: ZCF-5485

Change-Id: I918ced7ca2e47a7b93dde02ca18e5e9d2943e157
Keep complete SDK source class mapping.

Resolves: ZCF-5485

Change-Id: I82e3048b97f1b2f862a8ca66db50074fb3427d8c
ruansteve and others added 28 commits August 9, 2026 08:36
Use typed dependency admission constants and preserve REST
compatibility. Keep cascade cleanup progressing and split SDN
validation errors. Remove duplicate fixture scope.

Resolves: ZCF-5485

Change-Id: I9e6b71201ddbcc35b2df85f7dde2749a6668ae77
Use a dedicated code for public ZNS L3 validation.

Tests: premium ZNS contract tests

Resolves: ZCF-5485

Change-Id: I8b67fc2f6b803a72ee49e44d454d7266c8e387b3
Add V5.5.38 schema tables for ZNS binding state.

Tests: git diff --check

Resolves: ZCF-5485

Change-Id: I2644b27f09e7f0c5eadbe84760cc35af176e9c1b
Keep generated SDK files synchronized with the ZNS API.

Change-Id: Iaa9c167ef71f1c4f2b7da09ad901c3476aa410b9
Complete generated SDK types for candidate segment API.

Change-Id: I92bdd19a9e4dbedd4ea7596605e82cb6fb1d2e95
Place new ZNS entity tables in the requested migration.

Change-Id: If1acd0a6e4c222ce298b5755439c49f3135bb71c
Restore the migration version used by this MR baseline.

Change-Id: I452a9f7b219a1d91bad0e47d4a5d0f9010a87bd0
Keep generated SDK results and REST event metadata consistent.

Change-Id: I8ebff4b1c168dac813e5dee10e1bec4b02b87d49
Generate the helper required by the ZNS candidate API.

Resolves: ZCF-5485

Change-Id: If69c2624355f3ac3b6931c3a524a8b5882766b79
Resolves: ZCF-5487

Change-Id: I616d64766f6e796b696a727869626d7a79717a63
Resolves: ZCF-5485

Change-Id: I0bbeb58565782d64a1fd4eb9fbb329c3c74b1b69
Keep generated API documentation byte-for-byte consistent.

Resolves: ZCF-5485

Change-Id: I5fd4e3d7dfe6093a7eed11930ba8abeab6f99fb4
Declare the generic pull message on the controller service.\nCover the
routing contract with a focused XML test.

Resolves: ZCF-5485

Change-Id: I95ff9b880e441b519f4a365c312f27f1b126eaf4
Allow internal L2 create to carry the provider-owned subtype.
This preserves Geneve projection fields without core dependencies.

Change-Id: Ia7c4607377face7a943686cd0ad5c6ef65a6c4b3
Remove the duplicate message field that breaks Gson
serialization.\nCover the internal projection message with a
serialization test.

Resolves: ZCF-5485

Change-Id: I6037be12a8499b4a6f066038d5e3991850383359
Remove the duplicate L3 message field that breaks serialization.\nCover
the L3 projection message in the focused contract test.

Resolves: ZCF-5485

Change-Id: I402ef67328777f0a82e2905b5dea8ca10b653ce6
Add a typed internal IP range create path for ZNS projections.
Preserve the public add-range path and skip reverse SDN writes.

Resolves: ZCF-5485

Change-Id: If1c67834208865cf547442170ea6cc78277471a4
Refresh an existing projection with local-only DHCP service and DNS
state. Advance the applied version only after the service projection
succeeds.

Resolves: ZCF-5485

Change-Id: I16ff29b287904bb5ec0bb77190f583b003b71a29
Keep projected ranges aligned with the authoritative ZNS
snapshot.\nPreserve used addresses when a replacement range still
covers them.

Resolves: ZCF-5485

Change-Id: I8e201fe0ae7b2accdfa0aca1eb416adab08462a5
Implement the L3 resource routing contract on typed range
messages.\nVerify both refresh messages are routable before hot-fix
deployment.

Resolves: ZCF-5485

Change-Id: I7a469f6ce6b8c7af8b2875e6121c9f111d6da315
Add the dedicated Cloud error code used when a bound ZNS network
rejects instance-offering NIC QoS.

Resolves: ZCF-5485

Change-Id: I6d106f041580d362ef5452303187c9287150a67c
Allocate dedicated error codes for targeted pull failure branches.

Change-Id: I9a73db591d4a851e0d5fc5b42e20d1d56361b0a5
Serialize projection-owned L3 type, category, and router tag changes.
Reject stale sources and active dependencies before mutation.

Resolves: ZCF-5485

Change-Id: Ieb55d8ff715afe54b8a0dd3c01d728539f9909c0
Propagate confirmed provider failures and commit provider metadata with
the L2 EO. Keep legacy delete extensions compatible.

Resolves: ZCF-5485

Change-Id: I22fbfc1a31fe3909bcc2b8774fc68b0dc37dc128
Preserve the concrete L2 request type when CloudBus sends the
internal create message to another management node.

Verified: CreateL2NetworkMsgTest 8/8; premium build 143/143.

Change-Id: I582a4d8586a768ad483780738b930be6cb0e14e4
Add dedicated failures for ZNS L2 owner-change state and ownership
integrity checks.

Resolves: ZCF-5485

Change-Id: I1dd61ca02ff33ed34fcfae60076f10aec29508de
Resolves: ZCF-5485

Change-Id: Ie5ce1bf13ea87cf5816815b5750cdb01bfd72939
Regenerate Java SDK for ZNS APIs.

Resolves: ZCF-5485

Change-Id: Id633d5498e16a171c7f6c4d38a2703ab2c061090
@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 5 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: http://open.zstack.ai:20001/code-reviews/zstack-cloud.yaml (via .coderabbit.yaml)

Review profile: CHILL

Plan: Pro

Run ID: e41ea230-8712-474a-a405-60bbbc2ea838

📥 Commits

Reviewing files that changed from the base of the PR and between afecd8f and bfa612a.

⛔ Files ignored due to path filters (17)
  • conf/serviceConfig/sdnController.xml is excluded by !**/*.xml
  • conf/springConfigXml/sdnController.xml is excluded by !**/*.xml
  • sdk/src/main/java/SourceClassMap.java is excluded by !sdk/**
  • sdk/src/main/java/org/zstack/sdk/PullSdnControllerAction.java is excluded by !sdk/**
  • sdk/src/main/java/org/zstack/sdk/PullSdnControllerResult.java is excluded by !sdk/**
  • sdk/src/main/java/org/zstack/sdk/network/zns/GetCandidateZnsSegmentsAction.java is excluded by !sdk/**
  • sdk/src/main/java/org/zstack/sdk/network/zns/GetCandidateZnsSegmentsResult.java is excluded by !sdk/**
  • sdk/src/main/java/org/zstack/sdk/network/zns/GetZnsSegmentSyncStatusAction.java is excluded by !sdk/**
  • sdk/src/main/java/org/zstack/sdk/network/zns/GetZnsSegmentSyncStatusResult.java is excluded by !sdk/**
  • sdk/src/main/java/org/zstack/sdk/network/zns/QueryZnsSegmentRefAction.java is excluded by !sdk/**
  • sdk/src/main/java/org/zstack/sdk/network/zns/QueryZnsSegmentRefResult.java is excluded by !sdk/**
  • sdk/src/main/java/org/zstack/sdk/network/zns/UseZnsSegmentAction.java is excluded by !sdk/**
  • sdk/src/main/java/org/zstack/sdk/network/zns/UseZnsSegmentResult.java is excluded by !sdk/**
  • sdk/src/main/java/org/zstack/sdk/network/zns/ZnsSegmentCandidateInventory.java is excluded by !sdk/**
  • sdk/src/main/java/org/zstack/sdk/network/zns/ZnsSegmentProjectionPlan.java is excluded by !sdk/**
  • sdk/src/main/java/org/zstack/sdk/network/zns/ZnsSegmentRefInventory.java is excluded by !sdk/**
  • sdk/src/main/java/org/zstack/sdk/network/zns/ZnsSegmentSyncOperationInventory.java is excluded by !sdk/**
📒 Files selected for processing (70)
  • compute/src/main/java/org/zstack/compute/vm/VmAllocateNicFlow.java
  • conf/db/upgrade/V5.5.38__schema.sql
  • core/src/main/java/org/zstack/core/rest/RESTFacadeImpl.java
  • header/src/main/java/org/zstack/header/network/CompleteZnsSegmentMutationMsg.java
  • header/src/main/java/org/zstack/header/network/NetworkConfigLocalContinuation.java
  • header/src/main/java/org/zstack/header/network/NetworkConfigMutation.java
  • header/src/main/java/org/zstack/header/network/NetworkConfigMutationExtensionPoint.java
  • header/src/main/java/org/zstack/header/network/NetworkDependencyAdmissionExtensionPoint.java
  • header/src/main/java/org/zstack/header/network/NetworkDependencyAdmissionRequest.java
  • header/src/main/java/org/zstack/header/network/PrepareZnsSegmentMutationMsg.java
  • header/src/main/java/org/zstack/header/network/ProjectedMutationPolicy.java
  • header/src/main/java/org/zstack/header/network/l2/ConvertL2VlanModeMsg.java
  • header/src/main/java/org/zstack/header/network/l2/ConvertL2VlanModeReply.java
  • header/src/main/java/org/zstack/header/network/l2/CreateL2NetworkMsg.java
  • header/src/main/java/org/zstack/header/network/l2/CreateL2NetworkReply.java
  • header/src/main/java/org/zstack/header/network/l2/ExternalNetworkRef.java
  • header/src/main/java/org/zstack/header/network/l2/L2DeleteConfirmExtensionPoint.java
  • header/src/main/java/org/zstack/header/network/l2/L2NetworkCreateExtensionPoint.java
  • header/src/main/java/org/zstack/header/network/l2/L2NetworkDeleteExtensionPoint.java
  • header/src/main/java/org/zstack/header/network/l2/L2NetworkDeletionMsg.java
  • header/src/main/java/org/zstack/header/network/l2/L2NetworkFactory.java
  • header/src/main/java/org/zstack/header/network/l2/L2NetworkInventoryDoc_zh_cn.groovy
  • header/src/main/java/org/zstack/header/network/l2/NetworkCreateContext.java
  • header/src/main/java/org/zstack/header/network/l2/NetworkOperationOrigin.java
  • header/src/main/java/org/zstack/header/network/l3/AddIpRangeMsg.java
  • header/src/main/java/org/zstack/header/network/l3/AddIpRangeReply.java
  • header/src/main/java/org/zstack/header/network/l3/AfterAddIpRangeExtensionPoint.java
  • header/src/main/java/org/zstack/header/network/l3/ConvertL3NetworkTypeMsg.java
  • header/src/main/java/org/zstack/header/network/l3/ConvertL3NetworkTypeReply.java
  • header/src/main/java/org/zstack/header/network/l3/CreateL3NetworkMsg.java
  • header/src/main/java/org/zstack/header/network/l3/CreateL3NetworkReply.java
  • header/src/main/java/org/zstack/header/network/l3/DeleteProjectedIpRangeMsg.java
  • header/src/main/java/org/zstack/header/network/l3/DeleteProjectedIpRangeReply.java
  • header/src/main/java/org/zstack/header/network/l3/IpRangeFactory.java
  • header/src/main/java/org/zstack/header/network/l3/L3NetworkFactory.java
  • header/src/main/java/org/zstack/header/network/l3/SdnControllerL3.java
  • header/src/main/java/org/zstack/header/network/l3/UpdateProjectedDnsMsg.java
  • header/src/main/java/org/zstack/header/network/l3/UpdateProjectedIpRangeMsg.java
  • header/src/main/java/org/zstack/header/network/l3/UpdateProjectedIpRangeReply.java
  • header/src/main/java/org/zstack/header/rest/RESTFacade.java
  • header/src/main/java/org/zstack/header/rest/SyncHttpResponse.java
  • header/src/main/java/org/zstack/header/rest/SyncHttpStatusBodyCallHandler.java
  • network/src/main/java/org/zstack/network/l2/L2NetworkCascadeExtension.java
  • network/src/main/java/org/zstack/network/l2/L2NetworkManagerImpl.java
  • network/src/main/java/org/zstack/network/l2/L2NoVlanL2NetworkFactory.java
  • network/src/main/java/org/zstack/network/l2/L2NoVlanNetwork.java
  • network/src/main/java/org/zstack/network/l2/L2VlanNetworkFactory.java
  • network/src/main/java/org/zstack/network/l3/AddressPoolIpRangeFactory.java
  • network/src/main/java/org/zstack/network/l3/AttachNetworkServiceToL3Msg.java
  • network/src/main/java/org/zstack/network/l3/L3BasicNetwork.java
  • network/src/main/java/org/zstack/network/l3/L3NetworkManagerImpl.java
  • network/src/main/java/org/zstack/network/l3/NormalIpRangeFactory.java
  • plugin/sdnController/src/main/java/org/zstack/sdnController/SdnController.java
  • plugin/sdnController/src/main/java/org/zstack/sdnController/SdnControllerApiInterceptor.java
  • plugin/sdnController/src/main/java/org/zstack/sdnController/SdnControllerBase.java
  • plugin/sdnController/src/main/java/org/zstack/sdnController/SdnControllerL2.java
  • plugin/sdnController/src/main/java/org/zstack/sdnController/SdnControllerManagerImpl.java
  • plugin/sdnController/src/main/java/org/zstack/sdnController/header/APIPullSdnControllerEvent.java
  • plugin/sdnController/src/main/java/org/zstack/sdnController/header/APIPullSdnControllerEventDoc_zh_cn.groovy
  • plugin/sdnController/src/main/java/org/zstack/sdnController/header/APIPullSdnControllerMsg.java
  • plugin/sdnController/src/main/java/org/zstack/sdnController/header/APIPullSdnControllerMsgDoc_zh_cn.groovy
  • plugin/sdnController/src/main/java/org/zstack/sdnController/header/PullSdnControllerMsg.java
  • plugin/sdnController/src/main/java/org/zstack/sdnController/header/PullSdnControllerReply.java
  • test/src/test/java/org/zstack/test/core/rest/TestSyncHttpResponse.java
  • test/src/test/java/org/zstack/test/integration/network/l2/CreateL2NetworkMsgTest.java
  • test/src/test/java/org/zstack/test/integration/network/sdnController/SdnControllerServiceConfigTest.java
  • test/src/test/java/org/zstack/test/integration/networkservice/provider/zns/NetworkConfigMutationTest.java
  • test/src/test/java/org/zstack/test/integration/networkservice/provider/zns/ProjectedMutationPolicyTest.java
  • testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy
  • utils/src/main/java/org/zstack/utils/clouderrorcode/CloudOperationsErrorCode.java

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

Regenerate ZNS API helpers and L2 inventory documentation.

Resolves: ZCF-5485

Change-Id: I739f13fbcf5c8472c89dfc7ea2fea6fa12eb84c9
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