Skip to content

Commit 00f99c9

Browse files
committed
DefaultApplications: setEnvironmentVariable and unsetEnvironmentVariable use v3 api
1 parent 15d243f commit 00f99c9

File tree

3 files changed

+58
-70
lines changed

3 files changed

+58
-70
lines changed

cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/applications/_UpdateApplicationEnvironmentVariablesRequest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,15 @@
1616

1717
package org.cloudfoundry.client.v3.applications;
1818

19+
import java.util.Map;
20+
1921
import com.fasterxml.jackson.annotation.JsonIgnore;
22+
import com.fasterxml.jackson.annotation.JsonInclude;
2023
import com.fasterxml.jackson.annotation.JsonProperty;
2124
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
2225
import org.cloudfoundry.AllowNulls;
2326
import org.immutables.value.Value;
2427

25-
import java.util.Map;
26-
2728
@JsonSerialize
2829
@Value.Immutable
2930
abstract class _UpdateApplicationEnvironmentVariablesRequest {
@@ -39,6 +40,7 @@ abstract class _UpdateApplicationEnvironmentVariablesRequest {
3940
*/
4041
@AllowNulls
4142
@JsonProperty("var")
43+
@JsonInclude(value = JsonInclude.Include.ALWAYS)
4244
abstract Map<String, String> getVars();
4345

4446
}

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

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@
117117
import org.cloudfoundry.client.v3.applications.ListApplicationRoutesRequest;
118118
import org.cloudfoundry.client.v3.applications.ListApplicationsRequest;
119119
import org.cloudfoundry.client.v3.applications.SetApplicationCurrentDropletRequest;
120+
import org.cloudfoundry.client.v3.applications.UpdateApplicationEnvironmentVariablesRequest;
121+
import org.cloudfoundry.client.v3.applications.UpdateApplicationEnvironmentVariablesResponse;
120122
import org.cloudfoundry.client.v3.applications.UpdateApplicationFeatureRequest;
121123
import org.cloudfoundry.client.v3.auditevents.AuditEventResource;
122124
import org.cloudfoundry.client.v3.auditevents.ListAuditEventsRequest;
@@ -624,22 +626,6 @@ public Mono<Void> scale(ScaleApplicationRequest request) {
624626
.checkpoint();
625627
}
626628

627-
@Override
628-
public Mono<Void> setEnvironmentVariable(SetEnvironmentVariableApplicationRequest request) {
629-
return getApplication(request.getName())
630-
.flatMap(
631-
resource ->
632-
requestUpdateApplicationEnvironment(
633-
ResourceUtils.getId(resource),
634-
addToEnvironment(
635-
getEnvironment(resource),
636-
request.getVariableName(),
637-
request.getVariableValue())))
638-
.then()
639-
.transform(OperationsLogging.log("Set Application Environment Variable"))
640-
.checkpoint();
641-
}
642-
643629
@Override
644630
public Mono<Void> setHealthCheck(SetApplicationHealthCheckRequest request) {
645631
return getApplicationIdV3(request.getName())
@@ -694,15 +680,21 @@ public Mono<Void> terminateTask(TerminateApplicationTaskRequest request) {
694680
}
695681

696682
@Override
697-
public Mono<Void> unsetEnvironmentVariable(UnsetEnvironmentVariableApplicationRequest request) {
698-
return getApplication(request.getName())
683+
public Mono<Void> setEnvironmentVariable(SetEnvironmentVariableApplicationRequest request) {
684+
return getApplicationIdV3(request.getName())
699685
.flatMap(
700-
resource ->
701-
requestUpdateApplicationEnvironment(
702-
ResourceUtils.getId(resource),
703-
removeFromEnvironment(
704-
getEnvironment(resource),
705-
request.getVariableName())))
686+
id ->
687+
requestSetEnvironmentVariable(
688+
id, request.getVariableName(), request.getVariableValue()))
689+
.then()
690+
.transform(OperationsLogging.log("Set Application Environment Variable"))
691+
.checkpoint();
692+
}
693+
694+
@Override
695+
public Mono<Void> unsetEnvironmentVariable(UnsetEnvironmentVariableApplicationRequest request) {
696+
return getApplicationIdV3(request.getName())
697+
.flatMap(id -> requestUnsetEnvironmentVariable(id, request.getVariableName()))
706698
.then()
707699
.transform(OperationsLogging.log("Unset Application Environment Variable"))
708700
.checkpoint();
@@ -2177,10 +2169,26 @@ private Mono<Void> requestUpdateApplicationV3(
21772169
.then();
21782170
}
21792171

2180-
private Mono<AbstractApplicationResource> requestUpdateApplicationEnvironment(
2181-
String applicationId, Map<String, Object> environment) {
2182-
return requestUpdateApplication(
2183-
applicationId, builder -> builder.environmentJsons(environment));
2172+
private Mono<UpdateApplicationEnvironmentVariablesResponse> requestSetEnvironmentVariable(
2173+
String applicationId, String name, String value) {
2174+
return this.cloudFoundryClient
2175+
.applicationsV3()
2176+
.updateEnvironmentVariables(
2177+
UpdateApplicationEnvironmentVariablesRequest.builder()
2178+
.applicationId(applicationId)
2179+
.var(name, value)
2180+
.build());
2181+
}
2182+
2183+
private Mono<UpdateApplicationEnvironmentVariablesResponse> requestUnsetEnvironmentVariable(
2184+
String applicationId, String name) {
2185+
return this.cloudFoundryClient
2186+
.applicationsV3()
2187+
.updateEnvironmentVariables(
2188+
UpdateApplicationEnvironmentVariablesRequest.builder()
2189+
.applicationId(applicationId)
2190+
.var(name, null)
2191+
.build());
21842192
}
21852193

21862194
private Mono<AbstractApplicationResource> requestUpdateApplicationHealthCheckType(

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

Lines changed: 18 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@
133133
import org.cloudfoundry.client.v3.applications.ListApplicationRoutesResponse;
134134
import org.cloudfoundry.client.v3.applications.ListApplicationsRequest;
135135
import org.cloudfoundry.client.v3.applications.ListApplicationsResponse;
136+
import org.cloudfoundry.client.v3.applications.UpdateApplicationEnvironmentVariablesRequest;
137+
import org.cloudfoundry.client.v3.applications.UpdateApplicationEnvironmentVariablesResponse;
136138
import org.cloudfoundry.client.v3.applications.UpdateApplicationFeatureRequest;
137139
import org.cloudfoundry.client.v3.applications.UpdateApplicationFeatureResponse;
138140
import org.cloudfoundry.client.v3.auditevents.AuditEventResource;
@@ -3647,21 +3649,12 @@ void scaleNoChange() {
36473649

36483650
@Test
36493651
void setEnvironmentVariable() {
3650-
requestApplications(
3651-
this.cloudFoundryClient,
3652-
"test-app",
3653-
TEST_SPACE_ID,
3654-
"test-metadata-id",
3655-
FluentMap.<String, Object>builder()
3656-
.entry("test-var", "test-value")
3657-
.entry("test-var2", "test-value2")
3658-
.build());
3652+
requestApplicationsV3(
3653+
this.cloudFoundryClient, "test-app", TEST_SPACE_ID, "test-application-id");
36593654
requestUpdateApplicationEnvironment(
36603655
this.cloudFoundryClient,
3661-
"test-metadata-id",
3662-
FluentMap.<String, Object>builder()
3663-
.entry("test-var", "test-value")
3664-
.entry("test-var2", "test-value2")
3656+
"test-application-id",
3657+
FluentMap.<String, String>builder()
36653658
.entry("test-var-name", "test-var-value")
36663659
.build());
36673660

@@ -3679,7 +3672,7 @@ void setEnvironmentVariable() {
36793672

36803673
@Test
36813674
void setEnvironmentVariableNoApp() {
3682-
requestApplicationsEmpty(this.cloudFoundryClient, "test-app", TEST_SPACE_ID);
3675+
requestApplicationsEmptyV3(this.cloudFoundryClient, "test-app", TEST_SPACE_ID);
36833676

36843677
this.applications
36853678
.setEnvironmentVariable(
@@ -3962,23 +3955,12 @@ void terminateTaskNoTask() {
39623955

39633956
@Test
39643957
void unsetEnvironmentVariable() {
3965-
requestApplications(
3966-
this.cloudFoundryClient,
3967-
"test-app",
3968-
TEST_SPACE_ID,
3969-
"test-metadata-id",
3970-
FluentMap.<String, Object>builder()
3971-
.entry("test-var", "test-value")
3972-
.entry("test-var2", "test-value2")
3973-
.entry("test-var-name", "test-var-value")
3974-
.build());
3958+
requestApplicationsV3(
3959+
this.cloudFoundryClient, "test-app", TEST_SPACE_ID, "test-application-id");
39753960
requestUpdateApplicationEnvironment(
39763961
this.cloudFoundryClient,
3977-
"test-metadata-id",
3978-
FluentMap.<String, Object>builder()
3979-
.entry("test-var2", "test-value2")
3980-
.entry("test-var-name", "test-var-value")
3981-
.build());
3962+
"test-application-id",
3963+
FluentMap.<String, String>builder().entry("test-var", null).build());
39823964

39833965
this.applications
39843966
.unsetEnvironmentVariable(
@@ -3993,7 +3975,7 @@ void unsetEnvironmentVariable() {
39933975

39943976
@Test
39953977
void unsetEnvironmentVariableNoApp() {
3996-
requestApplicationsEmpty(this.cloudFoundryClient, "test-app", TEST_SPACE_ID);
3978+
requestApplicationsEmptyV3(this.cloudFoundryClient, "test-app", TEST_SPACE_ID);
39973979

39983980
this.applications
39993981
.unsetEnvironmentVariable(
@@ -5855,21 +5837,17 @@ private static void requestUpdateApplication(
58555837
private static void requestUpdateApplicationEnvironment(
58565838
CloudFoundryClient cloudFoundryClient,
58575839
String applicationId,
5858-
Map<String, Object> environment) {
5840+
Map<String, String> environment) {
58595841
when(cloudFoundryClient
5860-
.applicationsV2()
5861-
.update(
5862-
UpdateApplicationRequest.builder()
5842+
.applicationsV3()
5843+
.updateEnvironmentVariables(
5844+
UpdateApplicationEnvironmentVariablesRequest.builder()
58635845
.applicationId(applicationId)
5864-
.environmentJsons(environment)
5846+
.putAllVars(environment)
58655847
.build()))
58665848
.thenReturn(
58675849
Mono.just(
5868-
fill(UpdateApplicationResponse.builder())
5869-
.entity(
5870-
fill(ApplicationEntity.builder())
5871-
.environmentJsons(environment)
5872-
.build())
5850+
fill(UpdateApplicationEnvironmentVariablesResponse.builder())
58735851
.build()));
58745852
}
58755853

0 commit comments

Comments
 (0)