From 70c0a40a8142a4b8f3f8f0f6bb134c86cba35940 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Thu, 22 Feb 2024 13:11:46 -0500 Subject: [PATCH 1/3] FR03: Add UDP LB rules --- .../main/java/org/apache/cloudstack/service/NsxApiClient.java | 2 ++ .../src/main/java/org/apache/cloudstack/service/NsxElement.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApiClient.java b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApiClient.java index fe02948b9899..6091130c4764 100644 --- a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApiClient.java +++ b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApiClient.java @@ -629,6 +629,8 @@ private String getLbActiveMonitorPath(String lbServerPoolName, String port, Stri LBUdpMonitorProfile lbUdpMonitorProfile = new LBUdpMonitorProfile.Builder(UDP_MONITOR_PROFILE) .setDisplayName(lbMonitorProfileId) .setMonitorPort(Long.parseLong(port)) + .setSend("") + .setReceive("") .build(); lbActiveMonitor.patch(lbMonitorProfileId, lbUdpMonitorProfile); } diff --git a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java index ce27a7ddd24e..76e28d59c9f6 100644 --- a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java +++ b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java @@ -664,7 +664,7 @@ public boolean applyLBRules(Network network, List rules) thro .setPublicPort(String.valueOf(loadBalancingRule.getSourcePortStart())) .setPrivatePort(String.valueOf(loadBalancingRule.getDefaultPortStart())) .setRuleId(loadBalancingRule.getId()) - .setProtocol(loadBalancingRule.getProtocol().toUpperCase(Locale.ROOT)) + .setProtocol(loadBalancingRule.getLbProtocol().toUpperCase(Locale.ROOT)) .setAlgorithm(loadBalancingRule.getAlgorithm()) .build(); if (loadBalancingRule.getState() == FirewallRule.State.Add) { From 702a2cb2d4b2f666e2b64c33f7d2ad612ff6f82f Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Thu, 22 Feb 2024 11:40:30 -0500 Subject: [PATCH 2/3] NSX: Cleanup PF rule associated to an expunged VM --- .../main/java/org/apache/cloudstack/service/NsxElement.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java index 76e28d59c9f6..f69cc0d1befb 100644 --- a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java +++ b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java @@ -535,8 +535,7 @@ public boolean applyPFRules(Network network, List rules) thr for (PortForwardingRule rule : rules) { IPAddressVO publicIp = ApiDBUtils.findIpAddressById(rule.getSourceIpAddressId()); UserVm vm = ApiDBUtils.findUserVmById(rule.getVirtualMachineId()); - if ((vm == null && (rule.getState() != FirewallRule.State.Revoke)) || - (vm != null && networkModel.getNicInNetwork(vm.getId(), network.getId()) == null)) { + if (vm == null && rule.getState() != FirewallRule.State.Revoke) { continue; } NsxOpObject nsxObject = getNsxOpObject(network); From 5a74c3ef9ad2007d34b63ec548818e218dcc81c9 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Fri, 23 Feb 2024 11:03:13 -0500 Subject: [PATCH 3/3] fix unit test --- .../java/org/apache/cloudstack/service/NsxElementTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/network-elements/nsx/src/test/java/org/apache/cloudstack/service/NsxElementTest.java b/plugins/network-elements/nsx/src/test/java/org/apache/cloudstack/service/NsxElementTest.java index 318542c40db8..ff7fa5427ee7 100644 --- a/plugins/network-elements/nsx/src/test/java/org/apache/cloudstack/service/NsxElementTest.java +++ b/plugins/network-elements/nsx/src/test/java/org/apache/cloudstack/service/NsxElementTest.java @@ -392,7 +392,7 @@ public void testApplyLBRules_add() throws ResourceUnavailableException { LoadBalancerVO lb = new LoadBalancerVO(null, null, null, 0L, 8080, 8081, null, 0L, 0L, 1L, null, null); lb.setState(FirewallRule.State.Add); LoadBalancingRule.LbDestination destination = new LoadBalancingRule.LbDestination(6443, 6443, "172.30.110.11", false); - LoadBalancingRule rule = new LoadBalancingRule(lb, List.of(destination), null, null, new Ip("10.1.13.10")); + LoadBalancingRule rule = new LoadBalancingRule(lb, List.of(destination), null, null, new Ip("10.1.13.10"), null, "TCP"); VpcVO vpc = Mockito.mock(VpcVO.class); @@ -415,7 +415,7 @@ public void testApplyLBRules_delete() throws ResourceUnavailableException { LoadBalancerVO lb = new LoadBalancerVO(null, null, null, 0L, 8080, 8081, null, 0L, 0L, 1L, null, null); lb.setState(FirewallRule.State.Revoke); LoadBalancingRule.LbDestination destination = new LoadBalancingRule.LbDestination(6443, 6443, "172.30.110.11", false); - LoadBalancingRule rule = new LoadBalancingRule(lb, List.of(destination), null, null, new Ip("10.1.13.10")); + LoadBalancingRule rule = new LoadBalancingRule(lb, List.of(destination), null, null, new Ip("10.1.13.10"), null, "TCP"); VpcVO vpc = Mockito.mock(VpcVO.class);