From 2dcf85f43f8ce669efcbb1b8889f03b6a06c596e Mon Sep 17 00:00:00 2001 From: "shixin.ruan" Date: Tue, 19 May 2026 08:17:27 +0800 Subject: [PATCH 1/2] [zns]: propagate vm system tags Pass VM API system tags into AllocateHostMsg so host allocator filters can honor znsNicMode during VM placement. Resolves: ZCF-3728 Change-Id: I4fbb522440931aad005ceb82a37a29236bd35b27 --- .../main/java/org/zstack/compute/vm/VmAllocateHostFlow.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/compute/src/main/java/org/zstack/compute/vm/VmAllocateHostFlow.java b/compute/src/main/java/org/zstack/compute/vm/VmAllocateHostFlow.java index ee542fe36ee..3059e9dfc19 100755 --- a/compute/src/main/java/org/zstack/compute/vm/VmAllocateHostFlow.java +++ b/compute/src/main/java/org/zstack/compute/vm/VmAllocateHostFlow.java @@ -21,6 +21,7 @@ import org.zstack.header.host.HostVO; import org.zstack.header.image.ImageConstant.ImageMediaType; import org.zstack.header.image.ImageInventory; +import org.zstack.header.message.APIMessage; import org.zstack.header.message.MessageReply; import org.zstack.header.network.l3.L3NetworkInventory; import org.zstack.header.storage.primary.PrimaryStorageClusterRefVO; @@ -95,6 +96,9 @@ public String call(L3NetworkInventory arg) { })); msg.setImage(image); msg.setVmOperation(spec.getCurrentVmOperation().toString()); + if (spec.getMessage() instanceof APIMessage && ((APIMessage) spec.getMessage()).getSystemTags() != null) { + msg.setSystemTags(new ArrayList<>(((APIMessage) spec.getMessage()).getSystemTags())); + } if (spec.getVmInventory().getZoneUuid() != null) { msg.setZoneUuid(spec.getVmInventory().getZoneUuid()); From dd5088cdd7fc816ed5a26c14b1c36e1da4da9325 Mon Sep 17 00:00:00 2001 From: "shixin.ruan" Date: Tue, 19 May 2026 22:31:28 +0800 Subject: [PATCH 2/2] [vmware]: stabilize VmwareTest host sync Avoid bad host allocator lambda bytecode. Set KVM capacity sync timeout explicitly. Test: VmwareTest passed on root@172.20.13.240. Resolves: ZCF-3728 Change-Id: I5db26740b9fef0c0ba1b31096a8fdc3659db412b --- .../compute/allocator/HostAllocatorManagerImpl.java | 8 ++++++-- .../java/org/zstack/kvm/KVMHostCapacityExtension.java | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/compute/src/main/java/org/zstack/compute/allocator/HostAllocatorManagerImpl.java b/compute/src/main/java/org/zstack/compute/allocator/HostAllocatorManagerImpl.java index a6598082004..2f59c6fb49f 100755 --- a/compute/src/main/java/org/zstack/compute/allocator/HostAllocatorManagerImpl.java +++ b/compute/src/main/java/org/zstack/compute/allocator/HostAllocatorManagerImpl.java @@ -237,11 +237,15 @@ public String call(HostUsedCpuMem arg) { } }); - hostUuids.stream().filter(huuid -> !hostHasVms.contains(huuid)).forEach(huuid -> { + for (String huuid : hostUuids) { + if (hostHasVms.contains(huuid)) { + continue; + } + HostUsedCpuMem s = new HostUsedCpuMem(); s.hostUuid = huuid; hostUsedCpuMemList.add(s); - }); + } for (final HostUsedCpuMem s : hostUsedCpuMemList) { new HostCapacityUpdater(s.hostUuid).run(new HostCapacityUpdaterRunnable() { diff --git a/plugin/kvm/src/main/java/org/zstack/kvm/KVMHostCapacityExtension.java b/plugin/kvm/src/main/java/org/zstack/kvm/KVMHostCapacityExtension.java index 5ad18e49c9f..16ff667f21d 100755 --- a/plugin/kvm/src/main/java/org/zstack/kvm/KVMHostCapacityExtension.java +++ b/plugin/kvm/src/main/java/org/zstack/kvm/KVMHostCapacityExtension.java @@ -16,6 +16,7 @@ import org.zstack.resourceconfig.ResourceConfigFacade; import java.util.Map; +import java.util.concurrent.TimeUnit; public class KVMHostCapacityExtension implements KVMHostConnectExtensionPoint, HostConnectionReestablishExtensionPoint { @@ -31,6 +32,7 @@ public class KVMHostCapacityExtension implements KVMHostConnectExtensionPoint, H public void reportCapacity(HostInventory host, Completion completion) { CheckHostCapacityMsg msg = new CheckHostCapacityMsg(); msg.setHostUuid(host.getUuid()); + msg.setTimeout(TimeUnit.MINUTES.toMillis(30)); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, host.getUuid()); bus.send(msg, new CloudBusCallBack(completion) { @Override