Skip to content

Commit b2d6758

Browse files
committed
DefaultApplications: use process statistics for instance count
1 parent c09a203 commit b2d6758

2 files changed

Lines changed: 72 additions & 47 deletions

File tree

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

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2274,24 +2274,31 @@ private static ApplicationDetail toApplicationDetail(
22742274
SummaryApplicationResponse summaryApplicationResponse,
22752275
String stackName,
22762276
List<InstanceDetail> instanceDetails) {
2277-
if (buildpacks.size() == 0) {
2278-
buildpacks =
2279-
Collections.singletonList(summaryApplicationResponse.getDetectedBuildpack());
2280-
}
2277+
Long runningInstances =
2278+
instanceDetails.stream()
2279+
.filter(
2280+
details ->
2281+
details.getState().equals(ProcessState.RUNNING.getValue())
2282+
|| details.getState()
2283+
.equals(ProcessState.STARTING.getValue()))
2284+
.count();
22812285

22822286
return ApplicationDetail.builder()
22832287
.buildpacks(buildpacks)
2284-
.diskQuota(summaryApplicationResponse.getDiskQuota())
2285-
.id(summaryApplicationResponse.getId())
2288+
.id(summaryApplicationResponse.getId()) // TODO: app id
2289+
.name(summaryApplicationResponse.getName()) // TODO: app name
2290+
.requestedState(summaryApplicationResponse.getState()) // TODO: app state
22862291
.instanceDetails(instanceDetails)
2287-
.instances(summaryApplicationResponse.getInstances())
2288-
.lastUploaded(toDate(summaryApplicationResponse.getPackageUpdatedAt()))
2292+
.instances(instanceDetails.size())
2293+
.runningInstances(runningInstances.intValue())
2294+
.diskQuota(summaryApplicationResponse.getDiskQuota())
22892295
.memoryLimit(summaryApplicationResponse.getMemory())
2290-
.name(summaryApplicationResponse.getName())
2291-
.requestedState(summaryApplicationResponse.getState())
2292-
.runningInstances(summaryApplicationResponse.getRunningInstances())
2296+
.lastUploaded(
2297+
toDate(
2298+
summaryApplicationResponse
2299+
.getPackageUpdatedAt())) // TODO: package object
2300+
.urls(toUrls(summaryApplicationResponse.getRoutes())) // TODO: ??
22932301
.stack(stackName)
2294-
.urls(toUrls(summaryApplicationResponse.getRoutes()))
22952302
.build();
22962303
}
22972304

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

