Skip to content

Commit c3349a9

Browse files
Create User must user-id must be optional since users may be created using username and origin and integration clean up should use version 3
1 parent 6cad806 commit c3349a9

File tree

3 files changed

+15
-26
lines changed

3 files changed

+15
-26
lines changed

cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/users/_CreateUserRequest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ abstract class _CreateUserRequest {
3232
* Unique identifier for the user. For UAA users this will match the UAA user ID; in the case of UAA clients, this will match the UAA client ID
3333
*/
3434
@JsonProperty("guid")
35+
@Nullable
3536
abstract String getUserId();
3637

3738
/**

cloudfoundry-client/src/test/java/org/cloudfoundry/client/v3/users/CreateUserRequestTest.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,12 @@
1616

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

19-
import static org.junit.jupiter.api.Assertions.assertThrows;
20-
2119
import org.junit.jupiter.api.Test;
2220

2321
class CreateUserRequestTest {
24-
@Test
25-
void noUserId() {
26-
assertThrows(IllegalStateException.class, () -> CreateUserRequest.builder().build());
27-
}
2822

2923
@Test
3024
void valid() {
31-
CreateUserRequest.builder().userId("test-user-id").build();
25+
CreateUserRequest.builder().build();
3226
}
3327
}

integration-test/src/test/java/org/cloudfoundry/CloudFoundryCleaner.java

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@
7373
import org.cloudfoundry.client.v2.userprovidedserviceinstances.ListUserProvidedServiceInstancesRequest;
7474
import org.cloudfoundry.client.v2.userprovidedserviceinstances.RemoveUserProvidedServiceInstanceRouteRequest;
7575
import org.cloudfoundry.client.v2.userprovidedserviceinstances.UserProvidedServiceInstanceResource;
76-
import org.cloudfoundry.client.v2.users.UserResource;
7776
import org.cloudfoundry.client.v3.Metadata;
7877
import org.cloudfoundry.client.v3.Relationship;
7978
import org.cloudfoundry.client.v3.applications.Application;
@@ -86,6 +85,7 @@
8685
import org.cloudfoundry.client.v3.spaces.GetSpaceResponse;
8786
import org.cloudfoundry.client.v3.spaces.UpdateSpaceRequest;
8887
import org.cloudfoundry.client.v3.spaces.UpdateSpaceResponse;
88+
import org.cloudfoundry.client.v3.users.UserResource;
8989
import org.cloudfoundry.networking.NetworkingClient;
9090
import org.cloudfoundry.networking.v1.policies.DeletePoliciesRequest;
9191
import org.cloudfoundry.networking.v1.policies.Destination;
@@ -213,7 +213,7 @@ void clean() {
213213
cleanSpaceQuotaDefinitions(
214214
this.cloudFoundryClient, this.nameFactory),
215215
cleanStacks(this.cloudFoundryClient, this.nameFactory),
216-
cleanUsers(this.cloudFoundryClient, this.nameFactory)))
216+
cleanUsersV3(this.cloudFoundryClient, this.nameFactory)))
217217
.thenMany(
218218
Mono.when(
219219
cleanApplicationsV3(
@@ -1043,35 +1043,29 @@ private static Flux<Void> cleanUserProvidedServiceInstances(
10431043
t)));
10441044
}
10451045

1046-
private static Flux<Void> cleanUsers(
1046+
private static Flux<Void> cleanUsersV3(
10471047
CloudFoundryClient cloudFoundryClient, NameFactory nameFactory) {
1048-
return PaginationUtils.requestClientV2Resources(
1048+
return PaginationUtils.requestClientV3Resources(
10491049
page ->
10501050
cloudFoundryClient
1051-
.users()
1051+
.usersV3()
10521052
.list(
1053-
org.cloudfoundry.client.v2.users.ListUsersRequest
1053+
org.cloudfoundry.client.v3.users.ListUsersRequest
10541054
.builder()
10551055
.page(page)
10561056
.build()))
10571057
.filter(resource -> isCleanable(nameFactory, resource))
1058-
.map(resource -> resource.getMetadata().getId())
1058+
.map(UserResource::getId)
10591059
.flatMap(
10601060
userId ->
10611061
cloudFoundryClient
1062-
.users()
1062+
.usersV3()
10631063
.delete(
1064-
org.cloudfoundry.client.v2.users.DeleteUserRequest
1064+
org.cloudfoundry.client.v3.users.DeleteUserRequest
10651065
.builder()
1066-
.async(true)
10671066
.userId(userId)
10681067
.build())
1069-
.flatMapMany(
1070-
job ->
1071-
JobUtils.waitForCompletion(
1072-
cloudFoundryClient,
1073-
Duration.ofMinutes(5),
1074-
job))
1068+
.then()
10751069
.doOnError(
10761070
t ->
10771071
LOGGER.error(
@@ -1150,12 +1144,12 @@ private static Flux<Void> ifCfVersion(
11501144
CloudFoundryVersion expectedVersion,
11511145
Version serverVersion,
11521146
Supplier<Flux<Void>> supplier) {
1153-
return serverVersion.lessThan(expectedVersion.getVersion()) ? Flux.empty() : supplier.get();
1147+
return serverVersion.isLowerThan(expectedVersion.getVersion()) ? Flux.empty() : supplier.get();
11541148
}
11551149

11561150
private static boolean isCleanable(NameFactory nameFactory, UserResource resource) {
1157-
return nameFactory.isUserId(ResourceUtils.getId(resource))
1158-
|| nameFactory.isUserName(ResourceUtils.getEntity(resource).getUsername());
1151+
return nameFactory.isUserId(resource.getId())
1152+
|| nameFactory.isUserName(resource.getUsername());
11591153
}
11601154

11611155
private static Flux<Void> removeApplicationServiceBindings(

0 commit comments

Comments
 (0)