From 563ad6392ab005f0251a12345baa9fd4b4640ad1 Mon Sep 17 00:00:00 2001 From: Sydney Munro Date: Thu, 17 Feb 2022 11:51:33 -0800 Subject: [PATCH 1/2] docs: Adding Samples for Add/Remove Bucket Default Owner --- .../storage/bucket/AddBucketDefaultOwner.java | 47 ++++++++++++++++ .../bucket/RemoveBucketDefaultOwner.java | 49 +++++++++++++++++ .../java/com/example/storage/TestBase.java | 8 ++- .../bucket/AddBucketDefaultOwnerTest.java | 43 +++++++++++++++ .../bucket/RemoveBucketDefaultOwnerTest.java | 55 +++++++++++++++++++ 5 files changed, 199 insertions(+), 3 deletions(-) create mode 100644 samples/snippets/src/main/java/com/example/storage/bucket/AddBucketDefaultOwner.java create mode 100644 samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultOwner.java create mode 100644 samples/snippets/src/test/java/com/example/storage/bucket/AddBucketDefaultOwnerTest.java create mode 100644 samples/snippets/src/test/java/com/example/storage/bucket/RemoveBucketDefaultOwnerTest.java diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketDefaultOwner.java b/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketDefaultOwner.java new file mode 100644 index 0000000000..de2c73843d --- /dev/null +++ b/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketDefaultOwner.java @@ -0,0 +1,47 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.storage.bucket; + +// [START storage_add_bucket_default_owner] + +import com.google.cloud.storage.Acl; +import com.google.cloud.storage.Acl.Role; +import com.google.cloud.storage.Acl.User; +import com.google.cloud.storage.Bucket; +import com.google.cloud.storage.Storage; +import com.google.cloud.storage.StorageOptions; + +public class AddBucketDefaultOwner { + + public static void addBucketDefaultOwner(String bucketName, String userEmail) { + + // The ID to give your GCS bucket + // String bucketName = "your-unique-bucket-name"; + + // Email of the user you wish to remove as a default owner + // String userEmail = "someuser@domain.com" + + Storage storage = StorageOptions.newBuilder().build().getService(); + Bucket bucket = storage.get(bucketName); + Acl newDefaultOwner = Acl.of(new User(userEmail), Role.OWNER); + + bucket.createDefaultAcl(newDefaultOwner); + System.out.println("Added user " + userEmail + " as an owner on " + bucketName); + } + +} +// [END storage_add_bucket_default_owner] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultOwner.java b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultOwner.java new file mode 100644 index 0000000000..1e2f8fabba --- /dev/null +++ b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultOwner.java @@ -0,0 +1,49 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.storage.bucket; + +// [START storage_remove_bucket_default_owner] + +import com.google.cloud.storage.Acl.User; +import com.google.cloud.storage.Bucket; +import com.google.cloud.storage.Storage; +import com.google.cloud.storage.StorageOptions; + +public class RemoveBucketDefaultOwner { + + public static void removeBucketDefaultOwner(String bucketName, String userEmail) { + + // The ID to give your GCS bucket + // String bucketName = "your-unique-bucket-name"; + + // Email of the user you wish to remove as a default owner + // String userEmail = "someuser@domain.com" + + Storage storage = StorageOptions.newBuilder().build().getService(); + Bucket bucket = storage.get(bucketName); + User userToRemove = new User(userEmail); + + boolean success = bucket.deleteDefaultAcl(userToRemove); + if (success) { + System.out.println("Removed user " + userEmail + " as an owner on " + bucketName); + } else { + System.out.println("User " + userEmail + " was not found"); + } + } + +} +// [END storage_remove_bucket_default_owner] \ No newline at end of file diff --git a/samples/snippets/src/test/java/com/example/storage/TestBase.java b/samples/snippets/src/test/java/com/example/storage/TestBase.java index 3adaddabdc..c4d1fccace 100644 --- a/samples/snippets/src/test/java/com/example/storage/TestBase.java +++ b/samples/snippets/src/test/java/com/example/storage/TestBase.java @@ -18,6 +18,7 @@ import com.google.cloud.storage.Blob; import com.google.cloud.storage.BlobInfo; +import com.google.cloud.storage.Bucket; import com.google.cloud.storage.BucketInfo; import com.google.cloud.storage.Storage; import com.google.cloud.storage.StorageOptions; @@ -29,12 +30,13 @@ public abstract class TestBase { - @Rule public StdOutCaptureRule stdOut = new StdOutCaptureRule(); + @Rule + public StdOutCaptureRule stdOut = new StdOutCaptureRule(); protected String bucketName; protected Storage storage; protected String blobName; - + protected Bucket bucket; protected Blob blob; @Before @@ -42,7 +44,7 @@ public void setUp() { blobName = "blob"; bucketName = RemoteStorageHelper.generateBucketName(); storage = StorageOptions.getDefaultInstance().getService(); - storage.create(BucketInfo.of(bucketName)); + bucket = storage.create(BucketInfo.of(bucketName)); blob = storage.create(BlobInfo.newBuilder(bucketName, blobName).build()); } diff --git a/samples/snippets/src/test/java/com/example/storage/bucket/AddBucketDefaultOwnerTest.java b/samples/snippets/src/test/java/com/example/storage/bucket/AddBucketDefaultOwnerTest.java new file mode 100644 index 0000000000..a71ced1f96 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/storage/bucket/AddBucketDefaultOwnerTest.java @@ -0,0 +1,43 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.storage.bucket; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertNotNull; + +import com.example.storage.TestBase; +import com.google.cloud.storage.Acl; +import com.google.cloud.storage.Acl.Entity; +import com.google.cloud.storage.Acl.Role; +import com.google.cloud.storage.Acl.User; +import org.junit.Test; + +public class AddBucketDefaultOwnerTest extends TestBase { + + public static final String IT_SERVICE_ACCOUNT_EMAIL = System.getenv("IT_SERVICE_ACCOUNT_EMAIL"); + + @Test + public void testAddBucketDefaultOwner() { + // Check for user email before the actual test. + assertNotNull("Unable to determine user email", IT_SERVICE_ACCOUNT_EMAIL); + + AddBucketDefaultOwner.addBucketDefaultOwner(bucketName, IT_SERVICE_ACCOUNT_EMAIL); + assertThat(stdOut.getCapturedOutputAsUtf8String()).contains(IT_SERVICE_ACCOUNT_EMAIL); + assertThat(bucket.getDefaultAcl(new User(IT_SERVICE_ACCOUNT_EMAIL))).isNotNull(); + } + +} diff --git a/samples/snippets/src/test/java/com/example/storage/bucket/RemoveBucketDefaultOwnerTest.java b/samples/snippets/src/test/java/com/example/storage/bucket/RemoveBucketDefaultOwnerTest.java new file mode 100644 index 0000000000..3a29c02f50 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/storage/bucket/RemoveBucketDefaultOwnerTest.java @@ -0,0 +1,55 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.storage.bucket; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + +import com.example.storage.TestBase; +import com.google.cloud.storage.Acl; +import com.google.cloud.storage.Acl.Role; +import com.google.cloud.storage.Acl.User; +import org.junit.Test; + +public class RemoveBucketDefaultOwnerTest extends TestBase { + + public static final String IT_SERVICE_ACCOUNT_EMAIL = System.getenv("IT_SERVICE_ACCOUNT_EMAIL"); + + @Test + public void testRemoveBucketDefaultOwner() { + // Check for user email before the actual test. + assertNotNull("Unable to determine user email", IT_SERVICE_ACCOUNT_EMAIL); + // Add User as Default Owner + Acl newDefaultOwner = Acl.of(new User(IT_SERVICE_ACCOUNT_EMAIL), Role.OWNER); + bucket.createDefaultAcl(newDefaultOwner); + + // Remove User as Default owner + RemoveBucketDefaultOwner.removeBucketDefaultOwner(bucketName, IT_SERVICE_ACCOUNT_EMAIL); + assertThat(stdOut.getCapturedOutputAsUtf8String()).contains(IT_SERVICE_ACCOUNT_EMAIL); + assertThat(stdOut.getCapturedOutputAsUtf8String()).contains("Removed user"); + assertThat(bucket.getDefaultAcl(new User(IT_SERVICE_ACCOUNT_EMAIL))).isNull(); + } + + @Test + public void testUserNotFound() { + // Remove User without Default Owner Permissions + RemoveBucketDefaultOwner.removeBucketDefaultOwner(bucketName, IT_SERVICE_ACCOUNT_EMAIL); + assertThat(stdOut.getCapturedOutputAsUtf8String()).contains(IT_SERVICE_ACCOUNT_EMAIL); + assertThat(stdOut.getCapturedOutputAsUtf8String()).contains("was not found"); + } +} From e4948f95e8ec320b45d775b52272cdf48719ed3c Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Thu, 17 Feb 2022 20:00:41 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- README.md | 2 ++ .../com/example/storage/bucket/AddBucketDefaultOwner.java | 1 - .../com/example/storage/bucket/RemoveBucketDefaultOwner.java | 3 +-- .../snippets/src/test/java/com/example/storage/TestBase.java | 3 +-- .../com/example/storage/bucket/AddBucketDefaultOwnerTest.java | 4 ---- .../example/storage/bucket/RemoveBucketDefaultOwnerTest.java | 1 - 6 files changed, 4 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index f0df79ebbe..e21da0a582 100644 --- a/README.md +++ b/README.md @@ -229,8 +229,10 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-storage/tree/ | --------------------------- | --------------------------------- | ------ | | Configure Retries | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/ConfigureRetries.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/ConfigureRetries.java) | | Quickstart Sample | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/QuickstartSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/QuickstartSample.java) | +| Add Bucket Default Owner | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketDefaultOwner.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/bucket/AddBucketDefaultOwner.java) | | Print Bucket Acl | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/bucket/PrintBucketAcl.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/bucket/PrintBucketAcl.java) | | Print Bucket Acl Filter By User | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/bucket/PrintBucketAclFilterByUser.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/bucket/PrintBucketAclFilterByUser.java) | +| Remove Bucket Default Owner | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultOwner.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultOwner.java) | diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketDefaultOwner.java b/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketDefaultOwner.java index de2c73843d..662c40cca7 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketDefaultOwner.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketDefaultOwner.java @@ -42,6 +42,5 @@ public static void addBucketDefaultOwner(String bucketName, String userEmail) { bucket.createDefaultAcl(newDefaultOwner); System.out.println("Added user " + userEmail + " as an owner on " + bucketName); } - } // [END storage_add_bucket_default_owner] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultOwner.java b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultOwner.java index 1e2f8fabba..bc3289c009 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultOwner.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultOwner.java @@ -44,6 +44,5 @@ public static void removeBucketDefaultOwner(String bucketName, String userEmail) System.out.println("User " + userEmail + " was not found"); } } - } -// [END storage_remove_bucket_default_owner] \ No newline at end of file +// [END storage_remove_bucket_default_owner] diff --git a/samples/snippets/src/test/java/com/example/storage/TestBase.java b/samples/snippets/src/test/java/com/example/storage/TestBase.java index c4d1fccace..a13edb4ba1 100644 --- a/samples/snippets/src/test/java/com/example/storage/TestBase.java +++ b/samples/snippets/src/test/java/com/example/storage/TestBase.java @@ -30,8 +30,7 @@ public abstract class TestBase { - @Rule - public StdOutCaptureRule stdOut = new StdOutCaptureRule(); + @Rule public StdOutCaptureRule stdOut = new StdOutCaptureRule(); protected String bucketName; protected Storage storage; diff --git a/samples/snippets/src/test/java/com/example/storage/bucket/AddBucketDefaultOwnerTest.java b/samples/snippets/src/test/java/com/example/storage/bucket/AddBucketDefaultOwnerTest.java index a71ced1f96..8dbb1786a2 100644 --- a/samples/snippets/src/test/java/com/example/storage/bucket/AddBucketDefaultOwnerTest.java +++ b/samples/snippets/src/test/java/com/example/storage/bucket/AddBucketDefaultOwnerTest.java @@ -20,9 +20,6 @@ import static org.junit.Assert.assertNotNull; import com.example.storage.TestBase; -import com.google.cloud.storage.Acl; -import com.google.cloud.storage.Acl.Entity; -import com.google.cloud.storage.Acl.Role; import com.google.cloud.storage.Acl.User; import org.junit.Test; @@ -39,5 +36,4 @@ public void testAddBucketDefaultOwner() { assertThat(stdOut.getCapturedOutputAsUtf8String()).contains(IT_SERVICE_ACCOUNT_EMAIL); assertThat(bucket.getDefaultAcl(new User(IT_SERVICE_ACCOUNT_EMAIL))).isNotNull(); } - } diff --git a/samples/snippets/src/test/java/com/example/storage/bucket/RemoveBucketDefaultOwnerTest.java b/samples/snippets/src/test/java/com/example/storage/bucket/RemoveBucketDefaultOwnerTest.java index 3a29c02f50..8af2f1ef9c 100644 --- a/samples/snippets/src/test/java/com/example/storage/bucket/RemoveBucketDefaultOwnerTest.java +++ b/samples/snippets/src/test/java/com/example/storage/bucket/RemoveBucketDefaultOwnerTest.java @@ -18,7 +18,6 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; import com.example.storage.TestBase; import com.google.cloud.storage.Acl;