Skip to content

Commit 0b3f947

Browse files
committed
Handle backup applications when switch from old to new blue green
1 parent a6be960 commit 0b3f947

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

multiapps-controller-core/src/main/java/org/cloudfoundry/multiapps/controller/core/model/BlueGreenApplicationNameSuffix.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,25 @@ public static boolean isSuffixContainedIn(String name) {
2525
.anyMatch(name::endsWith);
2626
}
2727

28+
public static boolean isLiveIdleSuffixContainedIn(String name) {
29+
return Stream.of(LIVE, IDLE)
30+
.map(BlueGreenApplicationNameSuffix::asSuffix)
31+
.anyMatch(name::endsWith);
32+
}
33+
2834
public static String removeSuffix(String name) {
2935
if (isSuffixContainedIn(name)) {
3036
return name.substring(0, name.lastIndexOf('-'));
3137
}
3238
return name;
3339
}
3440

41+
public static String removeDoubleSuffixes(String name) {
42+
String newName = name;
43+
while (isSuffixContainedIn(newName)) {
44+
newName = newName.substring(0, newName.lastIndexOf('-'));
45+
}
46+
return newName;
47+
}
48+
3549
}

multiapps-controller-process/src/main/java/org/cloudfoundry/multiapps/controller/process/steps/DetectApplicationsToRenameStep.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
import java.util.Set;
77
import java.util.stream.Collectors;
88

9-
import jakarta.inject.Named;
10-
119
import org.apache.commons.collections4.CollectionUtils;
1210
import org.cloudfoundry.multiapps.controller.core.model.BlueGreenApplicationNameSuffix;
1311
import org.cloudfoundry.multiapps.controller.core.model.DeployedMta;
@@ -23,6 +21,8 @@
2321
import com.sap.cloudfoundry.client.facade.CloudControllerClient;
2422
import com.sap.cloudfoundry.client.facade.domain.CloudApplication;
2523

24+
import jakarta.inject.Named;
25+
2626
@Named("detectApplicationsToRenameStep")
2727
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
2828
public class DetectApplicationsToRenameStep extends SyncFlowableStep {
@@ -54,7 +54,7 @@ protected StepPhase executeStep(ProcessContext context) {
5454
private List<String> computeOldAppsToRename(DeployedMta deployedMta, List<String> selectedModules) {
5555
return deployedMta.getApplications()
5656
.stream()
57-
.filter(app -> !BlueGreenApplicationNameSuffix.isSuffixContainedIn(app.getName()))
57+
.filter(app -> !BlueGreenApplicationNameSuffix.isLiveIdleSuffixContainedIn(app.getName()))
5858
.filter(app -> isModuleSelectedForDeployment(app.getModuleName(), selectedModules))
5959
.map(DeployedMtaApplication::getName)
6060
.collect(Collectors.toList());

multiapps-controller-process/src/main/java/org/cloudfoundry/multiapps/controller/process/steps/PrepareApplicationForBackupStep.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ protected StepPhase executeStep(ProcessContext context) throws Exception {
3131
String mtaUserNamespaceWithSystemNamespace = NameUtil.computeUserNamespaceWithSystemNamespace(Constants.MTA_BACKUP_NAMESPACE,
3232
mtaNamespace);
3333

34-
String newApplicationName = BlueGreenApplicationNameSuffix.removeSuffix(cloudApplication.getName());
34+
String newApplicationName = BlueGreenApplicationNameSuffix.removeDoubleSuffixes(cloudApplication.getName());
3535
newApplicationName = NameUtil.computeValidApplicationName(newApplicationName, Constants.MTA_BACKUP_NAMESPACE, true, false);
3636

3737
getStepLogger().info(Messages.RENAMING_APPLICATION_0_TO_1_TO_BE_USED_FOR_ROLLBACK, cloudApplication.getName(), newApplicationName);

0 commit comments

Comments
 (0)