Skip to content

Commit 9681f36

Browse files
Delete obsolete hooks
1 parent f5bdc4e commit 9681f36

File tree

9 files changed

+39
-108
lines changed

9 files changed

+39
-108
lines changed

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

-20
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,12 @@
22

33
import java.text.MessageFormat;
44
import java.util.Arrays;
5-
import java.util.List;
65
import java.util.Map;
76
import java.util.function.Function;
87
import java.util.stream.Collectors;
98

109
public enum HookPhase {
1110

12-
//@formatter:off
13-
@Deprecated
14-
APPLICATION_BEFORE_STOP_LIVE("application.before-stop.live"),
15-
@Deprecated
16-
APPLICATION_BEFORE_STOP_IDLE("application.before-stop.idle"),
17-
@Deprecated
18-
APPLICATION_AFTER_STOP_LIVE("application.after-stop.live"),
19-
@Deprecated
20-
APPLICATION_AFTER_STOP_IDLE("application.after-stop.idle"),
21-
@Deprecated
22-
APPLICATION_BEFORE_UNMAP_ROUTES("application.before-unmap-routes"),
23-
//@formatter:on
24-
2511
//@formatter:off
2612
BEFORE_STOP("before-stop"),
2713
DEPLOY_APPLICATION_BEFORE_STOP("deploy.application.before-stop"),
@@ -59,12 +45,6 @@ public static HookPhase fromString(String hookPhaseName) {
5945
return hookPhase;
6046
}
6147

62-
@Deprecated
63-
public static List<HookPhase> getOldPhases() {
64-
return Arrays.asList(APPLICATION_BEFORE_STOP_LIVE, APPLICATION_BEFORE_STOP_IDLE, APPLICATION_AFTER_STOP_LIVE,
65-
APPLICATION_AFTER_STOP_IDLE, APPLICATION_BEFORE_UNMAP_ROUTES);
66-
}
67-
6848
public String getValue() {
6949
return value;
7050
}

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

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
package org.cloudfoundry.multiapps.controller.process.steps;
22

33
import java.text.MessageFormat;
4-
import java.util.Arrays;
54
import java.util.Collections;
65
import java.util.List;
76
import java.util.Map;
87
import java.util.UUID;
98
import java.util.stream.Collectors;
109

11-
import jakarta.inject.Inject;
12-
import jakarta.inject.Named;
13-
1410
import org.cloudfoundry.multiapps.common.util.JsonUtil;
1511
import org.cloudfoundry.multiapps.controller.client.lib.domain.CloudRouteExtended;
1612
import org.cloudfoundry.multiapps.controller.client.lib.domain.ImmutableCloudRouteExtended;
@@ -29,6 +25,9 @@
2925
import com.sap.cloudfoundry.client.facade.domain.CloudApplication;
3026
import com.sap.cloudfoundry.client.facade.domain.CloudRoute;
3127

28+
import jakarta.inject.Inject;
29+
import jakarta.inject.Named;
30+
3231
@Named("deleteApplicationRoutesStep")
3332
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
3433
public class DeleteApplicationRoutesStep extends UndeployAppStep implements BeforeStepHookPhaseProvider {
@@ -111,7 +110,6 @@ private void deleteApplicationRoute(CloudControllerClient client, CloudRouteExte
111110

112111
@Override
113112
public List<HookPhase> getHookPhasesBeforeStep(ProcessContext context) {
114-
return hooksPhaseBuilder.buildHookPhases(Arrays.asList(HookPhase.BEFORE_UNMAP_ROUTES, HookPhase.APPLICATION_BEFORE_UNMAP_ROUTES),
115-
context);
113+
return hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.BEFORE_UNMAP_ROUTES), context);
116114
}
117115
}

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

+5-20
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
11
package org.cloudfoundry.multiapps.controller.process.steps;
22

33
import java.text.MessageFormat;
4-
import java.util.ArrayList;
54
import java.util.List;
65

