Skip to content

Commit 226c3c7

Browse files
fix(cloudfoundry): Update ProcessStats model due to capi-1.84.0 changes (#6283) (#6294)
(cherry picked from commit 031bf1d) Co-authored-by: Christos Arvanitis <christos.arvanitis@armory.io>
1 parent e2b1e55 commit 226c3c7

File tree

4 files changed

+28
-1
lines changed

4 files changed

+28
-1
lines changed

clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/client/model/v3/ProcessStats.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public enum State {
2626
RUNNING,
2727
CRASHED,
2828
STARTING,
29+
STOPPING,
2930
DOWN
3031
}
3132
}

clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/deploy/ops/CloudFoundryOperationUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ static String describeProcessState(ProcessStats.State state) {
2525
return "is still starting";
2626
case CRASHED:
2727
return "crashed";
28+
case STOPPING:
29+
return "is in graceful shutdown - stopping";
2830
case RUNNING:
2931
case DOWN:
3032
default:

clouddriver-cloudfoundry/src/main/java/com/netflix/spinnaker/clouddriver/cloudfoundry/deploy/ops/StopCloudFoundryServerGroupAtomicOperation.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ public Void operate(List priorOutputs) {
5151
() -> client.getApplications().getAppState(description.getServerGroupId()),
5252
inProgressState ->
5353
inProgressState != ProcessStats.State.STARTING
54-
&& inProgressState != ProcessStats.State.RUNNING,
54+
&& inProgressState != ProcessStats.State.RUNNING
55+
&& inProgressState != ProcessStats.State.STOPPING,
5556
null,
5657
getTask(),
5758
description.getServerGroupName(),

clouddriver-cloudfoundry/src/test/java/com/netflix/spinnaker/clouddriver/cloudfoundry/deploy/ops/StopCloudFoundryServerGroupAtomicOperationTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,27 @@ void failedToStop() {
8686
.isEqualTo(
8787
"Cloud Foundry API returned with error(s): Failed to stop 'myapp' which instead is running");
8888
}
89+
90+
@Test
91+
void failedToStopStopping() {
92+
OperationPoller poller = mock(OperationPoller.class);
93+
94+
//noinspection unchecked
95+
when(poller.waitForOperation(any(Supplier.class), any(), any(), any(), any(), any()))
96+
.thenReturn(ProcessStats.State.STOPPING);
97+
98+
StopCloudFoundryServerGroupAtomicOperation op =
99+
new StopCloudFoundryServerGroupAtomicOperation(poller, desc);
100+
101+
Task task = runOperation(op);
102+
List<Object> resultObjects = task.getResultObjects();
103+
assertThat(resultObjects.size()).isEqualTo(1);
104+
Object o = resultObjects.get(0);
105+
assertThat(o).isInstanceOf(Map.class);
106+
Object ex = ((Map) o).get("EXCEPTION");
107+
assertThat(ex).isInstanceOf(CloudFoundryApiException.class);
108+
assertThat(((CloudFoundryApiException) ex).getMessage())
109+
.isEqualTo(
110+
"Cloud Foundry API returned with error(s): Failed to stop 'myapp' which instead is in graceful shutdown - stopping");
111+
}
89112
}

0 commit comments

Comments
 (0)