diff --git a/provider/legal-gcp/src/main/appengine/app.yaml b/provider/legal-gcp/src/main/appengine/app.yaml index 22df4b203c8223c9df742668103c62e06b91e923..6be9a6e8ed966b9dfda935b84ab69318fc502fa9 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 150829919df3a31c3fa753dba0a9ef776a42276c..8c0147e183f66d58fa41cea75d247d813ee96c00 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 d6b2602f2b8d1d21f165771396a986b45914112c..68a5ec702285ff228ae09b8bb567833a31f53760 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 a9ffebdae689b1d1d115e882e05298a6b967cc9b..17e15708f06e906c4cea33d600d1ae5089e9ff49 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 83d92384787ab5690915adec911e7a0563e9741b..5ddca787acecc9855c7258b1cbc47e806e255571 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 0000000000000000000000000000000000000000..f8c687e1ba7be85f17ef24de4ce700caf3429683 --- /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 c1d1eafe31f31e39b5fb8fa57bf3da971ba7fa4e..b8202bb6342be4a0bed878f3c3938dd0ffe75267 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 {