Skip to content

Commit c09fbfd

Browse files
committed
fix(storage): simplify bucket IP filter samples based on review comments
- Simplify EnableBucketIpFilter to only flip mode to Enabled matching DisableBucketIpFilter - Simplify GetBucketIpFilter to print IpFilter directly - Streamline rule deletion in DeleteBucketIpFilter - Update IpFilterTest calls to match 2-argument signature of EnableBucketIpFilter [Generated-by: AI]
1 parent 92ff60a commit c09fbfd

4 files changed

Lines changed: 36 additions & 138 deletions

File tree

‎java-storage/samples/snippets/src/main/java/com/example/storage/bucket/DeleteBucketIpFilter.java‎

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -51,38 +51,40 @@ public static Bucket deleteBucketIpFilterRules(
5151
}
5252

5353
boolean modified = false;
54-
List<String> publicRanges = new ArrayList<>();
55-
if (ipFilter.getPublicNetworkSource() != null
56-
&& ipFilter.getPublicNetworkSource().getAllowedIpCidrRanges() != null) {
57-
publicRanges.addAll(ipFilter.getPublicNetworkSource().getAllowedIpCidrRanges());
58-
}
54+
List<String> publicRanges =
55+
(ipFilter.getPublicNetworkSource() != null
56+
&& ipFilter.getPublicNetworkSource().getAllowedIpCidrRanges() != null)
57+
? new ArrayList<>(ipFilter.getPublicNetworkSource().getAllowedIpCidrRanges())
58+
: new ArrayList<>();
5959
if (publicRangeToDelete != null && publicRanges.remove(publicRangeToDelete)) {
6060
modified = true;
6161
}
6262

63-
List<VpcNetworkSource> vpcSources = new ArrayList<>();
64-
if (ipFilter.getVpcNetworkSources() != null) {
65-
vpcSources.addAll(ipFilter.getVpcNetworkSources());
66-
}
63+
List<VpcNetworkSource> vpcSources =
64+
ipFilter.getVpcNetworkSources() != null
65+
? new ArrayList<>(ipFilter.getVpcNetworkSources())
66+
: new ArrayList<>();
6767
if (vpcNetworkToDelete != null
6868
&& vpcSources.removeIf(source -> vpcNetworkToDelete.equals(source.getNetwork()))) {
6969
modified = true;
7070
}
7171

7272
if (modified) {
73-
IpFilter.Builder updatedIpFilterBuilder = ipFilter.toBuilder();
74-
updatedIpFilterBuilder.setPublicNetworkSource(
75-
publicRanges.isEmpty() ? null : PublicNetworkSource.of(publicRanges));
76-
updatedIpFilterBuilder.setVpcNetworkSources(vpcSources.isEmpty() ? null : vpcSources);
73+
IpFilter updatedIpFilter =
74+
ipFilter.toBuilder()
75+
.setPublicNetworkSource(
76+
publicRanges.isEmpty() ? null : PublicNetworkSource.of(publicRanges))
77+
.setVpcNetworkSources(vpcSources.isEmpty() ? null : vpcSources)
78+
.build();
7779

7880
Bucket updatedBucket =
79-
storage.update(bucket.toBuilder().setIpFilter(updatedIpFilterBuilder.build()).build());
81+
storage.update(bucket.toBuilder().setIpFilter(updatedIpFilter).build());
8082
System.out.println("Deleted specified IP filtering rules for bucket " + bucketName);
8183
return updatedBucket;
82-
} else {
83-
System.out.println("No matching IP filtering rules found to delete for bucket " + bucketName);
84-
return bucket;
8584
}
85+
86+
System.out.println("No matching IP filtering rules found to delete for bucket " + bucketName);
87+
return bucket;
8688
}
8789
}
8890
// [END storage_delete_ip_filtering_rules]

‎java-storage/samples/snippets/src/main/java/com/example/storage/bucket/EnableBucketIpFilter.java‎

Lines changed: 7 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -19,107 +19,29 @@
1919
// [START storage_enable_ip_filtering]
2020
import com.google.cloud.storage.Bucket;
2121
import com.google.cloud.storage.BucketInfo.IpFilter;
22-
import com.google.cloud.storage.BucketInfo.IpFilter.PublicNetworkSource;
23-
import com.google.cloud.storage.BucketInfo.IpFilter.VpcNetworkSource;
2422
import com.google.cloud.storage.Storage;
2523
import com.google.cloud.storage.StorageOptions;
26-
import java.util.ArrayList;
27-
import java.util.Collections;
28-
import java.util.List;
2924

