Skip to content

Commit 8e54346

Browse files
committed
Merge branch '607-get-security-group'
2 parents cdb2885 + 523e0d4 commit 8e54346

File tree

18 files changed

+368
-77
lines changed

18 files changed

+368
-77
lines changed

cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/client/v2/securitygroups/ReactorSecurityGroups.java

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
import org.cloudfoundry.client.v2.securitygroups.CreateSecurityGroupResponse;
2323
import org.cloudfoundry.client.v2.securitygroups.DeleteSecurityGroupRequest;
2424
import org.cloudfoundry.client.v2.securitygroups.DeleteSecurityGroupResponse;
25-
import org.cloudfoundry.client.v2.securitygroups.DeleteSecurityGroupRunningDefaultRequest;
26-
import org.cloudfoundry.client.v2.securitygroups.DeleteSecurityGroupStagingDefaultRequest;
25+
import org.cloudfoundry.client.v2.securitygroups.GetSecurityGroupRequest;
26+
import org.cloudfoundry.client.v2.securitygroups.GetSecurityGroupResponse;
2727
import org.cloudfoundry.client.v2.securitygroups.ListSecurityGroupRunningDefaultsRequest;
2828
import org.cloudfoundry.client.v2.securitygroups.ListSecurityGroupRunningDefaultsResponse;
2929
import org.cloudfoundry.client.v2.securitygroups.ListSecurityGroupSpacesRequest;
@@ -32,7 +32,9 @@
3232
import org.cloudfoundry.client.v2.securitygroups.ListSecurityGroupStagingDefaultsResponse;
3333
import org.cloudfoundry.client.v2.securitygroups.ListSecurityGroupsRequest;
3434
import org.cloudfoundry.client.v2.securitygroups.ListSecurityGroupsResponse;
35+
import org.cloudfoundry.client.v2.securitygroups.RemoveSecurityGroupRunningDefaultRequest;
3536
import org.cloudfoundry.client.v2.securitygroups.RemoveSecurityGroupSpaceRequest;
37+
import org.cloudfoundry.client.v2.securitygroups.RemoveSecurityGroupStagingDefaultRequest;
3638
import org.cloudfoundry.client.v2.securitygroups.SecurityGroups;
3739
import org.cloudfoundry.client.v2.securitygroups.SetSecurityGroupRunningDefaultRequest;
3840
import org.cloudfoundry.client.v2.securitygroups.SetSecurityGroupRunningDefaultResponse;
@@ -77,13 +79,8 @@ public Mono<DeleteSecurityGroupResponse> delete(DeleteSecurityGroupRequest reque
7779
}
7880

