Skip to content

Commit 6b45278

Browse files
fix(orca-clouddriver): Fix exception in mapping of trafficManagement when null (#4845)
1 parent effb8b6 commit 6b45278

File tree

2 files changed

+24
-14
lines changed

2 files changed

+24
-14
lines changed

orca-clouddriver/src/main/java/com/netflix/spinnaker/orca/clouddriver/pipeline/manifest/DeployManifestStage.java

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -92,20 +92,22 @@ public boolean processExpressions(
9292

9393
@Override
9494
public void afterStages(@Nonnull StageExecution stage, @Nonnull StageGraphBuilder graph) {
95-
TrafficManagement trafficManagement =
96-
stage.mapTo("/trafficManagement", TrafficManagement.class);
97-
if (trafficManagement.isEnabled()) {
98-
switch (trafficManagement.getOptions().getStrategy()) {
99-
case RED_BLACK:
100-
case BLUE_GREEN:
101-
oldManifestActionAppender.deleteOrDisableOldManifest(stage.getContext(), graph);
102-
break;
103-
case HIGHLANDER:
104-
oldManifestActionAppender.disableOldManifest(stage.getContext(), graph);
105-
oldManifestActionAppender.deleteOldManifest(stage.getContext(), graph);
106-
break;
107-
case NONE:
108-
// do nothing
95+
if (stage.getContext().get("trafficManagement") != null) {
96+
TrafficManagement trafficManagement =
97+
stage.mapTo("/trafficManagement", TrafficManagement.class);
98+
if (trafficManagement.isEnabled()) {
99+
switch (trafficManagement.getOptions().getStrategy()) {
100+
case RED_BLACK:
101+
case BLUE_GREEN:
102+
oldManifestActionAppender.deleteOrDisableOldManifest(stage.getContext(), graph);
103+
break;
104+
case HIGHLANDER:
105+
oldManifestActionAppender.disableOldManifest(stage.getContext(), graph);
106+
oldManifestActionAppender.deleteOldManifest(stage.getContext(), graph);
107+
break;
108+
case NONE:
109+
// do nothing
110+
}
109111
}
110112
}
111113
if (shouldRemoveStageOutputs(stage)) {

orca-clouddriver/src/test/java/com/netflix/spinnaker/orca/clouddriver/pipeline/manifest/DeployManifestStageTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,14 @@ void rolloutStrategyDisabled() {
115115
assertThat(getAfterStages(stage)).isEmpty();
116116
}
117117

118+
@Test
119+
void rolloutStrategyMissing() {
120+
StageExecutionImpl stage = new StageExecutionImpl();
121+
stage.setContext(getContext(DeployManifestContext.builder().build()));
122+
stage.getContext().remove("trafficManagement");
123+
assertThat(getAfterStages(stage)).isEmpty();
124+
}
125+
118126
@Test
119127
void rolloutStrategyRedBlack() {
120128
givenManifestIsStable();

0 commit comments

Comments
 (0)