@Test public void testListBucketDefaultKmsKeyName() throws ExecutionException, InterruptedException { String bucketName = RemoteStorageHelper.generateBucketName(); Bucket remoteBucket = storage.create(
@Test public void testGetBucketLifecycleRules() { String lifecycleTestBucketName = RemoteStorageHelper.generateBucketName(); storage.create( BucketInfo.newBuilder(lifecycleTestBucketName)
@Test(timeout = 15000) public void testListBlobsVersioned() throws ExecutionException, InterruptedException { String bucketName = RemoteStorageHelper.generateBucketName(); Bucket bucket = storage.create(BucketInfo.newBuilder(bucketName).setVersioningEnabled(true).build());
@Test public void testAttemptObjectDeleteWithRetentionPolicy() throws ExecutionException, InterruptedException { String bucketName = RemoteStorageHelper.generateBucketName(); Bucket remoteBucket = storage.create( BucketInfo.newBuilder(bucketName).setRetentionPeriod(RETENTION_PERIOD).build()); assertEquals(RETENTION_PERIOD, remoteBucket.getRetentionPeriod()); String blobName = "test-create-with-retention-policy"; BlobInfo blobInfo = BlobInfo.newBuilder(bucketName, blobName).build(); Blob remoteBlob = storage.create(blobInfo); assertNotNull(remoteBlob.getRetentionExpirationTime()); try { remoteBlob.delete(); fail("Expected failure on delete from retentionPolicy"); } catch (StorageException ex) { // expected } finally { Thread.sleep(RETENTION_PERIOD_IN_MILLISECONDS); RemoteStorageHelper.forceDelete(storage, bucketName, 5, TimeUnit.SECONDS); } }
@Test public void testClearBucketDefaultKmsKeyName() throws ExecutionException, InterruptedException { String bucketName = RemoteStorageHelper.generateBucketName(); Bucket remoteBucket = storage.create( BucketInfo.newBuilder(bucketName) .setDefaultKmsKeyName(kmsKeyOneResourcePath) .setLocation(KMS_KEY_RING_LOCATION) .build()); try { assertEquals(kmsKeyOneResourcePath, remoteBucket.getDefaultKmsKeyName()); Bucket updatedBucket = remoteBucket.toBuilder().setDefaultKmsKeyName(null).build().update(); assertNull(updatedBucket.getDefaultKmsKeyName()); } finally { RemoteStorageHelper.forceDelete(storage, bucketName, 5, TimeUnit.SECONDS); } }
@Test public void testUpdateBucketDefaultKmsKeyName() throws ExecutionException, InterruptedException { String bucketName = RemoteStorageHelper.generateBucketName(); Bucket remoteBucket = storage.create( BucketInfo.newBuilder(bucketName) .setDefaultKmsKeyName(kmsKeyOneResourcePath) .setLocation(KMS_KEY_RING_LOCATION) .build()); try { assertEquals(kmsKeyOneResourcePath, remoteBucket.getDefaultKmsKeyName()); Bucket updatedBucket = remoteBucket.toBuilder().setDefaultKmsKeyName(kmsKeyTwoResourcePath).build().update(); assertEquals(kmsKeyTwoResourcePath, updatedBucket.getDefaultKmsKeyName()); } finally { RemoteStorageHelper.forceDelete(storage, bucketName, 5, TimeUnit.SECONDS); } }
@Test public void testCreateBlobWithDefaultKmsKeyName() throws ExecutionException, InterruptedException { String bucketName = RemoteStorageHelper.generateBucketName(); Bucket bucket = storage.create( BucketInfo.newBuilder(bucketName) .setDefaultKmsKeyName(kmsKeyOneResourcePath) .setLocation(KMS_KEY_RING_LOCATION) .build()); assertEquals(bucket.getDefaultKmsKeyName(), kmsKeyOneResourcePath); try { String blobName = "test-create-with-default-kms-key-name-blob"; BlobInfo blob = BlobInfo.newBuilder(bucket, blobName).build(); Blob remoteBlob = storage.create(blob, BLOB_BYTE_CONTENT); assertNotNull(remoteBlob); assertEquals(blob.getBucket(), remoteBlob.getBucket()); assertEquals(blob.getName(), remoteBlob.getName()); assertNotNull(remoteBlob.getKmsKeyName()); assertTrue(remoteBlob.getKmsKeyName().startsWith(kmsKeyOneResourcePath)); byte[] readBytes = storage.readAllBytes(bucketName, blobName); assertArrayEquals(BLOB_BYTE_CONTENT, readBytes); } finally { RemoteStorageHelper.forceDelete(storage, bucketName, 5, TimeUnit.SECONDS); } }
private void retentionPolicyLockRequesterPays(boolean requesterPays) throws ExecutionException, InterruptedException { String projectId = remoteStorageHelper.getOptions().getProjectId(); String bucketName = RemoteStorageHelper.generateBucketName(); BucketInfo bucketInfo; if (requesterPays) {
@Test public void testEnableDisableBucketDefaultEventBasedHold() throws ExecutionException, InterruptedException { String bucketName = RemoteStorageHelper.generateBucketName(); Bucket remoteBucket = storage.create(BucketInfo.newBuilder(bucketName).setDefaultEventBasedHold(true).build()); try { assertTrue(remoteBucket.getDefaultEventBasedHold()); remoteBucket = storage.get( bucketName, Storage.BucketGetOption.fields(BucketField.DEFAULT_EVENT_BASED_HOLD)); assertTrue(remoteBucket.getDefaultEventBasedHold()); String blobName = "test-create-with-event-based-hold"; BlobInfo blobInfo = BlobInfo.newBuilder(bucketName, blobName).build(); Blob remoteBlob = storage.create(blobInfo); assertTrue(remoteBlob.getEventBasedHold()); remoteBlob = storage.get( blobInfo.getBlobId(), Storage.BlobGetOption.fields(BlobField.EVENT_BASED_HOLD)); assertTrue(remoteBlob.getEventBasedHold()); remoteBlob = remoteBlob.toBuilder().setEventBasedHold(false).build().update(); assertFalse(remoteBlob.getEventBasedHold()); remoteBucket = remoteBucket.toBuilder().setDefaultEventBasedHold(false).build().update(); assertFalse(remoteBucket.getDefaultEventBasedHold()); } finally { RemoteStorageHelper.forceDelete(storage, bucketName, 5, TimeUnit.SECONDS); } }
@Test public void testRetentionPolicyNoLock() throws ExecutionException, InterruptedException { String bucketName = RemoteStorageHelper.generateBucketName(); Bucket remoteBucket = storage.create( BucketInfo.newBuilder(bucketName).setRetentionPeriod(RETENTION_PERIOD).build()); try { assertEquals(RETENTION_PERIOD, remoteBucket.getRetentionPeriod()); assertNotNull(remoteBucket.getRetentionEffectiveTime()); assertNull(remoteBucket.retentionPolicyIsLocked()); remoteBucket = storage.get(bucketName, Storage.BucketGetOption.fields(BucketField.RETENTION_POLICY)); assertEquals(RETENTION_PERIOD, remoteBucket.getRetentionPeriod()); assertNotNull(remoteBucket.getRetentionEffectiveTime()); assertNull(remoteBucket.retentionPolicyIsLocked()); String blobName = "test-create-with-retention-policy-hold"; BlobInfo blobInfo = BlobInfo.newBuilder(bucketName, blobName).build(); Blob remoteBlob = storage.create(blobInfo); assertNotNull(remoteBlob.getRetentionExpirationTime()); remoteBucket = remoteBucket.toBuilder().setRetentionPeriod(null).build().update(); assertNull(remoteBucket.getRetentionPeriod()); remoteBucket = remoteBucket.toBuilder().setRetentionPeriod(null).build().update(); assertNull(remoteBucket.getRetentionPeriod()); } finally { RemoteStorageHelper.forceDelete(storage, bucketName, 5, TimeUnit.SECONDS); } }