Skip to content

Commit 9b32880

Browse files
committed
DefaultApplications: use process statistics for disk and memory quota
1 parent dbcbea0 commit 9b32880

File tree

2 files changed

+33
-16
lines changed

2 files changed

+33
-16
lines changed

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

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,7 +1090,7 @@ private Mono<ApplicationResource> getApplicationV3(String application) {
10901090
List<String>,
10911091
SummaryApplicationResponse,
10921092
String,
1093-
List<InstanceDetail>,
1093+
GetApplicationProcessStatisticsResponse,
10941094
ApplicationResource>>
10951095
getAuxiliaryContent(ApplicationResource applicationResource) {
10961096
String applicationId = applicationResource.getId();
@@ -1102,14 +1102,11 @@ private Mono<ApplicationResource> getApplicationV3(String application) {
11021102
stackName = ((BuildpackData) data).getStack();
11031103
}
11041104

1105-
Mono<List<InstanceDetail>> appInstanceDetails =
1106-
requestApplicationStatisticsV3(applicationId).map(this::toInstanceDetailList);
1107-
11081105
return Mono.zip(
11091106
getApplicationBuildpacks(applicationId),
11101107
requestApplicationSummary(applicationId),
11111108
Mono.just(stackName),
1112-
appInstanceDetails,
1109+
requestApplicationStatisticsV3(applicationId),
11131110
Mono.just(applicationResource));
11141111
}
11151112

@@ -2280,27 +2277,35 @@ private static ApplicationDetail toApplicationDetail(
22802277
List<String> buildpacks,
22812278
SummaryApplicationResponse summaryApplicationResponse,
22822279
String stackName,
2283-
List<InstanceDetail> instanceDetails,
2280+
GetApplicationProcessStatisticsResponse processStats,
22842281
ApplicationResource application) {
2285-
Long runningInstances =
2286-
instanceDetails.stream()
2282+
List<InstanceDetail> instanceDetails = toInstanceDetailList(processStats);
2283+
long runningInstances =
2284+
processStats.getResources().stream()
22872285
.filter(
22882286
details ->
2289-
details.getState().equals(ProcessState.RUNNING.getValue())
2290-
|| details.getState()
2291-
.equals(ProcessState.STARTING.getValue()))
2287+
details.getState() == ProcessState.RUNNING
2288+
|| details.getState() == ProcessState.STARTING)
22922289
.count();
22932290

2291+
// TODO: we should use the `/v3/apps/:guid/manifest` endpoint to get the requested quotas
2292+
long diskQuota = -1;
2293+
long memoryLimit = -1;
2294+
if (!instanceDetails.isEmpty()) {
2295+
diskQuota = instanceDetails.get(0).getDiskQuota();
2296+
memoryLimit = instanceDetails.get(0).getMemoryQuota();
2297+
}
2298+
22942299
return ApplicationDetail.builder()
22952300
.buildpacks(buildpacks)
22962301
.id(application.getId())
22972302
.name(application.getName())
22982303
.requestedState(application.getState().getValue())
22992304
.instanceDetails(instanceDetails)
2300-
.instances(instanceDetails.size())
2301-
.runningInstances(runningInstances.intValue())
2302-
.diskQuota(summaryApplicationResponse.getDiskQuota())
2303-
.memoryLimit(summaryApplicationResponse.getMemory())
2305+
.instances(processStats.getResources().size())
2306+
.runningInstances((int) runningInstances)
2307+
.diskQuota((int) diskQuota)
2308+
.memoryLimit((int) memoryLimit)
23042309
.lastUploaded(toDate(summaryApplicationResponse.getPackageUpdatedAt()))
23052310
.urls(toUrls(summaryApplicationResponse.getRoutes()))
23062311
.stack(stackName)
@@ -2434,7 +2439,7 @@ private static HealthCheckType fromHealthCheck(ApplicationHealthCheck type) {
24342439
}
24352440
}
24362441

2437-
private List<InstanceDetail> toInstanceDetailList(
2442+
private static List<InstanceDetail> toInstanceDetailList(
24382443
GetApplicationProcessStatisticsResponse statisticsResponse) {
24392444
return statisticsResponse.getResources().stream()
24402445
.map(

cloudfoundry-operations/src/test/java/org/cloudfoundry/operations/applications/DefaultApplicationsTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -710,6 +710,8 @@ void getBuildpackError() {
710710
.as(StepVerifier::create)
711711
.expectNext(
712712
fill(ApplicationDetail.builder())
713+
.diskQuota(-1)
714+
.memoryLimit(-1)
713715
.instances(0)
714716
.runningInstances(0)
715717
.buildpack("test-buildpack")
@@ -993,6 +995,8 @@ void getInstancesError() {
993995
.as(StepVerifier::create)
994996
.expectNext(
995997
fill(ApplicationDetail.builder())
998+
.diskQuota(-1)
999+
.memoryLimit(-1)
9961000
.instances(0)
9971001
.runningInstances(0)
9981002
.buildpack("test-buildpack")
@@ -1064,6 +1068,10 @@ void getStagingError() {
10641068
.as(StepVerifier::create)
10651069
.expectNext(
10661070
fill(ApplicationDetail.builder())
1071+
.diskQuota(-1)
1072+
.memoryLimit(-1)
1073+
.diskQuota(-1)
1074+
.memoryLimit(-1)
10671075
.instances(0)
10681076
.runningInstances(0)
10691077
.buildpack("test-buildpack")
@@ -1092,6 +1100,8 @@ void getStoppedError() {
10921100
.as(StepVerifier::create)
10931101
.expectNext(
10941102
fill(ApplicationDetail.builder())
1103+
.diskQuota(-1)
1104+
.memoryLimit(-1)
10951105
.instances(0)
10961106
.runningInstances(0)
10971107
.buildpack("test-buildpack")
@@ -1120,6 +1130,8 @@ void getWithEmptyInstance() {
11201130
.as(StepVerifier::create)
11211131
.expectNext(
11221132
fill(ApplicationDetail.builder())
1133+
.diskQuota(-1)
1134+
.memoryLimit(-1)
11231135
.instances(0)
11241136
.runningInstances(0)
11251137
.buildpack("test-buildpack")

0 commit comments

Comments
 (0)