mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-24 14:38:45 +00:00
bug4811: a compilable version with massively refactored procedure support, using the Builder pattern
This commit is contained in:
+15
-40
@@ -5,9 +5,6 @@ import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.Collections;
|
||||
import java.util.Optional;
|
||||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
@@ -15,30 +12,22 @@ import java.util.UUID;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.jcraft.jsch.JSchException;
|
||||
import com.jcraft.jsch.SftpException;
|
||||
import com.sap.sailing.landscape.SailingAnalyticsHost;
|
||||
import com.sap.sailing.landscape.SailingAnalyticsMaster;
|
||||
import com.sap.sailing.landscape.SailingAnalyticsMetrics;
|
||||
import com.sap.sailing.landscape.SailingAnalyticsReplica;
|
||||
import com.sap.sailing.landscape.SailingReleaseRepository;
|
||||
import com.sap.sailing.landscape.procedures.StartSailingAnalyticsMaster;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.landscape.Release;
|
||||
import com.sap.sse.landscape.application.ApplicationProcess;
|
||||
import com.sap.sse.landscape.application.impl.ApplicationProcessImpl;
|
||||
import com.sap.sse.landscape.aws.AwsInstance;
|
||||
import com.sap.sse.landscape.aws.AwsLandscape;
|
||||
import com.sap.sse.landscape.aws.Tags;
|
||||
import com.sap.sse.landscape.aws.impl.AwsRegion;
|
||||
import com.sap.sse.landscape.aws.orchestration.CreateDNSBasedLoadBalancerMapping;
|
||||
import com.sap.sse.landscape.aws.orchestration.StartAwsHost;
|
||||
|
||||
import software.amazon.awssdk.regions.Region;
|
||||
import software.amazon.awssdk.services.ec2.model.Instance;
|
||||
import software.amazon.awssdk.services.ec2.model.InstanceType;
|
||||
import software.amazon.awssdk.services.ec2.model.Tag;
|
||||
import software.amazon.awssdk.services.route53.model.RRType;
|
||||
|
||||
/**
|
||||
* Tests for the AWS SDK landscape wrapper in bundle {@code com.sap.sse.landscape.aws}. To run these tests
|
||||
@@ -61,20 +50,22 @@ public class TestProcedures {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConnectivity() throws JSchException, IOException, SftpException, NumberFormatException, InterruptedException, URISyntaxException {
|
||||
final String TARGET_GROUP_NAME_PREFIX = "S-test-";
|
||||
final String hostedZoneName = "wiesen-weg.de";
|
||||
final String hostname = "S-test-"+new Random().nextInt()+"."+hostedZoneName;
|
||||
public void testConnectivity() throws Exception {
|
||||
final String serverName = "test"+new Random().nextInt();
|
||||
final String keyName = "MyKey-"+UUID.randomUUID();
|
||||
final Release release = SailingReleaseRepository.INSTANCE.getLatestMasterRelease();
|
||||
final StartAwsHost<String, SailingAnalyticsMetrics, SailingAnalyticsMaster<String>, SailingAnalyticsReplica<String>, SailingAnalyticsHost<String>> startSailingAnalyticsMaster = new StartSailingAnalyticsMaster<String>(
|
||||
hostname, region, landscape, InstanceType.T2_SMALL, keyName, Optional.of(release), /* databaseConfiguration */ null,
|
||||
/* rabbitConfiguration */ null, /* replicationConfiguration */ null, "axel.uhl@sap.com", Optional.empty());
|
||||
final StartSailingAnalyticsMaster.Builder<String> builder = StartSailingAnalyticsMaster.builder();
|
||||
final StartSailingAnalyticsMaster<String> startSailingAnalyticsMaster = builder
|
||||
.setServerName(serverName)
|
||||
.setLandscape(landscape)
|
||||
.setRegion(region)
|
||||
.setInstanceType(InstanceType.T3_SMALL)
|
||||
.setKeyName(keyName)
|
||||
.setCommaSeparatedEmailAddressesToNotifyOfStartup("axel.uhl@sap.com")
|
||||
.setTags(Optional.of(Tags.with("Hello", "World")))
|
||||
.setOptionalTimeout(optionalTimeout)
|
||||
.build();
|
||||
startSailingAnalyticsMaster.run();
|
||||
final AwsInstance<String, SailingAnalyticsMetrics> host = landscape.launchHost(landscape
|
||||
.getImage(region, "ami-01b4b27a5699e33e6"),
|
||||
InstanceType.T3_SMALL, landscape.getAvailabilityZoneByName(region, "eu-west-2b"), keyName, Collections.singleton(()->"sg-0b2afd48960251280"),
|
||||
Optional.of(Tags.with("Name", "MyHost").and("Hello", "World")));
|
||||
final SailingAnalyticsHost<String> host = startSailingAnalyticsMaster.getHost();
|
||||
try {
|
||||
assertNotNull(host);
|
||||
final Instance instance = landscape.getInstance(host.getInstanceId(), region);
|
||||
@@ -94,24 +85,8 @@ public class TestProcedures {
|
||||
final ApplicationProcess<String, SailingAnalyticsMetrics, SailingAnalyticsMaster<String>, SailingAnalyticsReplica<String>> process = new ApplicationProcessImpl<>(8888, host, "/home/sailing/servers/server");
|
||||
final String envSh = process.getEnvSh(optionalTimeout);
|
||||
assertFalse(envSh.isEmpty());
|
||||
assertTrue(envSh.contains("SERVER_NAME="));
|
||||
assertTrue(envSh.contains("SERVER_NAME="+serverName));
|
||||
assertEquals(14888, process.getTelnetPortToOSGiConsole(optionalTimeout));
|
||||
final AwsLandscape<String, SailingAnalyticsMetrics, SailingAnalyticsMaster<String>, SailingAnalyticsReplica<String>> castLandscape = (AwsLandscape<String, SailingAnalyticsMetrics, SailingAnalyticsMaster<String>, SailingAnalyticsReplica<String>>) landscape;
|
||||
final CreateDNSBasedLoadBalancerMapping<String, SailingAnalyticsMetrics, SailingAnalyticsMaster<String>, SailingAnalyticsReplica<String>, AwsInstance<String, SailingAnalyticsMetrics>> createDNSBasedLoadBalancerMappingProcedure =
|
||||
new CreateDNSBasedLoadBalancerMapping<String, SailingAnalyticsMetrics, SailingAnalyticsMaster<String>, SailingAnalyticsReplica<String>, AwsInstance<String, SailingAnalyticsMetrics>>(
|
||||
process, hostname, TARGET_GROUP_NAME_PREFIX, castLandscape, optionalTimeout);
|
||||
final String wiesenWegId = landscape.getDNSHostedZoneId(hostedZoneName);
|
||||
try {
|
||||
createDNSBasedLoadBalancerMappingProcedure.run();
|
||||
assertNotNull(createDNSBasedLoadBalancerMappingProcedure.getLoadBalancerUsed());
|
||||
assertNotNull(createDNSBasedLoadBalancerMappingProcedure.getMasterTargetGroupCreated());
|
||||
assertEquals(TARGET_GROUP_NAME_PREFIX+process.getServerName(optionalTimeout), createDNSBasedLoadBalancerMappingProcedure.getPublicTargetGroupCreated().getName());
|
||||
} finally {
|
||||
if (createDNSBasedLoadBalancerMappingProcedure.getLoadBalancerUsed() != null) {
|
||||
createDNSBasedLoadBalancerMappingProcedure.getLoadBalancerUsed().delete();
|
||||
landscape.removeDNSRecord(wiesenWegId, hostname, RRType.CNAME, createDNSBasedLoadBalancerMappingProcedure.getLoadBalancerUsed().getDNSName());
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
landscape.terminate(host);
|
||||
landscape.deleteKeyPair(region, keyName);
|
||||
|
||||
Reference in New Issue
Block a user