java/com.sap.sailing.landscape/src/com/sap/sailing/landscape/SailingReleaseRepository.java
... ...
@@ -7,7 +7,7 @@ public interface SailingReleaseRepository extends ReleaseRepository {
7 7
// TODO bug6203: avoid rate limits by temporarily using the old folder-based releases repo again:
8 8
ReleaseRepository INSTANCE = new FolderBasedReleaseRepositoryImpl("https://releases.sapsailing.com", /* master release name prefix */ "main");
9 9
10
- default void m() { int TODO; }
10
+ default void m() { int TODO_UseGithubReleasesRepositoryAgain; }
11 11
// ReleaseRepository INSTANCE = new GithubReleasesRepository(
12 12
// "SAP", // owner
13 13
// "sailing-analytics", // repo name
java/com.sap.sailing.landscape/src/com/sap/sailing/landscape/impl/LandscapeServiceImpl.java
... ...
@@ -285,9 +285,11 @@ public class LandscapeServiceImpl implements LandscapeService {
285 285
masterHostStartProcedure.run();
286 286
final SailingAnalyticsProcess<String> master = masterHostStartProcedure.getSailingAnalyticsProcess();
287 287
master.getHost().setTerminationProtection(true);
288
- final AwsApplicationReplicaSet<String, SailingAnalyticsMetrics, SailingAnalyticsProcess<String>> replicaSet =
289
- landscape.getApplicationReplicaSet(region, replicaSetName, master, /* replicas */ Collections.emptySet(),
290
- Landscape.WAIT_FOR_PROCESS_TIMEOUT, Optional.ofNullable(optionalKeyName), privateKeyEncryptionPassphrase);
288
+ master.waitUntilAlive(Optional.of(Landscape.WAIT_FOR_HOST_TIMEOUT.get().plus(Landscape.WAIT_FOR_PROCESS_TIMEOUT.get())));
289
+ final AwsApplicationReplicaSet<String, SailingAnalyticsMetrics, SailingAnalyticsProcess<String>> replicaSet = landscape
290
+ .getApplicationReplicaSet(region, replicaSetName, master, /* replicas */ Collections.emptySet(),
291
+ Optional.of(Landscape.WAIT_FOR_HOST_TIMEOUT.get().plus(Landscape.WAIT_FOR_PROCESS_TIMEOUT.get())),
292
+ Optional.ofNullable(optionalKeyName), privateKeyEncryptionPassphrase);
291 293
final String privateIpAdress = master.getHost().getPrivateAddress().getHostAddress();
292 294
logger.info("Adding reverse proxy rule for archive candidate with hostname "+ candidateHostname + " and private ip address " + privateIpAdress);
293 295
reverseProxyCluster.setPlainRedirect(candidateHostname, master, Optional.ofNullable(optionalKeyName), privateKeyEncryptionPassphrase);
java/com.sap.sse.landscape/src/com/sap/sse/landscape/application/ApplicationProcess.java
... ...
@@ -165,6 +165,11 @@ extends Process<RotatingFileBasedLog, MetricsT> {
165 165
return Wait.wait(()->isReady(optionalTimeout), optionalTimeout, Duration.ONE_SECOND.times(5), Level.INFO, ""+this+" not yet ready");
166 166
}
167 167
168
+ default boolean waitUntilAlive(Optional<Duration> optionalTimeout) throws TimeoutException, Exception {
169
+ return Wait.wait(()->isAlive(optionalTimeout), success->success, /* retryOnException */ true,
170
+ optionalTimeout, Duration.ONE_SECOND.times(5), Level.INFO, ""+this+" not yet alive");
171
+ }
172
+
168 173
Release getVersion(Optional<Duration> optionalTimeout, Optional<String> optionalKeyName, byte[] privateKeyEncryptionPassphrase) throws Exception;
169 174
170 175
TimePoint getStartTimePoint(Optional<Duration> optionalTimeout) throws Exception;