Skip to content

Commit db0d53a

Browse files
committed
DefaultApplications: stopAndStart uses v3 API
1 parent d356275 commit db0d53a

2 files changed

Lines changed: 125 additions & 46 deletions

File tree

cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/applications/DefaultApplications.java

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@
9696
import org.cloudfoundry.client.v3.Relationship;
9797
import org.cloudfoundry.client.v3.Resource;
9898
import org.cloudfoundry.client.v3.ToOneRelationship;
99+
import org.cloudfoundry.client.v3.applications.Application;
99100
import org.cloudfoundry.client.v3.applications.ApplicationFeature;
100101
import org.cloudfoundry.client.v3.applications.ApplicationResource;
101102
import org.cloudfoundry.client.v3.applications.ApplicationState;
@@ -207,8 +208,6 @@ public final class DefaultApplications implements Applications {
207208

208209
private static final String STARTED_STATE = "STARTED";
209210

210-
private static final String STOPPED_STATE = "STOPPED";
211-
212211
private static final String APP_FEATURE_SSH = "ssh";
213212

214213
private final CloudFoundryClient cloudFoundryClient;
@@ -2303,7 +2302,7 @@ private Mono<Void> restartApplication(
23032302
String applicationId,
23042303
Duration stagingTimeout,
23052304
Duration startupTimeout) {
2306-
return stopApplication(applicationId)
2305+
return stopApplicationV3(applicationId)
23072306
.then(
23082307
startApplicationAndWait(
23092308
application, applicationId, stagingTimeout, startupTimeout));
@@ -2330,7 +2329,15 @@ private Mono<Void> startApplicationAndWait(
23302329

23312330
private Mono<Void> stopAndStartApplication(
23322331
String applicationId, String name, PushApplicationManifestRequest request) {
2333-
return stopApplication(applicationId)
2332+
return stopApplicationV3(applicationId)
2333+
.then(
2334+
this.cloudFoundryClient
2335+
.applicationsV2()
2336+
.get(
2337+
org.cloudfoundry.client.v2.applications
2338+
.GetApplicationRequest.builder()
2339+
.applicationId(applicationId)
2340+
.build()))
23342341
.filter(resource -> shouldStartApplication(request, resource))
23352342
.flatMap(
23362343
resource ->
@@ -2341,11 +2348,17 @@ private Mono<Void> stopAndStartApplication(
23412348
request.getStartupTimeout()));
23422349
}
23432350

2344-
private Mono<AbstractApplicationResource> stopApplication(String applicationId) {
2345-
return requestUpdateApplicationState(applicationId, STOPPED_STATE);
2351+
private Mono<Void> stopApplicationV3(String applicationId) {
2352+
return this.cloudFoundryClient
2353+
.applicationsV3()
2354+
.get(
2355+
org.cloudfoundry.client.v3.applications.GetApplicationRequest.builder()
2356+
.applicationId(applicationId)
2357+
.build())
2358+
.flatMap(this::stopApplicationV3);
23462359
}
23472360

2348-
private Mono<Void> stopApplicationV3(ApplicationResource application) {
2361+
private Mono<Void> stopApplicationV3(Application application) {
23492362
if (application.getState() == ApplicationState.STOPPED) {
23502363
return Mono.empty();
23512364
}
@@ -2358,13 +2371,6 @@ private Mono<Void> stopApplicationV3(ApplicationResource application) {
23582371
.then();
23592372
}
23602373

2361-
private Mono<AbstractApplicationResource> stopApplicationIfNotStopped(
2362-
AbstractApplicationResource resource) {
2363-
return isNotIn(resource, STOPPED_STATE)
2364-
? stopApplication(ResourceUtils.getId(resource))
2365-
: Mono.just(resource);
2366-
}
2367-
23682374
private static ApplicationEnvironments toApplicationEnvironments(
23692375
GetApplicationEnvironmentResponse response) {
23702376
return ApplicationEnvironments.builder()
@@ -2430,10 +2436,6 @@ private static Date toDate(String date) {
24302436
return date == null ? null : DateUtils.parseFromIso8601(date);
24312437
}
24322438

2433-
private static Date toDate(Double date) {
2434-
return date == null ? null : DateUtils.parseSecondsFromEpoch(date);
2435-
}
2436-
24372439
private static Docker toDocker(SummaryApplicationResponse response) {
24382440
if (response.getDockerImage() == null) {
24392441
return null;

0 commit comments

Comments
 (0)