Lines changed: 53 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -521,12 +521,24 @@ void get() {
521521
fill(ApplicationDetail.builder())
522522
.buildpack("test-buildpack")
523523
.id("test-application-summary-id")
524-
.instanceDetail(
524+
.instanceDetails(
525525
fill(InstanceDetail.builder())
526526
.since(null)
527527
.index("1")
528528
.state("RUNNING")
529+
.build(),
530+
fill(InstanceDetail.builder())
531+
.since(null)
532+
.index("2")
533+
.state("STARTING")
534+
.build(),
535+
fill(InstanceDetail.builder())
536+
.since(null)
537+
.index("3")
538+
.state("DOWN")
529539
.build())
540+
.runningInstances(2)
541+
.instances(3)
530542
.lastUploaded(new Date(0))
531543
.name("test-application-summary-name")
532544
.requestedState("test-application-summary-state")
@@ -698,6 +710,8 @@ void getBuildpackError() {
698710
.as(StepVerifier::create)
699711
.expectNext(
700712
fill(ApplicationDetail.builder())
713+
.instances(0)
714+
.runningInstances(0)
701715
.buildpack("test-buildpack")
702716
.id("test-application-summary-id")
703717
.lastUploaded(new Date(0))
@@ -710,38 +724,6 @@ void getBuildpackError() {
710724
.verify(Duration.ofSeconds(5));
711725
}
712726

713-
@Test
714-
void getDetectedBuildpack() {
715-
requestApplicationsV3(
716-
this.cloudFoundryClient, "test-app", TEST_SPACE_ID, "test-application-id");
717-
requestApplicationProcessStatistics(this.cloudFoundryClient, "test-application-id");
718-
requestStack(this.cloudFoundryClient, "test-application-stackId");
719-
requestApplicationSummaryDetectedBuildpack(this.cloudFoundryClient, "test-application-id");
720-
requestGetApplicationV3Docker(this.cloudFoundryClient, "test-application-id");
721-
722-
this.applications
723-
.get(GetApplicationRequest.builder().name("test-app").build())
724-
.as(StepVerifier::create)
725-
.expectNext(
726-
fill(ApplicationDetail.builder())
727-
.buildpack("test-application-summary-detectedBuildpack")
728-
.id("test-application-summary-id")
729-
.instanceDetail(
730-
fill(InstanceDetail.builder())
731-
.since(null)
732-
.index("1")
733-
.state("RUNNING")
734-
.build())
735-
.lastUploaded(new Date(0))
736-
.name("test-application-summary-name")
737-
.requestedState("test-application-summary-state")
738-
.stack("test-stack")
739-
.url("test-route-host.test-domain-name/test-path")
740-
.build())
741-
.expectComplete()
742-
.verify(Duration.ofSeconds(5));
743-
}
744-
745727
@Test
746728
void getEnvironments() {
747729
requestApplicationsV3(
@@ -1011,6 +993,8 @@ void getInstancesError() {
1011993
.as(StepVerifier::create)
1012994
.expectNext(
1013995
fill(ApplicationDetail.builder())
996+
.instances(0)
997+
.runningInstances(0)
1014998
.buildpack("test-buildpack")
1015999
.id("test-application-summary-id")
10161000
.lastUploaded(new Date(0))
@@ -1037,15 +1021,26 @@ void getNoBuildpack() {
10371021
.as(StepVerifier::create)
10381022
.expectNext(
10391023
fill(ApplicationDetail.builder())
1040-
.buildpack(null)
10411024
.id("test-application-summary-id")
1042-
.instanceDetail(
1025+
.instanceDetails(
10431026
fill(InstanceDetail.builder())
10441027
.since(null)
10451028
.index("1")
10461029
.state("RUNNING")
1030+
.build(),
1031+
fill(InstanceDetail.builder())
1032+
.since(null)
1033+
.index("2")
1034+
.state("STARTING")
1035+
.build(),
1036+
fill(InstanceDetail.builder())
1037+
.since(null)
1038+
.index("3")
1039+
.state("DOWN")
10471040
.build())
10481041
.lastUploaded(new Date(0))
1042+
.runningInstances(2)
1043+
.instances(3)
10491044
.name("test-application-summary-name")
10501045
.requestedState("test-application-summary-state")
10511046
.stack("test-stack")
@@ -1069,6 +1064,8 @@ void getStagingError() {
10691064
.as(StepVerifier::create)
10701065
.expectNext(
10711066
fill(ApplicationDetail.builder())
1067+
.instances(0)
1068+
.runningInstances(0)
10721069
.buildpack("test-buildpack")
10731070
.id("test-application-summary-id")
10741071
.lastUploaded(new Date(0))
@@ -1095,6 +1092,8 @@ void getStoppedError() {
10951092
.as(StepVerifier::create)
10961093
.expectNext(
10971094
fill(ApplicationDetail.builder())
1095+
.instances(0)
1096+
.runningInstances(0)
10981097
.buildpack("test-buildpack")
10991098
.id("test-application-summary-id")
11001099
.lastUploaded(new Date(0))
@@ -1121,6 +1120,8 @@ void getWithEmptyInstance() {
11211120
.as(StepVerifier::create)
11221121
.expectNext(
11231122
fill(ApplicationDetail.builder())
1123+
.instances(0)
1124+
.runningInstances(0)
11241125
.buildpack("test-buildpack")
11251126
.id("test-application-summary-id")
11261127
.lastUploaded(new Date(0))
@@ -4533,11 +4534,28 @@ private static void requestApplicationProcessStatistics(
45334534
GetApplicationProcessStatisticsResponse.builder()
45344535
.resources(
45354536
fill(ProcessStatisticsResource.builder())
4537+
.index(1)
45364538
.state(ProcessState.RUNNING)
45374539
.type("web")
45384540
.uptime(1L)
45394541
.fileDescriptorQuota(1L)
45404542
.host("test-host")
4543+
.build(),
4544+
fill(ProcessStatisticsResource.builder())
4545+
.index(2)
4546+
.state(ProcessState.STARTING)
4547+
.type("web")
4548+
.uptime(1L)
4549+
.fileDescriptorQuota(1L)
4550+
.host("test-host")
4551+
.build(),
4552+
fill(ProcessStatisticsResource.builder())
4553+
.index(3)
4554+
.state(ProcessState.DOWN)
4555+
.type("web")
4556+
.uptime(1L)
4557+
.fileDescriptorQuota(1L)
4558+
.host("test-host")
45414559
.build())
45424560
.build()));
45434561
}

0 commit comments

Comments
 (0)