From 094f270d8661f5ea997ec0b965b5573a80587625 Mon Sep 17 00:00:00 2001 From: Stanislav Riabokon <stanislav_riabokon@epam.com> Date: Wed, 23 Sep 2020 10:30:51 +0400 Subject: [PATCH] Added a property 'ENABLE_FULL_BUCKET_NAME'. Added unit tests. Changed int tests. --- .../legal-gcp/src/main/appengine/app.yaml | 1 + .../countries/StorageReaderFactoryImpl.java | 6 +++- .../legal/countries/StorageReaderImpl.java | 18 +++++++--- .../src/main/resources/application.properties | 2 ++ .../countries/StorageReaderImplTests.java | 34 +++++++++++++++++++ .../src/test/resources/application.properties | 3 ++ .../osdu/legal/util/GCPLegalTagUtils.java | 16 +++++++-- 7 files changed, 72 insertions(+), 8 deletions(-) create mode 100644 provider/legal-gcp/src/test/resources/application.properties diff --git a/provider/legal-gcp/src/main/appengine/app.yaml b/provider/legal-gcp/src/main/appengine/app.yaml index 22df4b203..6be9a6e8e 100644 --- a/provider/legal-gcp/src/main/appengine/app.yaml +++ b/provider/legal-gcp/src/main/appengine/app.yaml @@ -34,4 +34,5 @@ handlers: env_variables: SPRING_PROFILES_ACTIVE: "ENVIRONMENT" + ENABLE_FULL_BUCKET_NAME: 'ENABLE_FULL_BUCKET_NAME_VAR' \ No newline at end of file diff --git a/provider/legal-gcp/src/main/java/org/opengroup/osdu/legal/countries/StorageReaderFactoryImpl.java b/provider/legal-gcp/src/main/java/org/opengroup/osdu/legal/countries/StorageReaderFactoryImpl.java index 150829919..8c0147e18 100644 --- a/provider/legal-gcp/src/main/java/org/opengroup/osdu/legal/countries/StorageReaderFactoryImpl.java +++ b/provider/legal-gcp/src/main/java/org/opengroup/osdu/legal/countries/StorageReaderFactoryImpl.java @@ -4,13 +4,17 @@ import org.opengroup.osdu.core.common.model.tenant.TenantInfo; import org.opengroup.osdu.legal.provider.interfaces.IStorageReader; import org.opengroup.osdu.legal.provider.interfaces.IStorageReaderFactory; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class StorageReaderFactoryImpl implements IStorageReaderFactory { + @Value("#{new Boolean('${enable.full.bucket.name}')}") + private Boolean isFullBucketName; + @Override public IStorageReader getReader(TenantInfo tenant, String projectRegion) { - return new StorageReaderImpl(tenant, projectRegion); + return new StorageReaderImpl(tenant, projectRegion, isFullBucketName); } } diff --git a/provider/legal-gcp/src/main/java/org/opengroup/osdu/legal/countries/StorageReaderImpl.java b/provider/legal-gcp/src/main/java/org/opengroup/osdu/legal/countries/StorageReaderImpl.java index d6b2602f2..68a5ec702 100644 --- a/provider/legal-gcp/src/main/java/org/opengroup/osdu/legal/countries/StorageReaderImpl.java +++ b/provider/legal-gcp/src/main/java/org/opengroup/osdu/legal/countries/StorageReaderImpl.java @@ -2,6 +2,7 @@ package org.opengroup.osdu.legal.countries; import com.google.cloud.storage.*; +import java.util.Objects; import org.opengroup.osdu.core.common.model.tenant.TenantInfo; import org.opengroup.osdu.legal.provider.interfaces.IStorageReader; import org.springframework.http.MediaType; @@ -14,16 +15,22 @@ public class StorageReaderImpl implements IStorageReader { private String projectRegion; private Storage storage; - private static final String BUCKET_NAME = "legal-service-configuration"; + protected static final String BUCKET_NAME = "legal-service-configuration"; private static final String FILE_NAME = "Legal_COO.json"; + private Boolean isFullBucketName = false; public StorageReaderImpl(TenantInfo tenantInfo, String projectRegion) { + new StorageReaderImpl(tenantInfo, projectRegion, false); + } + + public StorageReaderImpl(TenantInfo tenantInfo, String projectRegion, Boolean isFullBucketName) { this.tenantInfo = tenantInfo; this.projectRegion = projectRegion; this.storage = getStorage(); - } + this.isFullBucketName = isFullBucketName; + } - @Override + @Override public byte[] readAllBytes() { BlobId blobId = getBlobId(); byte[] content = null; @@ -67,8 +74,11 @@ public class StorageReaderImpl implements IStorageReader { this.storage.create(blobInfo, "".getBytes(UTF_8)); } - private String getTenantBucketName() { + protected String getTenantBucketName() { + if (Objects.nonNull(isFullBucketName) && isFullBucketName) { return this.tenantInfo.getProjectId() + "-" + this.tenantInfo.getName() + "-" + BUCKET_NAME; + } + return this.tenantInfo.getName() + "-" + BUCKET_NAME; } } diff --git a/provider/legal-gcp/src/main/resources/application.properties b/provider/legal-gcp/src/main/resources/application.properties index a9ffebdae..17e15708f 100644 --- a/provider/legal-gcp/src/main/resources/application.properties +++ b/provider/legal-gcp/src/main/resources/application.properties @@ -8,4 +8,6 @@ server.port=8080 JAVA_HEAP_OPTS=-Xms4096M -Xmx4096M JAVA_GC_OPTS=-XX:+UseG1GC -XX:+UseStringDeduplication -XX:InitiatingHeapOccupancyPercent=45 +enable.full.bucket.name=${ENABLE_FULL_BUCKET_NAME} + diff --git a/provider/legal-gcp/src/test/java/org/opengroup/osdu/legal/countries/StorageReaderImplTests.java b/provider/legal-gcp/src/test/java/org/opengroup/osdu/legal/countries/StorageReaderImplTests.java index 83d923847..5ddca787a 100644 --- a/provider/legal-gcp/src/test/java/org/opengroup/osdu/legal/countries/StorageReaderImplTests.java +++ b/provider/legal-gcp/src/test/java/org/opengroup/osdu/legal/countries/StorageReaderImplTests.java @@ -13,6 +13,7 @@ import org.opengroup.osdu.core.common.model.tenant.TenantInfo; import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; +import static org.opengroup.osdu.legal.countries.StorageReaderImpl.BUCKET_NAME; import static org.powermock.api.mockito.PowerMockito.when; @RunWith(MockitoJUnitRunner.class) @@ -74,4 +75,37 @@ public class StorageReaderImplTests { byte[] bytes = sut.readAllBytes(); assertEquals(expectedBytes, bytes); } + + @Test + public void should_returnFullBucketName_when_IsFullBucketName_is_true() { + when(tenantInfo.getName()).thenReturn("tenant1"); + when(tenantInfo.getProjectId()).thenReturn("projectId1"); + String bucketName = tenantInfo.getProjectId() + "-" + tenantInfo.getName() + "-" + BUCKET_NAME; + StorageReaderImpl storageReader = new StorageReaderImpl(tenantInfo, null, + true); + String resultBucketName = storageReader.getTenantBucketName(); + assertEquals(bucketName, resultBucketName); + } + + @Test + public void should_returnBucketName_when_IsFullBucketName_is_false() { + when(tenantInfo.getName()).thenReturn("tenant1"); + when(tenantInfo.getProjectId()).thenReturn("projectId1"); + String bucketName = tenantInfo.getName() + "-" + BUCKET_NAME; + StorageReaderImpl storageReader = new StorageReaderImpl(tenantInfo, null, + false); + String resultBucketName = storageReader.getTenantBucketName(); + assertEquals(bucketName, resultBucketName); + } + + @Test + public void should_returnBucketName_when_IsFullBucketName_is_null() { + when(tenantInfo.getName()).thenReturn("tenant1"); + when(tenantInfo.getProjectId()).thenReturn("projectId1"); + String bucketName = tenantInfo.getName() + "-" + BUCKET_NAME; + StorageReaderImpl storageReader = new StorageReaderImpl(tenantInfo, null, + null); + String resultBucketName = storageReader.getTenantBucketName(); + assertEquals(bucketName, resultBucketName); + } } \ No newline at end of file diff --git a/provider/legal-gcp/src/test/resources/application.properties b/provider/legal-gcp/src/test/resources/application.properties new file mode 100644 index 000000000..f8c687e1b --- /dev/null +++ b/provider/legal-gcp/src/test/resources/application.properties @@ -0,0 +1,3 @@ +enable.full.bucket.name=false + + diff --git a/testing/legal-test-gcp/src/test/java/org/opengroup/osdu/legal/util/GCPLegalTagUtils.java b/testing/legal-test-gcp/src/test/java/org/opengroup/osdu/legal/util/GCPLegalTagUtils.java index c1d1eafe3..b8202bb63 100644 --- a/testing/legal-test-gcp/src/test/java/org/opengroup/osdu/legal/util/GCPLegalTagUtils.java +++ b/testing/legal-test-gcp/src/test/java/org/opengroup/osdu/legal/util/GCPLegalTagUtils.java @@ -12,6 +12,7 @@ import com.google.cloud.storage.BlobInfo; import com.google.cloud.storage.Storage; import com.google.cloud.storage.StorageOptions; import com.google.common.collect.Lists; +import java.util.Objects; public class GCPLegalTagUtils extends LegalTagUtils { private static final String BUCKET_NAME = "legal-service-configuration"; @@ -38,10 +39,19 @@ public class GCPLegalTagUtils extends LegalTagUtils { } } - private static String getTenantBucketName() { - String tenantName = System.getProperty("MY_TENANT_PROJECT", System.getenv("MY_TENANT_PROJECT")).toLowerCase(); - return tenantName + "-" +BUCKET_NAME; + private static String getTenantBucketName() { + String tenantName = System + .getProperty("MY_TENANT_PROJECT", System.getenv("MY_TENANT_PROJECT")).toLowerCase(); + String projectName = System.getProperty("GCLOUD_PROJECT", System.getenv("GCLOUD_PROJECT")) + .toLowerCase(); + String enableFullBucketName = System.getProperty("ENABLE_FULL_BUCKET_NAME", + System.getenv("ENABLE_FULL_BUCKET_NAME")).toLowerCase(); + + if (Objects.nonNull(enableFullBucketName) && Boolean.valueOf(enableFullBucketName)) { + return projectName + "-" + tenantName + "-" + BUCKET_NAME; } + return tenantName + "-" + BUCKET_NAME; + } @Override public synchronized String accessToken() throws Exception { -- GitLab