Skip to content

Commit 104e5c1

Browse files
committed
SSL offloading: add unit tests
1 parent 6e629ca commit 104e5c1

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

api/src/main/java/com/cloud/agent/api/to/LoadBalancerTO.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public LoadBalancerTO(String uuid, String srcIp, int srcPort, String protocol, S
7171
this.destinations = new DestinationTO[destinations.size()];
7272
this.stickinessPolicies = null;
7373
this.sslCert = null;
74-
this.lbProtocol = null;
74+
this.lbProtocol = protocol;
7575
int i = 0;
7676
for (LbDestination destination : destinations) {
7777
this.destinations[i++] = new DestinationTO(destination.getIpAddress(), destination.getDestinationPortStart(), destination.isRevoked(), false);

core/src/test/java/com/cloud/agent/resource/virtualnetwork/ConfigHelperTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
import com.cloud.agent.resource.virtualnetwork.model.LoadBalancerRule;
5858
import com.cloud.agent.resource.virtualnetwork.model.LoadBalancerRules;
5959
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
60+
import com.cloud.network.lb.LoadBalancingRule.LbSslCert;
6061
import com.cloud.network.Networks.TrafficType;
6162

6263
public class ConfigHelperTest {
@@ -223,9 +224,12 @@ public void testDeleteIpAlias() {
223224
protected LoadBalancerConfigCommand generateLoadBalancerConfigCommand() {
224225
final List<LoadBalancerTO> lbs = new ArrayList<>();
225226
final List<LbDestination> dests = new ArrayList<>();
227+
final LbSslCert lbSslCert = new LbSslCert("cert", "key", "password", "chain", "fingerprint", false);
226228
dests.add(new LbDestination(80, 8080, "10.1.10.2", false));
227229
dests.add(new LbDestination(80, 8080, "10.1.10.2", true));
228-
lbs.add(new LoadBalancerTO(UUID.randomUUID().toString(), "64.10.1.10", 80, "tcp", "algo", false, false, false, dests));
230+
LoadBalancerTO loadBalancerTO = new LoadBalancerTO(UUID.randomUUID().toString(), "64.10.1.10", 80, "tcp", "algo", false, false, false, dests);
231+
loadBalancerTO.setLbSslCert(lbSslCert);
232+
lbs.add(loadBalancerTO);
229233

230234
final LoadBalancerTO[] arrayLbs = new LoadBalancerTO[lbs.size()];
231235
lbs.toArray(arrayLbs);

core/src/test/java/com/cloud/network/HAProxyConfiguratorTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import com.cloud.agent.api.routing.LoadBalancerConfigCommand;
3232
import com.cloud.agent.api.to.LoadBalancerTO;
3333
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
34+
import com.cloud.network.lb.LoadBalancingRule.LbSslCert;
3435

3536
import java.util.List;
3637
import java.util.ArrayList;
@@ -122,6 +123,19 @@ public void generateConfigurationTestWithCidrList() {
122123
Assert.assertTrue(result.contains("acl network_allowed src 1.1.1.1 2.2.2.2/24 \n\ttcp-request connection reject if !network_allowed"));
123124
}
124125

126+
@Test
127+
public void generateConfigurationTestWithSslCert() {
128+
LoadBalancerTO lb = new LoadBalancerTO("1", "10.2.0.1", 443, "ssl", "roundrobin", false, false, false, null);
129+
final LbSslCert lbSslCert = new LbSslCert("cert", "key", "password", "chain", "fingerprint", false);
130+
lb.setLbSslCert(lbSslCert);
131+
LoadBalancerTO[] lba = new LoadBalancerTO[1];
132+
lba[0] = lb;
133+
HAProxyConfigurator hpg = new HAProxyConfigurator();
134+
LoadBalancerConfigCommand cmd = new LoadBalancerConfigCommand(lba, "10.0.0.1", "10.1.0.1", "10.1.1.1", null, 1L, "12", false);
135+
String result = genConfig(hpg, cmd);
136+
Assert.assertTrue(result.contains("bind 10.2.0.1:443 ssl crt /etc/cloudstack/ssl/10_2_0_1-443.pem"));
137+
}
138+
125139
private String genConfig(HAProxyConfigurator hpg, LoadBalancerConfigCommand cmd) {
126140
String[] sa = hpg.generateConfiguration(cmd);
127141
StringBuilder sb = new StringBuilder();

0 commit comments

Comments
 (0)