7-
import jakarta.inject.Inject;
8-
import jakarta.inject.Named;
9-
10-
import org.cloudfoundry.multiapps.controller.api.model.ProcessType;
116
import org.cloudfoundry.multiapps.controller.client.lib.domain.CloudApplicationExtended;
127
import org.cloudfoundry.multiapps.controller.core.model.HookPhase;
138
import org.cloudfoundry.multiapps.controller.process.Messages;
@@ -21,6 +16,9 @@
2116
import com.sap.cloudfoundry.client.facade.domain.CloudApplication;
2217
import com.sap.cloudfoundry.client.facade.domain.CloudApplication.State;
2318

19+
import jakarta.inject.Inject;
20+
import jakarta.inject.Named;
21+
2422
@Named("stopAppStep")
2523
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
2624
public class StopAppStep extends SyncFlowableStepWithHooks implements BeforeStepHookPhaseProvider, AfterStepHookPhaseProvider {
@@ -59,27 +57,14 @@ protected String getStepErrorMessage(ProcessContext context) {
5957

6058
@Override
6159
public List<HookPhase> getHookPhasesBeforeStep(ProcessContext context) {
62-
List<HookPhase> hookPhases = getHookPhases(HookPhase.APPLICATION_BEFORE_STOP_IDLE, HookPhase.APPLICATION_BEFORE_STOP_LIVE, context);
63-
hookPhases.add(HookPhase.BEFORE_STOP);
60+
List<HookPhase> hookPhases = List.of(HookPhase.BEFORE_STOP);
6461
return hooksPhaseBuilder.buildHookPhases(hookPhases, context);
6562
}
6663

6764
@Override
6865
public List<HookPhase> getHookPhasesAfterStep(ProcessContext context) {
69-
List<HookPhase> hookPhases = getHookPhases(HookPhase.APPLICATION_AFTER_STOP_IDLE, HookPhase.APPLICATION_AFTER_STOP_LIVE, context);
70-
hookPhases.add(HookPhase.AFTER_STOP);
66+
List<HookPhase> hookPhases = List.of(HookPhase.AFTER_STOP);
7167
return hooksPhaseBuilder.buildHookPhases(hookPhases, context);
7268
}
7369

74-
private List<HookPhase> getHookPhases(HookPhase beforeStepHookPhase, HookPhase afterStepHookPhase, ProcessContext context) {
75-
List<HookPhase> hookPhases = new ArrayList<>();
76-
ProcessType processType = deploymentTypeDeterminer.determineDeploymentType(context);
77-
if (ProcessType.BLUE_GREEN_DEPLOY.equals(processType)) {
78-
hookPhases.add(beforeStepHookPhase);
79-
} else {
80-
hookPhases.add(afterStepHookPhase);
81-
}
82-
return hookPhases;
83-
}
84-
8570
}

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

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
package org.cloudfoundry.multiapps.controller.process.steps;
22

33
import java.text.MessageFormat;
4-
import java.util.Arrays;
54
import java.util.List;
65

7-
import jakarta.inject.Inject;
8-
import jakarta.inject.Named;
9-
106
import org.cloudfoundry.multiapps.controller.core.model.HookPhase;
117
import org.cloudfoundry.multiapps.controller.process.Messages;
128
import org.cloudfoundry.multiapps.controller.process.util.ApplicationWaitAfterStopHandler;
@@ -17,6 +13,9 @@
1713
import com.sap.cloudfoundry.client.facade.CloudControllerClient;
1814
import com.sap.cloudfoundry.client.facade.domain.CloudApplication;
1915

16+
import jakarta.inject.Inject;
17+
import jakarta.inject.Named;
18+
2019
@Named("stopApplicationUndeploymentStep")
2120
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
2221
public class StopApplicationUndeploymentStep extends UndeployAppStep implements BeforeStepHookPhaseProvider, AfterStepHookPhaseProvider {
@@ -42,11 +41,11 @@ protected String getStepErrorMessage(ProcessContext context) {
4241

4342
@Override
4443
public List<HookPhase> getHookPhasesBeforeStep(ProcessContext context) {
45-
return hooksPhaseBuilder.buildHookPhases(Arrays.asList(HookPhase.BEFORE_STOP, HookPhase.APPLICATION_BEFORE_STOP_LIVE), context);
44+
return hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.BEFORE_STOP), context);
4645
}
4746

4847
@Override
4948
public List<HookPhase> getHookPhasesAfterStep(ProcessContext context) {
50-
return hooksPhaseBuilder.buildHookPhases(Arrays.asList(HookPhase.AFTER_STOP, HookPhase.APPLICATION_AFTER_STOP_LIVE), context);
49+
return hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.AFTER_STOP), context);
5150
}
5251
}

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

