mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-19 04:05:36 +00:00
Merge branch 'bug5969'
This commit is contained in:
+1
-1
@@ -24,7 +24,7 @@ public class ChangeAutoScalingReplicaInstanceTypeDialog extends DataEntryDialog<
|
||||
super(stringMessages.moveMasterToOtherInstance(), /* message */ null, stringMessages.ok(), stringMessages.cancel(), /* validator */ null, callback);
|
||||
this.stringMessages = stringMessages;
|
||||
instanceTypeListBox = LandscapeDialogUtil.createInstanceTypeListBox(this, landscapeManagementService,
|
||||
stringMessages, SharedLandscapeConstants.DEFAULT_DEDICATED_INSTANCE_TYPE_NAME, errorReporter);
|
||||
stringMessages, SharedLandscapeConstants.DEFAULT_DEDICATED_INSTANCE_TYPE_NAME, errorReporter, /* canBeDeployedInNlbInstanceBasedTargetGroup */ false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -193,10 +193,10 @@ public class CreateApplicationReplicaSetDialog extends AbstractApplicationReplic
|
||||
dynamicLoadBalancerCheckBox = mayUseDynamicLoadBalancer ? createCheckbox(stringMessages.useDynamicLoadBalancer()) : null;
|
||||
domainNameBox = createTextBox(SharedLandscapeConstants.DEFAULT_DOMAIN_NAME, 40);
|
||||
dedicatedInstanceTypeListBox = LandscapeDialogUtil.createInstanceTypeListBox(this, landscapeManagementService,
|
||||
stringMessages, SharedLandscapeConstants.DEFAULT_DEDICATED_INSTANCE_TYPE_NAME, errorReporter);
|
||||
stringMessages, SharedLandscapeConstants.DEFAULT_DEDICATED_INSTANCE_TYPE_NAME, errorReporter, /* canBeDeployedInNlbInstanceBasedTargetGroup */ false);
|
||||
dedicatedInstanceTypeLabel = new Label();
|
||||
sharedInstanceTypeListBox = LandscapeDialogUtil.createInstanceTypeListBox(this, landscapeManagementService,
|
||||
stringMessages, SharedLandscapeConstants.DEFAULT_SHARED_INSTANCE_TYPE_NAME, errorReporter);
|
||||
stringMessages, SharedLandscapeConstants.DEFAULT_SHARED_INSTANCE_TYPE_NAME, errorReporter, /* canBeDeployedInNlbInstanceBasedTargetGroup */ false);
|
||||
sharedInstanceTypeLabel = new Label();
|
||||
memoryInMegabytesBox = createIntegerBox(null, 7);
|
||||
memoryTotalSizeFactorBox = createIntegerBox(null, 2);
|
||||
|
||||
+1
-1
@@ -128,7 +128,7 @@ public class CreateReverseProxyInClusterDialog
|
||||
existingReverseProxies);
|
||||
proxyName = createTextBox("", 20);
|
||||
dedicatedInstanceTypeListBox = LandscapeDialogUtil.createInstanceTypeListBox(this, landscapeManagementService,
|
||||
stringMessages, SharedLandscapeConstants.DEFAULT_REVERSE_PROXY_INSTANCE_TYPE, errorReporter);
|
||||
stringMessages, SharedLandscapeConstants.DEFAULT_REVERSE_PROXY_INSTANCE_TYPE, errorReporter, /* canBeDeployedInNlbInstanceBasedTargetGroup */ true);
|
||||
// setup labels
|
||||
nameLabel = new Label(stringMessages.instanceName());
|
||||
instanceTypeLabel = new Label(stringMessages.instanceType());
|
||||
|
||||
+7
-4
@@ -13,10 +13,10 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
public class LandscapeDialogUtil {
|
||||
public static ListBox createInstanceTypeListBox(DataEntryDialog<?> dialog,
|
||||
LandscapeManagementWriteServiceAsync landscapeManagementService, StringMessages stringMessages,
|
||||
String defaultInstanceTypeName, ErrorReporter errorReporter) {
|
||||
String defaultInstanceTypeName, ErrorReporter errorReporter, boolean canBeDeployedInNlbInstanceBasedTargetGroup) {
|
||||
return createInstanceTypeListBoxWithAdditionalDefaultEntry(dialog, /* additionalItem */ null,
|
||||
/* additionalValue */ null, landscapeManagementService, stringMessages, defaultInstanceTypeName,
|
||||
errorReporter);
|
||||
errorReporter, canBeDeployedInNlbInstanceBasedTargetGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -24,17 +24,20 @@ public class LandscapeDialogUtil {
|
||||
* if not {@code null}, an item with this name is created, and then {@code additionalValue} must not be
|
||||
* {@code null} because it is then used as that item's value. The item will then be set as the one
|
||||
* selected.
|
||||
* @param canBeDeployedInNlbInstanceBasedTargetGroup A boolean indicating whether the instance list should filter out those
|
||||
* which cannot be added to NLB, instance-based target groups. True indicates that it needs to be deployable
|
||||
* to this type of target group, so the resulting listbox should not contain the banned instance types.
|
||||
*/
|
||||
public static ListBox createInstanceTypeListBoxWithAdditionalDefaultEntry(DataEntryDialog<?> dialog,
|
||||
String additionalItem, String additionalValue,
|
||||
LandscapeManagementWriteServiceAsync landscapeManagementService, StringMessages stringMessages,
|
||||
String defaultInstanceTypeName, ErrorReporter errorReporter) {
|
||||
String defaultInstanceTypeName, ErrorReporter errorReporter, boolean canBeDeployedInNlbInstanceBasedTargetGroup) {
|
||||
final ListBox instanceTypeBox = dialog.createListBox(/* isMultipleSelect */false);
|
||||
if (additionalItem != null) {
|
||||
instanceTypeBox.addItem(additionalItem, additionalValue);
|
||||
instanceTypeBox.setSelectedIndex(0);
|
||||
}
|
||||
landscapeManagementService.getInstanceTypeNames(new AsyncCallback<ArrayList<String>>() {
|
||||
landscapeManagementService.getInstanceTypeNames(canBeDeployedInNlbInstanceBasedTargetGroup, new AsyncCallback<ArrayList<String>>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError(caught.getMessage());
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ import com.sap.sse.landscape.aws.common.shared.RedirectDTO;
|
||||
public interface LandscapeManagementWriteService extends RemoteService {
|
||||
ArrayList<String> getRegions();
|
||||
|
||||
ArrayList<String> getInstanceTypeNames();
|
||||
ArrayList<String> getInstanceTypeNames(boolean canBeDeployedInNlbInstanceBasedTargetGroup);
|
||||
|
||||
ArrayList<MongoEndpointDTO> getMongoEndpoints(String region) throws Exception;
|
||||
|
||||
|
||||
+6
-1
@@ -28,7 +28,12 @@ import com.sap.sse.landscape.aws.common.shared.RedirectDTO;
|
||||
public interface LandscapeManagementWriteServiceAsync {
|
||||
void getRegions(AsyncCallback<ArrayList<String>> callback);
|
||||
|
||||
void getInstanceTypeNames(AsyncCallback<ArrayList<String>> callback);
|
||||
/**
|
||||
* @param canBeDeployedInNlbInstanceBasedTargetGroup
|
||||
* A boolean indicating, if true, that the list of available instance types should not contain those,
|
||||
* which cannot be added to an instance-based Network Load Balancer.
|
||||
*/
|
||||
void getInstanceTypeNames(boolean canBeDeployedInNlbInstanceBasedTargetGroup, AsyncCallback<ArrayList<String>> callback);
|
||||
|
||||
void getMongoEndpoints(String regionId, AsyncCallback<ArrayList<MongoEndpointDTO>> callback);
|
||||
|
||||
|
||||
+1
-1
@@ -106,7 +106,7 @@ public class MongoScalingDialog extends DataEntryDialog<MongoScalingInstructions
|
||||
voteBox = createIntegerBox(0, /* visibleLength */ 2);
|
||||
grid.setWidget(row++, 1, voteBox);
|
||||
grid.setWidget(row, 0, new Label(stringMessages.instanceType()));
|
||||
instanceTypeBox = LandscapeDialogUtil.createInstanceTypeListBox(this, landscapeManagementService, stringMessages, DEFAULT_INSTANCE_TYPE, errorReporter);
|
||||
instanceTypeBox = LandscapeDialogUtil.createInstanceTypeListBox(this, landscapeManagementService, stringMessages, DEFAULT_INSTANCE_TYPE, errorReporter, /* canBeDeployedInNlbInstanceBasedTargetGroup */ false);
|
||||
grid.setWidget(row++, 1, instanceTypeBox);
|
||||
launchPanel.add(grid);
|
||||
panel.add(launchPanel);
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ public class MoveAllAwayFromHostDialog extends DataEntryDialog<String> {
|
||||
stringMessages.ok(), stringMessages.cancel(), /* validator */ null, callback);
|
||||
instanceTypeListBox = LandscapeDialogUtil.createInstanceTypeListBoxWithAdditionalDefaultEntry(this,
|
||||
stringMessages.sameAsExistingHost(), SAME_AS_MASTER, landscapeManagementService, stringMessages, /* default */ stringMessages.sameAsExistingHost(),
|
||||
errorReporter);
|
||||
errorReporter, /* canBeDeployedInNlbInstanceBasedTargetGroup */ false);
|
||||
instanceTypeLabel = new Label();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@ public class MoveMasterProcessDialog extends DataEntryDialog<MoveMasterProcessDi
|
||||
super(stringMessages.moveMasterToOtherInstance(), /* message */ null, stringMessages.ok(), stringMessages.cancel(), /* validator */ null, callback);
|
||||
this.stringMessages = stringMessages;
|
||||
instanceTypeListBox = LandscapeDialogUtil.createInstanceTypeListBox(this, landscapeManagementService,
|
||||
stringMessages, SharedLandscapeConstants.DEFAULT_DEDICATED_INSTANCE_TYPE_NAME, errorReporter);
|
||||
stringMessages, SharedLandscapeConstants.DEFAULT_DEDICATED_INSTANCE_TYPE_NAME, errorReporter, /* canBeDeployedInNlbInstanceBasedTargetGroup */ false);
|
||||
instanceTypeLabel = new Label();
|
||||
masterReplicationBearerTokenBox = createTextBox("", 40);
|
||||
replicaReplicationBearerTokenBox = createTextBox("", 40);
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ public class SwitchToReplicaOnSharedInstanceDialog extends DataEntryDialog<Switc
|
||||
sharedInstanceTypeListBox = LandscapeDialogUtil.createInstanceTypeListBoxWithAdditionalDefaultEntry(this,
|
||||
stringMessages.sameAsMaster(), DEFAULT_INSTANCE_TYPE,
|
||||
landscapeManagementService,
|
||||
stringMessages, SharedLandscapeConstants.DEFAULT_SHARED_INSTANCE_TYPE_NAME, errorReporter);
|
||||
stringMessages, SharedLandscapeConstants.DEFAULT_SHARED_INSTANCE_TYPE_NAME, errorReporter, /* canBeDeployedInNlbInstanceBasedTargetGroup */ false);
|
||||
replicaReplicationBearerTokenBox = createTextBox("", 40);
|
||||
memoryInMegabytesBox = createIntegerBox(null, 7);
|
||||
memoryTotalSizeFactorBox = createIntegerBox(SharedLandscapeConstants.DEFAULT_NUMBER_OF_PROCESSES_IN_MEMORY, 2);
|
||||
|
||||
+19
-5
@@ -208,11 +208,21 @@ public class LandscapeManagementWriteServiceImpl extends ResultCachingProxiedRem
|
||||
Util.addAll(Util.map(AwsLandscape.obtain(RemoteServiceMappingConstants.pathPrefixForShardingKey).getRegions(), r->r.getId()), result);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
private static final Set<InstanceType> INSTANCE_TYPES_BANNED_FROM_INSTANCE_BASE_NLB_TARGET_GROUPS_AS_SET =
|
||||
new HashSet<>(Arrays.asList(LandscapeConstants.INSTANCE_TYPES_BANNED_FROM_INSTANCE_BASED_NLB_TARGET_GROUPS));
|
||||
|
||||
@Override
|
||||
public ArrayList<String> getInstanceTypeNames() {
|
||||
public ArrayList<String> getInstanceTypeNames(boolean canBeDeployedInNlbInstanceBasedTargetGroup) {
|
||||
final ArrayList<String> result = new ArrayList<>();
|
||||
Util.addAll(Util.map(Arrays.asList(InstanceType.values()), instanceType->instanceType.name()), result);
|
||||
Util.addAll(
|
||||
Util.map(
|
||||
// if deployment to NLB instance-based target group is to be possible, remove those
|
||||
// instance types that are banned from those sorts of target groups
|
||||
Util.filter(Arrays.asList(InstanceType.values()), instanceType->
|
||||
!canBeDeployedInNlbInstanceBasedTargetGroup ||
|
||||
!INSTANCE_TYPES_BANNED_FROM_INSTANCE_BASE_NLB_TARGET_GROUPS_AS_SET.contains(instanceType)),
|
||||
instanceType->instanceType.name()), result);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -241,8 +251,12 @@ public class LandscapeManagementWriteServiceImpl extends ResultCachingProxiedRem
|
||||
@Override
|
||||
public ArrayList<AvailabilityZoneDTO> describeAvailabilityZones(String region) {
|
||||
final ArrayList<AvailabilityZoneDTO> availabilityZones = new ArrayList<>();
|
||||
getLandscape().getAvailabilityZones(new AwsRegion(region, getLandscape()))
|
||||
.forEach(az -> availabilityZones.add(new AvailabilityZoneDTO(az.getName(), region, az.getId())));
|
||||
logger.info(getLandscape().getDefaultSecurityGroupForApplicationLoadBalancer(new AwsRegion(region, getLandscape())).getId());
|
||||
getLandscape()
|
||||
.getAvailabilityZones(new AwsRegion(region, getLandscape()),
|
||||
Optional.of(getLandscape().getDefaultSecurityGroupForApplicationLoadBalancer(
|
||||
new AwsRegion(region, getLandscape())).getVpcId()))
|
||||
.forEach(az -> availabilityZones.add(new AvailabilityZoneDTO(az.getName(), region, az.getId())));
|
||||
return availabilityZones;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.sap.sse.landscape.aws;
|
||||
|
||||
import software.amazon.awssdk.services.ec2.model.InstanceType;
|
||||
|
||||
public interface LandscapeConstants {
|
||||
/**
|
||||
* The key <strong>tag</strong>, indicating that an instance only acts as a reverse proxy
|
||||
@@ -63,4 +65,11 @@ public interface LandscapeConstants {
|
||||
* A tag key indicating that a subnet is not to be used for deploying instances, by autoscaling groups or by load balancers.
|
||||
*/
|
||||
String NO_INSTANCE_DEPLOYMENT = "noInstanceDeployment";
|
||||
|
||||
InstanceType[] INSTANCE_TYPES_BANNED_FROM_INSTANCE_BASED_NLB_TARGET_GROUPS = new InstanceType[] { InstanceType.CC1_4_XLARGE, InstanceType.C1_MEDIUM, InstanceType.C1_XLARGE,
|
||||
InstanceType.CC2_8_XLARGE, InstanceType.CG1_4_XLARGE, InstanceType.CR1_8_XLARGE, InstanceType.G2_2_XLARGE,
|
||||
InstanceType.G2_8_XLARGE, InstanceType.HI1_4_XLARGE, InstanceType.HS1_8_XLARGE, InstanceType.M1_LARGE,
|
||||
InstanceType.M1_MEDIUM, InstanceType.M1_SMALL, InstanceType.M1_XLARGE, InstanceType.M2_2_XLARGE,
|
||||
InstanceType.M2_4_XLARGE, InstanceType.M2_XLARGE, InstanceType.M3_2_XLARGE, InstanceType.M3_LARGE,
|
||||
InstanceType.M3_MEDIUM, InstanceType.M3_XLARGE, InstanceType.T1_MICRO};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user