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; }