+3-7
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
import java.util.List;
44
import java.util.stream.Collectors;
55

6-
import jakarta.inject.Inject;
7-
import jakarta.inject.Named;
8-
96
import org.cloudfoundry.multiapps.controller.api.model.ProcessType;
107
import org.cloudfoundry.multiapps.controller.core.model.HookPhase;
118
import org.cloudfoundry.multiapps.controller.core.model.HookPhaseProcessType;
@@ -14,6 +11,9 @@
1411
import org.cloudfoundry.multiapps.controller.process.steps.ProcessContext;
1512
import org.cloudfoundry.multiapps.controller.process.variables.Variables;
1613

14+
import jakarta.inject.Inject;
15+
import jakarta.inject.Named;
16+
1717
@Named
1818
public class HooksPhaseBuilder {
1919

@@ -34,10 +34,6 @@ public List<HookPhase> buildHookPhases(List<HookPhase> hookPhases, ProcessContex
3434
}
3535

3636
private String buildPhase(HookPhase hookPhase, ProcessContext context) {
37-
if (HookPhase.getOldPhases()
38-
.contains(hookPhase)) {
39-
return hookPhase.getValue();
40-
}
4137
String deploymentType = getDeploymentType(context);
4238
String fullHookPhase = deploymentType + HOOKS_DELIMITER + DEFAULT_HOOK_ENTITY + HOOKS_DELIMITER + hookPhase.getValue();
4339
String optionalPhaseLocator = getOptionalPhaseLocator(context);

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

+1-26
Original file line numberDiff line numberDiff line change
@@ -72,32 +72,7 @@ private boolean shouldExecuteHook(Map<String, List<String>> alreadyExecutedHooks
7272
private boolean hasAllPhasesExecuted(Map<String, List<String>> alreadyExecutedHooks, Hook hookToBeExecuted,
7373
List<HookPhase> hookPhasesForCurrentStepPhase) {
7474
List<HookPhase> executedHookPhasesForHook = getExecutedHookPhasesForHook(alreadyExecutedHooks, hookToBeExecuted.getName());
75-
List<HookPhase> modifiedHookPhasesForHook = getModifiedHookPhasesForCurrentStepPhase(hookToBeExecuted,
76-
hookPhasesForCurrentStepPhase);
77-
return executedHookPhasesForHook.containsAll(modifiedHookPhasesForHook);
78-
}
79-
80-
@Deprecated
81-
private List<HookPhase> getModifiedHookPhasesForCurrentStepPhase(Hook hookToBeExecuted, List<HookPhase> hookPhasesForCurrentStepPhase) {
82-
if (doesHookContainOldPhases(hookToBeExecuted)) {
83-
return hookPhasesForCurrentStepPhase.stream()
84-
.filter(this::containsOldPhase)
85-
.collect(Collectors.toList());
86-
}
87-
return hookPhasesForCurrentStepPhase.stream()
88-
.filter(hookPhase -> !containsOldPhase(hookPhase))
89-
.collect(Collectors.toList());
90-
}
91-
92-
private boolean doesHookContainOldPhases(Hook hookToBeExecuted) {
93-
return hookToBeExecuted.getPhases()
94-
.stream()
95-
.anyMatch(hookPhase -> containsOldPhase(HookPhase.fromString(hookPhase)));
96-
}
97-
98-
private boolean containsOldPhase(HookPhase hookPhase) {
99-
return HookPhase.getOldPhases()
100-
.contains(hookPhase);
75+
return executedHookPhasesForHook.containsAll(hookPhasesForCurrentStepPhase);
10176
}
10277

10378
private List<HookPhase> getExecutedHookPhasesForHook(Map<String, List<String>> alreadyExecutedHooks, String hookName) {

multiapps-controller-process/src/test/java/org/cloudfoundry/multiapps/controller/process/steps/DeleteApplicationRoutesStepTest.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,9 @@ private void assertRoutesWereDeleted() {
7272

7373
@Test
7474
void testGetHookPhaseBefore() {
75-
Mockito.when(hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.BEFORE_UNMAP_ROUTES, HookPhase.APPLICATION_BEFORE_UNMAP_ROUTES),
76-
context))
77-
.thenReturn(List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_UNMAP_ROUTES_LIVE, HookPhase.APPLICATION_BEFORE_UNMAP_ROUTES));
78-
List<HookPhase> expectedPhases = List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_UNMAP_ROUTES_LIVE,
79-
HookPhase.APPLICATION_BEFORE_UNMAP_ROUTES);
75+
Mockito.when(hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.BEFORE_UNMAP_ROUTES), context))
76+
.thenReturn(List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_UNMAP_ROUTES_LIVE));
77+
List<HookPhase> expectedPhases = List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_UNMAP_ROUTES_LIVE);
8078
List<HookPhase> hookPhasesBeforeStep = ((BeforeStepHookPhaseProvider) step).getHookPhasesBeforeStep(context);
8179
assertEquals(expectedPhases, hookPhasesBeforeStep);
8280
}

