|
118 | 118 | import java.util.Map; |
119 | 119 | import java.util.NoSuchElementException; |
120 | 120 | import java.util.Optional; |
121 | | -import java.util.concurrent.ThreadLocalRandom; |
122 | 121 | import java.util.function.BiFunction; |
123 | 122 | import java.util.function.Predicate; |
124 | 123 | import java.util.function.UnaryOperator; |
@@ -708,9 +707,13 @@ private static Mono<String> getApplicationId(CloudFoundryClient cloudFoundryClie |
708 | 707 | private static Mono<String> getApplicationId(CloudFoundryClient cloudFoundryClient, ApplicationManifest manifest, String spaceId, String stackId) { |
709 | 708 | return requestApplications(cloudFoundryClient, manifest.getName(), spaceId) |
710 | 709 | .singleOrEmpty() |
711 | | - .map(ResourceUtils::getId) |
712 | | - .then(applicationId -> requestUpdateApplication(cloudFoundryClient, applicationId, manifest, stackId) |
713 | | - .map(ResourceUtils::getId)) |
| 710 | + .then(application -> { |
| 711 | + Map<String, Object> environmentJsons = new HashMap<>(ResourceUtils.getEntity(application).getEnvironmentJsons()); |
| 712 | + environmentJsons.putAll(manifest.getEnvironmentVariables()); |
| 713 | + |
| 714 | + return requestUpdateApplication(cloudFoundryClient, ResourceUtils.getId(application), environmentJsons, manifest, stackId) |
| 715 | + .map(ResourceUtils::getId); |
| 716 | + }) |
714 | 717 | .switchIfEmpty(requestCreateApplication(cloudFoundryClient, manifest, spaceId, stackId) |
715 | 718 | .map(ResourceUtils::getId)); |
716 | 719 | } |
@@ -1143,6 +1146,7 @@ private static Mono<CreateApplicationResponse> requestCreateApplication(CloudFou |
1143 | 1146 | .buildpack(manifest.getBuildpack()) |
1144 | 1147 | .command(manifest.getCommand()) |
1145 | 1148 | .diskQuota(manifest.getDisk()) |
| 1149 | + .environmentJsons(manifest.getEnvironmentVariables()) |
1146 | 1150 | .healthCheckTimeout(manifest.getTimeout()) |
1147 | 1151 | .healthCheckType(Optional.ofNullable(manifest.getHealthCheckType()).map(ApplicationHealthCheck::getValue).orElse(null)) |
1148 | 1152 | .instances(manifest.getInstances()) |
@@ -1385,27 +1389,29 @@ private static Mono<Void> requestTerminateApplicationInstance(CloudFoundryClient |
1385 | 1389 | .build()); |
1386 | 1390 | } |
1387 | 1391 |
|
1388 | | - private static Mono<AbstractApplicationResource> requestUpdateApplication(CloudFoundryClient cloudFoundryClient, String applicationId, ApplicationManifest manifest, String stackId) { |
1389 | | - return requestUpdateApplication(cloudFoundryClient, applicationId, |
1390 | | - builder -> { |
1391 | | - builder |
1392 | | - .buildpack(manifest.getBuildpack()) |
1393 | | - .command(manifest.getCommand()) |
1394 | | - .diskQuota(manifest.getDisk()) |
1395 | | - .healthCheckTimeout(manifest.getTimeout()) |
1396 | | - .healthCheckType(Optional.ofNullable(manifest.getHealthCheckType()).map(ApplicationHealthCheck::getValue).orElse(null)) |
1397 | | - .instances(manifest.getInstances()) |
1398 | | - .memory(manifest.getMemory()) |
1399 | | - .name(manifest.getName()) |
1400 | | - .stackId(stackId); |
1401 | | - |
1402 | | - Optional.ofNullable(manifest.getDockerImage()) |
1403 | | - .ifPresent(dockerImage -> builder |
1404 | | - .diego(true) |
1405 | | - .dockerImage(dockerImage)); |
1406 | | - |
1407 | | - return builder; |
1408 | | - }); |
| 1392 | + private static Mono<AbstractApplicationResource> requestUpdateApplication(CloudFoundryClient cloudFoundryClient, String applicationId, Map<String, Object> environmentJsons, |
| 1393 | + ApplicationManifest manifest, String stackId) { |
| 1394 | + |
| 1395 | + return requestUpdateApplication(cloudFoundryClient, applicationId, builder -> { |
| 1396 | + builder |
| 1397 | + .buildpack(manifest.getBuildpack()) |
| 1398 | + .command(manifest.getCommand()) |
| 1399 | + .diskQuota(manifest.getDisk()) |
| 1400 | + .environmentJsons(environmentJsons) |
| 1401 | + .healthCheckTimeout(manifest.getTimeout()) |
| 1402 | + .healthCheckType(Optional.ofNullable(manifest.getHealthCheckType()).map(ApplicationHealthCheck::getValue).orElse(null)) |
| 1403 | + .instances(manifest.getInstances()) |
| 1404 | + .memory(manifest.getMemory()) |
| 1405 | + .name(manifest.getName()) |
| 1406 | + .stackId(stackId); |
| 1407 | + |
| 1408 | + Optional.ofNullable(manifest.getDockerImage()) |
| 1409 | + .ifPresent(dockerImage -> builder |
| 1410 | + .diego(true) |
| 1411 | + .dockerImage(dockerImage)); |
| 1412 | + |
| 1413 | + return builder; |
| 1414 | + }); |
1409 | 1415 | } |
1410 | 1416 |
|
1411 | 1417 | private static Mono<AbstractApplicationResource> requestUpdateApplication(CloudFoundryClient cloudFoundryClient, String applicationId, UnaryOperator<UpdateApplicationRequest.Builder> modifier) { |
|
0 commit comments