diff --git a/java/com.sap.sailing.landscape/src/com/sap/sailing/landscape/impl/LandscapeServiceImpl.java b/java/com.sap.sailing.landscape/src/com/sap/sailing/landscape/impl/LandscapeServiceImpl.java index 8f39bc8f88f..cce95566198 100644 --- a/java/com.sap.sailing.landscape/src/com/sap/sailing/landscape/impl/LandscapeServiceImpl.java +++ b/java/com.sap.sailing.landscape/src/com/sap/sailing/landscape/impl/LandscapeServiceImpl.java @@ -1600,7 +1600,7 @@ public class LandscapeServiceImpl implements LandscapeService { port.orElse(443 /* defaults to HTTPS */)), bearerToken); } - private >, String, SailingAnalyticsMetrics, SailingAnalyticsProcess>> com.sap.sse.landscape.aws.orchestration.ShardProcedure.Builder>, String, SailingAnalyticsMetrics, SailingAnalyticsProcess> createShardBuilder() { + private >, String, SailingAnalyticsMetrics, SailingAnalyticsProcess>> com.sap.sse.landscape.aws.orchestration.CreateShard.Builder>, String, SailingAnalyticsMetrics, SailingAnalyticsProcess> createShardBuilder() { return CreateShard., BuilderT, String> builder(); } @@ -1625,7 +1625,7 @@ public class LandscapeServiceImpl implements LandscapeService { for (String leaderboardName : selectedleaderboards) { shardingKeys.add(server.getLeaderboardShardingKey(leaderboardName)); } - removeShardingKeyFromShardBuilder().setLandscape(getLandscape()).setShardingkeys(shardingKeys) + removeShardingKeyFromShardBuilder().setLandscape(getLandscape()).setShardingKeys(shardingKeys) .setReplicaset(applicationReplicaSet).setRegion(region).setShardName(shardName) .setPassphrase(passphraseForPrivateKeyDecription).build().run(); } @@ -1641,7 +1641,7 @@ public class LandscapeServiceImpl implements LandscapeService { for (String s : selectedLeaderboards) { shardingkeys.add(server.getLeaderboardShardingKey(s)); } - appendShardingKeyToShardBuilder().setLandscape(getLandscape()).setShardingkeys(shardingkeys) + appendShardingKeyToShardBuilder().setLandscape(getLandscape()).setShardingKeys(shardingkeys) .setReplicaset(applicationReplicaSet).setRegion(region).setShardName(shardName) .setPassphrase(passphraseForPrivateKeyDecription).build().run(); } @@ -1669,8 +1669,15 @@ public class LandscapeServiceImpl implements LandscapeService { for (final String s : selectedLeaderboardNames) { shardingkeys.add(server.getLeaderboardShardingKey(s)); } - createShardBuilder().setLandscape(getLandscape()).setShardingkeys(shardingkeys) - .setReplicaset(applicationReplicaSet).setRegion(region).setShardName(shardName) - .setPassphrase(passphraseForPrivateKeyDecription).build().run(); + createShardBuilder() + .setLandscape(getLandscape()) + .setTargetGroupNamePrefix(LandscapeService.SAILING_TARGET_GROUP_NAME_PREFIX) + .setShardingKeys(shardingkeys) + .setReplicaset(applicationReplicaSet) + .setRegion(region) + .setShardName(shardName) + .setPassphrase(passphraseForPrivateKeyDecription) + .build() + .run(); } } diff --git a/java/com.sap.sse.landscape.aws/src/com/sap/sse/landscape/aws/orchestration/CreateShard.java b/java/com.sap.sse.landscape.aws/src/com/sap/sse/landscape/aws/orchestration/CreateShard.java index 2540dd4d45a..4ae9a6403a4 100644 --- a/java/com.sap.sse.landscape.aws/src/com/sap/sse/landscape/aws/orchestration/CreateShard.java +++ b/java/com.sap.sse.landscape.aws/src/com/sap/sse/landscape/aws/orchestration/CreateShard.java @@ -50,18 +50,35 @@ public class CreateShard, ShardingKey, MetricsT, ProcessT>, ShardingKey, MetricsT extends ApplicationProcessMetrics, ProcessT extends ApplicationProcess> - extends - ShardProcedure.BuilderImpl, ShardingKey, MetricsT, ProcessT> { + + public static interface Builder< + BuilderT extends Builder, + T extends CreateShard, + ShardingKey, + MetricsT extends ApplicationProcessMetrics, + ProcessT extends ApplicationProcess> + extends ShardProcedure.Builder { + BuilderT setTargetGroupNamePrefix(String targetGroupNamePrefix); + } + + static class BuilderImpl, ShardingKey, MetricsT, ProcessT>, + ShardingKey, + MetricsT extends ApplicationProcessMetrics, + ProcessT extends ApplicationProcess> + extends ShardProcedure.BuilderImpl, ShardingKey, MetricsT, ProcessT> + implements Builder, ShardingKey, MetricsT, ProcessT> { private String targetGroupNamePrefix = ""; String getTargetGroupNamePrefix() { return targetGroupNamePrefix; } - public void setTargetGroupNamePrefix(String targetGroupNamePrefix) { + public BuilderT setTargetGroupNamePrefix(String targetGroupNamePrefix) { + if (!ShardTargetGroupName.isValidTargetGroupNamePrefix(targetGroupNamePrefix)) { + throw new IllegalArgumentException("Not a valid target group name prefix: "+targetGroupNamePrefix); + } this.targetGroupNamePrefix = targetGroupNamePrefix; + return self(); } @Override diff --git a/java/com.sap.sse.landscape.aws/src/com/sap/sse/landscape/aws/orchestration/ShardProcedure.java b/java/com.sap.sse.landscape.aws/src/com/sap/sse/landscape/aws/orchestration/ShardProcedure.java index 8b52e41a594..85ed18b7fa1 100644 --- a/java/com.sap.sse.landscape.aws/src/com/sap/sse/landscape/aws/orchestration/ShardProcedure.java +++ b/java/com.sap.sse.landscape.aws/src/com/sap/sse/landscape/aws/orchestration/ShardProcedure.java @@ -76,7 +76,7 @@ public abstract class ShardProcedure landscape); - BuilderT setShardingkeys(Set shardingkeys); + BuilderT setShardingKeys(Set shardingkeys); BuilderT setReplicaset(AwsApplicationReplicaSet replicaset); @@ -108,7 +108,7 @@ public abstract class ShardProcedure shardingkeys) { + public BuilderT setShardingKeys(Set shardingkeys) { this.shardingKeys = shardingkeys; return self(); }