<fix>[sdk]: ZSTAC-85916 host interface IPv6#4206
Conversation
Allow APIAddHost managementIp to accept IPv6 literals and canonicalize them. Format KVM agent URLs with IPv6 brackets and cover add-host validation with KVM IPv6 case. Resolves: ZSTAC-79206 Change-Id: I6cdaabc8c7d7d62161565b5df6a02ecc61f787b2
Implement waterfall M1/M2 management network IPv6 support. Resolves: ZSTAC-79206 Change-Id: Icfeba77200168f8ff05139824166243a87d4b10d
Use new VXLAN error code constants for remote VTEP invalid IP validation so the new messages do not reuse existing ErrorCodes. Resolves: ZSTAC-79206 Change-Id: Ibd6ea314eda79a25e56f3e75d13e0101ca0c4b44
Select appliance VM bootstrap managementNodeIp by VR management CIDR and reject non-routable IPv6 management endpoints. Resolves: ZSTAC-79206 Change-Id: If4f857d07b043519fc2f6a7b752246f35d0ced8e
Persist managementServerId across management IP changes and add IPv6-safe REST URL helpers with focused coverage. Resolves: ZSTAC-79206 Change-Id: I03d57df9dd199aba5875f1726cb5cc1cc4b1e32e
Add focused coverage for IPv4 and IPv6 management CIDR parsing from ip address command output. Resolves: ZSTAC-79206 Change-Id: Id3776bc971679c3e1b88f14b1f8a19ced6621098
Add focused management IPv6 coverage for NFS URL parsing, Ceph mon URL parsing, and VXLAN VTEP validation. Resolves: ZSTAC-79206 Change-Id: Ia2925ec043a3b2be4d1e3b921ad285a8aebc9aed
Add focused IPv6 coverage for KVM extra IP CIDR selection used by data and migration network paths. Resolves: ZSTAC-79206 Change-Id: I03ea5987d0e4ebc4fdd78dc261297baaf12d0832
Add focused ApplianceVm IPv6 bootstrap JSON tests for MN IP and CIDR fields. Resolves: ZSTAC-79206 Change-Id: Icdbe40c69af9306eb2663a12031774c1b4c64195
Avoid lambda bytecode that blocks KvmHostIpv6Case initialization before IPv6 assertions. Resolves: ZSTAC-79206 Change-Id: I2d1fdced05d1127f6414e4ae0adc491e10b23d7d
Add focused coverage for host management IPv6 canonicalization and invalid endpoint detection without starting the full KVM Spring harness. Resolves: ZSTAC-79206 Change-Id: I731c2168a22e5b52f993319f21835ca9a456a76b
Add API and DB assertions for IPv6 remote VXLAN VTEP creation and invalid remote VTEP rejection. Resolves: ZSTAC-79206 Change-Id: Ieb2368b5f4a274bcad5b192003ac051ae4179552
Avoid relying only on Configurable injection for GlobalConfig instances created during GlobalConfigFacadeImpl startup. Resolves: ZSTAC-79206 Change-Id: I3f975fc23240d88ba08dc870220277cc065f7cfb
Make startup-only objects use explicit facades instead of AspectJ injection during unit tests. Move allocator and VM flow extension lookup to runtime to avoid early plugin registry access. Allow IPv6 remote VTEP addresses through API and SDK validation and cover host/VTEP IPv6 cases. Verification: - mvn -Dtest=KvmHostIpv6Case test - mvn -Dtest=AddRemoteVxlanVtepIpCase test - ./runMavenProfile premium Change-Id: I0146cfab99160e1f784170d051444e4fec69ad83 Related: ZSTAC-79206
Split invalid host management endpoint and reserved IPv6 validation into separate global error codes. Wire Q.New with an explicit DatabaseFacade to avoid startup-time AspectJ injection dependency during tests. Verification: - ./runMavenProfile premium - mvnTest -Dtest=HostApiInterceptorIpv6Case - mvnTest -Dtest=KvmHostIpv6Case Change-Id: I1d575fca0d2fdbb5f6574fc60c7e0ac7a8a2096a Related: ZSTAC-79206
Make KVM extra IP CIDR selection fail soft for blank or malformed agent-reported addresses, preserving management IP fallback semantics. Verification: - mvn -f plugin/kvm/pom.xml -DskipTests install - mvnTest -Dtest=ManagementNetworkIpv6Case Change-Id: Ic7e3b9d2fb3073d68c0f37c32b46cdeb25edcf2b Related: ZSTAC-79206
Codex review found F-002 requires management server IP selection to ignore loopback and link-local addresses. Add the missing guard and focused coverage. Change-Id: Id638e90188b15d9e185495fdd0882f6cfa08a493 Related: ZSTAC-79206
Codex review found the KVM host TCP connection checker still bound to an IPv4-only wildcard and parsed remote addresses by splitting on colon. This breaks IPv6 host management connections. Use wildcard bind and parse InetSocketAddress directly so IPv6 addresses are preserved and normalized. Change-Id: Ib7d448af7d80d341d2115320ea67a92e2287f1dd Related: ZSTAC-79206
Format console, KVM VNC, and legacy HTTP helper URLs with bracketed IPv6 hosts. Resolves: ZSTAC-79206 Change-Id: I202dfd4feca366e2badf88f16d1423dea304aa41
ZSTAC-79206 Change-Id: Ie9c04ecf5b6778c1acdc4900e8726fcd8ae3d81e Related: ZSTAC-79206
ZSTAC-79206 Change-Id: I165d7c0183291574588e3ede9aae3c71ce0ffa2e Related: ZSTAC-79206
ZSTAC-79206 Change-Id: I92d84c8d9521ebfd87b749145f80211db4ac88f5 Related: ZSTAC-79206
Resolves: ZSTAC-79206 Change-Id: I6b47c3a551747faa651e62061c3c11654ac4e183
Resolves: ZSTAC-79206 Change-Id: I4afbbd5db032c177cd901006137becac514fda8f
Resolves: ZSTAC-79206 Change-Id: I807340f81675456e6a13505ffda42b89cd1f16cb
Keep management IPv6 cases compatible with stability tests. Resolves: ZSTAC-79206 Change-Id: I2da8cebf2d0311d56ae560c10a2e6736ad3b74da
Regenerate SDK after VTEP endpoint schema changes. Resolves: ZSTAC-79206 Change-Id: I2ecf2c40b55a0f76331d95f07237dd7c79206f10
Mark the framework failure sentinel case as skipped. It should not be collected by normal UnitTest suites. Related: ZSTAC-79206 Change-Id: I11397fd127f414aba776456c7f706ee066b6da01
…ment-network' management network IPv6 waterfall M1/M2 See merge request zstackio/zstack!9932
Register management.server/prefer.ipv6 as a GlobalConfig so QueryGlobalConfig and runtime updates work. Keep the startup system property override and fall back to the legacy global property before GlobalConfig is available. Resolves: ZSTAC-85520 Change-Id: Ia59515ce9a9a29eeecb9b5ab7d83057823089884
Console proxy returned the MN IPv6 address to clients but selected the listen address from agentIp, which is 127.0.0.1 for the management-node agent. Use the client-facing proxy hostname to choose the wildcard listen address so IPv6 console URLs are reachable. Resolves: ZSTAC-85595 Change-Id: Ief18c9b847f0e0c050ce993a50244533614fd2b8
Fixes ZSTAC-85605 and ZSTAC-85612. SSH keeps raw IPv6 hosts while SCP brackets IPv6 paths. Ansible callback checker now passes -6 for IPv6 nc and nmap. Hotfix verified on 172.24.249.182. Resolves: ZSTAC-79206 Change-Id: Iaa7204e638335c7bf1496b2cd5e0314081e598cb
VXLAN CIDR system tags can contain IPv6 values with double colon. Split tag fields only outside token braces so patterned tag matching and token extraction keep IPv6 CIDRs intact. Resolves: ZSTAC-85618 Change-Id: Ie74a3ac89e1d728953bcaab74146d25e7a7e2edc
Remove the customer-facing management.server.prefer.ipv6 switch.\n\nUse explicit management.server.ip first. When it is not configured, keep IPv4 as the default and fall back to IPv6 only if no IPv4 is available.\n\nWaterfall CR: ZSTAC-79206 CR-001 Change-Id: I14e3e6b3fdad2e4e109d4f9c9f3f344356866762
Build KVM agent HTTP URLs through the IPv6-safe host formatter so live migration cleanup and migrate calls bracket IPv6 host addresses. Resolves: ZSTAC-85636 Change-Id: I0c9fa1eecf7d6eef778cbb4568123d7bd3a836ec
Allow patterned system tag values to contain IPv6 token text. Use dual-stack CIDR matching for migration network selection. Add focused management IPv6 regression assertions. Resolves: ZSTAC-85638 Change-Id: I32f3d1111aa3358fd26da6a3afb23111154f9058
Use a callback URL in the same IP family as the virtual router management NIC. This keeps IPv4-only vrouter agents reachable when MN is dual-stack and its default management IP is IPv6. Resolves: ZSTAC-85527 Change-Id: Iaa630fc59d30c2675db7bbe47cb1b7c8d58bb023
Console proxy returned the MN IPv6 address to clients but selected the listen address from agentIp, which is 127.0.0.1 for the management-node agent. Use the client-facing proxy hostname to choose the wildcard listen address so IPv6 console URLs are reachable. Resolves: ZSTAC-85595 Change-Id: Ief18c9b847f0e0c050ce993a50244533614fd2b8
Add Javadoc for newly added callback URL interface methods per review. Resolves: ZSTAC-85504 Change-Id: Ia72206f1275f7c4e4c278bff4fb29e63c8fbf55b
…-management-network' <fix>[mgt-ipv6]: merge zstack IPv6 management fixes See merge request zstackio/zstack!10042
Resolves: ZSTAC-79206 Change-Id: I485bade7bd875e2b492174f4c2e7e710fee1c0b3
Fixes ZSTAC-85690.\n\nAllow IPv6 ranges on System L3 networks for management network IPv6.\nAlso allow virtual router offerings to use IPv6 management L3. Change-Id: If46c0ab86c018f72d0138df6363689f85dbecaeb
Parse system tag delimiters only outside token braces when matching actual tag values. Resolves: ZSTAC-85618 Change-Id: I7d0a9cf3146a513e56ba0d6d3bff3685bc4716e0
Format IPv6 vRouter agent URLs with brackets and select the MN callback source IP from the route to the agent.\n\nAlso expose local non-loopback IPs to appliance VM bootstrap selection so dual-stack MNs can provide an IPv6 managementNodeIp while keeping management.server.ip on IPv4. Resolves: ZSTAC-85692 Change-Id: If1612db0b39389084a0501fa1065b15cac1d9990
Merge latest feature branch and keep IPv6 vRouter callback URL behavior. Resolves: ZSTAC-79206 Change-Id: I67d1c41833cc649b12239223f2449bf297fadad7
Keep getManagementServerIps narrow and use explicit local fallback only for appliance VM bootstrap CIDR selection. Resolves: ZSTAC-79206 Change-Id: Ib90e405fcef57b0dcbe03703ddcf2fe92682745b
…ment-network' <fix>[core]: register IPv6 prefer config See merge request zstackio/zstack!10050
ReconnectHost TLS cert SAN check now includes Host extraIps before choosing whether to redeploy certs. This keeps IPv6 migration extraIps covered by qemu/libvirt certificates. Resolves: ZSTAC-85638 Change-Id: I41c45203d606742bec0085af60f64e7bf085cf12
…Pv6-management-network' ZSTAC-85638 include extraIps in KVM TLS cert check See merge request zstackio/zstack!10051
Only System L3 management networks reject mixed IPv4 and IPv6 ranges. Normal service L3 dual-stack behavior is unchanged. Resolves: ZSTAC-85709 Change-Id: I2076e6ab924848bbfc509bea1477c82017c18ecf
…t-network' ZSTAC-85709 reject mixed management IP ranges See merge request zstackio/zstack!10072
Jira: ZSTAC-85711 Change-Id: I43bc2b35d033f2f82ee2c7e6c6b43dcc2dfcbf82
Jira: ZSTAC-85711 Verify: - mvn -pl core -DskipTests compile - mvnTest -Dtest=ManagementNetworkIpv6Case blocked before test methods by local GlobalConfig transaction startup error Change-Id: I0f3c094abf49b99d9104dbbf16a64da83c77ed03
Jira: ZSTAC-85711 Verify: - mvn -pl core -DskipTests compile Change-Id: Iecac893d032b76cf86218ca9cbbb0f72b8ecd9aa
…ment-network' <fix>[mgt-ipv6]: support confirmed ip family change See merge request zstackio/zstack!10121
Use bracketed IPv6 for Flyway JDBC URLs. Keep raw IPv6 for mysql CLI hosts. Resolves: ZSTAC-85731 Change-Id: I98c0b86622840f3e2a3780a62325113bf1ed9369
…Pv6-management-network' <fix>[install]: ZSTAC-85731 support IPv6 JDBC host See merge request zstackio/zstack!10134
|
Warning Review limit reached
More reviews will be available in 10 minutes and 45 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (80)
Warning
|
| 层级 / 文件 | 说明 |
|---|---|
前缀长度参数声明 sdk/src/main/java/org/zstack/sdk/SetIpOnHostNetworkInterfaceAction.java |
新增 prefixLength 字段作为可选参数,使用 @Param 注解添加数值范围约束(0L 至 128L),用于在设置主机网络接口 IP 时指定前缀长度。 |
代码审查工作量估计
🎯 1 (微不足道) | ⏱️ ~3 分钟
诗句
一个参数悄然而至,
前缀长度有了约束,
从零到一百二十八,
网络接口更加智慧。🐰✨
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
| Check name | Status | Explanation |
|---|---|---|
| Title check | ✅ Passed | 标题清晰明确地说明了主要变更内容,即为 SDK 添加 IPv6 支持的相关修复。 |
| Description check | ✅ Passed | 描述与变更集相关,解释了为 SetIpOnHostNetworkInterfaceAction 添加 prefixLength 参数以支持 IPv6 配置。 |
| 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 unit tests (beta)
- Create PR with unit tests
- Commit unit tests in branch
sync/shixin.ruan/shixin-ZSTAC-85916@@3
Comment @coderabbitai help to get the list of available commands and usage tips.
Expose prefixLength in SetIpOnHostNetworkInterfaceAction for IPv6 host interface configuration. Resolves: ZSTAC-85916 Change-Id: I982cf6d0c965bdffdd5b5e84f74a43355b986ce6
39840be to
5329923
Compare
ZSTAC-85916: add SDK parameter prefixLength for SetIpOnHostNetworkInterfaceAction.\n\nValidation:\n- git diff --check\n- mvn -pl sdk -DskipTests compile
sync from gitlab !10164