multiapps-controller-process/src/test/java/org/cloudfoundry/multiapps/controller/process/steps/StopAppStepTest.java

+12-12
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@ private void validateStoppedApplications() {
101101

102102
@Test
103103
void testGetHooksBeforeStep() {
104-
Mockito.when(hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.APPLICATION_BEFORE_STOP_LIVE, HookPhase.BEFORE_STOP), context))
105-
.thenReturn(List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_STOP_LIVE, HookPhase.APPLICATION_BEFORE_STOP_LIVE));
106-
List<HookPhase> expectedPhases = List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_STOP_LIVE, HookPhase.APPLICATION_BEFORE_STOP_LIVE);
104+
Mockito.when(hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.BEFORE_STOP), context))
105+
.thenReturn(List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_STOP_LIVE));
106+
List<HookPhase> expectedPhases = List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_STOP_LIVE);
107107
List<HookPhase> hookPhasesBeforeStep = step.getHookPhasesBeforeStep(context);
108108
assertEquals(expectedPhases, hookPhasesBeforeStep);
109109
}
@@ -112,18 +112,18 @@ void testGetHooksBeforeStep() {
112112
void testGetHooksBeforeStepWithBlueGreenProcess() {
113113
Mockito.when(deploymentTypeDeterminer.determineDeploymentType(context))
114114
.thenReturn(ProcessType.BLUE_GREEN_DEPLOY);
115-
Mockito.when(hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.APPLICATION_BEFORE_STOP_IDLE, HookPhase.BEFORE_STOP), context))
116-
.thenReturn(List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_STOP_LIVE, HookPhase.APPLICATION_BEFORE_STOP_IDLE));
117-
List<HookPhase> expectedPhases = List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_STOP_LIVE, HookPhase.APPLICATION_BEFORE_STOP_IDLE);
115+
Mockito.when(hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.BEFORE_STOP), context))
116+
.thenReturn(List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_STOP_LIVE));
117+
List<HookPhase> expectedPhases = List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_STOP_LIVE);
118118
List<HookPhase> hookPhasesBeforeStep = step.getHookPhasesBeforeStep(context);
119119
assertEquals(expectedPhases, hookPhasesBeforeStep);
120120
}
121121

