Skip to content

Commit 4ea6213

Browse files
committed
Move enable-ssh overridde in staging parser
1 parent de25609 commit 4ea6213

4 files changed

Lines changed: 13 additions & 10 deletions

File tree

multiapps-controller-core/src/main/java/org/cloudfoundry/multiapps/controller/core/parser/StagingParametersParser.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.text.MessageFormat;
44
import java.util.Collections;
5+
import java.util.HashMap;
56
import java.util.List;
67
import java.util.Map;
78

@@ -10,6 +11,7 @@
1011
import com.sap.cloudfoundry.client.facade.domain.LifecycleType;
1112
import com.sap.cloudfoundry.client.facade.domain.Staging;
1213
import org.cloudfoundry.multiapps.common.ContentException;
14+
import org.cloudfoundry.multiapps.controller.core.Constants;
1315
import org.cloudfoundry.multiapps.controller.core.model.SupportedParameters;
1416
import org.cloudfoundry.multiapps.mta.util.PropertiesUtil;
1517
import org.springframework.util.CollectionUtils;
@@ -43,6 +45,10 @@ public Staging parse(List<Map<String, Object>> parametersList) {
4345
Map<String, Boolean> appFeatures = (Map<String, Boolean>) PropertiesUtil.getPropertyValue(parametersList,
4446
SupportedParameters.APP_FEATURES,
4547
Collections.emptyMap());
48+
Map<String, Boolean> appFeaturesWithOverriddenSsh = new HashMap<>(appFeatures);
49+
if (isSshEnabled != null && !appFeatures.containsKey(Constants.APP_FEATURE_SSH)) {
50+
appFeaturesWithOverriddenSsh.put(Constants.APP_FEATURE_SSH, isSshEnabled);
51+
}
4652
DockerInfo dockerInfo = new DockerInfoParser().parse(parametersList);
4753
LifecycleType lifecycleType = parseLifecycleType(parametersList);
4854

@@ -57,7 +63,7 @@ public Staging parse(List<Map<String, Object>> parametersList) {
5763
.healthCheckType(healthCheckType)
5864
.healthCheckHttpEndpoint(healthCheckHttpEndpoint)
5965
.isSshEnabled(isSshEnabled)
60-
.appFeatures(appFeatures)
66+
.appFeatures(appFeaturesWithOverriddenSsh)
6167
.dockerInfo(dockerInfo)
6268
.lifecycleType(lifecycleType)
6369
.build();

multiapps-controller-core/src/test/resources/org/cloudfoundry/multiapps/controller/core/cf/v2/apps-with-ssh-enabled-false.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
"staging": {
2121
"isSshEnabled": false,
2222
"buildpacks": [],
23-
"appFeatures": {}
23+
"appFeatures": {
24+
"ssh": false
25+
}
2426
},
2527
"routes": [
2628
{

multiapps-controller-core/src/test/resources/org/cloudfoundry/multiapps/controller/core/cf/v2/apps-with-ssh-enabled-true.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
"staging": {
2121
"isSshEnabled": true,
2222
"buildpacks": [],
23-
"appFeatures": {}
23+
"appFeatures": {
24+
"ssh": true
25+
}
2426
},
2527
"routes": [
2628
{

multiapps-controller-process/src/main/java/org/cloudfoundry/multiapps/controller/process/util/StagingApplicationAttributeUpdater.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.cloudfoundry.multiapps.controller.process.util;
22

3-
import java.util.HashMap;
43
import java.util.Map;
54
import java.util.Objects;
65

@@ -11,7 +10,6 @@
1110
import org.cloudfoundry.multiapps.controller.client.lib.domain.CloudApplicationExtended;
1211
import org.cloudfoundry.multiapps.controller.client.lib.domain.DropletInfoFactory;
1312
import org.cloudfoundry.multiapps.controller.client.lib.domain.HealthCheckInfo;
14-
import org.cloudfoundry.multiapps.controller.core.Constants;
1513
import org.cloudfoundry.multiapps.controller.process.steps.ProcessContext;
1614
import org.cloudfoundry.multiapps.controller.process.util.ElementUpdater.UpdateStrategy;
1715
import org.cloudfoundry.multiapps.controller.process.variables.Variables;
@@ -39,11 +37,6 @@ private boolean hasStagingChanged(Staging staging, CloudApplication existingApp,
3937
String command = staging.getCommand();
4038
var healthCheck = HealthCheckInfo.fromStaging(staging);
4139
var existingHealthCheck = HealthCheckInfo.fromProcess(existingProcess);
42-
Map<String, Boolean> appFeaturesWithOverriddenSsh = new HashMap<>(staging.getAppFeatures());
43-
if (staging.isSshEnabled() != null && !staging.getAppFeatures()
44-
.containsKey(Constants.APP_FEATURE_SSH)) {
45-
appFeaturesWithOverriddenSsh.put(Constants.APP_FEATURE_SSH, staging.isSshEnabled());
46-
}
4740
var dropletInfo = dropletInfoFactory.createDropletInfo(staging);
4841
var existingDropletInfo = dropletInfoFactory.createDropletInfo(existingApp, getControllerClient());
4942

0 commit comments

Comments
 (0)