From 262517f01bdd75b15c9277d32b7e07e901c494c0 Mon Sep 17 00:00:00 2001 From: "shixin.ruan" Date: Mon, 13 Jul 2026 19:06:39 +0800 Subject: [PATCH] [virtualRouterProvider]: exclude owner-empty SLB VIP Do not assign an SLB VIP to the current virtual router when the SLB group has no instance owner. Resolves: ZSTAC-86737 Change-Id: I67988a51260376e0879676301f9b0d15c18b7a9c --- .../service/virtualrouter/VirtualRouterManagerImpl.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugin/virtualRouterProvider/src/main/java/org/zstack/network/service/virtualrouter/VirtualRouterManagerImpl.java b/plugin/virtualRouterProvider/src/main/java/org/zstack/network/service/virtualrouter/VirtualRouterManagerImpl.java index 97dc6e38213..aad2180d9b6 100755 --- a/plugin/virtualRouterProvider/src/main/java/org/zstack/network/service/virtualrouter/VirtualRouterManagerImpl.java +++ b/plugin/virtualRouterProvider/src/main/java/org/zstack/network/service/virtualrouter/VirtualRouterManagerImpl.java @@ -2643,11 +2643,18 @@ public String convertFilterNameToZQL(String filterName) { public List getVirtualRouterVips(String vrUuid, List vipUuids) { List ret = new ArrayList<>(); String peerUuid = haBackend.getVirtualRouterPeerUuid(vrUuid); + Set slbVipUuids = vipUuids.isEmpty() ? Collections.emptySet() : new HashSet<>(Q.New(VipVO.class) + .in(VipVO_.uuid, vipUuids) + .eq(VipVO_.serviceProvider, APPLIANCE_VM_TYPE_SLB) + .select(VipVO_.uuid) + .listValues()); for (String uuid : vipUuids) { List vrUuids = vipProxy.getVrUuidsByNetworkService(VipVO.class.getSimpleName(), uuid); if (vrUuids == null || vrUuids.isEmpty()) { - ret.add(uuid); + if (!slbVipUuids.contains(uuid)) { + ret.add(uuid); + } continue; }