3025
public class EnableBucketIpFilter {
31-
public static Bucket enableBucketIpFilter(
32-
String projectId,
33-
String bucketName,
34-
String publicRange,
35-
String vpcNetworkName,
36-
String vpcRange) {
26+
public static Bucket enableBucketIpFilter(String projectId, String bucketName) {
3727
// The ID of your GCP project
3828
// String projectId = "your-project-id";
3929

4030
// The ID of your GCS bucket
4131
// String bucketName = "your-unique-bucket-name";
4232

43-
// The public IPv4/IPv6 CIDR range to allow
44-
// String publicRange = "192.0.2.0/24";
45-
46-
// The VPC network name in the format: projects/PROJECT_ID/global/networks/NETWORK_NAME
47-
// String vpcNetworkName = "projects/my-project/global/networks/my-vpc";
48-
49-
// The VPC IPv4/IPv6 CIDR range to allow
50-
// String vpcRange = "10.0.0.0/24";
51-
5233
Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
5334
Bucket bucket = storage.get(bucketName);
5435

55-
List<String> publicRanges = new ArrayList<>();
56-
List<VpcNetworkSource> vpcSources = new ArrayList<>();
57-
58-
IpFilter existingIpFilter = bucket.getIpFilter();
59-
if (existingIpFilter != null) {
60-
if (existingIpFilter.getPublicNetworkSource() != null
61-
&& existingIpFilter.getPublicNetworkSource().getAllowedIpCidrRanges() != null) {
62-
publicRanges.addAll(existingIpFilter.getPublicNetworkSource().getAllowedIpCidrRanges());
63-
}
64-
if (existingIpFilter.getVpcNetworkSources() != null) {
65-
vpcSources.addAll(existingIpFilter.getVpcNetworkSources());
66-
}
36+
if (bucket.getIpFilter() == null) {
37+
System.out.println("Bucket " + bucketName + " has no IP Filter configured.");
38+
return bucket;
6739
}
6840

69-
if (publicRange != null && !publicRanges.contains(publicRange)) {
70-
publicRanges.add(publicRange);
71-
}
72-
73-
if (vpcNetworkName != null && vpcRange != null) {
74-
boolean found = false;
75-
for (int i = 0; i < vpcSources.size(); i++) {
76-
VpcNetworkSource vpcSource = vpcSources.get(i);
77-
if (vpcNetworkName.equals(vpcSource.getNetwork())) {
78-
found = true;
79-
List<String> ranges = new ArrayList<>();
80-
if (vpcSource.getAllowedIpCidrRanges() != null) {
81-
ranges.addAll(vpcSource.getAllowedIpCidrRanges());
82-
}
83-
if (!ranges.contains(vpcRange)) {
84-
ranges.add(vpcRange);
85-
}
86-
vpcSources.set(i, vpcSource.toBuilder().setAllowedIpCidrRanges(ranges).build());
87-
break;
88-
}
89-
}
90-
if (!found) {
91-
vpcSources.add(
92-
VpcNetworkSource.newBuilder()
93-
.setNetwork(vpcNetworkName)
94-
.setAllowedIpCidrRanges(Collections.singletonList(vpcRange))
95-
.build());
96-
}
97-
}
98-
99-
IpFilter.Builder ipFilterBuilder =
100-
IpFilter.newBuilder()
101-
.setMode("Enabled")
102-
.setAllowAllServiceAgentAccess(true)
103-
.setAllowCrossOrgVpcs(true);
104-
105-
if (!publicRanges.isEmpty()) {
106-
ipFilterBuilder.setPublicNetworkSource(PublicNetworkSource.of(publicRanges));
107-
}
108-
if (!vpcSources.isEmpty()) {
109-
ipFilterBuilder.setVpcNetworkSources(vpcSources);
110-
}
111-
112-
IpFilter newIpFilter = ipFilterBuilder.build();
113-
Bucket updatedBucket = storage.update(bucket.toBuilder().setIpFilter(newIpFilter).build());
114-
115-
System.out.println(
116-
"Enabled IP filtering for bucket "
117-
+ bucketName
118-
+ ", allowed public CIDRs: "
119-
+ publicRanges
120-
+ ", VPC sources: "
121-
+ vpcSources);
41+
IpFilter enabledIpFilter = bucket.getIpFilter().toBuilder().setMode("Enabled").build();
42+
Bucket updatedBucket = storage.update(bucket.toBuilder().setIpFilter(enabledIpFilter).build());
12243

44+
System.out.println("IP filtering enabled for bucket " + bucketName);
12345
return updatedBucket;
12446
}
12547
}

‎java-storage/samples/snippets/src/main/java/com/example/storage/bucket/GetBucketIpFilter.java‎

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
// [START storage_get_ip_filtering]
2020
import com.google.cloud.storage.Bucket;
2121
import com.google.cloud.storage.BucketInfo.IpFilter;
22-
import com.google.cloud.storage.BucketInfo.IpFilter.VpcNetworkSource;
2322
import com.google.cloud.storage.Storage;
2423
import com.google.cloud.storage.StorageOptions;
2524

@@ -40,27 +39,7 @@ public static IpFilter getBucketIpFilter(String projectId, String bucketName) {
4039
return null;
4140
}
4241

43-
System.out.println("IP Filter Mode: " + ipFilter.getMode());
44-
System.out.println(
45-
"Allow All Service Agent Access: " + ipFilter.getAllowAllServiceAgentAccess());
46-
System.out.println("Allow Cross Org VPCs: " + ipFilter.getAllowCrossOrgVpcs());
47-
48-
if (ipFilter.getPublicNetworkSource() != null) {
49-
System.out.println(
50-
"Allowed Public CIDR Blocks: "
51-
+ ipFilter.getPublicNetworkSource().getAllowedIpCidrRanges());
52-
}
53-
54-
if (ipFilter.getVpcNetworkSources() != null) {
55-
for (VpcNetworkSource vpcSource : ipFilter.getVpcNetworkSources()) {
56-
System.out.println(
57-
"VPC Network: "
58-
+ vpcSource.getNetwork()
59-
+ ", Allowed CIDR Ranges: "
60-
+ vpcSource.getAllowedIpCidrRanges());
61-
}
62-
}
63-
42+
System.out.println("Bucket " + bucketName + " IP filter configuration: " + ipFilter);
6443
return ipFilter;
6544
}
6645
}