7981
@Override
80-
public Mono<Void> deleteRunningDefault(DeleteSecurityGroupRunningDefaultRequest request) {
81-
return delete(request, Void.class, builder -> builder.pathSegment("v2", "config", "running_security_groups", request.getSecurityGroupRunningDefaultId()));
82-
}
83-
84-
@Override
85-
public Mono<Void> deleteStagingDefault(DeleteSecurityGroupStagingDefaultRequest request) {
86-
return delete(request, Void.class, builder -> builder.pathSegment("v2", "config", "staging_security_groups", request.getSecurityGroupStagingDefaultId()));
82+
public Mono<GetSecurityGroupResponse> get(GetSecurityGroupRequest request) {
83+
return get(request, GetSecurityGroupResponse.class, builder -> builder.pathSegment("v2", "security_groups", request.getSecurityGroupId()));
8784
}
8885

8986
@Override
@@ -106,19 +103,29 @@ public Mono<ListSecurityGroupStagingDefaultsResponse> listStagingDefaults(ListSe
106103
return get(request, ListSecurityGroupStagingDefaultsResponse.class, builder -> builder.pathSegment("v2", "config", "staging_security_groups"));
107104
}
108105

106+
@Override
107+
public Mono<Void> removeRunningDefault(RemoveSecurityGroupRunningDefaultRequest request) {
108+
return delete(request, Void.class, builder -> builder.pathSegment("v2", "config", "running_security_groups", request.getSecurityGroupId()));
109+
}
110+
109111
@Override
110112
public Mono<Void> removeSpace(RemoveSecurityGroupSpaceRequest request) {
111113
return delete(request, Void.class, builder -> builder.pathSegment("v2", "security_groups", request.getSecurityGroupId(), "spaces", request.getSpaceId()));
112114
}
113115

116+
@Override
117+
public Mono<Void> removeStagingDefault(RemoveSecurityGroupStagingDefaultRequest request) {
118+
return delete(request, Void.class, builder -> builder.pathSegment("v2", "config", "staging_security_groups", request.getSecurityGroupId()));
119+
}
120+
114121
@Override
115122
public Mono<SetSecurityGroupRunningDefaultResponse> setRunningDefault(SetSecurityGroupRunningDefaultRequest request) {
116-
return put(request, SetSecurityGroupRunningDefaultResponse.class, builder -> builder.pathSegment("v2", "config", "running_security_groups", request.getSecurityGroupRunningDefaultId()));
123+
return put(request, SetSecurityGroupRunningDefaultResponse.class, builder -> builder.pathSegment("v2", "config", "running_security_groups", request.getSecurityGroupId()));
117124
}
118125

119126
@Override
120127
public Mono<SetSecurityGroupStagingDefaultResponse> setStagingDefault(SetSecurityGroupStagingDefaultRequest request) {
121-
return put(request, SetSecurityGroupStagingDefaultResponse.class, builder -> builder.pathSegment("v2", "config", "staging_security_groups", request.getSecurityGroupStagingDefaultId()));
128+
return put(request, SetSecurityGroupStagingDefaultResponse.class, builder -> builder.pathSegment("v2", "config", "staging_security_groups", request.getSecurityGroupId()));
122129
}
123130

124131
@Override

cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/client/v2/securitygroups/ReactorSecurityGroupsTest.java

Lines changed: 47 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
import org.cloudfoundry.client.v2.securitygroups.CreateSecurityGroupResponse;
2525
import org.cloudfoundry.client.v2.securitygroups.DeleteSecurityGroupRequest;
2626
import org.cloudfoundry.client.v2.securitygroups.DeleteSecurityGroupResponse;
27-
import org.cloudfoundry.client.v2.securitygroups.DeleteSecurityGroupRunningDefaultRequest;
28-
import org.cloudfoundry.client.v2.securitygroups.DeleteSecurityGroupStagingDefaultRequest;
27+
import org.cloudfoundry.client.v2.securitygroups.GetSecurityGroupRequest;
28+
import org.cloudfoundry.client.v2.securitygroups.GetSecurityGroupResponse;
2929
import org.cloudfoundry.client.v2.securitygroups.ListSecurityGroupRunningDefaultsRequest;
3030
import org.cloudfoundry.client.v2.securitygroups.ListSecurityGroupRunningDefaultsResponse;
3131
import org.cloudfoundry.client.v2.securitygroups.ListSecurityGroupSpacesRequest;
@@ -34,7 +34,9 @@
3434
import org.cloudfoundry.client.v2.securitygroups.ListSecurityGroupStagingDefaultsResponse;
3535
import org.cloudfoundry.client.v2.securitygroups.ListSecurityGroupsRequest;
3636
import org.cloudfoundry.client.v2.securitygroups.ListSecurityGroupsResponse;
37+
import org.cloudfoundry.client.v2.securitygroups.RemoveSecurityGroupRunningDefaultRequest;
3738
import org.cloudfoundry.client.v2.securitygroups.RemoveSecurityGroupSpaceRequest;
39+
import org.cloudfoundry.client.v2.securitygroups.RemoveSecurityGroupStagingDefaultRequest;
3840
import org.cloudfoundry.client.v2.securitygroups.RuleEntity;
3941
import org.cloudfoundry.client.v2.securitygroups.SecurityGroupEntity;
4042
import org.cloudfoundry.client.v2.securitygroups.SecurityGroupResource;
@@ -250,8 +252,8 @@ public void deleteRunning() {
250252
.build());
251253

252254
this.securityGroups
253-
.deleteRunningDefault(DeleteSecurityGroupRunningDefaultRequest.builder()
254-
.securityGroupRunningDefaultId("test-id")
255+
.removeRunningDefault(RemoveSecurityGroupRunningDefaultRequest.builder()
256+
.securityGroupId("test-id")
255257
.build())
256258
.as(StepVerifier::create)
257259
.expectComplete()
@@ -270,14 +272,51 @@ public void deleteStaging() {
270272
.build());
271273

272274
this.securityGroups
273-
.deleteStagingDefault(DeleteSecurityGroupStagingDefaultRequest.builder()
274-
.securityGroupStagingDefaultId("test-id")
275+
.removeStagingDefault(RemoveSecurityGroupStagingDefaultRequest.builder()
276+
.securityGroupId("test-id")
275277
.build())
276278
.as(StepVerifier::create)
277279
.expectComplete()
278280
.verify(Duration.ofSeconds(5));
279281
}
280282

283+
@Test
284+
public void get() {
285+
mockRequest(InteractionContext.builder()
286+
.request(TestRequest.builder()
287+
.method(GET).path("/v2/security_groups/1452e164-0c3e-4a6c-b3c3-c40ad9fd0159")
288+
.build())
289+
.response(TestResponse.builder()
290+
.status(OK)
291+
.payload("fixtures/client/v2/security_groups/GET_{id}_response.json")
292+
.build())
293+
.build());
294+
295+
this.securityGroups
296+
.get(GetSecurityGroupRequest.builder()
297+
.securityGroupId("1452e164-0c3e-4a6c-b3c3-c40ad9fd0159")
298+
.build())
299+
.as(StepVerifier::create)
300+
.expectNext(GetSecurityGroupResponse.builder()
301+
.metadata(Metadata.builder()
302+
.createdAt("2016-06-08T16:41:21Z")
303+
.id("1452e164-0c3e-4a6c-b3c3-c40ad9fd0159")
304+
.updatedAt("2016-06-08T16:41:26Z")
305+
.url("/v2/security_groups/1452e164-0c3e-4a6c-b3c3-c40ad9fd0159")
306+
.build())
307+
.entity(SecurityGroupEntity.builder()
308+
.name("dummy1")
309+
.rule()
310+
.runningDefault(false)
311+
.stagingDefault(false)
312+
.spacesUrl("/v2/security_groups/1452e164-0c3e-4a6c-b3c3-c40ad9fd0159/spaces")
313+
.stagingSpacesUrl("/v2/security_groups/1452e164-0c3e-4a6c-b3c3-c40ad9fd0159/staging_spaces")
314+
.build())
315+
.build())
316+
.expectComplete()
317+
.verify(Duration.ofSeconds(5));
318+
}
319+
281320
@Test
282321
public void list() {
283322
mockRequest(InteractionContext.builder()
@@ -552,7 +591,7 @@ public void setRunning() {
552591

553592
this.securityGroups
554593
.setRunningDefault(SetSecurityGroupRunningDefaultRequest.builder()
555-
.securityGroupRunningDefaultId("test-security-group-default-id")
594+
.securityGroupId("test-security-group-default-id")
556595
.build())
557596
.as(StepVerifier::create)
558597
.expectNext(SetSecurityGroupRunningDefaultResponse.builder()
@@ -591,7 +630,7 @@ public void setStaging() {
591630

592631
this.securityGroups
593632
.setStagingDefault(SetSecurityGroupStagingDefaultRequest.builder()
594-
.securityGroupStagingDefaultId("test-security-group-default-id")
633+
.securityGroupId("test-security-group-default-id")
595634
.build())
596635
.as(StepVerifier::create)
597636
.expectNext(SetSecurityGroupStagingDefaultResponse.builder()
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"metadata": {
3+
"guid": "1452e164-0c3e-4a6c-b3c3-c40ad9fd0159",
4+
"url": "/v2/security_groups/1452e164-0c3e-4a6c-b3c3-c40ad9fd0159",
5+
"created_at": "2016-06-08T16:41:21Z",
6+
"updated_at": "2016-06-08T16:41:26Z"
7+
},
8+
"entity": {
9+
"name": "dummy1",
10+
"rules": [
11+
],
12+
"running_default": false,
13+
"staging_default": false,
14+
"spaces_url": "/v2/security_groups/1452e164-0c3e-4a6c-b3c3-c40ad9fd0159/spaces",
15+
"staging_spaces_url": "/v2/security_groups/1452e164-0c3e-4a6c-b3c3-c40ad9fd0159/staging_spaces"
16+
}
17+
}

cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/securitygroups/SecurityGroups.java

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,22 +45,12 @@ public interface SecurityGroups {
4545
Mono<DeleteSecurityGroupResponse> delete(DeleteSecurityGroupRequest request);
4646

4747
/**
48-
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/security_group_running_defaults/return_the_security_groups_used_for_running_apps.html">Delete Running Security Group</a>
49-
* request.
48+
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/security_groups/retrieve_a_particular_security_group.html">Retrieve a Particular Security Group</a> request.
5049
*
51-
* @param request the delete running security group request
52-
* @return the response from the delete running security group request
50+
* @param request the get security groups request
51+
* @return the response from the get security groups request
5352
*/
54-
Mono<Void> deleteRunningDefault(DeleteSecurityGroupRunningDefaultRequest request);
55-
56-
/**
57-
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/security_group_staging_defaults/removing_a_security_group_as_a_default_for_staging.html">Delete Staging Security Group</a>
58-
* request.
59-
*
60-
* @param request the delete staging security group request
61-
* @return the response from the delete runstagingning security group request
62-
*/
63-
Mono<Void> deleteStagingDefault(DeleteSecurityGroupStagingDefaultRequest request);
53+
Mono<GetSecurityGroupResponse> get(GetSecurityGroupRequest request);
6454

6555
/**
6656
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/security_groups/list_all_security_groups.html">List all Security Groups</a> request.
@@ -95,6 +85,15 @@ public interface SecurityGroups {
9585
*/
9686
Mono<ListSecurityGroupStagingDefaultsResponse> listStagingDefaults(ListSecurityGroupStagingDefaultsRequest request);
9787

88+
/**
89+
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/security_group_running_defaults/removing_a_security_group_as_a_default_for_running_apps.html">
90+
* Removing a Security Group as a default for running Apps</a> request.
91+
*
92+
* @param request the remove running security group request
93+
* @return the response from the remove running security group request
94+
*/
95+
Mono<Void> removeRunningDefault(RemoveSecurityGroupRunningDefaultRequest request);
96+
9897
/**
9998
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/security_groups/remove_space_from_the_security_group.html">Remove Space from the Security Group</a> request.
10099
*
@@ -103,6 +102,15 @@ public interface SecurityGroups {
103102
*/
104103
Mono<Void> removeSpace(RemoveSecurityGroupSpaceRequest request);
105104

105+
/**
106+
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/security_group_staging_defaults/removing_a_security_group_as_a_default_for_staging.html">
107+
* Removing a Security Group as a default for staging</a> request.
108+
*
109+
* @param request the remove staging security group request
110+
* @return the response from the remove staging security group request
111+
*/
112+
Mono<Void> removeStagingDefault(RemoveSecurityGroupStagingDefaultRequest request);
113+
106114
/**
107115
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/security_group_running_defaults/set_a_security_group_as_a_default_for_running_apps.html">Set a Security Group as a default for
108116
* running Apps</a> request.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
* Copyright 2013-2017 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.cloudfoundry.client.v2.securitygroups;
18+
19+
import com.fasterxml.jackson.annotation.JsonIgnore;
20+
import org.immutables.value.Value;
21+
22+
/**
23+
* The request payload for the Get a Security Group operation
24+
*/
25+
@Value.Immutable
26+
abstract class _GetSecurityGroupRequest {
27+
28+
/**
29+
* The security group id
30+
*/
31+
@JsonIgnore
32+
abstract String getSecurityGroupId();
33+
34+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
* Copyright 2013-2017 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.cloudfoundry.client.v2.securitygroups;
18+
19+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
20+
import org.immutables.value.Value;
21+
22+
/**
23+
* The response payload for the Get a Security Group operation
24+
*/
25+
@JsonDeserialize
26+
@Value.Immutable
27+
abstract class _GetSecurityGroupResponse extends AbstractSecurityGroupResource {
28+
29+
}

cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/securitygroups/_DeleteSecurityGroupRunningDefaultRequest.java renamed to cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/securitygroups/_RemoveSecurityGroupRunningDefaultRequest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@
2020
import org.immutables.value.Value;
2121

2222
/**
23-
* The request payload for the Delete Security Group Running Default operation
23+
* The request payload for the Remove Security Group Running Default operation
2424
*/
2525
@Value.Immutable
26-
abstract class _DeleteSecurityGroupRunningDefaultRequest {
26+
abstract class _RemoveSecurityGroupRunningDefaultRequest {
2727

2828
/**
29-
* The security group running default id
29+
* The security group id
3030
*/
3131
@JsonIgnore
32-
abstract String getSecurityGroupRunningDefaultId();
32+
abstract String getSecurityGroupId();
3333

3434
}

cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/securitygroups/_DeleteSecurityGroupStagingDefaultRequest.java renamed to cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/securitygroups/_RemoveSecurityGroupStagingDefaultRequest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@
2020
import org.immutables.value.Value;
2121

2222
/**
23-
* The request payload for the Delete Security Group Staging Default operation
23+
* The request payload for the Remove Security Group Staging Default operation
2424
*/
2525
@Value.Immutable
26-
abstract class _DeleteSecurityGroupStagingDefaultRequest {
26+
abstract class _RemoveSecurityGroupStagingDefaultRequest {
2727

2828
/**
29-
* The security group staging default id
29+
* The security group id
3030
*/
3131
@JsonIgnore
32-
abstract String getSecurityGroupStagingDefaultId();
32+
abstract String getSecurityGroupId();
3333

3434
}

cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/securitygroups/_SecurityGroupEntity.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,11 @@ abstract class _SecurityGroupEntity {
6565
@Nullable
6666
abstract Boolean getStagingDefault();
6767

68+
/**
69+
* The staging spaces url
70+
*/
71+
@JsonProperty("staging_spaces_url")
72+
@Nullable
73+
abstract String getStagingSpacesUrl();
74+
6875
}

cloudfoundry-client/src/main/java/org/cloudfoundry/client/v2/securitygroups/_SetSecurityGroupRunningDefaultRequest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
abstract class _SetSecurityGroupRunningDefaultRequest {
2727

2828
/**
29-
* The security group running default id
29+
* The security group to set as a default
3030
*/
3131
@JsonIgnore
32-
abstract String getSecurityGroupRunningDefaultId();
32+
abstract String getSecurityGroupId();
3333

3434
}

0 commit comments

Comments
 (0)