|
27 | 27 | import org.cloudfoundry.client.CloudFoundryClient; |
28 | 28 | import org.cloudfoundry.client.v3.applications.GetApplicationProcessRequest; |
29 | 29 | import org.cloudfoundry.client.v3.applications.GetApplicationProcessResponse; |
| 30 | +import org.cloudfoundry.client.v3.processes.Data; |
30 | 31 | import org.cloudfoundry.client.v3.processes.GetProcessRequest; |
31 | 32 | import org.cloudfoundry.client.v3.processes.GetProcessResponse; |
32 | 33 | import org.cloudfoundry.client.v3.processes.GetProcessStatisticsRequest; |
|
37 | 38 | import org.cloudfoundry.client.v3.processes.Process; |
38 | 39 | import org.cloudfoundry.client.v3.processes.ProcessResource; |
39 | 40 | import org.cloudfoundry.client.v3.processes.ProcessStatisticsResource; |
| 41 | +import org.cloudfoundry.client.v3.processes.ReadinessHealthCheck; |
| 42 | +import org.cloudfoundry.client.v3.processes.ReadinessHealthCheckType; |
40 | 43 | import org.cloudfoundry.client.v3.processes.ScaleProcessRequest; |
41 | 44 | import org.cloudfoundry.client.v3.processes.TerminateProcessInstanceRequest; |
42 | 45 | import org.cloudfoundry.client.v3.processes.UpdateProcessRequest; |
@@ -234,7 +237,38 @@ private static Mono<Void> createApplication( |
234 | 237 | .name(name) |
235 | 238 | .path(path) |
236 | 239 | .noStart(false) |
237 | | - .build()); |
| 240 | + } |
| 241 | + |
| 242 | + @Test |
| 243 | + public void updateReadinessHealthCheckType() throws IOException { |
| 244 | + String applicationName = this.nameFactory.getApplicationName(); |
| 245 | + Path path = new ClassPathResource("test-application.zip").getFile().toPath(); |
| 246 | + |
| 247 | + createApplication(this.cloudFoundryOperations, applicationName, path) |
| 248 | + .then(getApplicationId(this.cloudFoundryOperations, applicationName)) |
| 249 | + .flatMap(applicationId -> getProcessId(this.cloudFoundryClient, applicationId)) |
| 250 | + .flatMap(processId -> this.cloudFoundryClient.processes() |
| 251 | + .update(UpdateProcessRequest.builder() |
| 252 | + .readinessHealthCheck(ReadinessHealthCheck |
| 253 | + .builder() |
| 254 | + .data(Data |
| 255 | + .builder() |
| 256 | + .endpoint("/test") |
| 257 | + .invocationTimeout(1) |
| 258 | + .interval(2) |
| 259 | + .build()) |
| 260 | + .type(ReadinessHealthCheckType.PORT) |
| 261 | + .build()) |
| 262 | + .processId(processId) |
| 263 | + .build()) |
| 264 | + .then(Mono.just(processId))) |
| 265 | + .flatMap(processId -> requestGetProcess(this.cloudFoundryClient, processId)) |
| 266 | + .map(GetProcessResponse::getReadinessHealthCheck) |
| 267 | + .map(ReadinessHealthCheck::getType) |
| 268 | + .as(StepVerifier::create) |
| 269 | + .expectNext(ReadinessHealthCheckType.PORT) |
| 270 | + .expectComplete() |
| 271 | + .verify(Duration.ofMinutes(5)); |
238 | 272 | } |
239 | 273 |
|
240 | 274 | private static Mono<String> getApplicationId( |
|
0 commit comments