‎java-storage/samples/snippets/src/test/java/com/example/storage/bucket/IpFilterTest.java‎

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ public class IpFilterTest extends TestBase {
3232
private static final String PUBLIC_RANGE = "192.0.2.0/24";
3333
private static final String VPC_NETWORK =
3434
"projects/" + GOOGLE_CLOUD_PROJECT + "/global/networks/default";
35-
private static final String VPC_RANGE = "10.0.0.0/24";
3635

3736
private String bucketName;
3837

@@ -65,18 +64,15 @@ public void testCreateBucketIpFilter() {
6564

6665
@Test
6766
public void testEnableBucketIpFilter() {
68-
storage.create(BucketInfo.of(bucketName));
69-
Bucket enabled =
70-
EnableBucketIpFilter.enableBucketIpFilter(
71-
GOOGLE_CLOUD_PROJECT, bucketName, PUBLIC_RANGE, VPC_NETWORK, VPC_RANGE);
67+
CreateBucketIpFilter.createBucketIpFilter(GOOGLE_CLOUD_PROJECT, bucketName, PUBLIC_RANGE);
68+
Bucket enabled = EnableBucketIpFilter.enableBucketIpFilter(GOOGLE_CLOUD_PROJECT, bucketName);
7269
assertThat(enabled.getIpFilter().getMode()).isEqualTo("Enabled");
7370
}
7471

7572
@Test
7673
public void testGetBucketIpFilter() {
77-
storage.create(BucketInfo.of(bucketName));
78-
EnableBucketIpFilter.enableBucketIpFilter(
79-
GOOGLE_CLOUD_PROJECT, bucketName, PUBLIC_RANGE, VPC_NETWORK, VPC_RANGE);
74+
CreateBucketIpFilter.createBucketIpFilter(GOOGLE_CLOUD_PROJECT, bucketName, PUBLIC_RANGE);
75+
EnableBucketIpFilter.enableBucketIpFilter(GOOGLE_CLOUD_PROJECT, bucketName);
8076

8177
BucketInfo.IpFilter fetched =
8278
GetBucketIpFilter.getBucketIpFilter(GOOGLE_CLOUD_PROJECT, bucketName);
@@ -85,21 +81,20 @@ public void testGetBucketIpFilter() {
8581

8682
@Test
8783
public void testDeleteBucketIpFilterRules() {
88-
storage.create(BucketInfo.of(bucketName));
89-
EnableBucketIpFilter.enableBucketIpFilter(
90-
GOOGLE_CLOUD_PROJECT, bucketName, PUBLIC_RANGE, VPC_NETWORK, VPC_RANGE);
84+
CreateBucketIpFilter.createBucketIpFilter(GOOGLE_CLOUD_PROJECT, bucketName, PUBLIC_RANGE);
85+
EnableBucketIpFilter.enableBucketIpFilter(GOOGLE_CLOUD_PROJECT, bucketName);
9186

9287
Bucket modified =
9388
DeleteBucketIpFilter.deleteBucketIpFilterRules(
9489
GOOGLE_CLOUD_PROJECT, bucketName, PUBLIC_RANGE, VPC_NETWORK);
9590
assertThat(modified.getIpFilter()).isNotNull();
91+
assertThat(modified.getIpFilter().getPublicNetworkSource()).isNull();
9692
}
9793

9894
@Test
9995
public void testDisableBucketIpFilter() {
100-
storage.create(BucketInfo.of(bucketName));
101-
EnableBucketIpFilter.enableBucketIpFilter(
102-
GOOGLE_CLOUD_PROJECT, bucketName, PUBLIC_RANGE, VPC_NETWORK, VPC_RANGE);
96+
CreateBucketIpFilter.createBucketIpFilter(GOOGLE_CLOUD_PROJECT, bucketName, PUBLIC_RANGE);
97+
EnableBucketIpFilter.enableBucketIpFilter(GOOGLE_CLOUD_PROJECT, bucketName);
10398

10499
Bucket disabled = DisableBucketIpFilter.disableBucketIpFilter(GOOGLE_CLOUD_PROJECT, bucketName);
105100
assertThat(disabled.getIpFilter().getMode()).isEqualTo("Disabled");

0 commit comments

Comments
 (0)