122122
@Test
123123
void testGetHooksAfterStep() {
124-
Mockito.when(hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.APPLICATION_AFTER_STOP_LIVE, HookPhase.AFTER_STOP), context))
125-
.thenReturn(List.of(HookPhase.BLUE_GREEN_APPLICATION_AFTER_STOP_LIVE, HookPhase.APPLICATION_AFTER_STOP_LIVE));
126-
List<HookPhase> expectedPhases = List.of(HookPhase.BLUE_GREEN_APPLICATION_AFTER_STOP_LIVE, HookPhase.APPLICATION_AFTER_STOP_LIVE);
124+
Mockito.when(hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.AFTER_STOP), context))
125+
.thenReturn(List.of(HookPhase.BLUE_GREEN_APPLICATION_AFTER_STOP_LIVE));
126+
List<HookPhase> expectedPhases = List.of(HookPhase.BLUE_GREEN_APPLICATION_AFTER_STOP_LIVE);
127127
List<HookPhase> hookPhasesBeforeStep = step.getHookPhasesAfterStep(context);
128128
assertEquals(expectedPhases, hookPhasesBeforeStep);
129129
}
@@ -132,9 +132,9 @@ void testGetHooksAfterStep() {
132132
void testGetHooksAfterStepWithBlueGreenProcess() {
133133
Mockito.when(deploymentTypeDeterminer.determineDeploymentType(context))
134134
.thenReturn(ProcessType.BLUE_GREEN_DEPLOY);
135-
Mockito.when(hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.APPLICATION_AFTER_STOP_IDLE, HookPhase.AFTER_STOP), context))
136-
.thenReturn(List.of(HookPhase.BLUE_GREEN_APPLICATION_AFTER_STOP_LIVE, HookPhase.APPLICATION_AFTER_STOP_IDLE));
137-
List<HookPhase> expectedPhases = List.of(HookPhase.BLUE_GREEN_APPLICATION_AFTER_STOP_LIVE, HookPhase.APPLICATION_AFTER_STOP_IDLE);
135+
Mockito.when(hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.AFTER_STOP), context))
136+
.thenReturn(List.of(HookPhase.BLUE_GREEN_APPLICATION_AFTER_STOP_LIVE));
137+
List<HookPhase> expectedPhases = List.of(HookPhase.BLUE_GREEN_APPLICATION_AFTER_STOP_LIVE);
138138
List<HookPhase> hookPhasesBeforeStep = step.getHookPhasesAfterStep(context);
139139
assertEquals(expectedPhases, hookPhasesBeforeStep);
140140
}

multiapps-controller-process/src/test/java/org/cloudfoundry/multiapps/controller/process/steps/StopApplicationUndeploymentStepTest.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,18 @@ class StopApplicationUndeploymentStepTest extends UndeployAppStepTest {
2929

3030
@Test
3131
void testGetHookPhaseBefore() {
32-
Mockito.when(hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.BEFORE_STOP, HookPhase.APPLICATION_BEFORE_STOP_LIVE), context))
33-
.thenReturn(List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_STOP_LIVE, HookPhase.APPLICATION_BEFORE_STOP_LIVE));
34-
List<HookPhase> expectedHooks = List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_STOP_LIVE, HookPhase.APPLICATION_BEFORE_STOP_LIVE);
32+
Mockito.when(hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.BEFORE_STOP), context))
33+
.thenReturn(List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_STOP_LIVE));
34+
List<HookPhase> expectedHooks = List.of(HookPhase.BLUE_GREEN_APPLICATION_BEFORE_STOP_LIVE);
3535
List<HookPhase> hookPhasesBeforeStep = ((StopApplicationUndeploymentStep) step).getHookPhasesBeforeStep(context);
3636
assertEquals(expectedHooks, hookPhasesBeforeStep);
3737
}
3838

3939
@Test
4040
void testGetHookPhaseAfter() {
41-
Mockito.when(hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.AFTER_STOP, HookPhase.APPLICATION_AFTER_STOP_LIVE), context))
42-
.thenReturn(List.of(HookPhase.BLUE_GREEN_APPLICATION_AFTER_STOP_LIVE, HookPhase.APPLICATION_AFTER_STOP_LIVE));
43-
List<HookPhase> expectedHooks = List.of(HookPhase.BLUE_GREEN_APPLICATION_AFTER_STOP_LIVE, HookPhase.APPLICATION_AFTER_STOP_LIVE);
41+
Mockito.when(hooksPhaseBuilder.buildHookPhases(List.of(HookPhase.AFTER_STOP), context))
42+
.thenReturn(List.of(HookPhase.BLUE_GREEN_APPLICATION_AFTER_STOP_LIVE));
43+
List<HookPhase> expectedHooks = List.of(HookPhase.BLUE_GREEN_APPLICATION_AFTER_STOP_LIVE);
4444
List<HookPhase> hookPhasesBeforeStep = ((StopApplicationUndeploymentStep) step).getHookPhasesAfterStep(context);
4545
assertEquals(expectedHooks, hookPhasesBeforeStep);
4646
}

0 commit comments

Comments
 (0)