diff --git a/indexer-core/pom.xml b/indexer-core/pom.xml index cc71ba37027e4f70e99847314d7884f0d441d314..a7372be4e07f70fc6312a0ab25a63939510f897b 100644 --- a/indexer-core/pom.xml +++ b/indexer-core/pom.xml @@ -20,11 +20,6 @@ <artifactId>os-core-common</artifactId> <version>0.0.9-SNAPSHOT</version> </dependency> - <dependency> - <groupId>org.opengroup.osdu</groupId> - <artifactId>indexer-search-core-lib</artifactId> - <version>1.0.23-SNAPSHOT</version> - </dependency> <!-- spring boot dependencies --> <dependency> diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/api/HealthCheckApi.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/api/HealthCheckApi.java index c6c7d1b8edc8c89279b610a330afdebbe2d55396..d19ac9d042d9727b901d0148b34ea4a0dc3289e4 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/api/HealthCheckApi.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/api/HealthCheckApi.java @@ -15,7 +15,6 @@ package org.opengroup.osdu.indexer.api; import lombok.extern.java.Log; -import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/api/RecordIndexerApi.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/api/RecordIndexerApi.java index 560c5c7b6bf4477b24126e646e842ea8d6a892b8..cfa3f23415108db2b88c95386b28de7d7679789f 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/api/RecordIndexerApi.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/api/RecordIndexerApi.java @@ -20,9 +20,9 @@ import com.google.gson.Gson; import com.google.gson.JsonParseException; import io.swagger.annotations.ApiOperation; import lombok.extern.java.Log; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.model.coreis.RecordChangedMessages; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.model.search.RecordChangedMessages; import org.opengroup.osdu.indexer.SwaggerDoc; import org.opengroup.osdu.core.common.model.indexer.JobStatus; import org.opengroup.osdu.core.common.model.indexer.RecordReindexRequest; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/api/ReindexApi.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/api/ReindexApi.java index caeeac9c9c13c3c5b9ce76611c99df0bdb9e3bd0..5df99479e436aa6a66ef8dd803c549922cdf40ea 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/api/ReindexApi.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/api/ReindexApi.java @@ -14,7 +14,7 @@ package org.opengroup.osdu.indexer.api; -import org.opengroup.osdu.core.common.model.coreis.SearchServiceRole; +import org.opengroup.osdu.core.common.model.search.SearchServiceRole; import org.opengroup.osdu.indexer.logging.AuditLogger; import org.opengroup.osdu.core.common.model.indexer.RecordReindexRequest; import org.opengroup.osdu.indexer.service.ReindexService; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/auth/AuthorizationServiceEntitlements.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/auth/AuthorizationServiceEntitlements.java index cf088510335316d24c74c0eb8c0c40b0e3d2f65c..16c040077195742fcaa0720851f9e47197432625 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/auth/AuthorizationServiceEntitlements.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/auth/AuthorizationServiceEntitlements.java @@ -14,17 +14,17 @@ package org.opengroup.osdu.indexer.auth; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.entitlements.EntitlementsException; -import org.opengroup.osdu.core.common.model.core.entitlements.GroupInfo; -import org.opengroup.osdu.core.common.model.core.entitlements.Groups; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.model.coreis.AuthorizationResponse; -import org.opengroup.osdu.core.common.service.core.HttpResponse; -import org.opengroup.osdu.core.common.service.core.entitlements.IEntitlementsFactory; -import org.opengroup.osdu.core.common.service.core.entitlements.IEntitlementsService; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.entitlements.EntitlementsException; +import org.opengroup.osdu.core.common.model.entitlements.GroupInfo; +import org.opengroup.osdu.core.common.model.entitlements.Groups; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.model.entitlements.AuthorizationResponse; +import org.opengroup.osdu.core.common.service.http.HttpResponse; +import org.opengroup.osdu.core.common.service.entitlements.IEntitlementsFactory; +import org.opengroup.osdu.core.common.service.entitlements.IEntitlementsService; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; -import org.opengroup.osdu.core.common.service.coreis.HeadersUtil; +import org.opengroup.osdu.core.common.service.http.HeadersUtil; import org.opengroup.osdu.core.common.provider.interfaces.IAuthorizationService; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/logging/AuditLogger.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/logging/AuditLogger.java index fe4922ef58b2a29ffccab739112133f54fd91a6c..f904aeaaa6c01340499cdd6b48c55ad1070ba3de 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/logging/AuditLogger.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/logging/AuditLogger.java @@ -14,7 +14,7 @@ package org.opengroup.osdu.indexer.logging; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.core.common.service.logging.audit.AuditPayload; import org.springframework.stereotype.Component; @@ -30,13 +30,13 @@ public class AuditLogger { @Inject private JaxRsDpsLog logger; @Inject - private IHeadersInfo headers; + private DpsHeaders headers; private AuditEvents events = null; private AuditEvents getAuditEvents() { if (this.events == null) { - this.events = new AuditEvents(this.headers.getUser()); + this.events = new AuditEvents(this.headers.getUserEmail()); } return this.events; } diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/middleware/AuthorizationFilter.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/middleware/AuthorizationFilter.java index cbb3246a7aa39d6b1fe2bebb15a61e2ecb0ace1e..54ad9405496b8fee1163d5285e8c12c1b56bdb3a 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/middleware/AuthorizationFilter.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/middleware/AuthorizationFilter.java @@ -1,8 +1,8 @@ package org.opengroup.osdu.indexer.middleware; import lombok.extern.java.Log; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.coreis.AuthorizationResponse; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.entitlements.AuthorizationResponse; import org.opengroup.osdu.core.common.provider.interfaces.IAuthorizationService; import org.springframework.stereotype.Component; import org.springframework.web.context.annotation.RequestScope; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/provider/interfaces/IPublisher.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/provider/interfaces/IPublisher.java index 2c2fc494da76c8a624862d796df22d4af3795300..ec24e6562c71efa07f83e384d64d5b346cc7c5f3 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/provider/interfaces/IPublisher.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/provider/interfaces/IPublisher.java @@ -1,6 +1,6 @@ package org.opengroup.osdu.indexer.provider.interfaces; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.indexer.JobStatus; public interface IPublisher { diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/provider/interfaces/ISchemaCache.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/provider/interfaces/ISchemaCache.java index 2ffd1fa0fb1419a330d4b8fa1f66bb6191b27236..27004e63380bd049725a40d9bb34b61778dbe657 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/provider/interfaces/ISchemaCache.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/provider/interfaces/ISchemaCache.java @@ -1,6 +1,6 @@ package org.opengroup.osdu.indexer.provider.interfaces; -import org.opengroup.osdu.core.common.model.core.ICache; +import org.opengroup.osdu.core.common.cache.ICache; public interface ISchemaCache <String,V> extends ICache<String, V> { } diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/AttributeParsingServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/AttributeParsingServiceImpl.java index f737ad6beda38488059342def67382cff48315f6..4ed8c46cd7a449316be62014aa6ab3b1f6e0a304 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/AttributeParsingServiceImpl.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/AttributeParsingServiceImpl.java @@ -22,7 +22,7 @@ import com.google.gson.reflect.TypeToken; import org.apache.http.HttpStatus; import org.opengroup.osdu.core.common.model.indexer.IndexingStatus; import org.opengroup.osdu.core.common.model.indexer.JobStatus; -import org.opengroup.osdu.core.common.model.core.Constants; +import org.opengroup.osdu.core.common.Constants; import org.opengroup.osdu.core.common.model.indexer.ElasticType; import org.opengroup.osdu.core.common.model.indexer.IndexSchema; import org.opengroup.osdu.indexer.util.parser.DateTimeParser; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/CronServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/CronServiceImpl.java index fc60b988bed1505e0898b7098b7918e7c83aab77..5973eebb4c99238a636bb0558eac5aa3e243b9b7 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/CronServiceImpl.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/CronServiceImpl.java @@ -18,12 +18,12 @@ package org.opengroup.osdu.indexer.service; import org.elasticsearch.client.ResponseException; import org.elasticsearch.client.RestHighLevelClient; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.model.coreis.IndexInfo; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.model.search.IndexInfo; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; -import org.opengroup.osdu.core.common.service.coreis.IndicesService; -import org.opengroup.osdu.is.core.util.ElasticClientHandler; +import org.opengroup.osdu.core.common.service.search.IndicesService; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/ElasticSettingServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/ElasticSettingServiceImpl.java index 983a7851f391e01202bb9295b8bc602ee0de3b74..fe5503b714f146aad8e9add2530aff3ad18a7b57 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/ElasticSettingServiceImpl.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/ElasticSettingServiceImpl.java @@ -15,23 +15,23 @@ package org.opengroup.osdu.indexer.service; import org.apache.http.HttpStatus; -import org.opengroup.osdu.core.common.model.core.ClusterSettings; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.search.ClusterSettings; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.core.common.provider.interfaces.IElasticRepository; import org.opengroup.osdu.core.common.provider.interfaces.IElasticCredentialsCache; -import org.opengroup.osdu.core.common.service.coreis.ITenantInfoService; -import org.opengroup.osdu.is.core.service.ElasticSettingService; +import org.opengroup.osdu.core.common.model.indexer.IElasticSettingService; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.inject.Inject; @Service -public class ElasticSettingServiceImpl implements ElasticSettingService { +public class ElasticSettingServiceImpl implements IElasticSettingService { @Inject - private ITenantInfoService tenantInfoServiceProvider; + private TenantInfo tenantInfo; + @Inject private IElasticRepository elasticRepository; @Inject @@ -45,8 +45,6 @@ public class ElasticSettingServiceImpl implements ElasticSettingService { @Override public ClusterSettings getElasticClusterInformation() { - TenantInfo tenantInfo = this.tenantInfoServiceProvider.getTenantInfo(); - String cacheKey = String.format("%s-%s", GAE_SERVICE, tenantInfo.getName()); ClusterSettings clusterInfo = (ClusterSettings) this.elasticCredentialCache.get(cacheKey); if (clusterInfo != null) { diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/GeometryConversionService.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/GeometryConversionService.java index e032c66b3c59aa08c0fa2c104dab1871b1e70e93..83aadeadf483f71aca465ed4754713a242588061 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/GeometryConversionService.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/GeometryConversionService.java @@ -15,7 +15,7 @@ package org.opengroup.osdu.indexer.service; import com.google.gson.internal.LinkedTreeMap; -import org.opengroup.osdu.core.common.model.core.Constants; +import org.opengroup.osdu.core.common.Constants; import org.springframework.stereotype.Service; import org.springframework.web.context.annotation.RequestScope; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexCopyService.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexCopyService.java index 3d8023c3265bb92a7bf44e6fa18db19119dda9bf..88e20720f510b3f7d0f31c31707b2501ddd1ba5c 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexCopyService.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexCopyService.java @@ -15,7 +15,7 @@ package org.opengroup.osdu.indexer.service; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.http.AppException; import java.io.IOException; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexCopyServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexCopyServiceImpl.java index 8ae1bfd7034630f90b18b0b7392f4a0ea8f8c44a..7dc717efee799e8bfdba51010e5850c8a4dfa0e7 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexCopyServiceImpl.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexCopyServiceImpl.java @@ -25,15 +25,16 @@ import org.apache.http.util.EntityUtils; import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; import org.elasticsearch.client.RestHighLevelClient; -import org.opengroup.osdu.core.common.model.core.ClusterSettings; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.service.coreis.*; +import org.opengroup.osdu.core.common.model.search.ClusterSettings; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.service.search.ElasticIndexNameResolver; +import org.opengroup.osdu.core.common.service.search.IndicesService; +import org.opengroup.osdu.core.common.service.search.Preconditions; import org.opengroup.osdu.indexer.logging.AuditLogger; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; -import org.opengroup.osdu.is.core.service.ElasticSettingService; -import org.opengroup.osdu.is.core.util.ElasticClientHandler; +import org.opengroup.osdu.core.common.model.indexer.IElasticSettingService; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; import org.springframework.stereotype.Service; import javax.inject.Inject; @@ -52,11 +53,11 @@ public class IndexCopyServiceImpl implements IndexCopyService { @Inject private IndicesService indicesService; @Inject - private ElasticSettingService elasticSettingService; + private IElasticSettingService elasticSettingService; @Inject private IndexerMappingService mappingService; @Inject - private IHeadersInfo headersInfo; + private DpsHeaders headersInfo; @Inject private AuditLogger auditLogger; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexSchemaService.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexSchemaService.java index d382ac673f573f169afb3dd03fd0eaacb77d814a..e0a7f7a649ec2788162fd43c7cb800e021e07983 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexSchemaService.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexSchemaService.java @@ -14,7 +14,7 @@ package org.opengroup.osdu.indexer.service; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.model.indexer.IndexSchema; import org.opengroup.osdu.core.common.model.indexer.OperationType; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexSchemaServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexSchemaServiceImpl.java index 04e8a8806607cbba383def7aa05b64694e3891f7..44afd335cd5fabc882690dceec0305c8c0bbb5bd 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexSchemaServiceImpl.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexSchemaServiceImpl.java @@ -18,19 +18,20 @@ import com.google.common.base.Strings; import com.google.gson.Gson; import org.elasticsearch.ElasticsearchStatusException; import org.elasticsearch.client.RestHighLevelClient; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.storage.SchemaItem; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; -import org.opengroup.osdu.is.core.util.ElasticClientHandler; -import org.opengroup.osdu.core.common.service.coreis.ElasticIndexNameResolver; -import org.opengroup.osdu.core.common.service.coreis.IndicesService; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; +import org.opengroup.osdu.core.common.service.search.ElasticIndexNameResolver; +import org.opengroup.osdu.core.common.service.search.IndicesService; import org.opengroup.osdu.core.common.model.indexer.IndexSchema; import org.opengroup.osdu.core.common.model.indexer.OperationType; -import org.opengroup.osdu.core.common.model.indexer.Schema; +import org.opengroup.osdu.core.common.model.storage.Schema; import org.opengroup.osdu.core.common.model.indexer.StorageType; import org.opengroup.osdu.indexer.provider.interfaces.ISchemaCache; import org.opengroup.osdu.indexer.util.TypeMapper; -import org.opengroup.osdu.core.common.model.coreis.RequestStatus; -import org.opengroup.osdu.core.common.model.coreis.RecordMetaAttribute; +import org.opengroup.osdu.core.common.model.http.RequestStatus; +import org.opengroup.osdu.core.common.model.search.RecordMetaAttribute; import org.apache.http.HttpStatus; import org.springframework.stereotype.Service; @@ -171,14 +172,14 @@ public class IndexSchemaServiceImpl implements IndexSchemaService { Map<String, String> data = new HashMap<>(); Map<String, Object> meta = new HashMap<>(); - if (schemaObj.getSchema() != null && !schemaObj.getSchema().isEmpty()) { - for (Schema.Mapping schemaInfo : schemaObj.getSchema()) { - String dataType = schemaInfo.getKind(); + if (schemaObj.getSchema() != null && schemaObj.getSchema().length > 0) { + for (SchemaItem schemaItem : schemaObj.getSchema()) { + String dataType = schemaItem.getKind(); String elasticDataType = TypeMapper.getIndexerType(dataType); if (elasticDataType == null) { elasticDataType = TypeMapper.getIndexerType(StorageType.STRING.getValue()); } - data.put(schemaInfo.getPath(), elasticDataType); + data.put(schemaItem.getPath(), elasticDataType); } } diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerMappingService.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerMappingService.java index 75cfcf622b0dc661ccff0452afe90434543666fb..80865399c65309f6f80054c1513f869a3ba8d3d2 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerMappingService.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerMappingService.java @@ -15,7 +15,7 @@ package org.opengroup.osdu.indexer.service; import org.elasticsearch.client.RestHighLevelClient; -import org.opengroup.osdu.core.common.service.coreis.IMappingService; +import org.opengroup.osdu.core.common.service.search.IMappingService; import org.opengroup.osdu.core.common.model.indexer.IndexSchema; import java.io.IOException; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerMappingServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerMappingServiceImpl.java index db0094c6c5974ca12e80d6ee5bb993c83383b240..303a67baeb680f51e23f3f8fdd97801f64136863 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerMappingServiceImpl.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerMappingServiceImpl.java @@ -37,15 +37,14 @@ import org.elasticsearch.index.reindex.BulkByScrollResponse; import org.elasticsearch.index.reindex.UpdateByQueryRequest; import com.google.gson.Gson; -import org.opengroup.osdu.core.common.model.core.Constants; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.model.coreis.RecordMetaAttribute; -import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; -import org.opengroup.osdu.core.common.service.coreis.Preconditions; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.Constants; +import org.opengroup.osdu.core.common.model.search.RecordMetaAttribute; +import org.opengroup.osdu.core.common.service.search.Preconditions; import org.opengroup.osdu.core.common.model.indexer.IndexSchema; import org.opengroup.osdu.core.common.model.indexer.Records; -import org.opengroup.osdu.is.core.service.MappingServiceImpl; -import org.opengroup.osdu.is.core.util.ElasticClientHandler; +import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; import org.springframework.stereotype.Service; import javax.inject.Inject; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerService.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerService.java index 88bba90c9e1e72eb3b22f37c12d54a23ba2919c1..4ae323c7656efb92132a5c64c69564f867ed183c 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerService.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerService.java @@ -18,7 +18,7 @@ import java.util.List; import org.opengroup.osdu.core.common.model.indexer.JobStatus; import org.opengroup.osdu.core.common.model.indexer.RecordInfo; -import org.opengroup.osdu.core.common.model.coreis.RecordChangedMessages; +import org.opengroup.osdu.core.common.model.search.RecordChangedMessages; public interface IndexerService { diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerServiceImpl.java index 3af261d18bd6e94342015d10750b80f1e559451a..f08365f975b99198729f12fcdd09ff1096359f77 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerServiceImpl.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndexerServiceImpl.java @@ -30,22 +30,23 @@ import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.rest.RestStatus; -import org.opengroup.osdu.core.common.model.core.Constants; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.entitlements.Acl; +import org.opengroup.osdu.core.common.Constants; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.model.indexer.*; import org.opengroup.osdu.core.common.model.storage.ConversionStatus; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.indexer.provider.interfaces.IPublisher; import org.opengroup.osdu.indexer.logging.AuditLogger; import org.opengroup.osdu.indexer.util.IndexerQueueTaskBuilder; -import org.opengroup.osdu.core.common.model.coreis.RequestStatus; -import org.opengroup.osdu.core.common.model.coreis.RecordChangedMessages; -import org.opengroup.osdu.core.common.model.coreis.RecordMetaAttribute; +import org.opengroup.osdu.core.common.model.http.RequestStatus; +import org.opengroup.osdu.core.common.model.search.RecordChangedMessages; +import org.opengroup.osdu.core.common.model.search.RecordMetaAttribute; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; -import org.opengroup.osdu.core.common.service.coreis.IndicesService; -import org.opengroup.osdu.is.core.util.ElasticClientHandler; -import org.opengroup.osdu.core.common.service.coreis.ElasticIndexNameResolver; +import org.opengroup.osdu.core.common.service.search.IndicesService; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; +import org.opengroup.osdu.core.common.service.search.ElasticIndexNameResolver; import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.beanutils.NestedNullException; import org.springframework.stereotype.Service; @@ -500,7 +501,7 @@ public class IndexerServiceImpl implements IndexerService { indexerPayload.put(RecordMetaAttribute.TYPE.getValue(), record.getType()); indexerPayload.put(RecordMetaAttribute.VERSION.getValue(), record.getVersion()); indexerPayload.put(RecordMetaAttribute.ACL.getValue(), record.getAcl()); - indexerPayload.put(RecordMetaAttribute.X_ACL.getValue(), StorageAcl.flattenAcl(record.getAcl())); + indexerPayload.put(RecordMetaAttribute.X_ACL.getValue(), Acl.flattenAcl(record.getAcl())); indexerPayload.put(RecordMetaAttribute.LEGAL.getValue(), record.getLegal()); indexerPayload.put(RecordMetaAttribute.INDEX_STATUS.getValue(), record.getIndexProgress()); if (record.getAncestry() != null) { diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndicesServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndicesServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6a147d6f0110fb192a48ee369e92481349b03729 --- /dev/null +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndicesServiceImpl.java @@ -0,0 +1,230 @@ +// Copyright 2017-2019, Schlumberger +// +// 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 org.opengroup.osdu.indexer.service; + +import com.google.common.base.Strings; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.lambdaworks.redis.RedisException; +import org.apache.http.HttpStatus; +import org.apache.http.util.EntityUtils; +import org.elasticsearch.ElasticsearchException; +import org.elasticsearch.ElasticsearchStatusException; +import org.elasticsearch.action.admin.indices.create.CreateIndexRequest; +import org.elasticsearch.action.admin.indices.create.CreateIndexResponse; +import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest; +import org.elasticsearch.action.admin.indices.get.GetIndexRequest; +import org.elasticsearch.action.support.master.AcknowledgedResponse; +import org.elasticsearch.client.Request; +import org.elasticsearch.client.RequestOptions; +import org.elasticsearch.client.Response; +import org.elasticsearch.client.RestHighLevelClient; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.unit.TimeValue; +import org.elasticsearch.common.xcontent.XContentType; +import org.elasticsearch.rest.RestStatus; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; +import org.opengroup.osdu.core.common.service.search.IndicesService; +import org.opengroup.osdu.core.common.provider.interfaces.IIndexCache; +import org.opengroup.osdu.core.common.model.search.IndexInfo; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; +import org.opengroup.osdu.core.common.service.search.ElasticIndexNameResolver; +import org.opengroup.osdu.core.common.service.search.Preconditions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.context.annotation.RequestScope; + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@Service +@RequestScope +public class IndicesServiceImpl implements IndicesService { + + @Autowired + private ElasticClientHandler elasticClientHandler; + @Autowired + private ElasticIndexNameResolver elasticIndexNameResolver; + @Autowired + private IIndexCache indicesExistCache; + @Autowired + private JaxRsDpsLog log; + + private TimeValue REQUEST_TIMEOUT = TimeValue.timeValueMinutes(1); + + private static final Settings DEFAULT_INDEX_SETTINGS = Settings.builder() + .put("index.refresh_interval", "30s") + .put("index.number_of_replicas", "1") + .put("index.number_of_shards", "1").build(); + + /** + * Create a new index in Elasticsearch + * + * @param client Elasticsearch client + * @param index Index name + * @param settings Settings if any, null if no specific settings + * @param type type in index, required if type is specified + * @param mapping mapping if any, must be a json map + * @throws ElasticsearchStatusException, IOException if it cannot create index + */ + public boolean createIndex(RestHighLevelClient client, String index, Settings settings, String type, Map<String, Object> mapping) throws ElasticsearchStatusException, IOException { + + Preconditions.checkArgument(client, Objects::nonNull, "client cannot be null"); + Preconditions.checkArgument(index, Objects::nonNull, "index cannot be null"); + + try { + CreateIndexRequest request = new CreateIndexRequest(index); + request.settings(settings != null ? settings : DEFAULT_INDEX_SETTINGS); + if (mapping != null) { + String mappingJsonString = new Gson().toJson(mapping, Map.class); + request.mapping(type, mappingJsonString, XContentType.JSON); + } + request.timeout(REQUEST_TIMEOUT); + CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT); + + // cache the index status + boolean indexStatus = response.isAcknowledged() && response.isShardsAcknowledged(); + if (indexStatus) this.indicesExistCache.put(index, true); + + return indexStatus; + } catch (ElasticsearchStatusException e) { + if (e.status() == RestStatus.BAD_REQUEST && (e.getMessage().contains("resource_already_exists_exception"))) { + log.info("Index already exists. Ignoring error..."); + // cache the index status + this.indicesExistCache.put(index, true); + return true; + } + throw e; + } + } + + /** + * Check if an index already exists + * + * @param index Index name + * @return index details if index already exists + * @throws IOException if request cannot be processed + */ + public boolean isIndexExist(RestHighLevelClient client, String index) throws IOException { + try { + try { + Boolean isIndexExist = (Boolean) this.indicesExistCache.get(index); + if (isIndexExist != null && isIndexExist) return true; + } catch (RedisException ex) { + //In case the format of cache changes then clean the cache + this.indicesExistCache.delete(index); + } + GetIndexRequest request = new GetIndexRequest(); + request.indices(index); + boolean exists = client.indices().exists(request, RequestOptions.DEFAULT); + if (exists) this.indicesExistCache.put(index, true); + return exists; + } catch (ElasticsearchException exception) { + if (exception.status() == RestStatus.NOT_FOUND) return false; + throw new AppException( + exception.status().getStatus(), + exception.getMessage(), + String.format("Error getting index: %s status", index), + exception); + } + } + + /** + * Deletes index if user has required role: search.admin + * + * @param client Elasticsearch client + * @param index Index name + */ + public boolean deleteIndex(RestHighLevelClient client, String index) throws Exception { + boolean responseStatus = removeIndexInElasticsearch(client, index); + if (responseStatus) { + this.indicesExistCache.delete(index); + } + return responseStatus; + } + + /** + * Deletes index if user has required role: search.admin + * + * @param index Index name + */ + public boolean deleteIndex(String index) throws Exception { + try (RestHighLevelClient client = this.elasticClientHandler.createRestClient()) { + return deleteIndex(client, index); + } + } + + /** + * Remove index in Elasticsearch + * + * @param client Elasticsearch client + * @param index Index name + * @throws Exception Throws {@link AppException} if index is not found or elastic cannot delete the index + */ + private boolean removeIndexInElasticsearch(RestHighLevelClient client, String index) throws Exception { + + Preconditions.checkArgument(client, Objects::nonNull, "client cannot be null"); + Preconditions.checkArgument(index, Objects::nonNull, "index cannot be null"); + + try { + DeleteIndexRequest request = new DeleteIndexRequest(index); + request.timeout(REQUEST_TIMEOUT); + AcknowledgedResponse response = client.indices().delete(request, RequestOptions.DEFAULT); + if (!response.isAcknowledged()) { + throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Index deletion error", String.format("Could not delete index %s", index)); + } + return true; + } catch (ElasticsearchException exception) { + if (exception.status() == RestStatus.NOT_FOUND) { + throw new AppException(HttpStatus.SC_NOT_FOUND, "Index deletion error", notFoundErrorMessage(index), exception); + } else if (exception.status() == RestStatus.BAD_REQUEST && exception.getMessage().contains("Cannot delete indices that are being snapshotted")) { + throw new AppException(HttpStatus.SC_CONFLICT, "Index deletion error", "Unable to delete the index because it is currently locked. Try again in few minutes.", exception); + } + throw exception; + } + } + + // cron may not have kind but index delete api may + private String notFoundErrorMessage(String index) { + String kind = this.elasticIndexNameResolver.getKindFromIndexName(index); + return Strings.isNullOrEmpty(kind) ? String.format("Index %s not found", index) : String.format("Kind %s not found", kind); + } + + /** + * Remove index in Elasticsearch + * + * @param client Elasticsearch client + * @param indexPattern Index pattern + * @throws IOException Throws {@link IOException} if elastic cannot complete the request + */ + public List<IndexInfo> getIndexInfo(RestHighLevelClient client, String indexPattern) throws IOException { + + Preconditions.checkArgument(client, Objects::nonNull, "client cannot be null"); + + String requestUrl = Strings.isNullOrEmpty(indexPattern) + ? "/_cat/indices/*,-.*?h=index,docs.count,creation.date&s=docs.count:asc&format=json" + : String.format("/_cat/indices/%s?h=index,docs.count,creation.date&format=json", indexPattern); + + Request request = new Request("GET", requestUrl); + Response response = client.getLowLevelClient().performRequest(request); + String str = EntityUtils.toString(response.getEntity()); + final Type typeOf = new TypeToken<List<IndexInfo>>() {}.getType(); + return new Gson().fromJson(str, typeOf); + } +} \ No newline at end of file diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/MappingServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/MappingServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..fcbe1dc52a71a9c194bff887ec89fda6a0e9fcf7 --- /dev/null +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/MappingServiceImpl.java @@ -0,0 +1,93 @@ +// Copyright 2017-2019, Schlumberger +// +// 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 org.opengroup.osdu.indexer.service; + +import org.apache.http.HttpStatus; +import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest; +import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse; +import org.elasticsearch.client.RequestOptions; +import org.elasticsearch.client.RestHighLevelClient; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.service.search.ElasticIndexNameResolver; +import org.opengroup.osdu.core.common.service.search.IndicesService; +import org.opengroup.osdu.core.common.service.search.IMappingService; +import org.opengroup.osdu.core.common.service.search.Preconditions; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.context.annotation.RequestScope; + +import java.io.IOException; +import java.util.Objects; + +@Service +@RequestScope +public class MappingServiceImpl implements IMappingService { + + @Autowired + private IndicesService indicesService; + @Autowired + private ElasticClientHandler elasticClientHandler; + @Autowired + private ElasticIndexNameResolver elasticIndexNameResolver; + +// private TimeValue REQUEST_TIMEOUT = TimeValue.timeValueMinutes(1); + + /* + * Get index schema + * + * @param index Index name + * @param requestHeaders Incoming request headers + * @throws Exception Throws exception if elastic cannot find index. + * */ + @Override + public String getIndexSchema(String index) throws Exception { + + try (RestHighLevelClient client = this.elasticClientHandler.createRestClient()) { + return this.getIndexMapping(client, index); + } + } + + /** + * Gets elastic mapping for index + * + * @param client Elasticsearch client + * @param index Index name + * @return mapping Index mapping + * @throws Exception Throws exception if elastic cannot find index. + */ + public String getIndexMapping(RestHighLevelClient client, String index) throws Exception { + + Preconditions.checkArgument(client, Objects::nonNull, "client cannot be null"); + Preconditions.checkArgument(index, Objects::nonNull, "index cannot be null"); + + // check if index exist + boolean indexExist = indicesService.isIndexExist(client, index); + if (!indexExist) { + throw new AppException(HttpStatus.SC_NOT_FOUND, "Kind not found", String.format("Kind %s not found", this.elasticIndexNameResolver.getKindFromIndexName(index))); + } + + try { + GetMappingsRequest request = new GetMappingsRequest(); + request.indices(index); + // TODO: enable this once server is migrated > v6.6.2 + // request.masterNodeTimeout(REQUEST_TIMEOUT); + GetMappingsResponse response = client.indices().getMapping(request, RequestOptions.DEFAULT); + return response.toString(); + } catch (IOException e) { + throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Unknown error", String.format("Error retrieving mapping for kind %s", this.elasticIndexNameResolver.getKindFromIndexName(index)), e); + } + } +} \ No newline at end of file diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/ReindexServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/ReindexServiceImpl.java index 69e4bfc56c9fe8eb3e67e7f5e1ea9605daeaddc4..81c65a724dc004b549b7cc8ad798ec67624a37f5 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/ReindexServiceImpl.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/ReindexServiceImpl.java @@ -18,15 +18,15 @@ import com.google.common.base.Strings; import com.google.gson.Gson; import lombok.extern.java.Log; import org.apache.http.HttpStatus; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.model.indexer.OperationType; import org.opengroup.osdu.core.common.model.indexer.RecordQueryResponse; import org.opengroup.osdu.core.common.model.indexer.RecordReindexRequest; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.indexer.util.IndexerQueueTaskBuilder; import org.opengroup.osdu.core.common.model.indexer.RecordInfo; -import org.opengroup.osdu.core.common.model.coreis.RecordChangedMessages; +import org.opengroup.osdu.core.common.model.search.RecordChangedMessages; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; import org.springframework.stereotype.Component; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/StorageService.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/StorageService.java index e925e4877641d1b4bf2661bc342750125ee67711..ab8e9901294893255b0f00a7632ee0145c37f1fa 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/StorageService.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/StorageService.java @@ -14,7 +14,7 @@ package org.opengroup.osdu.indexer.service; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.model.indexer.RecordQueryResponse; import org.opengroup.osdu.core.common.model.indexer.RecordReindexRequest; import org.opengroup.osdu.core.common.model.indexer.Records; diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/StorageServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/StorageServiceImpl.java index fdb1cfe7efaa3102e68f443de0c87566ee025762..71979bc1b4a82b2909c93cf7190b20ae50b488a0 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/StorageServiceImpl.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/StorageServiceImpl.java @@ -20,15 +20,16 @@ import com.google.common.collect.Lists; import com.google.common.reflect.TypeToken; import com.google.gson.Gson; import lombok.extern.java.Log; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.model.coreis.HttpResponse; -import org.opengroup.osdu.core.common.model.coreis.RequestStatus; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.model.http.HttpResponse; +import org.opengroup.osdu.core.common.model.http.RequestStatus; import org.opengroup.osdu.core.common.model.indexer.*; import org.opengroup.osdu.core.common.model.storage.ConversionStatus; +import org.opengroup.osdu.core.common.model.storage.RecordIds; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; -import org.opengroup.osdu.core.common.service.coreis.IUrlFetchService; -import org.opengroup.osdu.core.common.model.coreis.RecordMetaAttribute; +import org.opengroup.osdu.core.common.service.http.IUrlFetchService; +import org.opengroup.osdu.core.common.model.search.RecordMetaAttribute; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; import org.apache.http.HttpStatus; import org.springframework.beans.factory.annotation.Value; @@ -44,8 +45,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.opengroup.osdu.core.common.model.coreis.SlbHeaders.SLB_FRAME_OF_REFERENCE; -import static org.opengroup.osdu.core.common.model.core.Constants.SLB_FRAME_OF_REFERENCE_VALUE; +import static org.opengroup.osdu.core.common.model.http.DpsHeaders.FRAME_OF_REFERENCE; +import static org.opengroup.osdu.core.common.Constants.SLB_FRAME_OF_REFERENCE_VALUE; @Log @Component @@ -96,7 +97,7 @@ public class StorageServiceImpl implements StorageService { // Map<String, String> headers = this.requestInfo.getHeadersMap(); DpsHeaders headers = this.requestInfo.getHeaders(); - headers.put(SLB_FRAME_OF_REFERENCE, SLB_FRAME_OF_REFERENCE_VALUE); + headers.put(FRAME_OF_REFERENCE, SLB_FRAME_OF_REFERENCE_VALUE); HttpResponse response = this.urlFetchService.sendRequest(HttpMethods.POST, STORAGE_QUERY_RECORD_FOR_CONVERSION_HOST, headers, null, body); String dataFromStorage = response.getBody(); if (Strings.isNullOrEmpty(dataFromStorage)) { diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/TenantInfoServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/TenantInfoServiceImpl.java deleted file mode 100644 index 51e62226b5e59dec3657c4b3e4b88ac2b4a750b1..0000000000000000000000000000000000000000 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/TenantInfoServiceImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2017-2019, Schlumberger -// -// 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 org.opengroup.osdu.indexer.service; - - -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.ITenantFactory; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.service.coreis.ITenantInfoService; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.stereotype.Component; -import javax.inject.Inject; - -@Component -public class TenantInfoServiceImpl implements ITenantInfoService { - - @Inject - private ITenantFactory tenantFactory; - @Inject - @Qualifier("dpsHeaderFactorySearch") - private DpsHeaders headersInfo; - - @Inject - @Qualifier("TenantInfoFactorySearch") - private TenantInfo tenantInfo; - - public TenantInfo getTenantInfo() { - - if(this.headersInfo == null) - throw AppException.createUnauthorized(String.format("could not retrieve headers info ")); - - TenantInfo tenantInfo = this.tenantFactory.getTenantInfo(this.headersInfo.getPartitionId()); - if (tenantInfo == null) - throw AppException.createUnauthorized(String.format("could not retrieve tenant info for account id: %s", headersInfo.getPartitionId())); - - return tenantInfo; - } -} \ No newline at end of file diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/ElasticClientHandler.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/ElasticClientHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..fcc90699042b27fb2c4e67b7c3d4f24e97bf8267 --- /dev/null +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/ElasticClientHandler.java @@ -0,0 +1,102 @@ +// Copyright 2017-2019, Schlumberger +// +// 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 org.opengroup.osdu.indexer.util; + +import org.apache.http.Header; +import org.apache.http.HttpHost; +import org.apache.http.HttpStatus; +import org.apache.http.message.BasicHeader; +import org.elasticsearch.client.RestClient; +import org.elasticsearch.client.RestClientBuilder; +import org.elasticsearch.client.RestHighLevelClient; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.model.search.ClusterSettings; +import org.opengroup.osdu.core.common.model.indexer.IElasticSettingService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Base64; + +@Component +public class ElasticClientHandler { + + // Elastic cluster Rest client settings + private static final int CLOUD_REST_CLIENT_PORT = 9243; + private static final int REST_CLIENT_CONNECT_TIMEOUT = 60000; + private static final int REST_CLIENT_SOCKET_TIMEOUT = 60000; + private static final int REST_CLIENT_RETRY_TIMEOUT = 60000; + + @Autowired + private IElasticSettingService elasticSettingService; + + public RestHighLevelClient createRestClient() { + return getCloudRestClient(elasticSettingService.getElasticClusterInformation()); + } + // TODO: Remove this temporary implementation when ECE CCS is utilized + public RestHighLevelClient createRestClient(final ClusterSettings clusterSettings) { + return getCloudRestClient(clusterSettings); + } + + private RestHighLevelClient getCloudRestClient(final ClusterSettings clusterSettings) { + + String cluster = null; + String host = null; + int port = CLOUD_REST_CLIENT_PORT; + String protocolScheme = "https"; + String tls = "true"; + + try { + cluster = clusterSettings.getHost(); + host = clusterSettings.getHost(); + port = clusterSettings.getPort(); + if(!clusterSettings.isHttps()){ + protocolScheme = "http"; + } + + if(!clusterSettings.isTls()){ + tls = "false"; + } + String basicEncoded = Base64.getEncoder().encodeToString(clusterSettings.getUserNameAndPassword().getBytes()); + String basicAuthenticationHeaderVal = String.format("Basic %s", basicEncoded); + + RestClientBuilder builder = RestClient.builder(new HttpHost(host, port, protocolScheme)); + builder.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(REST_CLIENT_CONNECT_TIMEOUT) + .setSocketTimeout(REST_CLIENT_SOCKET_TIMEOUT)); + builder.setMaxRetryTimeoutMillis(REST_CLIENT_RETRY_TIMEOUT); + + Header[] defaultHeaders = new Header[]{ + new BasicHeader("client.transport.nodes_sampler_interval", "30s"), + new BasicHeader("client.transport.ping_timeout", "30s"), + new BasicHeader("client.transport.sniff", "false"), + new BasicHeader("request.headers.X-Found-Cluster", cluster), + new BasicHeader("cluster.name", cluster), + new BasicHeader("xpack.security.transport.ssl.enabled", tls), + new BasicHeader("Authorization", basicAuthenticationHeaderVal), + }; + + builder.setDefaultHeaders(defaultHeaders); + return new RestHighLevelClient(builder); + } catch (AppException e) { + throw e; + } catch (Exception e) { + throw new AppException( + HttpStatus.SC_INTERNAL_SERVER_ERROR, + "search client error", + "error creating search client", + String.format("Elastic client connection params, cluster: %s, host: %s, port: %s", cluster, host, port), + e); + } + } +} \ No newline at end of file diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/IndexerQueueTaskBuilder.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/IndexerQueueTaskBuilder.java index 3855d9e4c5eb12f9ad57e39714fea1ea36a7f592..7bb22aa19f72a0bbde97abdffc764859bc903263 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/IndexerQueueTaskBuilder.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/IndexerQueueTaskBuilder.java @@ -17,11 +17,11 @@ package org.opengroup.osdu.indexer.util; import com.google.api.client.http.HttpMethods; import com.google.gson.Gson; import lombok.extern.java.Log; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.coreis.CloudTaskRequest; -import org.opengroup.osdu.core.common.model.coreis.HttpResponse; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.search.CloudTaskRequest; +import org.opengroup.osdu.core.common.model.http.HttpResponse; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; -import org.opengroup.osdu.core.common.service.coreis.IUrlFetchService; +import org.opengroup.osdu.core.common.service.http.IUrlFetchService; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.context.annotation.RequestScope; @@ -29,8 +29,8 @@ import org.springframework.web.context.annotation.RequestScope; import java.net.URISyntaxException; import javax.inject.Inject; -import static org.opengroup.osdu.core.common.model.core.Constants.REINDEX_RELATIVE_URL; -import static org.opengroup.osdu.core.common.model.core.Constants.WORKER_RELATIVE_URL; +import static org.opengroup.osdu.core.common.Constants.REINDEX_RELATIVE_URL; +import static org.opengroup.osdu.core.common.Constants.WORKER_RELATIVE_URL; @Log @Component diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/TypeMapper.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/TypeMapper.java index 4241dbf9c90150cb930ae74d559319f14a828b49..11b2935c2066a0f932714003089bd4b2489fb723 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/TypeMapper.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/TypeMapper.java @@ -14,12 +14,12 @@ package org.opengroup.osdu.indexer.util; -import org.opengroup.osdu.core.common.model.core.Constants; -import org.opengroup.osdu.core.common.model.coreis.AclRole; +import org.opengroup.osdu.core.common.Constants; +import org.opengroup.osdu.core.common.model.entitlements.AclRole; import org.opengroup.osdu.core.common.model.indexer.ElasticType; import org.opengroup.osdu.core.common.model.indexer.Records; import org.opengroup.osdu.core.common.model.indexer.StorageType; -import org.opengroup.osdu.core.common.model.coreis.RecordMetaAttribute; +import org.opengroup.osdu.core.common.model.search.RecordMetaAttribute; import java.util.HashMap; import java.util.Map; diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/api/RecordIndexerApiTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/api/RecordIndexerApiTest.java index 7596a8bc42b2f81eaf95361356e7b55deca43c3b..07f4c238944bfc667b8cd3d77c7495f6b14f981a 100644 --- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/api/RecordIndexerApiTest.java +++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/api/RecordIndexerApiTest.java @@ -21,14 +21,14 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; -import org.opengroup.osdu.core.common.service.coreis.Config; +import org.opengroup.osdu.core.common.service.search.Config; import org.opengroup.osdu.indexer.service.IndexerService; import org.opengroup.osdu.indexer.util.IndexerQueueTaskBuilder; -import org.opengroup.osdu.core.common.model.coreis.RecordChangedMessages; -import org.opengroup.osdu.core.common.service.coreis.HeadersUtil; +import org.opengroup.osdu.core.common.model.search.RecordChangedMessages; +import org.opengroup.osdu.core.common.service.http.HeadersUtil; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import org.springframework.http.HttpStatus; diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/api/ReindexApiTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/api/ReindexApiTest.java index 212baccf067101cb90ed560284a60f0567be4f6c..88a101b5df8f2e996b0602ac47c7940292ed01d3 100644 --- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/api/ReindexApiTest.java +++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/api/ReindexApiTest.java @@ -19,7 +19,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.indexer.logging.AuditLogger; import org.opengroup.osdu.core.common.model.indexer.RecordReindexRequest; import org.opengroup.osdu.indexer.service.ReindexService; diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/auth/AuthorizationServiceEntitlementsTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/auth/AuthorizationServiceEntitlementsTest.java index fd375e3a2b0d971c90e39a0f439f29f844777ba4..afe7282b7231a10e51ddcec7f899752392487a79 100644 --- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/auth/AuthorizationServiceEntitlementsTest.java +++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/auth/AuthorizationServiceEntitlementsTest.java @@ -19,15 +19,15 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.core.entitlements.EntitlementsException; -import org.opengroup.osdu.core.common.service.core.entitlements.IEntitlementsFactory; -import org.opengroup.osdu.core.common.service.core.entitlements.IEntitlementsService; -import org.opengroup.osdu.core.common.model.core.entitlements.GroupInfo; -import org.opengroup.osdu.core.common.model.core.entitlements.Groups; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.service.core.HttpResponse; -import org.opengroup.osdu.core.common.model.coreis.AuthorizationResponse; +import org.opengroup.osdu.core.common.model.entitlements.EntitlementsException; +import org.opengroup.osdu.core.common.service.entitlements.IEntitlementsFactory; +import org.opengroup.osdu.core.common.service.entitlements.IEntitlementsService; +import org.opengroup.osdu.core.common.model.entitlements.GroupInfo; +import org.opengroup.osdu.core.common.model.entitlements.Groups; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.service.http.HttpResponse; +import org.opengroup.osdu.core.common.model.entitlements.AuthorizationResponse; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.springframework.test.context.junit4.SpringRunner; diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/logging/AuditEventsTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/logging/AuditEventsTest.java index 3157d0e3a45ef1243a0af09a784b8897c4c0af73..98c696a9dd66b659fddef5b97dd8b89277b6dc2c 100644 --- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/logging/AuditEventsTest.java +++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/logging/AuditEventsTest.java @@ -17,6 +17,7 @@ package org.opengroup.osdu.indexer.logging; import com.google.common.collect.Lists; import org.junit.Test; import org.junit.runner.RunWith; +import org.opengroup.osdu.indexer.logging.AuditEvents; import org.opengroup.osdu.core.common.service.logging.audit.AuditAction; import org.opengroup.osdu.core.common.service.logging.audit.AuditStatus; import org.springframework.test.context.junit4.SpringRunner; diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/logging/AuditLoggerTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/logging/AuditLoggerTest.java index 1ac17b5308e49860835a6700d6e839e719345191..746a8a5c348dc53a70e4c8bd10bf05dc5022b8af 100644 --- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/logging/AuditLoggerTest.java +++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/logging/AuditLoggerTest.java @@ -21,9 +21,9 @@ import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.InjectMocks; import org.mockito.Mock; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.core.common.service.logging.audit.AuditPayload; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; import org.springframework.test.context.junit4.SpringRunner; import java.util.Map; @@ -37,13 +37,13 @@ public class AuditLoggerTest { @Mock private JaxRsDpsLog logger; @Mock - private IHeadersInfo headers; + private DpsHeaders headers; @InjectMocks private AuditLogger sut; @Before public void setup() { - when(this.headers.getUser()).thenReturn("testUser"); + when(this.headers.getUserEmail()).thenReturn("testUser"); } @Test diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/logging/JaxRsDpsLogTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/logging/JaxRsDpsLogTest.java index 5b9c6a8688ccf2f52be0f0515cc0d30898009683..2fd7ffb8191cb1c78157611283d57fb26d4de7de 100644 --- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/logging/JaxRsDpsLogTest.java +++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/logging/JaxRsDpsLogTest.java @@ -20,8 +20,8 @@ import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.Request; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.Request; import org.opengroup.osdu.core.common.service.logging.ILogger; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.core.common.service.logging.audit.AuditPayload; diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/model/RecordChagedMessagesTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/model/RecordChagedMessagesTest.java index de936e7aac444684806a6ee7b5f658650480793d..071d140ae39a1ebf709c4e1712f74da23feb2918 100644 --- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/model/RecordChagedMessagesTest.java +++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/model/RecordChagedMessagesTest.java @@ -18,8 +18,8 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.coreis.RecordChangedMessages; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.search.RecordChangedMessages; import org.springframework.test.context.junit4.SpringRunner; import java.util.HashMap; diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/GeometryConversionServiceTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/GeometryConversionServiceTest.java index e5cf8889a53cc411db4bddddf39e937a77963081..9795772efc04c14107662877d9d654491a99645f 100644 --- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/GeometryConversionServiceTest.java +++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/GeometryConversionServiceTest.java @@ -18,7 +18,7 @@ import com.google.gson.internal.LinkedTreeMap; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; -import org.opengroup.osdu.core.common.model.core.Constants; +import org.opengroup.osdu.core.common.Constants; import org.springframework.test.context.junit4.SpringRunner; import java.util.ArrayList; diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/IndicesServiceTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/IndicesServiceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..9de1af7fd574a25bdcbc81c5f02fcf5221fc0ae2 --- /dev/null +++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/IndicesServiceTest.java @@ -0,0 +1,222 @@ +// Copyright 2017-2019, Schlumberger +// +// 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 org.opengroup.osdu.indexer.service; + +import com.google.common.reflect.TypeToken; +import com.google.gson.Gson; + +import org.apache.http.HttpEntity; +import org.apache.http.HttpStatus; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.StringEntity; +import org.apache.http.util.EntityUtils; +import org.elasticsearch.ElasticsearchStatusException; +import org.elasticsearch.action.support.master.AcknowledgedResponse; +import org.elasticsearch.client.*; +import org.elasticsearch.rest.RestStatus; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; +import org.opengroup.osdu.core.common.provider.interfaces.IIndexCache; +import org.opengroup.osdu.core.common.model.search.IndexInfo; +import org.opengroup.osdu.core.common.service.search.ElasticIndexNameResolver; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.springframework.context.annotation.Lazy; +import org.springframework.test.context.junit4.SpringRunner; + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.List; + +import static junit.framework.TestCase.assertTrue; +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; +import static org.mockito.MockitoAnnotations.initMocks; + +@RunWith(SpringRunner.class) +@PrepareForTest({RestHighLevelClient.class, IndicesClient.class, EntityUtils.class}) +public class IndicesServiceTest { + @Mock + private ElasticClientHandler elasticClientHandler; + @Mock + private ElasticIndexNameResolver elasticIndexNameResolver; + @Mock + private IIndexCache indicesExistCache; + @Mock + @Lazy + private JaxRsDpsLog log; + @Mock + private RestClient restClient; + @Mock + private Response response; + @Mock + private HttpEntity httpEntity; + @InjectMocks + private IndicesServiceImpl sut; + + private RestHighLevelClient restHighLevelClient; + private IndicesClient indicesClient; + + @Before + public void setup() { + initMocks(this); + indicesClient = PowerMockito.mock(IndicesClient.class); + restHighLevelClient = PowerMockito.mock(RestHighLevelClient.class); + } + + @Test + public void delete_existingElasticIndex() throws Exception { + AcknowledgedResponse indexResponse = new AcknowledgedResponse(true); + + when(elasticClientHandler.createRestClient()).thenReturn(restHighLevelClient); + doReturn(indicesClient).when(restHighLevelClient).indices(); + doReturn(indexResponse).when(indicesClient).delete(any(), any(RequestOptions.class)); + boolean response = this.sut.deleteIndex("anyIndex"); + assertTrue(response); + } + + @Test + public void delete_existingElasticIndex_usingSameClient() throws Exception { + AcknowledgedResponse indexResponse = new AcknowledgedResponse(true); + + when(elasticClientHandler.createRestClient()).thenReturn(restHighLevelClient); + doReturn(indicesClient).when(restHighLevelClient).indices(); + doReturn(indexResponse).when(indicesClient).delete(any(), any(RequestOptions.class)); + boolean response = this.sut.deleteIndex(restHighLevelClient, "anyIndex"); + assertTrue(response); + } + + @Test + public void should_throw_internalServerException_delete_isNotAcknowledged() throws Exception { + AcknowledgedResponse indexResponse = new AcknowledgedResponse(false); + when(elasticClientHandler.createRestClient()).thenReturn(restHighLevelClient); + doReturn(indicesClient).when(restHighLevelClient).indices(); + doReturn(indexResponse).when(indicesClient).delete(any(), any(RequestOptions.class)); + + try { + this.sut.deleteIndex("anyIndex"); + fail("Should not succeed!"); + } catch (AppException e) { + assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, e.getError().getCode()); + assertEquals("Could not delete index anyIndex", e.getError().getMessage()); + assertEquals("Index deletion error", e.getError().getReason()); + } catch (Exception e) { + fail("Should not throw this exception " + e.getMessage()); + } + } + + @Test + public void should_throwAppException_when_delete_existingElasticIndex_and_backupIsRunning() throws Exception { + ElasticsearchStatusException exception = new ElasticsearchStatusException( + "Cannot delete indices that are being snapshotted: [[anyIndex/8IXuPeFnTJGEu_LjjXrHwA]]. Try again after snapshot finishes or cancel the currently running snapshot.", RestStatus.BAD_REQUEST); + when(elasticClientHandler.createRestClient()).thenReturn(restHighLevelClient); + doReturn(indicesClient).when(restHighLevelClient).indices(); + doThrow(exception).when(indicesClient).delete(any(), any(RequestOptions.class)); + + try { + this.sut.deleteIndex("anyIndex"); + fail("Should not succeed!"); + } catch (AppException e) { + assertEquals(HttpStatus.SC_CONFLICT, e.getError().getCode()); + assertEquals("Unable to delete the index because it is currently locked. Try again in few minutes.", e.getError().getMessage()); + assertEquals("Index deletion error", e.getError().getReason()); + } catch (Exception e) { + fail("Should not throw this exception " + e.getMessage()); + } + } + + @Test + public void should_throwAppException_when_delete_nonExistent_index() throws Exception { + ElasticsearchStatusException exception = new ElasticsearchStatusException("no such index", RestStatus.NOT_FOUND); + when(elasticClientHandler.createRestClient()).thenReturn(restHighLevelClient); + doReturn(indicesClient).when(restHighLevelClient).indices(); + doThrow(exception).when(indicesClient).delete(any(), any(RequestOptions.class)); + + try { + this.sut.deleteIndex("anyIndex"); + fail("Should not succeed!"); + } catch (AppException e) { + assertEquals(HttpStatus.SC_NOT_FOUND, e.getError().getCode()); + assertEquals("Index anyIndex not found", e.getError().getMessage()); + assertEquals("Index deletion error", e.getError().getReason()); + } catch (Exception e) { + fail("Should not throw this exception " + e.getMessage()); + } + } + + @Test + public void should_get_valid_indexInfo() throws IOException { + String responseJson = "[" + + " {" + + " \"index\": \"tenant1-aapg-file-1.0.0\"," + + " \"docs.count\": \"92\"," + + " \"creation.date\": \"1545912860994\"" + + " }" + + "]"; + Request request = new Request("GET", "/_cat/indices/*,-.*?h=index,docs.count,creation.date&s=docs.count:asc&format=json"); + StringEntity entity = new StringEntity(responseJson, ContentType.APPLICATION_JSON); + when(this.restHighLevelClient.getLowLevelClient()).thenReturn(this.restClient); + when(this.restClient.performRequest(request)).thenReturn(response); + when(this.response.getEntity()).thenReturn(entity); + + List<IndexInfo> infos = this.sut.getIndexInfo(this.restHighLevelClient, ""); + assertNotNull(infos); + assertEquals(1, infos.size()); + } + + @Test + public void should_get_valid_indexInfoByPattern() throws IOException { + String responseJson = "[" + + " {" + + " \"index\": \"tenant1-aapg-file-1.0.0\"," + + " \"docs.count\": \"92\"," + + " \"creation.date\": \"1545912860994\"" + + " }," + + " {" + + " \"index\": \"tenant1-aapg-document-1.0.0\"," + + " \"docs.count\": \"0\"," + + " \"creation.date\": \"1545912868416\"" + + " }" + + "]"; + Request request = new Request("GET", "/_cat/indices/tenant1-aapg-*?h=index,docs.count,creation.date&format=json"); + StringEntity entity = new StringEntity(responseJson, ContentType.APPLICATION_JSON); + when(this.restHighLevelClient.getLowLevelClient()).thenReturn(this.restClient); + when(this.restClient.performRequest(request)).thenReturn(response); + when(this.response.getEntity()).thenReturn(entity); + + List<IndexInfo> infos = this.sut.getIndexInfo(this.restHighLevelClient, "tenant1-aapg-*"); + assertNotNull(infos); + assertEquals(2, infos.size()); + } + + @Test + public void should_properly_deserialize_indices_get_response() { + String jsonResponse = "[{\"index\":\"tenant1-test-hello-1.0.1\",\"docs.count\":\"1\",\"creation.date\":\"1551996907769\"}]"; + + final Type typeOf = new TypeToken<List<IndexInfo>>() {}.getType(); + List<IndexInfo> indicesList = new Gson().fromJson(jsonResponse, typeOf); + + assertEquals(1, indicesList.size()); + assertEquals("tenant1-test-hello-1.0.1", indicesList.get(0).getName()); + assertEquals("1", indicesList.get(0).getDocumentCount()); + assertEquals("1551996907769", indicesList.get(0).getCreationDate()); + } +} \ No newline at end of file diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/MappingServiceImplTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/MappingServiceImplTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e57dd3c33a2d6910f753d22ee40e9ebdf1287f4f --- /dev/null +++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/MappingServiceImplTest.java @@ -0,0 +1,104 @@ +// Copyright 2017-2019, Schlumberger +// +// 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 org.opengroup.osdu.is.core.service; + +import org.apache.http.HttpStatus; +import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse; +import org.elasticsearch.client.IndicesClient; +import org.elasticsearch.client.RequestOptions; +import org.elasticsearch.client.RestHighLevelClient; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.model.indexer.IElasticSettingService; +import org.opengroup.osdu.core.common.service.coreis.*; +import org.opengroup.osdu.is.core.util.ElasticClientHandler; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.springframework.test.context.junit4.SpringRunner; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.*; +import static org.mockito.MockitoAnnotations.initMocks; + +@RunWith(SpringRunner.class) +@PrepareForTest({RestHighLevelClient.class, IndicesClient.class, GetMappingsResponse.class}) +public class MappingServiceImplTest { + @Mock + private IElasticSettingService elasticSettingService; + @Mock + private ElasticClientHandler elasticClientHandler; + @Mock + private ElasticIndexNameResolver elasticIndexNameResolver; + @Mock + private IndicesService indicesService; + @InjectMocks + private MappingServiceImpl sut; + + private RestHighLevelClient restHighLevelClient; + private IndicesClient indicesClient; + private GetMappingsResponse mappingsResponse; + private String index = "anyindex"; + + @Before + public void setup() { + initMocks(this); + this.indicesClient = PowerMockito.mock(IndicesClient.class); + this.restHighLevelClient = PowerMockito.mock(RestHighLevelClient.class); + this.mappingsResponse = PowerMockito.mock(GetMappingsResponse.class); + } + + @Test + public void error_when_get_mapping_from_non_exists_elastic_index() throws Exception { + try { + when(this.indicesService.isIndexExist(restHighLevelClient, index)).thenReturn(false); + + this.sut.getIndexMapping(restHighLevelClient, index); + fail("expected exception"); + } catch (AppException ex) { + assertEquals(HttpStatus.SC_NOT_FOUND, ex.getError().getCode()); + } + } + + @Test(expected = AppException.class) + public void error_when_get_mapping_failed_from_existing_elastic_index() throws Exception { + when(this.indicesService.isIndexExist(this.restHighLevelClient, this.index)).thenReturn(true); + doReturn(this.indicesClient).when(this.restHighLevelClient).indices(); + doThrow(new IOException()).when(this.indicesClient).getMapping(any(), any(RequestOptions.class)); + + this.sut.getIndexMapping(this.restHighLevelClient, this.index); + + fail("expected exception"); + } + + @Test + public void get_mapping_from_existing_elastic_index() throws Exception { + when(this.indicesService.isIndexExist(restHighLevelClient, index)).thenReturn(true); + doReturn(this.indicesClient).when(this.restHighLevelClient).indices(); + doReturn(this.mappingsResponse).when(this.indicesClient).getMapping(any(), any(RequestOptions.class)); + doReturn("dummy").when(this.mappingsResponse).toString(); + + String mapping = this.sut.getIndexMapping(restHighLevelClient, index); + + // TODO + assertEquals("dummy", mapping); + } +}*/ \ No newline at end of file diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/util/ElasticClientHandlerTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/util/ElasticClientHandlerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..d9d724645c313996d131cc00e4b1983cdc9b7519 --- /dev/null +++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/util/ElasticClientHandlerTest.java @@ -0,0 +1,102 @@ +// Copyright 2017-2019, Schlumberger +// +// 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 org.opengroup.osdu.indexer.util; + +import org.apache.http.HttpHost; +import org.elasticsearch.client.RestClient; +import org.elasticsearch.client.RestClientBuilder; +import org.elasticsearch.client.RestHighLevelClient; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; +import org.opengroup.osdu.core.common.service.search.Config; +import org.opengroup.osdu.core.common.model.indexer.IElasticSettingService; +import org.opengroup.osdu.core.common.model.search.ClusterSettings; +import org.opengroup.osdu.core.common.model.search.DeploymentEnvironment; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.when; +import static org.mockito.MockitoAnnotations.initMocks; + +@Ignore +@RunWith(SpringRunner.class) +@PrepareForTest({Config.class, RestClientBuilder.class, RestClient.class, RestHighLevelClient.class}) +public class ElasticClientHandlerTest { + + @Mock + private IElasticSettingService elasticSettingService; + + @Mock + private RestClientBuilder builder; + + @Mock + private RestClient restClient; + @Mock + private JaxRsDpsLog log; + + @InjectMocks + private ElasticClientHandler elasticClientHandler; + + @Before + public void setup() { + initMocks(this); + +// mockStatic(Config.class); +// mockStatic(RestClient.class); + } + + @Test + public void createRestClient_when_deployment_env_is_saas() { + ClusterSettings clusterSettings = new ClusterSettings("H", 1, "U:P"); + when(Config.getDeploymentEnvironment()).thenReturn(DeploymentEnvironment.CLOUD); + when(elasticSettingService.getElasticClusterInformation()).thenReturn(clusterSettings); + when(RestClient.builder(new HttpHost("H", 1, "https"))).thenReturn(builder); + when(builder.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(5000).setSocketTimeout(60000))).thenReturn(builder); + when(builder.build()).thenReturn(restClient); + + RestHighLevelClient returned = this.elasticClientHandler.createRestClient(); + + assertEquals(restClient, returned.getLowLevelClient()); + } + + @Test(expected = AppException.class) + public void failed_createRestClientForSaaS_when_restclient_is_null() { + ClusterSettings clusterSettings = new ClusterSettings("H", 1, "U:P"); + when(Config.getDeploymentEnvironment()).thenReturn(DeploymentEnvironment.CLOUD); + when(elasticSettingService.getElasticClusterInformation()).thenReturn(clusterSettings); + when(RestClient.builder(new HttpHost("H", 1, "https"))).thenReturn(builder); + when(builder.build()).thenReturn(null); + + this.elasticClientHandler.createRestClient(); + } + + @Test(expected = AppException.class) + public void failed_createRestClientForSaaS_when_getcluster_info_throws_exception() { + when(Config.getDeploymentEnvironment()).thenReturn(DeploymentEnvironment.CLOUD); + when(elasticSettingService.getElasticClusterInformation()).thenThrow(new AppException(1, "", "")); + when(RestClient.builder(new HttpHost("H", 1, "https"))).thenReturn(builder); + + this.elasticClientHandler.createRestClient(); + } +} + + diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/util/RecordInfoTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/util/RecordInfoTest.java index 24466cc3c54e12df04bb8217cd69608c18be7944..a919a0c4bc2e52144332b8d5cd6a8228cdda4db8 100644 --- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/util/RecordInfoTest.java +++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/util/RecordInfoTest.java @@ -20,7 +20,7 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.model.indexer.OperationType; import org.opengroup.osdu.core.common.model.indexer.RecordInfo; import org.springframework.http.HttpStatus; diff --git a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/IndexerAwsApplication.java b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/IndexerAwsApplication.java index 501bdddb2cf77765a701fb3651cfff5e5340713c..8d550c871e75408fa2a9e2fc2c90f32dc8dd4124 100644 --- a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/IndexerAwsApplication.java +++ b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/IndexerAwsApplication.java @@ -22,7 +22,7 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @SpringBootApplication(exclude = { SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class }) -@ComponentScan({"org.opengroup.osdu.core.common", "org.opengroup.osdu.indexer"}) +@ComponentScan({"org.opengroup.osdu"}) public class IndexerAwsApplication { public static void main(String[] args) { diff --git a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/cache/IndexCacheImpl.java b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/cache/IndexCacheImpl.java index 3835cb569099cff7b25ecba74f877c031bfdbbae..b8953ba2d6cc3aaee5e99565bbc2417413f5d153 100644 --- a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/cache/IndexCacheImpl.java +++ b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/cache/IndexCacheImpl.java @@ -14,7 +14,7 @@ package org.opengroup.osdu.indexer.aws.cache; -import org.opengroup.osdu.core.common.model.core.cache.RedisCache; +import org.opengroup.osdu.core.common.cache.RedisCache; import org.opengroup.osdu.core.common.provider.interfaces.IIndexCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/cache/SchemaCacheImpl.java b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/cache/SchemaCacheImpl.java index 609fb09173db281297e07ae1e8ec7ff9d28f0060..112b3b2f8b1a591f785edb675b7a84cfe2cf5198 100644 --- a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/cache/SchemaCacheImpl.java +++ b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/cache/SchemaCacheImpl.java @@ -14,7 +14,7 @@ package org.opengroup.osdu.indexer.aws.cache; -import org.opengroup.osdu.core.common.model.core.cache.RedisCache; +import org.opengroup.osdu.core.common.cache.RedisCache; import org.opengroup.osdu.indexer.provider.interfaces.ISchemaCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/di/EntitlementsFactoryImpl.java b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/di/EntitlementsFactoryImpl.java index 92522a9e9a4de7a73bbf7347c53807bd08425f14..dd55e6a4712e6713546ceb035ff85837add3640b 100644 --- a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/di/EntitlementsFactoryImpl.java +++ b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/di/EntitlementsFactoryImpl.java @@ -14,9 +14,9 @@ package org.opengroup.osdu.indexer.aws.di; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.service.core.entitlements.IEntitlementsFactory; -import org.opengroup.osdu.core.common.service.core.entitlements.IEntitlementsService; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.service.entitlements.IEntitlementsFactory; +import org.opengroup.osdu.core.common.service.entitlements.IEntitlementsService; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; diff --git a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/di/EntitlementsServiceImpl.java b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/di/EntitlementsServiceImpl.java index e3bce2b2744f97ac940cd505c00d34f2448cb904..6f3d77491f449bb64c4250b13f21265d42f81b65 100644 --- a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/di/EntitlementsServiceImpl.java +++ b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/di/EntitlementsServiceImpl.java @@ -20,15 +20,14 @@ import com.amazonaws.services.lambda.invoke.LambdaSerializationException; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.entitlements.EntitlementsException; -import org.opengroup.osdu.core.common.model.core.entitlements.MemberInfo; -import org.opengroup.osdu.core.common.model.core.entitlements.Members; -import org.opengroup.osdu.core.common.service.core.entitlements.IEntitlementsService; -import org.opengroup.osdu.core.common.model.core.entitlements.*; +import org.opengroup.osdu.core.common.model.entitlements.*; +import org.opengroup.osdu.core.common.model.entitlements.MemberInfo; +import org.opengroup.osdu.core.common.model.entitlements.Members; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.service.entitlements.IEntitlementsService; import org.opengroup.osdu.core.aws.entitlements.*; -import org.opengroup.osdu.core.common.service.core.HttpResponse; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.service.http.HttpResponse; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpStatus; diff --git a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/di/TenantFactoryImpl.java b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/di/TenantFactoryImpl.java deleted file mode 100644 index 15f07588070366c556c574b590c18db4e516e59e..0000000000000000000000000000000000000000 --- a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/di/TenantFactoryImpl.java +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright © Amazon Web Services -// -// 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 org.opengroup.osdu.indexer.aws.di; - -import org.opengroup.osdu.core.common.model.core.ICache; -import org.opengroup.osdu.core.common.model.core.ITenantFactory; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.springframework.stereotype.Component; - -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; - -@Component -public class TenantFactoryImpl implements ITenantFactory { - public static final String[] REGISTERED_TENANTS = new String[] {"common", "opendes"}; - private Map<String, TenantInfo> tenants; - - public TenantFactoryImpl() - { - this.tenants = new HashMap<>(); - for (String tenantName : REGISTERED_TENANTS) { - TenantInfo ti = new TenantInfo(); - ti.setName(tenantName); - this.tenants.put(tenantName, ti); - } - } - @Override - public boolean exists(String tenantName) { - return this.tenants.containsKey(tenantName); - } - - @Override - public TenantInfo getTenantInfo(String tenantName) { - return this.tenants.get(tenantName); } - - @Override - public Collection<TenantInfo> listTenantInfo() { - return this.tenants.values(); - } - - @Override - public <V> ICache<String, V> createCache(String s, String s1, int i, int i1, Class<V> aClass) { - return null; - } - - @Override - public void flushCache() { - - } -} diff --git a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/di/TenantInfoFactory.java b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/di/TenantInfoFactory.java deleted file mode 100644 index f6767fa96d53daf18e6268763444348baa4c4182..0000000000000000000000000000000000000000 --- a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/di/TenantInfoFactory.java +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright © Amazon Web Services -// -// 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 org.opengroup.osdu.indexer.aws.di; - -import lombok.extern.java.Log; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.ITenantFactory; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.config.AbstractFactoryBean; -import org.springframework.stereotype.Component; -import org.springframework.web.context.annotation.RequestScope; - -@Log -@Component -@RequestScope -public class TenantInfoFactory extends AbstractFactoryBean<TenantInfo> { - @Autowired - private ITenantFactory tenantFactory; - @Autowired - @Qualifier("dpsHeaderFactorySearch") - private DpsHeaders headers; - @Override - protected TenantInfo createInstance() throws Exception { - String id = this.headers.getPartitionIdWithFallbackToAccountId(); - return this.tenantFactory.getTenantInfo(id); - } - @Override - public Class<?> getObjectType() { - return TenantInfo.class; - } -} diff --git a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/persistence/ElasticRepositoryImpl.java b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/persistence/ElasticRepositoryImpl.java index f215a22404cbbb06f3a915643d859e3362f14ef5..22b0d8f5c5ca21fc079d1409889d9c5f2673f269 100644 --- a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/persistence/ElasticRepositoryImpl.java +++ b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/persistence/ElasticRepositoryImpl.java @@ -14,8 +14,8 @@ package org.opengroup.osdu.indexer.aws.persistence; -import org.opengroup.osdu.core.common.model.core.ClusterSettings; -import org.opengroup.osdu.core.common.model.core.TenantInfo; +import org.opengroup.osdu.core.common.model.search.ClusterSettings; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; import org.opengroup.osdu.core.common.provider.interfaces.IElasticRepository; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/publish/PublisherImpl.java b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/publish/PublisherImpl.java index 019c09eebea48864285c2265c59fb0a1832a4077..c2efd5c7e235efec8719edabd21ccf64d7bd7613 100644 --- a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/publish/PublisherImpl.java +++ b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/publish/PublisherImpl.java @@ -17,7 +17,7 @@ package org.opengroup.osdu.indexer.aws.publish; import com.amazonaws.services.sns.model.MessageAttributeValue; import com.amazonaws.services.sns.model.PublishRequest; import com.amazonaws.services.sns.AmazonSNS; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.aws.sns.AmazonSNSConfig; import org.opengroup.osdu.core.aws.sns.PublishRequestBuilder; import org.opengroup.osdu.indexer.provider.interfaces.IPublisher; diff --git a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/service/ElasticClientHandlerAws.java b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/service/ElasticClientHandlerAws.java index c84bfe61798c7be957769f4a347040fb0eedc0ab..6a2498d0b89e2e85d9dd676039284605cf177fa4 100644 --- a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/service/ElasticClientHandlerAws.java +++ b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/service/ElasticClientHandlerAws.java @@ -22,7 +22,7 @@ import org.apache.http.HttpRequestInterceptor; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; import org.opengroup.osdu.core.aws.iam.IAMConfig; -import org.opengroup.osdu.is.core.util.ElasticClientHandler; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; diff --git a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/util/HeadersInfoAwsImpl.java b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/util/HeadersInfoAwsImpl.java deleted file mode 100644 index cae5b55f9b3274e6e5825661e5ffb3d2a6d89c2b..0000000000000000000000000000000000000000 --- a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/util/HeadersInfoAwsImpl.java +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright © Amazon Web Services -// -// 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 org.opengroup.osdu.indexer.aws.util; - -import lombok.extern.java.Log; -import org.apache.http.HttpStatus; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.model.coreis.SlbHeaders; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; -import org.opengroup.osdu.core.common.service.coreis.Preconditions; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.context.annotation.Primary; -import org.springframework.stereotype.Component; - -import javax.inject.Inject; -import java.util.HashSet; -import java.util.Map; -import java.util.stream.Collectors; - -@Primary -@Log -@Component -public class HeadersInfoAwsImpl implements IHeadersInfo { - - @Inject - @Qualifier("dpsHeaderFactorySearch") - private DpsHeaders headersMap; - - - private static final HashSet<String> FORBIDDEN_FROM_LOGGING = new HashSet<>(); - static { - FORBIDDEN_FROM_LOGGING.add(DpsHeaders.AUTHORIZATION); - FORBIDDEN_FROM_LOGGING.add(DpsHeaders.ON_BEHALF_OF); - } - - /** - * Get list of current headers - * @return DpsHeaders headers - */ - @Override - public DpsHeaders getHeaders() { - if (headersMap == null) { - log.warning("Headers Map DpsHeaders is null"); - // throw to prevent null reference exception below - throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Invalid Headers", "Headers Map DpsHeaders is null"); - } - DpsHeaders headers = this.getCoreServiceHeaders(headersMap.getHeaders()); - return headers; - } - - /** - * get current logged in user - * @return userEmail - */ - @Override - public String getUser() { - // TODO: This class is going to be deprecated soon so this whole class will go away. Additionally there shouldn't be a user email attached to the request because this is a message from storage. - return "user"; - } - - /** - * get partition id and fallback to account id - * @return Partition ID - */ - @Override - public String getPartitionId() { - return getHeaders().getPartitionIdWithFallbackToAccountId(); - } - - /** - * get the primary partition id - * @return primaryPartitionID - */ - @Override - public String getPrimaryPartitionId() { - return getHeadersMap().get(SlbHeaders.PRIMARY_PARTITION_ID); - } - - /** - * get map of the current headers - * @return Map<String, String> headers - */ - @Override - public Map<String, String> getHeadersMap() { - return getHeaders().getHeaders(); - } - - /** - * supplement the DPSHeaders with any specific core service headers - * @param input Map<String, String> of core headers - * @return DpsHeaders dpsHeaders - */ - @Override - public DpsHeaders getCoreServiceHeaders(Map<String, String> input) { - Preconditions.checkNotNull(input, "input headers cannot be null"); - - DpsHeaders output = DpsHeaders.createFromMap(input); - - return output; - } - - /** - * create string representing a comma delimited list of the current headers - * @return - */ - @Override - public String toString() { - return this.getHeadersMap().entrySet().stream().filter(map -> !FORBIDDEN_FROM_LOGGING.contains(map.getKey().toLowerCase())).map(Map.Entry::toString).collect(Collectors.joining(" | ")); - } - -} \ No newline at end of file diff --git a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/util/IndexerQueueTaskBuilderAws.java b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/util/IndexerQueueTaskBuilderAws.java index c7f0eb4edf857339b2872bee6c52b832d0ee92aa..76607c97a21bd574e3f4f59d0b1f477c1543e799 100644 --- a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/util/IndexerQueueTaskBuilderAws.java +++ b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/util/IndexerQueueTaskBuilderAws.java @@ -16,7 +16,7 @@ package org.opengroup.osdu.indexer.aws.util; import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.model.SendMessageRequest; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.aws.sqs.AmazonSQSConfig; import org.opengroup.osdu.indexer.util.IndexerQueueTaskBuilder; import org.springframework.beans.factory.annotation.Value; diff --git a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/util/RequestInfoImpl.java b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/util/RequestInfoImpl.java index dbce6b79d2d907576fd71d1075d9c5440da67d90..35a79e347301c29d58abbe4f0c4de82824c9c902 100644 --- a/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/util/RequestInfoImpl.java +++ b/provider/indexer-aws/src/main/java/org/opengroup/osdu/indexer/aws/util/RequestInfoImpl.java @@ -16,11 +16,10 @@ package org.opengroup.osdu.indexer.aws.util; import lombok.extern.java.Log; import org.apache.http.HttpStatus; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; -import org.opengroup.osdu.core.common.service.coreis.Preconditions; -import org.springframework.beans.factory.annotation.Qualifier; +import org.opengroup.osdu.core.common.service.search.Preconditions; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; @@ -35,7 +34,6 @@ import java.util.Map; public class RequestInfoImpl implements IRequestInfo { @Inject - @Qualifier("dpsHeaderFactorySearch") private DpsHeaders headersMap; diff --git a/provider/indexer-aws/src/main/resources/application.properties b/provider/indexer-aws/src/main/resources/application.properties index b67b44c6ff2e30270dff83460659c46e20bb8091..44abedf4c31cc3779ea932d5ccb02c6047ba277b 100644 --- a/provider/indexer-aws/src/main/resources/application.properties +++ b/provider/indexer-aws/src/main/resources/application.properties @@ -39,7 +39,8 @@ spring.security.user.roles=service.storage.admin # AWS ES configuration -aws.es.host=https://search-${ENVIRONMENT}-osdu-indexer-i5bpf2gv4iv6ha2xi7rook2rga.${AWS_REGION}.es.amazonaws.com +#aws.es.host=https://search-${ENVIRONMENT}-osdu-indexer-i5bpf2gv4iv6ha2xi7rook2rga.${AWS_REGION}.es.amazonaws.com +aws.es.host=https://search-dev-ado-test-y5m2xdyqha2npp36kh42vl3n7m.us-east-1.es.amazonaws.com aws.es.port=-1 aws.es.userNameAndPassword=notused aws.region=${AWS_REGION} @@ -51,9 +52,12 @@ aws.es.serviceName=es GAE_SERVICE=indexer -STORAGE_SCHEMA_HOST=http://ECSALB-os-storage-1575155422.${AWS_REGION}.elb.amazonaws.com/api/storage/v2/schemas -STORAGE_QUERY_RECORD_HOST=http://ECSALB-os-storage-1575155422.${AWS_REGION}.elb.amazonaws.com/api/storage/v2/query/records -STORAGE_QUERY_RECORD_FOR_CONVERSION_HOST=http://ECSALB-os-storage-1575155422.${AWS_REGION}.elb.amazonaws.com/api/storage/v2/query/records:batch +#STORAGE_SCHEMA_HOST=http://ECSALB-os-storage-1575155422.${AWS_REGION}.elb.amazonaws.com/api/storage/v2/schemas +STORAGE_SCHEMA_HOST=http://localhost:8080/api/storage/v2/schemas +#STORAGE_QUERY_RECORD_HOST=http://ECSALB-os-storage-1575155422.${AWS_REGION}.elb.amazonaws.com/api/storage/v2/query/records +STORAGE_QUERY_RECORD_HOST=http://localhost:8080/api/storage/v2/query/records +#STORAGE_QUERY_RECORD_FOR_CONVERSION_HOST=http://ECSALB-os-storage-1575155422.${AWS_REGION}.elb.amazonaws.com/api/storage/v2/query/records:batch +STORAGE_QUERY_RECORD_FOR_CONVERSION_HOST=http://localhost:8080/api/storage/v2/query/records:batch STORAGE_RECORDS_BATCH_SIZE=20 INDEXER_QUEUE_HOST=http://sqs.${AWS_REGION}.amazonaws.com/${AWS_ACCOUNT_ID}/${ENVIRONMENT}-osdu-indexer-queue diff --git a/provider/indexer-aws/src/test/java/org/opengroup/osdu/indexer/aws/publish/PublisherImplTest.java b/provider/indexer-aws/src/test/java/org/opengroup/osdu/indexer/aws/publish/PublisherImplTest.java index 08fb01e57ade05e967943db33bf92a32c1648908..79ef1356aa94e2462eeb189578589a7bfbbfd69b 100644 --- a/provider/indexer-aws/src/test/java/org/opengroup/osdu/indexer/aws/publish/PublisherImplTest.java +++ b/provider/indexer-aws/src/test/java/org/opengroup/osdu/indexer/aws/publish/PublisherImplTest.java @@ -23,7 +23,7 @@ import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.aws.sns.PublishRequestBuilder; import org.opengroup.osdu.indexer.aws.IndexerAwsApplication; import org.opengroup.osdu.core.common.model.indexer.JobStatus; diff --git a/provider/indexer-azure/pom.xml b/provider/indexer-azure/pom.xml index f4502a59860302d945f0d401173c1766c2e9ca40..d9995ba516a165f4f2f5dc97be3edefe3780fb38 100644 --- a/provider/indexer-azure/pom.xml +++ b/provider/indexer-azure/pom.xml @@ -70,6 +70,11 @@ <groupId>org.springframework.security</groupId> <artifactId>spring-security-oauth2-jose</artifactId> </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-configuration-processor</artifactId> + <optional>true</optional> + </dependency> <dependency> <groupId>com.microsoft.azure</groupId> <artifactId>azure-cosmosdb-spring-boot-starter</artifactId> diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/IndexerAzureApplication.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/IndexerAzureApplication.java index 6579c8cdc50d1103b84a7ebb33b65b2790b5ad61..8cef929b830f610b1c87efe6614f871e420f9d5f 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/IndexerAzureApplication.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/IndexerAzureApplication.java @@ -20,7 +20,7 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @SpringBootApplication -@ComponentScan({"org.opengroup.osdu.core.common", "org.opengroup.osdu.indexer"}) +@ComponentScan({"org.opengroup.osdu"}) public class IndexerAzureApplication { public static void main(String[] args) { diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/AttributesCache.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/AttributesCache.java index 261ae37f8040ec01ba177a1a5593406a0f4e0bbb..9a3bdfadcf8e5cb8a552ba838d635591951027ca 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/AttributesCache.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/AttributesCache.java @@ -14,7 +14,7 @@ package org.opengroup.osdu.indexer.azure.cache; -import org.opengroup.osdu.core.common.model.core.cache.VmCache; +import org.opengroup.osdu.core.common.cache.VmCache; import org.opengroup.osdu.core.common.provider.interfaces.IAttributesCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/CosmosDBSchemaCache.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/CosmosDBSchemaCache.java index 2f1647170cecafa4e0142b686624ff656e80aea9..29e46611e868819a57913736a1c62f1def6de353 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/CosmosDBSchemaCache.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/CosmosDBSchemaCache.java @@ -15,7 +15,7 @@ package org.opengroup.osdu.indexer.azure.cache; -import org.opengroup.osdu.core.common.model.core.cache.VmCache; +import org.opengroup.osdu.core.common.cache.VmCache; import org.opengroup.osdu.core.common.model.storage.Schema; import org.springframework.stereotype.Component; diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/ElasticCredentialsCache.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/ElasticCredentialsCache.java index b7f36fbb563a6279be7246d74d6b3540c8c341ee..ccca6407ea5f2b1b5f6c71bcbe3ff91ebfe2d40f 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/ElasticCredentialsCache.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/ElasticCredentialsCache.java @@ -1,7 +1,7 @@ package org.opengroup.osdu.indexer.azure.cache; -import org.opengroup.osdu.core.common.model.core.cache.VmCache; -import org.opengroup.osdu.core.common.model.core.ClusterSettings; +import org.opengroup.osdu.core.common.cache.VmCache; +import org.opengroup.osdu.core.common.model.search.ClusterSettings; import org.opengroup.osdu.core.common.provider.interfaces.IElasticCredentialsCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/IndexCache.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/IndexCache.java index b0dcc3d64da1200e8de7e09b3cd114032ec4d805..dd33ae348a9566b2bc977a3fa99dfefd046268f2 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/IndexCache.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/IndexCache.java @@ -1,6 +1,6 @@ package org.opengroup.osdu.indexer.azure.cache; -import org.opengroup.osdu.core.common.model.core.cache.VmCache; +import org.opengroup.osdu.core.common.cache.VmCache; import org.opengroup.osdu.core.common.provider.interfaces.IIndexCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/JwtCache.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/JwtCache.java index b08cf8733db721c9e60f695bc4479319f5a8d854..cf807c8b250597516a32b5f2a997fc493e01dea7 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/JwtCache.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/JwtCache.java @@ -1,7 +1,7 @@ package org.opengroup.osdu.indexer.azure.cache; -import org.opengroup.osdu.core.common.model.core.cache.VmCache; -import org.opengroup.osdu.core.common.model.coreis.IdToken; +import org.opengroup.osdu.core.common.cache.VmCache; +import org.opengroup.osdu.core.common.model.search.IdToken; import org.opengroup.osdu.core.common.provider.interfaces.IJwtCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/KindsCache.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/KindsCache.java index d1bd6549aaf8453746608a1e3024a82ab7167201..8cd6c3a9342bfddcf70bafb815230613bfa40dfa 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/KindsCache.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/KindsCache.java @@ -1,6 +1,6 @@ package org.opengroup.osdu.indexer.azure.cache; -import org.opengroup.osdu.core.common.model.core.cache.VmCache; +import org.opengroup.osdu.core.common.cache.VmCache; import org.opengroup.osdu.core.common.provider.interfaces.IKindsCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/SchemaCache.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/SchemaCache.java index 8ac913814f110e00d1d69846509df74b00f00f0a..99d5f3f1fe36b3d2f591db677564dbf8da041f94 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/SchemaCache.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/SchemaCache.java @@ -1,6 +1,6 @@ package org.opengroup.osdu.indexer.azure.cache; -import org.opengroup.osdu.core.common.model.core.cache.VmCache; +import org.opengroup.osdu.core.common.cache.VmCache; import org.opengroup.osdu.indexer.provider.interfaces.ISchemaCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/EntitlementsFactoryAzure.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/EntitlementsFactoryAzure.java index 1f8009173ee498d62f038a033651fd142fe2aae1..0f3c5e3d465d7dd3e23d76ec1a2fdff66c24b18c 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/EntitlementsFactoryAzure.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/EntitlementsFactoryAzure.java @@ -14,9 +14,9 @@ package org.opengroup.osdu.indexer.azure.di; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.service.core.entitlements.IEntitlementsFactory; -import org.opengroup.osdu.core.common.service.core.entitlements.IEntitlementsService; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.service.entitlements.IEntitlementsFactory; +import org.opengroup.osdu.core.common.service.entitlements.IEntitlementsService; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/EntitlementsServiceAzure.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/EntitlementsServiceAzure.java index 2888f305b33281ec05cac449e3b276ff4c9569f2..e333b3f0864cf2f16030ed5704db8ceab219a874 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/EntitlementsServiceAzure.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/EntitlementsServiceAzure.java @@ -17,11 +17,10 @@ package org.opengroup.osdu.indexer.azure.di; import com.microsoft.azure.spring.autoconfigure.aad.UserPrincipal; import org.apache.http.HttpStatus; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.entitlements.*; -import org.opengroup.osdu.core.common.service.core.entitlements.IEntitlementsService; -import org.opengroup.osdu.core.common.model.core.entitlements.*; -import org.opengroup.osdu.core.common.service.core.HttpResponse; +import org.opengroup.osdu.core.common.model.entitlements.*; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.service.entitlements.IEntitlementsService; +import org.opengroup.osdu.core.common.service.http.HttpResponse; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/TenantFactoryImpl.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/TenantFactoryImpl.java index 03d7886b6c138ffff6d3a64db40dc8d62477fbe6..df488c799062c5590d025ee7913cf15ef9334551 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/TenantFactoryImpl.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/TenantFactoryImpl.java @@ -14,9 +14,9 @@ package org.opengroup.osdu.indexer.azure.di; -import org.opengroup.osdu.core.common.model.core.ICache; -import org.opengroup.osdu.core.common.model.core.ITenantFactory; -import org.opengroup.osdu.core.common.model.core.TenantInfo; +import org.opengroup.osdu.core.common.cache.ICache; +import org.opengroup.osdu.core.common.provider.interfaces.ITenantFactory; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; import org.springframework.stereotype.Component; import org.springframework.web.context.annotation.RequestScope; diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/TenantInfoFactory.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/TenantInfoFactory.java deleted file mode 100644 index 7b1d93b54cd41d6607fa036a681bccff07b15867..0000000000000000000000000000000000000000 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/TenantInfoFactory.java +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright © Microsoft Corporation -// -// 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 org.opengroup.osdu.indexer.azure.di; - -import lombok.extern.java.Log; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.ITenantFactory; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.config.AbstractFactoryBean; -import org.springframework.stereotype.Component; -import org.springframework.web.context.annotation.RequestScope; -import javax.inject.Inject; - -@Log -@Component -@RequestScope -public class TenantInfoFactory extends AbstractFactoryBean<TenantInfo> { - @Inject - private ITenantFactory tenantFactory; - @Inject - @Qualifier("dpsHeaderFactorySearch") - private DpsHeaders headers; - @Override - protected TenantInfo createInstance() throws Exception { - String id = this.headers.getPartitionIdWithFallbackToAccountId(); - return this.tenantFactory.getTenantInfo(id); - } - @Override - public Class<?> getObjectType() { - return TenantInfo.class; - } -} diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/persistence/ElasticRepositoryCosmosDB.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/persistence/ElasticRepositoryCosmosDB.java index 5cb4b9156a1cacbd2906c1a5203ddfb6b682e09c..daa9fd7ab8acfaf4171e4ce5893dc265ec8b0aa5 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/persistence/ElasticRepositoryCosmosDB.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/persistence/ElasticRepositoryCosmosDB.java @@ -16,12 +16,12 @@ package org.opengroup.osdu.indexer.azure.persistence; import org.apache.http.HttpStatus; -import org.opengroup.osdu.core.common.model.core.TenantInfo; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; import org.opengroup.osdu.indexer.azure.model.ElasticSettingSchema; -import org.opengroup.osdu.core.common.model.core.ClusterSettings; +import org.opengroup.osdu.core.common.model.search.ClusterSettings; import org.opengroup.osdu.core.common.provider.interfaces.IElasticRepository; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.service.coreis.Preconditions; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.service.search.Preconditions; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import javax.inject.Inject; diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/publish/PublisherImpl.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/publish/PublisherImpl.java index 4a8f4ee1476c0058faafe8e2555d78d6aaef91be..e2c50e2cd3324879e0467fe9a35fa7d9f60eec17 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/publish/PublisherImpl.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/publish/PublisherImpl.java @@ -24,12 +24,12 @@ import com.microsoft.azure.servicebus.Message; import com.microsoft.azure.servicebus.TopicClient; import org.elasticsearch.common.Strings; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.indexer.JobStatus; import org.opengroup.osdu.core.common.model.indexer.RecordStatus; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.indexer.provider.interfaces.IPublisher; -import org.opengroup.osdu.core.common.model.coreis.RecordChangedMessages; +import org.opengroup.osdu.core.common.model.search.RecordChangedMessages; import org.springframework.stereotype.Component; import org.springframework.web.context.annotation.RequestScope; diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/util/DpsHeadersAzureQueue.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/util/DpsHeadersAzureQueue.java new file mode 100644 index 0000000000000000000000000000000000000000..9bab4cec8aaf529b9039fb2beb9e0ecbaee6c0e6 --- /dev/null +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/util/DpsHeadersAzureQueue.java @@ -0,0 +1,43 @@ +package org.opengroup.osdu.indexer.azure.util; + +import java.util.Collections; +import java.util.Map; +import java.util.stream.Collectors; + +import javax.servlet.http.HttpServletRequest; +import javax.inject.Inject; + +import org.opengroup.osdu.core.common.model.http.DpsHeaders; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Component; +import org.springframework.web.context.annotation.RequestScope; + +@Component +@RequestScope +@Primary +public class DpsHeadersAzureQueue extends DpsHeaders { + + @Value("${indexer.queue.key}") + private String queueKey; + + //ToDo this should be moved to Azure client-lib + public static final String INDEXER_QUEUE_KEY = "x-functions-key"; + + @Inject + public DpsHeadersAzureQueue(HttpServletRequest request) { + + Map<String, String> headers = Collections + .list(request.getHeaderNames()) + .stream() + .collect(Collectors.toMap(h -> h, request::getHeader)); + + headers.put(INDEXER_QUEUE_KEY,queueKey); + + this.addFromMap(headers); + + // Add Correlation ID if missing + this.addCorrelationIdIfMissing(); + } +} diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/util/HeadersInfoAzureImpl.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/util/HeadersInfoAzureImpl.java deleted file mode 100644 index c4b64734876e491af4a6db9452d321f0ddba3043..0000000000000000000000000000000000000000 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/util/HeadersInfoAzureImpl.java +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright © Microsoft Corporation -// -// 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 org.opengroup.osdu.indexer.azure.util; - -import lombok.extern.java.Log; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.coreis.SlbHeaders; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; -import org.opengroup.osdu.core.common.service.coreis.Preconditions; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; -import org.springframework.web.context.annotation.RequestScope; - -import javax.inject.Inject; -import java.util.HashSet; -import java.util.Map; -import java.util.stream.Collectors; - -@Log -@Component -@RequestScope -public class HeadersInfoAzureImpl implements IHeadersInfo { - - @Inject - @Qualifier("dpsHeaderFactorySearch") - private DpsHeaders headersMap; - - @Value("${indexer.queue.key}") - private String queueKey; - - //ToDo this should be moved to Azure client-lib - public static final String INDEXER_QUEUE_KEY = "x-functions-key"; - - private static final HashSet<String> FORBIDDEN_FROM_LOGGING = new HashSet<>(); - static { - FORBIDDEN_FROM_LOGGING.add(DpsHeaders.AUTHORIZATION); - FORBIDDEN_FROM_LOGGING.add(DpsHeaders.ON_BEHALF_OF); - // FORBIDDEN_FROM_LOGGING.add(INDEXER_QUEUE_KEY); - } - - @Override - public DpsHeaders getHeaders() { - if (headersMap == null) { - log.warning("Headers Map DpsHeaders is null"); - } - DpsHeaders headers = this.getCoreServiceHeaders(headersMap.getHeaders()); - return headers; - } - - @Override - public String getUser() { - return getHeaders().getUserEmail(); - } - - @Override - public String getPartitionId() { - return getHeaders().getPartitionIdWithFallbackToAccountId(); - } - - @Override - public String getPrimaryPartitionId() { - return getHeadersMap().get(SlbHeaders.PRIMARY_PARTITION_ID); - } - - @Override - public Map<String, String> getHeadersMap() { - return getHeaders().getHeaders(); - } - - @Override - public DpsHeaders getCoreServiceHeaders(Map<String, String> input) { - Preconditions.checkNotNull(input, "input headers cannot be null"); - - DpsHeaders output = DpsHeaders.createFromMap(input); - output.put(INDEXER_QUEUE_KEY,queueKey); - return output; - } - - @Override - public String toString() { - return this.getHeadersMap().entrySet().stream().filter(map -> !FORBIDDEN_FROM_LOGGING.contains(map.getKey().toLowerCase())).map(Map.Entry::toString).collect(Collectors.joining(" | ")); - } - -} \ No newline at end of file diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/util/RequestInfoImpl.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/util/RequestInfoImpl.java index a3c7e2ca2ead802dd0d0c5093f6907cdf17fbb10..a3fb2083c884eac9e5002fc942ee882a8902c01a 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/util/RequestInfoImpl.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/util/RequestInfoImpl.java @@ -16,14 +16,12 @@ package org.opengroup.osdu.indexer.azure.util; import com.google.common.base.Strings; import org.apache.http.HttpStatus; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.model.coreis.DeploymentEnvironment; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.model.search.DeploymentEnvironment; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; -import org.opengroup.osdu.core.common.provider.interfaces.IServiceAccountJwtClient; -import org.springframework.beans.factory.annotation.Qualifier; +import org.opengroup.osdu.core.common.service.util.IServiceAccountJwtClient; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.context.annotation.RequestScope; @@ -31,8 +29,8 @@ import org.springframework.web.context.annotation.RequestScope; import javax.inject.Inject; import java.util.Map; -import static org.opengroup.osdu.core.common.model.core.DpsHeaders.AUTHORIZATION; -import static org.opengroup.osdu.indexer.azure.util.HeadersInfoAzureImpl.INDEXER_QUEUE_KEY; +import static org.opengroup.osdu.core.common.model.http.DpsHeaders.AUTHORIZATION; +import static org.opengroup.osdu.indexer.azure.util.DpsHeadersAzureQueue.INDEXER_QUEUE_KEY; @Component @@ -40,16 +38,12 @@ import static org.opengroup.osdu.indexer.azure.util.HeadersInfoAzureImpl.INDEXER public class RequestInfoImpl implements IRequestInfo { @Inject - @Qualifier("dpsHeaderFactorySearch") private DpsHeaders dpsHeaders; - @Inject - private IHeadersInfo headersInfo; @Inject private IServiceAccountJwtClient serviceAccountJwtClient; @Inject - @Qualifier("TenantInfoFactorySearch") private TenantInfo tenantInfo; @Value("${DEPLOYMENT_ENVIRONMENT}") @@ -59,17 +53,17 @@ public class RequestInfoImpl implements IRequestInfo { @Override public DpsHeaders getHeaders() { - return this.headersInfo.getHeaders(); + return this.dpsHeaders; } @Override public String getPartitionId() { - return this.headersInfo.getPartitionId(); + return this.dpsHeaders.getPartitionId(); } @Override public Map<String, String> getHeadersMap() { - return this.headersInfo.getHeadersMap(); + return this.dpsHeaders.getHeaders(); } @Override @@ -80,7 +74,7 @@ public class RequestInfoImpl implements IRequestInfo { @Override public DpsHeaders getHeadersWithDwdAuthZ() { this.dpsHeaders.put(AUTHORIZATION, this.checkOrGetAuthorizationHeader()); - return this.headersInfo.getHeaders(); + return this.dpsHeaders; } @Override @@ -88,7 +82,7 @@ public class RequestInfoImpl implements IRequestInfo { @Override public boolean isTaskQueueRequest() { - if (!this.headersInfo.getHeadersMap().containsKey(INDEXER_QUEUE_KEY)) return false; + if (!this.dpsHeaders.getHeaders().containsKey(INDEXER_QUEUE_KEY)) return false; // String queueId = this.headersInfo.getHeadersMap().get(AppEngineHeaders.TASK_QUEUE_NAME); // return queueId.endsWith(Constants.INDEXER_QUEUE_IDENTIFIER); @@ -97,7 +91,7 @@ public class RequestInfoImpl implements IRequestInfo { public String checkOrGetAuthorizationHeader() { if (DeploymentEnvironment.valueOf(DEPLOYMENT_ENVIRONMENT) == DeploymentEnvironment.LOCAL) { - String authHeader = this.headersInfo.getHeaders().getAuthorization(); + String authHeader = this.dpsHeaders.getAuthorization(); if (Strings.isNullOrEmpty(authHeader)) { throw new AppException(HttpStatus.SC_UNAUTHORIZED, "Invalid authorization header", "Authorization token cannot be empty"); } diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/util/ServiceAccountJwtClientImpl.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/util/ServiceAccountJwtClientImpl.java index 50b85eda79b2ca5088f5d27ce5c588153224aabf..c53630ad6e8b0435552a23fb31c006259514145e 100644 --- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/util/ServiceAccountJwtClientImpl.java +++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/util/ServiceAccountJwtClientImpl.java @@ -20,18 +20,16 @@ import com.microsoft.aad.adal4j.AuthenticationContext; import com.microsoft.aad.adal4j.AuthenticationResult; import com.microsoft.aad.adal4j.ClientCredential; import org.apache.http.HttpStatus; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.ITenantFactory; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.provider.interfaces.ITenantFactory; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.indexer.azure.model.AADConfiguration; -import org.opengroup.osdu.core.common.model.coreis.IdToken; +import org.opengroup.osdu.core.common.model.search.IdToken; import org.opengroup.osdu.core.common.provider.interfaces.IJwtCache; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; -import org.opengroup.osdu.core.common.provider.interfaces.IServiceAccountJwtClient; -import org.springframework.beans.factory.annotation.Qualifier; +import org.opengroup.osdu.core.common.service.util.IServiceAccountJwtClient; import org.springframework.stereotype.Component; import org.springframework.web.context.annotation.RequestScope; @@ -49,9 +47,6 @@ public class ServiceAccountJwtClientImpl implements IServiceAccountJwtClient { @Inject private ITenantFactory tenantInfoServiceProvider; @Inject - private IHeadersInfo headersInfoAzure; - @Inject - @Qualifier("dpsHeaderFactorySearch") private DpsHeaders dpsHeaders; @Inject private IJwtCache cacheService; @@ -72,7 +67,6 @@ public class ServiceAccountJwtClientImpl implements IServiceAccountJwtClient { try { IdToken cachedToken = (IdToken) this.cacheService.get(tenant.getServiceAccount()); - this.headersInfoAzure.getHeaders().put(DpsHeaders.USER_EMAIL, tenant.getServiceAccount()); this.dpsHeaders.put(DpsHeaders.USER_EMAIL, tenant.getServiceAccount()); if (!IdToken.refreshToken(cachedToken)) { diff --git a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/CronServiceImplTest.java b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/CronServiceImplTest.java index 448d15fdd585c42d68b61564c8cb5dd810f03d7e..5a3ecbedbef2bb83af177e4ed50fb1979ab1bbcc 100644 --- a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/CronServiceImplTest.java +++ b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/CronServiceImplTest.java @@ -22,14 +22,14 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.indexer.service.CronServiceImpl; -import org.opengroup.osdu.core.common.model.coreis.IndexInfo; +import org.opengroup.osdu.core.common.model.search.IndexInfo; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; -import org.opengroup.osdu.core.common.service.coreis.IndicesService; -import org.opengroup.osdu.core.common.service.coreis.Config; -import org.opengroup.osdu.is.core.util.ElasticClientHandler; +import org.opengroup.osdu.core.common.service.search.IndicesService; +import org.opengroup.osdu.core.common.service.search.Config; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; import org.powermock.core.classloader.annotations.PrepareForTest; import org.springframework.test.context.junit4.SpringRunner; diff --git a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/ElasticSettingServiceTest.java b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/ElasticSettingServiceTest.java index 836c09bc122fa5a0e6c24e790466577af9573a36..3dab65eba842691566d8cb5bb296719afb816abf 100644 --- a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/ElasticSettingServiceTest.java +++ b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/ElasticSettingServiceTest.java @@ -19,15 +19,15 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.core.TenantInfo; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.indexer.service.ElasticSettingServiceImpl; -import org.opengroup.osdu.core.common.model.core.ClusterSettings; +import org.opengroup.osdu.core.common.model.search.ClusterSettings; import org.opengroup.osdu.core.common.provider.interfaces.IElasticCredentialsCache; import org.opengroup.osdu.core.common.provider.interfaces.IElasticRepository; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; -import org.opengroup.osdu.core.common.service.coreis.ITenantInfoService; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.service.multitenancy.ITenantInfoService; +import org.opengroup.osdu.core.common.model.http.AppException; import org.springframework.test.context.junit4.SpringRunner; import static org.junit.Assert.assertEquals; @@ -50,7 +50,7 @@ public class ElasticSettingServiceTest { @Mock private ClusterSettings clusterSettings; @Mock - private IHeadersInfo headersInfo; + private DpsHeaders dpsHeaders; @Mock private JaxRsDpsLog log; @@ -68,7 +68,7 @@ public class ElasticSettingServiceTest { @Before public void setup() { when(tenantInfo.getName()).thenReturn("tenant1"); - when(this.headersInfo.getPartitionId()).thenReturn("tenant1"); + when(this.dpsHeaders.getPartitionId()).thenReturn("tenant1"); when(this.tenantInfoService.getTenantInfo()).thenReturn(tenantInfo); sut.GAE_SERVICE = "indexer"; clusterSettings = ClusterSettings.builder().host(host).port(port).userNameAndPassword(credentials).build(); diff --git a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/IndexCopyServiceImplTest.java b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/IndexCopyServiceImplTest.java index ae8bb1bea079c0883e59a50aad0bf0cdb0b8e134..8b6facf01c83c1a547905f605aa93b1297c1905e 100644 --- a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/IndexCopyServiceImplTest.java +++ b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/IndexCopyServiceImplTest.java @@ -30,18 +30,17 @@ import org.junit.runner.RunWith; import org.mockito.ArgumentMatchers; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.indexer.logging.AuditLogger; import org.opengroup.osdu.indexer.service.IndexCopyServiceImpl; import org.opengroup.osdu.indexer.service.IndexerMappingService; -import org.opengroup.osdu.core.common.model.core.ClusterSettings; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; +import org.opengroup.osdu.core.common.model.search.ClusterSettings; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; -import org.opengroup.osdu.is.core.service.ElasticSettingService; -import org.opengroup.osdu.core.common.service.coreis.IndicesService; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.is.core.util.ElasticClientHandler; -import org.opengroup.osdu.core.common.service.coreis.ElasticIndexNameResolver; +import org.opengroup.osdu.core.common.model.indexer.IElasticSettingService; +import org.opengroup.osdu.core.common.service.search.IndicesService; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; +import org.opengroup.osdu.core.common.service.search.ElasticIndexNameResolver; import org.powermock.core.classloader.annotations.PrepareForTest; import org.springframework.test.context.junit4.SpringRunner; @@ -67,7 +66,7 @@ public class IndexCopyServiceImplTest { @Mock private IRequestInfo requestInfo; @Mock - private IHeadersInfo headersInfo; + private DpsHeaders dpsHeaders; @Mock private RestClient restClient; @Mock @@ -83,7 +82,7 @@ public class IndexCopyServiceImplTest { @Mock private Response response; @Mock - private ElasticSettingService elasticSettingService; + private IElasticSettingService elasticSettingService; @Mock private AuditLogger auditLogger; @Mock @@ -103,8 +102,6 @@ public class IndexCopyServiceImplTest { httpHeaders = new HashMap<>(); httpHeaders.put(DpsHeaders.AUTHORIZATION, "testAuth"); httpHeaders.put(DpsHeaders.CORRELATION_ID, correlationId); - DpsHeaders standardHeaders = DpsHeaders.createFromMap(httpHeaders); - when(headersInfo.getHeaders()).thenReturn(standardHeaders); when(requestInfo.getHeadersMapWithDwdAuthZ()).thenReturn(httpHeaders); when(response.getEntity()).thenReturn(httpEntity); diff --git a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/IndexerMappingServiceTest.java b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/IndexerMappingServiceTest.java index de4c73ec7e27e6398dea047cc87f1a44fd65e112..a391c1110ec40f5d395af88345f3723c0ce9d9ce 100644 --- a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/IndexerMappingServiceTest.java +++ b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/IndexerMappingServiceTest.java @@ -34,9 +34,9 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.opengroup.osdu.core.common.model.indexer.IndexSchema; import org.opengroup.osdu.indexer.service.IndexerMappingServiceImpl; -import org.opengroup.osdu.core.common.model.coreis.RecordMetaAttribute; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.is.core.util.ElasticClientHandler; +import org.opengroup.osdu.core.common.model.search.RecordMetaAttribute; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.springframework.test.context.junit4.SpringRunner; diff --git a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/IndexerSchemaServiceTest.java b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/IndexerSchemaServiceTest.java index d7ebc39f0668c3feecdad565b5ec3c8fdfa8c82d..d5328f1e72afaa3ccc55138b583609b16d5b863c 100644 --- a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/IndexerSchemaServiceTest.java +++ b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/IndexerSchemaServiceTest.java @@ -30,11 +30,11 @@ import org.opengroup.osdu.indexer.provider.interfaces.ISchemaCache; import org.opengroup.osdu.indexer.service.IndexSchemaServiceImpl; import org.opengroup.osdu.indexer.service.IndexerMappingService; import org.opengroup.osdu.indexer.service.StorageService; -import org.opengroup.osdu.core.common.model.coreis.RequestStatus; -import org.opengroup.osdu.core.common.service.coreis.IndicesService; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.is.core.util.ElasticClientHandler; -import org.opengroup.osdu.core.common.service.coreis.ElasticIndexNameResolver; +import org.opengroup.osdu.core.common.model.http.RequestStatus; +import org.opengroup.osdu.core.common.service.search.IndicesService; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; +import org.opengroup.osdu.core.common.service.search.ElasticIndexNameResolver; import org.powermock.core.classloader.annotations.PrepareForTest; import org.springframework.test.context.junit4.SpringRunner; diff --git a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/ReindexServiceTest.java b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/ReindexServiceTest.java index 097e6b09f424b1170c2583d5763c764648b044cb..ca45627184c00727a2d4f81684933af07ac2bdfd 100644 --- a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/ReindexServiceTest.java +++ b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/ReindexServiceTest.java @@ -23,7 +23,7 @@ import org.junit.runner.RunWith; import org.mockito.ArgumentMatchers; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.indexer.RecordQueryResponse; import org.opengroup.osdu.core.common.model.indexer.RecordReindexRequest; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; diff --git a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/StorageServiceTest.java b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/StorageServiceTest.java index 349ec61dc13e4ac9fbfcc7a4d84d8c4303f168af..aafb4dc7d47528074f4754430d8636756f537d0f 100644 --- a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/StorageServiceTest.java +++ b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/StorageServiceTest.java @@ -31,10 +31,10 @@ import org.opengroup.osdu.core.common.model.indexer.Records; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.indexer.service.StorageServiceImpl; import org.opengroup.osdu.core.common.model.indexer.JobStatus; -import org.opengroup.osdu.core.common.model.coreis.HttpResponse; +import org.opengroup.osdu.core.common.model.http.HttpResponse; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; -import org.opengroup.osdu.core.common.service.coreis.IUrlFetchService; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.service.http.IUrlFetchService; +import org.opengroup.osdu.core.common.model.http.AppException; import org.springframework.http.HttpStatus; import org.springframework.test.context.junit4.SpringRunner; diff --git a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/TenantInfoServiceTest.java b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/TenantInfoServiceTest.java deleted file mode 100644 index 08f7318b6eab6a4b02d00b52afa0fed34112726d..0000000000000000000000000000000000000000 --- a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/TenantInfoServiceTest.java +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2017-2019, Schlumberger -// -// 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 org.opengroup.osdu.indexer.azure.service; - -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.ITenantFactory; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.opengroup.osdu.indexer.service.TenantInfoServiceImpl; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; -import org.opengroup.osdu.core.common.model.AppException; -import org.springframework.http.HttpHeaders; -import org.springframework.test.context.junit4.SpringRunner; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.mockito.Mockito.when; - -@RunWith(SpringRunner.class) -public class TenantInfoServiceTest { - - private static final String HEADER_NAME = "ANY_HEADER"; - private static final String HEADER_VALUE = "ANY_VALUE"; - - @Mock - private ITenantFactory tenantFactory; - @Mock - private IHeadersInfo headersInfo; - @InjectMocks - private TenantInfoServiceImpl sut; - - @Mock - private TenantInfo info; - - @Mock - private HttpHeaders httpHeaders; - - @InjectMocks - private DpsHeaders HEADERS; - - @Before - public void setup() { - HEADERS.put(HEADER_NAME, HEADER_VALUE); - } - - @Ignore - @Test - public void should_return_validTenant_given_validAccountId() { - - when(this.info.getName()).thenReturn("tenant1"); - when(tenantFactory.getTenantInfo("tenant1")).thenReturn(info); - - when(this.headersInfo.getHeaders()).thenReturn(HEADERS); - - when(this.headersInfo.getPartitionId()).thenReturn("tenant1"); - - when(this.sut.getTenantInfo()).thenReturn(info); - - assertNotNull(this.sut.getTenantInfo()); - assertEquals("tenant1", this.sut.getTenantInfo().getName()); - } - - @Test(expected = AppException.class) - public void should_throwException_given_invalidAccountId() { - - when(this.info.getName()).thenReturn("tenant2"); - when(tenantFactory.getTenantInfo("tenant1")).thenReturn(null); - - when(this.sut.getTenantInfo()).thenReturn(info); - - assertNotNull(this.sut.getTenantInfo()); - } -} \ No newline at end of file diff --git a/provider/indexer-gcp/pom.xml b/provider/indexer-gcp/pom.xml index 9527a032af5c51053b414b554f6fa55a63445712..95effcbb866ae127719c89e0ad998058f57d3fb1 100644 --- a/provider/indexer-gcp/pom.xml +++ b/provider/indexer-gcp/pom.xml @@ -41,6 +41,12 @@ <version>0.1.13-SNAPSHOT</version> </dependency> + <dependency> + <groupId>org.opengroup.osdu</groupId> + <artifactId>os-core-common</artifactId> + <version>0.0.9-SNAPSHOT</version> + </dependency> + <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-datastore</artifactId> diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/IndexerGcpApplication.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/IndexerGcpApplication.java index 5cb877151202a552f498605bc90cee23b6a06d55..f72e93440739667f6f7ad9a5694a39e32eedf4aa 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/IndexerGcpApplication.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/IndexerGcpApplication.java @@ -9,7 +9,7 @@ import org.springframework.context.annotation.Configuration; @SpringBootApplication(exclude = { SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class }) @Configuration -@ComponentScan({"org.opengroup.osdu.core.common", "org.opengroup.osdu.indexer"}) +@ComponentScan({"org.opengroup.osdu"}) public class IndexerGcpApplication { public static void main(String[] args) { diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/AttributesCache.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/AttributesCache.java index 748b48cf6b5cf948c6c3cf6d397a9d923b3f5aab..b5789ec76026b8f7dc16737fe7cb3ae50301477d 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/AttributesCache.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/AttributesCache.java @@ -14,7 +14,7 @@ package org.opengroup.osdu.indexer.cache; -import org.opengroup.osdu.core.common.model.core.cache.RedisCache; +import org.opengroup.osdu.core.common.cache.RedisCache; import org.opengroup.osdu.core.common.provider.interfaces.IAttributesCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/DatastoreCredentialCache.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/DatastoreCredentialCache.java index 4ab69267c245121da87eeb3d158be86dc081d42b..1ec502fe6aa4ab1f2267e429eab0b3c066f8e3f4 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/DatastoreCredentialCache.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/DatastoreCredentialCache.java @@ -15,7 +15,7 @@ package org.opengroup.osdu.indexer.cache; import com.google.auth.oauth2.AccessToken; -import org.opengroup.osdu.core.common.model.core.cache.RedisCache; +import org.opengroup.osdu.core.common.cache.RedisCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/ElasticCredentialsCache.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/ElasticCredentialsCache.java index b1cb81f4d31e19e1ef93f8e84d50d35dd8c75e67..045b555c438d48bb44a700cda72c4f43df6332e0 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/ElasticCredentialsCache.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/ElasticCredentialsCache.java @@ -1,7 +1,7 @@ package org.opengroup.osdu.indexer.cache; -import org.opengroup.osdu.core.common.model.core.cache.RedisCache; -import org.opengroup.osdu.core.common.model.core.ClusterSettings; +import org.opengroup.osdu.core.common.cache.RedisCache; +import org.opengroup.osdu.core.common.model.search.ClusterSettings; import org.opengroup.osdu.core.common.provider.interfaces.IElasticCredentialsCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/IndexCache.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/IndexCache.java index 4bd9b9bfb24d414a56f376bd8a443e43faa1fd17..c923ecc42ffcb1ea34d9fd0b06fe835b5e478168 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/IndexCache.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/IndexCache.java @@ -1,6 +1,6 @@ package org.opengroup.osdu.indexer.cache; -import org.opengroup.osdu.core.common.model.core.cache.RedisCache; +import org.opengroup.osdu.core.common.cache.RedisCache; import org.opengroup.osdu.core.common.provider.interfaces.IIndexCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/JwtCache.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/JwtCache.java index 564690336e9d6e8bec4a0fcedbf17bd97588bba4..3ae398125b9e5ffbbc859fdc319fbfa4faa0abed 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/JwtCache.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/JwtCache.java @@ -1,7 +1,7 @@ package org.opengroup.osdu.indexer.cache; -import org.opengroup.osdu.core.common.model.core.cache.RedisCache; -import org.opengroup.osdu.core.common.model.coreis.IdToken; +import org.opengroup.osdu.core.common.cache.RedisCache; +import org.opengroup.osdu.core.common.model.search.IdToken; import org.opengroup.osdu.core.common.provider.interfaces.IJwtCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/KindsCache.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/KindsCache.java index 92ff21abe4885b1bda698b73e164c7c4ca001363..68eb86f4afe07f05d478e43ad6cc78abb8386eba 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/KindsCache.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/KindsCache.java @@ -1,6 +1,6 @@ package org.opengroup.osdu.indexer.cache; -import org.opengroup.osdu.core.common.model.core.cache.RedisCache; +import org.opengroup.osdu.core.common.cache.RedisCache; import org.opengroup.osdu.core.common.provider.interfaces.IKindsCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/SchemaCache.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/SchemaCache.java index bf07123ea3311d429175524efab35c3ba10c165d..ef7ba72ab5cdcf0ead81c0d66bf1b5d39fcdad7f 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/SchemaCache.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/SchemaCache.java @@ -1,6 +1,6 @@ package org.opengroup.osdu.indexer.cache; -import org.opengroup.osdu.core.common.model.core.cache.RedisCache; +import org.opengroup.osdu.core.common.cache.RedisCache; import org.opengroup.osdu.indexer.provider.interfaces.ISchemaCache; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/di/EntitlementsClientFactory.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/di/EntitlementsClientFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..44948235831674b1993e27aa412b9c2c90bca693 --- /dev/null +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/di/EntitlementsClientFactory.java @@ -0,0 +1,49 @@ +// Copyright 2017-2019, Schlumberger +// +// 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 org.opengroup.osdu.indexer.di; + +import org.opengroup.osdu.core.common.service.entitlements.EntitlementsAPIConfig; +import org.opengroup.osdu.core.common.service.entitlements.EntitlementsFactory; +import org.opengroup.osdu.core.common.service.entitlements.IEntitlementsFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.beans.factory.config.AbstractFactoryBean; +import org.springframework.stereotype.Component; +import org.springframework.web.context.annotation.RequestScope; + +@Component +@RequestScope +public class EntitlementsClientFactory extends AbstractFactoryBean<IEntitlementsFactory> { + + @Value("${AUTHORIZE_API}") + private String AUTHORIZE_API; + + @Value("${AUTHORIZE_API_KEY:}") + private String AUTHORIZE_API_KEY; + + @Override + protected IEntitlementsFactory createInstance() throws Exception { + + return new EntitlementsFactory(EntitlementsAPIConfig + .builder() + .rootUrl(AUTHORIZE_API) + .apiKey(AUTHORIZE_API_KEY) + .build()); + } + + @Override + public Class<?> getObjectType() { + return IEntitlementsFactory.class; + } +} \ No newline at end of file diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/di/TenantFactoryService.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/di/TenantFactoryService.java index 9f74ac84a18abd5ab648cdd915dc12e4aa7d071b..fa51ef212c0427bd21e4a522a99891d38163ccc4 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/di/TenantFactoryService.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/di/TenantFactoryService.java @@ -15,7 +15,7 @@ package org.opengroup.osdu.indexer.di; import lombok.extern.java.Log; -import org.opengroup.osdu.core.common.model.core.ITenantFactory; +import org.opengroup.osdu.core.common.provider.interfaces.ITenantFactory; import org.opengroup.osdu.core.gcp.multitenancy.TenantFactory; import org.springframework.beans.factory.config.AbstractFactoryBean; import org.springframework.stereotype.Component; diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/di/TenantInfoFactory.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/di/TenantInfoFactory.java deleted file mode 100644 index ee6ea7ab6ee5beec64cbe760c13f38b4aeabbc7b..0000000000000000000000000000000000000000 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/di/TenantInfoFactory.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.opengroup.osdu.indexer.di; - -import lombok.extern.java.Log; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.ITenantFactory; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.springframework.beans.factory.config.AbstractFactoryBean; -import org.springframework.stereotype.Component; -import org.springframework.web.context.annotation.RequestScope; -import javax.inject.Inject; - -@Log -@Component -@RequestScope -public class TenantInfoFactory extends AbstractFactoryBean<TenantInfo> { - @Inject - private ITenantFactory tenantFactory; - @Inject - private DpsHeaders headers; - @Override - protected TenantInfo createInstance() throws Exception { - String id = this.headers.getPartitionIdWithFallbackToAccountId(); - return this.tenantFactory.getTenantInfo(id); - } - @Override - public Class<?> getObjectType() { - return TenantInfo.class; - } -} diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/kms/KmsClient.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/kms/KmsClient.java index ae01f902927e676763e69c34dd376431741b31c6..77dbbc3069d014aea89695bf1e68de7b203f2ef3 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/kms/KmsClient.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/kms/KmsClient.java @@ -26,7 +26,7 @@ import com.google.api.services.cloudkms.v1.model.DecryptResponse; import com.google.api.services.cloudkms.v1.model.EncryptRequest; import com.google.api.services.cloudkms.v1.model.EncryptResponse; import org.opengroup.osdu.core.common.provider.interfaces.IKmsClient; -import org.opengroup.osdu.core.common.service.coreis.Preconditions; +import org.opengroup.osdu.core.common.service.search.Preconditions; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.context.annotation.RequestScope; diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/middleware/IndexFilter.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/middleware/IndexFilter.java index 7b76232f4a0c89b53e8ca9651a54d968302b5098..e72f21a6478fc37f1c402e617c85d890c0934489 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/middleware/IndexFilter.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/middleware/IndexFilter.java @@ -3,12 +3,11 @@ package org.opengroup.osdu.indexer.middleware; import com.google.common.base.Strings; import lombok.extern.java.Log; import org.apache.http.HttpStatus; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.service.core.ResponseHeaders; -import org.opengroup.osdu.core.common.model.coreis.DeploymentEnvironment; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.service.http.ResponseHeaders; +import org.opengroup.osdu.core.common.model.search.DeploymentEnvironment; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpMethod; import org.springframework.stereotype.Component; @@ -27,7 +26,6 @@ import java.util.Map; public class IndexFilter implements Filter { @Inject - @Qualifier("dpsHeaderFactorySearch") private DpsHeaders dpsHeaders; @Inject diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/persistence/DatastoreCredential.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/persistence/DatastoreCredential.java index b0be2d933c28a7071f18c114ad43112c7469f92d..428ae4e746dede52923d3214345b2f2fdf76e3e4 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/persistence/DatastoreCredential.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/persistence/DatastoreCredential.java @@ -26,8 +26,8 @@ import com.google.auth.oauth2.AccessToken; import com.google.auth.oauth2.GoogleCredentials; import com.google.gson.JsonObject; import org.apache.commons.lang3.time.DateUtils; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.opengroup.osdu.core.common.model.core.cryptographic.Crc32c; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; +import org.opengroup.osdu.core.common.service.Crc32c; import org.opengroup.osdu.indexer.cache.DatastoreCredentialCache; import java.util.Date; diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/persistence/DatastoreFactory.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/persistence/DatastoreFactory.java index cdadd4513d7c8f1397a165a5b7039e50f05fa154..1a14870151f97f34e87e4967dd5e496cd3b24b3f 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/persistence/DatastoreFactory.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/persistence/DatastoreFactory.java @@ -19,7 +19,7 @@ import com.google.cloud.TransportOptions; import com.google.cloud.datastore.Datastore; import com.google.cloud.datastore.DatastoreOptions; import com.google.cloud.http.HttpTransportOptions; -import org.opengroup.osdu.core.common.model.core.TenantInfo; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; import org.opengroup.osdu.indexer.cache.DatastoreCredentialCache; import org.springframework.stereotype.Component; import org.threeten.bp.Duration; diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/persistence/ElasticRepositoryDatastore.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/persistence/ElasticRepositoryDatastore.java index eb6d08758c4482c5a01311404443aaeeae219b59..8a9719cc0a9c4c87c92a01a90834cd4b9ef3d57a 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/persistence/ElasticRepositoryDatastore.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/persistence/ElasticRepositoryDatastore.java @@ -20,12 +20,12 @@ import com.google.cloud.datastore.Entity; import com.google.cloud.datastore.Key; import lombok.extern.java.Log; import org.apache.http.HttpStatus; -import org.opengroup.osdu.core.common.model.core.ClusterSettings; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.search.ClusterSettings; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.provider.interfaces.IKmsClient; import org.opengroup.osdu.core.common.provider.interfaces.IElasticRepository; -import org.opengroup.osdu.core.common.service.coreis.Preconditions; +import org.opengroup.osdu.core.common.service.search.Preconditions; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import javax.inject.Inject; diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/publish/PublisherImpl.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/publish/PublisherImpl.java index dcca2be1aa1790d3253876548bcd808e8232b36e..cc7dcaabfc2d49cba5e57991854ca2b091ae787a 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/publish/PublisherImpl.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/publish/PublisherImpl.java @@ -27,15 +27,15 @@ import lombok.extern.java.Log; import org.apache.http.HttpStatus; import org.elasticsearch.common.Strings; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.ITenantFactory; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.provider.interfaces.ITenantFactory; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.model.indexer.JobStatus; import org.opengroup.osdu.core.common.model.indexer.RecordStatus; import org.opengroup.osdu.indexer.provider.interfaces.IPublisher; import org.opengroup.osdu.core.gcp.PubSub.PubSubExtensions; -import org.opengroup.osdu.core.common.model.coreis.DeploymentEnvironment; +import org.opengroup.osdu.core.common.model.search.DeploymentEnvironment; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.context.annotation.RequestScope; diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/DpsHeaderFactoryGcp.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/DpsHeaderFactoryGcp.java new file mode 100644 index 0000000000000000000000000000000000000000..28884453076f6ee465f876c9a014bdeda0da935b --- /dev/null +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/DpsHeaderFactoryGcp.java @@ -0,0 +1,57 @@ +// Copyright 2017-2019, Schlumberger +// +// 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 org.opengroup.osdu.indexer.util; + +import java.util.Collections; +import java.util.Map; +import java.util.stream.Collectors; + +import javax.servlet.http.HttpServletRequest; +import javax.inject.Inject; + +import com.google.common.base.Strings; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; + +import org.opengroup.osdu.core.gcp.model.AppEngineHeaders; +import org.opengroup.osdu.core.gcp.util.TraceIdExtractor; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Component; +import org.springframework.web.context.annotation.RequestScope; + +@Component +@RequestScope +@Primary +public class DpsHeaderFactoryGcp extends DpsHeaders { + + @Inject + public DpsHeaderFactoryGcp(HttpServletRequest request) { + + Map<String, String> headers = Collections + .list(request.getHeaderNames()) + .stream() + .collect(Collectors.toMap(h -> h, request::getHeader)); + + String traceContext = headers.get(AppEngineHeaders.CLOUD_TRACE_CONTEXT); + + if(!Strings.isNullOrEmpty(traceContext)){ + headers.put(AppEngineHeaders.TRACE_ID, TraceIdExtractor.getTraceId(traceContext)); + } + + this.addFromMap(headers); + + // Add Correlation ID if missing + this.addCorrelationIdIfMissing(); + } +} \ No newline at end of file diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/HeadersInfoGcpImpl.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/HeadersInfoGcpImpl.java deleted file mode 100644 index 1a86ceb341a30e3a2869f67991baa2df994491c5..0000000000000000000000000000000000000000 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/HeadersInfoGcpImpl.java +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2017-2019, Schlumberger -// -// 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 org.opengroup.osdu.indexer.util; - -import com.google.common.base.Strings; -import lombok.extern.java.Log; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.gcp.model.AppEngineHeaders; -import org.opengroup.osdu.core.common.model.coreis.SlbHeaders; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; -import org.opengroup.osdu.core.common.service.coreis.Preconditions; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.stereotype.Component; -import org.springframework.web.context.annotation.RequestScope; - -import javax.inject.Inject; -import java.util.HashSet; -import java.util.Map; -import java.util.stream.Collectors; - -@Log -@Component -@RequestScope -public class HeadersInfoGcpImpl implements IHeadersInfo { - - @Inject - @Qualifier("dpsHeaderFactorySearch") - private DpsHeaders headersMap; - - private static final HashSet<String> FORBIDDEN_FROM_LOGGING = new HashSet<>(); - static { - FORBIDDEN_FROM_LOGGING.add(DpsHeaders.AUTHORIZATION); - FORBIDDEN_FROM_LOGGING.add(DpsHeaders.ON_BEHALF_OF); - } - - private static final HashSet<String> FORWARDED_HEADERS = new HashSet<>(); - static { - FORWARDED_HEADERS.add(AppEngineHeaders.CITY_LAT_LONG); - FORWARDED_HEADERS.add(AppEngineHeaders.COUNTRY); - FORWARDED_HEADERS.add(AppEngineHeaders.REGION); - FORWARDED_HEADERS.add(AppEngineHeaders.CITY); - FORWARDED_HEADERS.add(AppEngineHeaders.TASK_QUEUE_RETRY_COUNT); - FORWARDED_HEADERS.add(AppEngineHeaders.TASK_QUEUE_NAME); - FORWARDED_HEADERS.add(AppEngineHeaders.DATA_GROUPS); - FORWARDED_HEADERS.add(AppEngineHeaders.CLOUD_TRACE_CONTEXT); - FORWARDED_HEADERS.add(AppEngineHeaders.TRACE_ID); - FORWARDED_HEADERS.add(AppEngineHeaders.CRON_SERVICE); - FORWARDED_HEADERS.add(SlbHeaders.PRIMARY_PARTITION_ID); - } - - @Override - public DpsHeaders getHeaders() { - Preconditions.checkNotNull(headersMap, "input headers cannot be null"); - DpsHeaders headers = this.getCoreServiceHeaders(headersMap.getHeaders()); - return headers; - } - - @Override - public String getUser() { - return getHeaders().getUserEmail(); - } - - @Override - public String getPartitionId() { - return getHeaders().getPartitionIdWithFallbackToAccountId(); - } - - @Override - public String getPrimaryPartitionId() { - return getHeadersMap().get(SlbHeaders.PRIMARY_PARTITION_ID); - } - - @Override - public Map<String, String> getHeadersMap() { - return getHeaders().getHeaders(); - } - - @Override - public DpsHeaders getCoreServiceHeaders(Map<String, String> input) { - DpsHeaders output = DpsHeaders.createFromMap(input); - input.forEach((key,value) -> { - if (FORWARDED_HEADERS.contains(key)) { - if (key.equals(AppEngineHeaders.CLOUD_TRACE_CONTEXT)) { - String traceContext = input.get(AppEngineHeaders.CLOUD_TRACE_CONTEXT); - if (!Strings.isNullOrEmpty(traceContext)) { - output.put(AppEngineHeaders.TRACE_ID, TraceIdExtractor.getTraceId(traceContext)); - output.put(key, traceContext); - } - } else { - output.put(key, input.get(key)); - } - } - }); - return output; - } - - @Override - public String toString() { - return this.getHeadersMap().entrySet().stream().filter(map -> !FORBIDDEN_FROM_LOGGING.contains(map.getKey().toLowerCase())).map(Map.Entry::toString).collect(Collectors.joining(" | ")); - } - -} \ No newline at end of file diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/RequestInfoImpl.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/RequestInfoImpl.java index d6042620e074dcc864bdddb3cc446589fb154ffa..ad3ef5b524c9822d712f30308af1e1795fa39872 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/RequestInfoImpl.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/RequestInfoImpl.java @@ -3,16 +3,14 @@ package org.opengroup.osdu.indexer.util; import com.google.common.base.Strings; import lombok.extern.java.Log; import org.apache.http.HttpStatus; -import org.opengroup.osdu.core.common.model.core.Constants; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.model.coreis.DeploymentEnvironment; -import org.opengroup.osdu.core.common.provider.interfaces.IServiceAccountJwtClient; +import org.opengroup.osdu.core.common.Constants; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.model.search.DeploymentEnvironment; +import org.opengroup.osdu.core.common.service.util.IServiceAccountJwtClient; import org.opengroup.osdu.core.gcp.model.AppEngineHeaders; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.context.annotation.RequestScope; @@ -20,7 +18,7 @@ import org.springframework.web.context.annotation.RequestScope; import javax.inject.Inject; import java.util.Map; -import static org.opengroup.osdu.core.common.model.core.DpsHeaders.AUTHORIZATION; +import static org.opengroup.osdu.core.common.model.http.DpsHeaders.AUTHORIZATION; @Log @@ -29,16 +27,12 @@ import static org.opengroup.osdu.core.common.model.core.DpsHeaders.AUTHORIZATION public class RequestInfoImpl implements IRequestInfo { @Inject - @Qualifier("dpsHeaderFactorySearch") private DpsHeaders dpsHeaders; - @Inject - private IHeadersInfo headersInfo; @Inject private IServiceAccountJwtClient serviceAccountJwtClient; @Inject - @Qualifier("TenantInfoFactorySearch") private TenantInfo tenantInfo; @Value("${DEPLOYMENT_ENVIRONMENT}") @@ -49,17 +43,17 @@ public class RequestInfoImpl implements IRequestInfo { @Override public DpsHeaders getHeaders() { - return this.headersInfo.getHeaders(); + return this.dpsHeaders; } @Override public String getPartitionId() { - return this.headersInfo.getPartitionId(); + return this.dpsHeaders.getPartitionId(); } @Override public Map<String, String> getHeadersMap() { - return this.headersInfo.getHeadersMap(); + return this.dpsHeaders.getHeaders(); } @Override @@ -71,20 +65,20 @@ public class RequestInfoImpl implements IRequestInfo { public DpsHeaders getHeadersWithDwdAuthZ() { // Update DpsHeaders so that service account creds are passed down this.dpsHeaders.put(AUTHORIZATION, this.checkOrGetAuthorizationHeader()); - return this.headersInfo.getHeaders(); + return this.dpsHeaders; } @Override public boolean isCronRequest() { - String appEngineCronHeader = this.headersInfo.getHeadersMap().getOrDefault(AppEngineHeaders.CRON_SERVICE, null); + String appEngineCronHeader = this.dpsHeaders.getHeaders().getOrDefault(AppEngineHeaders.CRON_SERVICE, null); return expectedCronHeaderValue.equalsIgnoreCase(appEngineCronHeader); } @Override public boolean isTaskQueueRequest() { - if (!this.headersInfo.getHeadersMap().containsKey(AppEngineHeaders.TASK_QUEUE_NAME)) return false; + if (!this.dpsHeaders.getHeaders().containsKey(AppEngineHeaders.TASK_QUEUE_NAME)) return false; - String queueId = this.headersInfo.getHeadersMap().get(AppEngineHeaders.TASK_QUEUE_NAME); + String queueId = this.dpsHeaders.getHeaders().get(AppEngineHeaders.TASK_QUEUE_NAME); return queueId.endsWith(Constants.INDEXER_QUEUE_IDENTIFIER); } diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/ServiceAccountJwtGcpClientImpl.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/ServiceAccountJwtGcpClientImpl.java index 01a50d92848d9cdd0b9a64f3e25304bb5a10135e..209c9dc8029e02a16457e1e4e29ceee1abbc408a 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/ServiceAccountJwtGcpClientImpl.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/ServiceAccountJwtGcpClientImpl.java @@ -38,15 +38,14 @@ import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.ITenantFactory; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.model.coreis.IdToken; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.provider.interfaces.ITenantFactory; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; +import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.common.model.search.IdToken; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.core.common.provider.interfaces.IJwtCache; -import org.opengroup.osdu.core.common.provider.interfaces.IServiceAccountJwtClient; -import org.springframework.beans.factory.annotation.Qualifier; +import org.opengroup.osdu.core.common.service.util.IServiceAccountJwtClient; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.context.annotation.RequestScope; @@ -71,13 +70,10 @@ public class ServiceAccountJwtGcpClientImpl implements IServiceAccountJwtClient @Inject private ITenantFactory tenantInfoServiceProvider; @Inject - private HeadersInfoGcpImpl headersInfoGcp; - @Inject private IJwtCache cacheService; @Inject private JaxRsDpsLog log; @Inject - @Qualifier("dpsHeaderFactorySearch") private DpsHeaders dpsHeaders; @Value("${GOOGLE_AUDIENCES}") @@ -96,7 +92,6 @@ public class ServiceAccountJwtGcpClientImpl implements IServiceAccountJwtClient try { IdToken cachedToken = (IdToken) this.cacheService.get(tenant.getServiceAccount()); - this.headersInfoGcp.getHeaders().put(DpsHeaders.USER_EMAIL, tenant.getServiceAccount()); // Add the user to DpsHeaders directly this.dpsHeaders.put(DpsHeaders.USER_EMAIL, tenant.getServiceAccount()); diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/TraceIdExtractor.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/TraceIdExtractor.java deleted file mode 100644 index 64143bb2947c5d48b80d1d56976392d9810b6ed8..0000000000000000000000000000000000000000 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/TraceIdExtractor.java +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2017-2019, Schlumberger -// -// 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 org.opengroup.osdu.indexer.util; - -import com.google.common.base.Strings; -import org.opengroup.osdu.core.gcp.model.AppEngineHeaders; -import org.springframework.util.MultiValueMap; - -import java.util.Random; -import java.util.UUID; - -public class TraceIdExtractor { - - /* - * "X-Cloud-Trace-Context: TRACE_ID/SPAN_ID;o=TRACE_TRUE" e.g. 105445aa7843bc8bf206b120001000/0;o=1" - * https://cloud.google.com/trace/docs/support - * */ - public static String getTraceableCloudContext(MultiValueMap<String, String> requestHeaders) { - String traceContextHeader = requestHeaders.getFirst(AppEngineHeaders.CLOUD_TRACE_CONTEXT); - - // get new if not found - if (Strings.isNullOrEmpty(traceContextHeader)) return getNewTraceContext(); - // return as is - if (traceContextHeader.endsWith(";o=1")) return traceContextHeader; - - String[] traceParts = traceContextHeader.split("[/;]"); - // if there is only trace-id - if (traceParts.length == 1) return String.format("%s/%s;o=1", traceContextHeader, getNewSpanId()); - // if trace-id and span-id - if (traceParts.length == 2) return String.format("%s;o=1", traceContextHeader); - // trace flag is turned off - return String.format("%s/%s;o=1", traceParts[0], traceParts[1]); - } - - public static String getTraceId(String traceContextHeader) { - String[] traceParts = traceContextHeader.split("[/;]"); - return traceParts.length > 0 ? traceParts[0] : getNewTraceId(); - } - - private static String getNewTraceContext() { - return String.format("%s/%s;o=1", getNewTraceId(), getNewSpanId()); - } - - private static String getNewTraceId() { - return UUID.randomUUID().toString().replaceAll("-", ""); - } - - private static String getNewSpanId() { - return Integer.toUnsignedString(new Random().nextInt()); - } -} diff --git a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/CronServiceImplTest.java b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/CronServiceImplTest.java index 8c865c36f94e9b3313e49d057285fcd3313f82bf..f1a739d636c62b272444bad7f8b99f0c341bbf0e 100644 --- a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/CronServiceImplTest.java +++ b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/CronServiceImplTest.java @@ -21,12 +21,12 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.coreis.IndexInfo; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.search.IndexInfo; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; -import org.opengroup.osdu.core.common.service.coreis.IndicesService; -import org.opengroup.osdu.is.core.util.ElasticClientHandler; +import org.opengroup.osdu.core.common.service.search.IndicesService; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; import org.powermock.core.classloader.annotations.PrepareForTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.util.ReflectionTestUtils; diff --git a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/ElasticSettingServiceTest.java b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/ElasticSettingServiceTest.java index 824e3a8abb8a85929c4a1a592af1f5f98d44d02a..a2a7f07a0d925d6c17c2754f297d0486262aea71 100644 --- a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/ElasticSettingServiceTest.java +++ b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/ElasticSettingServiceTest.java @@ -19,14 +19,14 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.core.ClusterSettings; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.search.ClusterSettings; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.core.common.provider.interfaces.IElasticCredentialsCache; import org.opengroup.osdu.core.common.provider.interfaces.IElasticRepository; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; -import org.opengroup.osdu.core.common.service.coreis.ITenantInfoService; +import org.opengroup.osdu.core.common.service.multitenancy.ITenantInfoService; import org.springframework.test.context.junit4.SpringRunner; import static org.junit.Assert.assertEquals; @@ -49,7 +49,7 @@ public class ElasticSettingServiceTest { @Mock private ClusterSettings clusterSettings; @Mock - private IHeadersInfo headersInfo; + private DpsHeaders headersInfo; @Mock private JaxRsDpsLog log; diff --git a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/IndexCopyServiceImplTest.java b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/IndexCopyServiceImplTest.java index e031ac73601e7115b1becf88f40d3eab30a2beba..b808776e2dafd0bc95cb9904463ed727d1404d55 100644 --- a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/IndexCopyServiceImplTest.java +++ b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/IndexCopyServiceImplTest.java @@ -31,16 +31,15 @@ import org.junit.runner.RunWith; import org.mockito.ArgumentMatchers; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.core.ClusterSettings; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.search.ClusterSettings; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.indexer.logging.AuditLogger; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; -import org.opengroup.osdu.is.core.service.ElasticSettingService; -import org.opengroup.osdu.core.common.service.coreis.IndicesService; -import org.opengroup.osdu.is.core.util.ElasticClientHandler; -import org.opengroup.osdu.core.common.service.coreis.ElasticIndexNameResolver; +import org.opengroup.osdu.core.common.model.indexer.IElasticSettingService; +import org.opengroup.osdu.core.common.service.search.IndicesService; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; +import org.opengroup.osdu.core.common.service.search.ElasticIndexNameResolver; import org.powermock.core.classloader.annotations.PrepareForTest; import org.springframework.test.context.junit4.SpringRunner; @@ -66,7 +65,7 @@ public class IndexCopyServiceImplTest { @Mock private IRequestInfo requestInfo; @Mock - private IHeadersInfo headersInfo; + private DpsHeaders headersInfo; @Mock private RestClient restClient; @Mock @@ -82,7 +81,7 @@ public class IndexCopyServiceImplTest { @Mock private Response response; @Mock - private ElasticSettingService elasticSettingService; + private IElasticSettingService elasticSettingService; @Mock private AuditLogger auditLogger; @Mock @@ -102,8 +101,6 @@ public class IndexCopyServiceImplTest { httpHeaders = new HashMap<>(); httpHeaders.put(DpsHeaders.AUTHORIZATION, "testAuth"); httpHeaders.put(DpsHeaders.CORRELATION_ID, correlationId); - DpsHeaders standardHeaders = DpsHeaders.createFromMap(httpHeaders); - when(headersInfo.getHeaders()).thenReturn(standardHeaders); when(requestInfo.getHeadersMapWithDwdAuthZ()).thenReturn(httpHeaders); when(response.getEntity()).thenReturn(httpEntity); diff --git a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/IndexerMappingServiceTest.java b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/IndexerMappingServiceTest.java index 1b7dd0cc9d2ce0a3bce363ceffd7fd621aceaf2a..43f24cc6cdbe134714cdb2fd6ca4ce42c1ec8446 100644 --- a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/IndexerMappingServiceTest.java +++ b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/IndexerMappingServiceTest.java @@ -31,10 +31,10 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.model.indexer.IndexSchema; -import org.opengroup.osdu.core.common.model.coreis.RecordMetaAttribute; -import org.opengroup.osdu.is.core.util.ElasticClientHandler; +import org.opengroup.osdu.core.common.model.search.RecordMetaAttribute; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.springframework.test.context.junit4.SpringRunner; diff --git a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/IndexerSchemaServiceTest.java b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/IndexerSchemaServiceTest.java index 76e377e91d4be52cb8973aee4545604b30a43e24..7e758b663daa40f0d6030f9272d252140ca87e59 100644 --- a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/IndexerSchemaServiceTest.java +++ b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/IndexerSchemaServiceTest.java @@ -22,15 +22,15 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.model.indexer.OperationType; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.indexer.provider.interfaces.ISchemaCache; import org.opengroup.osdu.core.common.model.indexer.IndexSchema; -import org.opengroup.osdu.core.common.model.coreis.RequestStatus; -import org.opengroup.osdu.core.common.service.coreis.IndicesService; -import org.opengroup.osdu.is.core.util.ElasticClientHandler; -import org.opengroup.osdu.core.common.service.coreis.ElasticIndexNameResolver; +import org.opengroup.osdu.core.common.model.http.RequestStatus; +import org.opengroup.osdu.core.common.service.search.IndicesService; +import org.opengroup.osdu.indexer.util.ElasticClientHandler; +import org.opengroup.osdu.core.common.service.search.ElasticIndexNameResolver; import org.powermock.core.classloader.annotations.PrepareForTest; import org.springframework.test.context.junit4.SpringRunner; diff --git a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/ReindexServiceTest.java b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/ReindexServiceTest.java index 23aa559004b206d4792751d3c1fe6fb0d8151471..6b7b8daad9726a927bdcf555f0292b3682783495 100644 --- a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/ReindexServiceTest.java +++ b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/ReindexServiceTest.java @@ -21,7 +21,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.indexer.RecordQueryResponse; import org.opengroup.osdu.core.common.model.indexer.RecordReindexRequest; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; diff --git a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceTest.java b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceTest.java index 3ee648ed2abe700c35a58834ad27dcdce302e834..8165ae682628b0b7abdbe8f01dd733299a02f194 100644 --- a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceTest.java +++ b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceTest.java @@ -23,14 +23,14 @@ import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.model.indexer.JobStatus; import org.opengroup.osdu.core.common.model.indexer.RecordInfo; -import org.opengroup.osdu.core.common.model.coreis.HttpResponse; +import org.opengroup.osdu.core.common.model.http.HttpResponse; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; -import org.opengroup.osdu.core.common.service.coreis.IUrlFetchService; +import org.opengroup.osdu.core.common.service.http.IUrlFetchService; import org.opengroup.osdu.core.common.model.indexer.RecordQueryResponse; import org.opengroup.osdu.core.common.model.indexer.RecordReindexRequest; import org.opengroup.osdu.core.common.model.indexer.Records; diff --git a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/TenantInfoServiceTest.java b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/TenantInfoServiceTest.java deleted file mode 100644 index 88b99c9c0ccfa8056d22cfc44460b174fa721614..0000000000000000000000000000000000000000 --- a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/TenantInfoServiceTest.java +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2017-2019, Schlumberger -// -// 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 org.opengroup.osdu.indexer.service; - -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.ITenantFactory; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.opengroup.osdu.core.common.model.AppException; -import org.opengroup.osdu.core.common.provider.interfaces.IHeadersInfo; -import org.springframework.http.HttpHeaders; -import org.springframework.test.context.junit4.SpringRunner; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.mockito.Mockito.when; - -@RunWith(SpringRunner.class) -public class TenantInfoServiceTest { - - private static final String HEADER_NAME = "ANY_HEADER"; - private static final String HEADER_VALUE = "ANY_VALUE"; - - @Mock - private ITenantFactory tenantFactory; - @Mock - private IHeadersInfo headersInfo; - @InjectMocks - private TenantInfoServiceImpl sut; - - @Mock - private TenantInfo info; - - @Mock - private HttpHeaders httpHeaders; - - @InjectMocks - private DpsHeaders HEADERS; - - @Before - public void setup() { - HEADERS.put(HEADER_NAME, HEADER_VALUE); - } - - @Ignore - @Test - public void should_return_validTenant_given_validAccountId() { - - when(this.info.getName()).thenReturn("tenant1"); - when(tenantFactory.getTenantInfo("tenant1")).thenReturn(info); - - when(this.headersInfo.getHeaders()).thenReturn(HEADERS); - - when(this.headersInfo.getPartitionId()).thenReturn("tenant1"); - - when(this.sut.getTenantInfo()).thenReturn(info); - - assertNotNull(this.sut.getTenantInfo()); - assertEquals("tenant1", this.sut.getTenantInfo().getName()); - } - - @Test(expected = AppException.class) - public void should_throwException_given_invalidAccountId() { - - when(this.info.getName()).thenReturn("tenant2"); - when(tenantFactory.getTenantInfo("tenant1")).thenReturn(null); - - when(this.sut.getTenantInfo()).thenReturn(info); - - assertNotNull(this.sut.getTenantInfo()); - } -} \ No newline at end of file diff --git a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/util/HeadersInfoGcpImplTest.java b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/util/HeadersInfoGcpImplTest.java deleted file mode 100644 index 0d3850b2476955a3cf0e1783c7128660e2ba6bff..0000000000000000000000000000000000000000 --- a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/util/HeadersInfoGcpImplTest.java +++ /dev/null @@ -1,204 +0,0 @@ -// Copyright 2017-2019, Schlumberger -// -// 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 org.opengroup.osdu.indexer.util; - -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.gcp.model.AppEngineHeaders; -import org.opengroup.osdu.core.common.model.coreis.SlbHeaders; -import org.opengroup.osdu.core.common.service.coreis.HeadersUtil; -import org.springframework.http.HttpHeaders; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.util.LinkedMultiValueMap; -import org.springframework.util.MultiValueMap; - -import java.util.HashMap; -import java.util.Map; - -import static java.util.Collections.singletonList; -import static org.junit.Assert.*; -import static org.mockito.Mockito.when; - -@RunWith(SpringRunner.class) -public class HeadersInfoGcpImplTest { - - @Mock - private HttpHeaders httpHeaders; - @Mock - private DpsHeaders dpsHeaders; - @InjectMocks - private HeadersInfoGcpImpl sut; - - @Test - public void should_convert_Cloud_Trace_when_header_contains_it() { - Map<String, String> requestHeaders = new HashMap<>(); - requestHeaders.put(DpsHeaders.AUTHORIZATION, "any token"); - requestHeaders.put(AppEngineHeaders.CLOUD_TRACE_CONTEXT, "any trace"); - - DpsHeaders map = this.sut.getCoreServiceHeaders(requestHeaders); - - assertEquals("any token", map.getAuthorization()); - assertEquals("any trace", map.getHeaders().get(AppEngineHeaders.TRACE_ID)); - } - - @Test - public void should_return_header_logs_when_header_contains_email() { - MultiValueMap<String, String> requestHeaders = new LinkedMultiValueMap<>(); - requestHeaders.add(DpsHeaders.AUTHORIZATION, "any token"); - requestHeaders.add(DpsHeaders.ON_BEHALF_OF, "any onBehalf"); - requestHeaders.add(DpsHeaders.CORRELATION_ID, "any correlationId"); - requestHeaders.add(DpsHeaders.USER_EMAIL, "abc@xyz.com"); - requestHeaders.add(DpsHeaders.ACCOUNT_ID, "any account"); - - DpsHeaders map = this.sut.getCoreServiceHeaders(requestHeaders.toSingleValueMap()); - assertEquals("any token", map.getAuthorization()); - DpsHeaders headers = DpsHeaders.createFromEntrySet(requestHeaders.entrySet()); - - assertEquals("account id: any account | on behalf: any onBehalf | user email: any onBehalf | correlation id: " + - "any correlationId", HeadersUtil.toLogMsg(headers, "any onBehalf")); - } - - @Test - public void should_return_header_logs_when_jwt_decode_fails() { - MultiValueMap<String, String> requestHeaders = new LinkedMultiValueMap<>(); - requestHeaders.add(DpsHeaders.AUTHORIZATION, "any token"); - requestHeaders.add(DpsHeaders.ON_BEHALF_OF, "any onBehalf"); - requestHeaders.add(DpsHeaders.CORRELATION_ID, "any correlationId"); - requestHeaders.add(DpsHeaders.ACCOUNT_ID, "any account"); - - DpsHeaders map = this.sut.getCoreServiceHeaders(requestHeaders.toSingleValueMap()); - - assertEquals("any token", map.getAuthorization()); - - DpsHeaders headers = DpsHeaders.createFromEntrySet(requestHeaders.entrySet()); - assertEquals("account id: any account | on behalf: any onBehalf | correlation id: any correlationId", - HeadersUtil.toLogMsg(headers, null)); - } - - @Test - public void should_return_header_logs_when_header_doesNot_contain_email() { - Map<String, String> requestHeaders = new HashMap<>(); - requestHeaders.put(DpsHeaders.AUTHORIZATION, "any token"); - requestHeaders.put(DpsHeaders.ON_BEHALF_OF, "any onBehalf"); - requestHeaders.put(DpsHeaders.CORRELATION_ID, "any correlationId"); - requestHeaders.put(DpsHeaders.ACCOUNT_ID, "any account"); - - DpsHeaders map = this.sut.getCoreServiceHeaders(requestHeaders); - assertEquals("any token", map.getHeaders().get(DpsHeaders.AUTHORIZATION)); - } - - @Test - public void check_correct_headers() { - Map<String, String> requestHeaders = new HashMap<>(); - requestHeaders.put(DpsHeaders.AUTHORIZATION, "any token"); - requestHeaders.put(DpsHeaders.CORRELATION_ID, "any correlationId"); - requestHeaders.put(DpsHeaders.ACCOUNT_ID, "any account"); - requestHeaders.put(DpsHeaders.ON_BEHALF_OF, "any onBehalf"); - requestHeaders.put(DpsHeaders.USER_EMAIL, "abc@xyz.com"); - requestHeaders.put(DpsHeaders.CONTENT_TYPE, "any contentType"); - requestHeaders.put(AppEngineHeaders.DATA_GROUPS, "any dataGrp"); - requestHeaders.put(AppEngineHeaders.CRON_SERVICE, "true"); - - DpsHeaders map = this.sut.getCoreServiceHeaders(requestHeaders); - - assertEquals("any token", map.getAuthorization()); - assertEquals("any correlationId", map.getCorrelationId()); - assertEquals("abc@xyz.com", map.getUserEmail()); - assertEquals("any account", map.getPartitionIdWithFallbackToAccountId()); - assertEquals("any onBehalf", map.getOnBehalfOf()); - assertEquals("any contentType", map.getHeaders().get(DpsHeaders.CONTENT_TYPE)); - assertEquals("any dataGrp", map.getHeaders().get(AppEngineHeaders.DATA_GROUPS)); - assertEquals("true", map.getHeaders().get(AppEngineHeaders.CRON_SERVICE)); - } - - @Test - public void should_return_null_auth_header_when_invalid_header() { - Map<String, String> requestHeaders = new HashMap<>(); - requestHeaders.put(DpsHeaders.AUTHORIZATION, null); - - DpsHeaders map = this.sut.getCoreServiceHeaders(requestHeaders); - - assertNotNull(map); - assertNull(map.getAuthorization()); - } - - @Ignore - @Test - public void should_addCorrelationId_when_gettingHeaders() { - MultiValueMap<String, String> requestHeaders = new LinkedMultiValueMap<>(); - requestHeaders.put(DpsHeaders.USER_EMAIL, singletonList("a@b.com")); - when(httpHeaders.toSingleValueMap()).thenReturn(requestHeaders.toSingleValueMap()); - - assertNotNull(sut.getHeaders().getCorrelationId()); - } - - @Ignore - @Test - public void should_returnUser_when_requested() { - MultiValueMap<String, String> requestHeaders = new LinkedMultiValueMap<>(); - requestHeaders.put(DpsHeaders.USER_EMAIL, singletonList("a@b.com")); - when(httpHeaders.toSingleValueMap()).thenReturn(requestHeaders.toSingleValueMap()); - - assertEquals("a@b.com", sut.getUser()); - } - - @Ignore - @Test - public void should_returnPrimaryAccountId_when_requested() { - MultiValueMap<String, String> requestHeaders = new LinkedMultiValueMap<>(); - requestHeaders.put(SlbHeaders.PRIMARY_PARTITION_ID, singletonList("apc")); - when(httpHeaders.toSingleValueMap()).thenReturn(requestHeaders.toSingleValueMap()); - - assertEquals("apc", sut.getPrimaryPartitionId()); - } - - @Test - public void should_convert_to_string_when_map_is_correct() { - MultiValueMap<String, String> requestHeaders = new LinkedMultiValueMap<>(); - requestHeaders.add("a", "a val"); - requestHeaders.add("b", "b val"); - requestHeaders.add(DpsHeaders.AUTHORIZATION, "blah"); - when(this.httpHeaders.toSingleValueMap()).thenReturn(requestHeaders.toSingleValueMap()); - - assertFalse(this.sut.toString().contains("a=a val")); - assertFalse(this.sut.toString().contains("b=b val")); - } - -// @Test -// public void should_convert_multivalued_map_to_hash_map_when_input_map_is_correct() { -// MultivaluedMap<String, String> requestHeaders = new MultivaluedMapImpl<String, String>(); -// requestHeaders.putSingle(DpsHeaders.AUTHORIZATION, "any token"); -// requestHeaders.putSingle(DpsHeaders.CORRELATION_ID, "any correlationId"); -// requestHeaders.putSingle(DpsHeaders.ACCOUNT_ID, "any account"); -// requestHeaders.putSingle(DpsHeaders.ON_BEHALF_OF, "any onBehalf"); -// requestHeaders.putSingle(DpsHeaders.USER_EMAIL, "abc@xyz.com"); -// requestHeaders.putSingle(DpsHeaders.CONTENT_TYPE, "any contentType"); -// requestHeaders.putSingle(AppEngineHeaders.DATA_GROUPS, "any dataGrp"); -// -// Map<String, String> map = this.sut.convertMultiToRegularMap(requestHeaders); -// -// assertEquals("any token", map.get(DpsHeaders.AUTHORIZATION)); -// assertEquals("any correlationId", map.get(DpsHeaders.CORRELATION_ID)); -// assertEquals("abc@xyz.com", map.get(DpsHeaders.USER_EMAIL)); -// assertEquals("any account", map.get(DpsHeaders.ACCOUNT_ID)); -// assertEquals("any onBehalf", map.get(DpsHeaders.ON_BEHALF_OF)); -// assertEquals("any contentType", map.get(DpsHeaders.CONTENT_TYPE)); -// assertEquals("any dataGrp", map.get(AppEngineHeaders.DATA_GROUPS)); -// } -} \ No newline at end of file diff --git a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/util/ServiceAccountJwtGcpClientImplTest.java b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/util/ServiceAccountJwtGcpClientImplTest.java index 3a96da54de824e9920773d234657edfc4cc76a99..341cd72e461d8bfa287d2ddf96ec958aa54123e8 100644 --- a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/util/ServiceAccountJwtGcpClientImplTest.java +++ b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/util/ServiceAccountJwtGcpClientImplTest.java @@ -32,21 +32,16 @@ import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.common.model.core.TenantInfo; -import org.opengroup.osdu.core.common.model.AppException; +import org.opengroup.osdu.core.common.model.tenant.TenantInfo; +import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.service.logging.JaxRsDpsLog; -import org.opengroup.osdu.indexer.service.TenantInfoServiceImpl; -import org.opengroup.osdu.core.common.model.coreis.DeploymentEnvironment; -import org.opengroup.osdu.core.common.model.coreis.IdToken; +import org.opengroup.osdu.core.common.model.search.DeploymentEnvironment; +import org.opengroup.osdu.core.common.model.search.IdToken; import org.opengroup.osdu.core.common.provider.interfaces.IJwtCache; -import org.opengroup.osdu.core.common.service.coreis.Config; +import org.opengroup.osdu.core.common.service.search.Config; import org.powermock.core.classloader.annotations.PrepareForTest; import org.springframework.test.context.junit4.SpringRunner; -import java.util.HashMap; -import java.util.Map; - import static org.junit.Assert.fail; import static org.mockito.Matchers.any; import static org.mockito.MockitoAnnotations.initMocks; @@ -79,14 +74,12 @@ public class ServiceAccountJwtGcpClientImplTest { private CloseableHttpClient httpClient; @Mock private CloseableHttpResponse httpResponse; - @InjectMocks - private TenantInfoServiceImpl tenantInfoServiceProvider; - @Mock - private TenantInfoServiceImpl tenantInfoService; +// @InjectMocks +// private TenantInfoServiceImpl tenantInfoServiceProvider; +// @Mock +// private TenantInfoServiceImpl tenantInfoService; @Mock private IJwtCache cacheService; - @Mock - private HeadersInfoGcpImpl headersInfoGcp; @InjectMocks @Spy private ServiceAccountJwtGcpClientImpl sut; @Before @@ -108,11 +101,11 @@ public class ServiceAccountJwtGcpClientImplTest { when(Config.getDeploymentEnvironment()).thenReturn(DeploymentEnvironment.LOCAL); when(Config.getGoogleAudiences()).thenReturn("aud"); - when(this.tenantInfoServiceProvider).thenReturn(this.tenantInfoService); +// when(this.tenantInfoServiceProvider).thenReturn(this.tenantInfoService); TenantInfo tenantInfo = new TenantInfo(); tenantInfo.setServiceAccount("tenant"); - when(this.tenantInfoService.getTenantInfo()).thenReturn(tenantInfo); +// when(this.tenantInfoService.getTenantInfo()).thenReturn(tenantInfo); when(this.sut.getIam()).thenReturn(iam); when(this.iam.projects()).thenReturn(iamProject); @@ -121,9 +114,6 @@ public class ServiceAccountJwtGcpClientImplTest { when(this.signJwt.execute()).thenReturn(signJwtResponse); when(this.signJwtResponse.getSignedJwt()).thenReturn("testJwt"); - Map<String, String> headers = new HashMap<>(); - DpsHeaders dpsHeaders = DpsHeaders.createFromMap(headers); - when(this.headersInfoGcp.getHeaders()).thenReturn(dpsHeaders); } @Test diff --git a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/util/TraceIdExtractorTest.java b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/util/TraceIdExtractorTest.java deleted file mode 100644 index 971392d6029655e650ec69b8fa3055cab7b3727d..0000000000000000000000000000000000000000 --- a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/util/TraceIdExtractorTest.java +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2017-2019, Schlumberger -// -// 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 org.opengroup.osdu.indexer.util; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.opengroup.osdu.core.common.model.core.DpsHeaders; -import org.opengroup.osdu.core.gcp.model.AppEngineHeaders; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.util.LinkedMultiValueMap; -import org.springframework.util.MultiValueMap; - -import java.util.ArrayList; -import java.util.List; - -import static junit.framework.TestCase.assertTrue; - -@RunWith(SpringRunner.class) -public class TraceIdExtractorTest { - - @Test - public void should_getTraceableCloudContext_when_header_doesNot_contains_it() { - List<String> token = new ArrayList<>(); - token.add("any token"); - MultiValueMap<String, String> requestHeaders = new LinkedMultiValueMap<>(); - requestHeaders.put(DpsHeaders.AUTHORIZATION, token); - - String actual = TraceIdExtractor.getTraceableCloudContext(requestHeaders); - - assertTrue(actual.matches(".*o=1")); - } - - @Test - public void should_getTraceableCloudContext_when_header_contains_it() { - List<String> token = new ArrayList<>(); - token.add("any token"); - List<String> trace = new ArrayList<>(); - trace.add("any trace"); - MultiValueMap<String, String> requestHeaders = new LinkedMultiValueMap<>(); - requestHeaders.put(DpsHeaders.AUTHORIZATION, token); - requestHeaders.put(AppEngineHeaders.CLOUD_TRACE_CONTEXT, trace); - - String actual = TraceIdExtractor.getTraceableCloudContext(requestHeaders); - assertTrue(actual.matches("any trace/.*o=1")); - - trace = new ArrayList<>(); - trace.add("any/trace"); - requestHeaders.put(AppEngineHeaders.CLOUD_TRACE_CONTEXT, trace); - actual = TraceIdExtractor.getTraceableCloudContext(requestHeaders); - assertTrue(actual.matches("any/trace;o=1")); - - trace = new ArrayList<>(); - trace.add("any/trace/test"); - requestHeaders.put(AppEngineHeaders.CLOUD_TRACE_CONTEXT, trace); - actual = TraceIdExtractor.getTraceableCloudContext(requestHeaders); - assertTrue(actual.matches("any/trace;o=1")); - } - -} diff --git a/testing/indexer-test-core/pom.xml b/testing/indexer-test-core/pom.xml index 3e3821f726bd738cf0f6475c1c8f04da14512b3d..0bb88fd2f3b463471d0597909aa34e3dfdbfcde8 100644 --- a/testing/indexer-test-core/pom.xml +++ b/testing/indexer-test-core/pom.xml @@ -15,6 +15,12 @@ </properties> <dependencies> + <dependency> + <groupId>org.opengroup.osdu</groupId> + <artifactId>os-core-common</artifactId> + <version>0.0.9-SNAPSHOT</version> + </dependency> + <dependency> <groupId>com.google.api-client</groupId> <artifactId>google-api-client</artifactId> diff --git a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/RecordSteps.java b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/RecordSteps.java index fe57b8cc49e8566c72ed28e4194fe666a4f886d7..a58c18461e0008ba32fa2622f48995fcfc9eee9e 100644 --- a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/RecordSteps.java +++ b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/RecordSteps.java @@ -9,7 +9,7 @@ import cucumber.api.DataTable; import lombok.extern.java.Log; import org.elasticsearch.cluster.metadata.MappingMetaData; import org.elasticsearch.common.collect.ImmutableOpenMap; -import org.opengroup.osdu.models.Acl; +import org.opengroup.osdu.core.common.model.entitlements.Acl; import org.opengroup.osdu.models.Setup; import org.opengroup.osdu.models.TestIndex; import org.opengroup.osdu.util.ElasticUtils; @@ -17,7 +17,6 @@ import org.opengroup.osdu.util.FileHandler; import org.opengroup.osdu.util.HTTPClient; import javax.ws.rs.HttpMethod; -import java.io.File; import java.io.IOException; import java.lang.reflect.Type; import java.util.HashMap; diff --git a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/TestsBase.java b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/TestsBase.java index 43cd1b4d429d69acd6486d418fb93795d03b3319..e24a19da82531608b8609f3543013bf2576e0e17 100644 --- a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/TestsBase.java +++ b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/common/TestsBase.java @@ -2,7 +2,7 @@ package org.opengroup.osdu.common; import com.google.gson.Gson; -import org.opengroup.osdu.models.Legal; +import org.opengroup.osdu.core.common.model.legal.Legal; import org.opengroup.osdu.models.Setup; import org.opengroup.osdu.models.TestIndex; import org.opengroup.osdu.response.ResponseBase; @@ -15,10 +15,7 @@ import lombok.extern.java.Log; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MultivaluedMap; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static org.junit.Assert.assertEquals; import static org.opengroup.osdu.util.Config.*; @@ -142,9 +139,11 @@ public abstract class TestsBase { protected Legal generateLegalTag() { Legal legal = new Legal(); - String[] legalTags = {getLegalTag()}; + Set<String> legalTags = new HashSet<>(); + legalTags.add(getLegalTag()); legal.setLegaltags(legalTags); - String[] otherRelevantCountries = {getOtherRelevantDataCountries()}; + Set<String> otherRelevantCountries = new HashSet<>(); + otherRelevantCountries.add(getOtherRelevantDataCountries()); legal.setOtherRelevantDataCountries(otherRelevantCountries); return legal; } diff --git a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/models/Acl.java b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/models/Acl.java deleted file mode 100644 index a4c1f737f3223edd65c41b320dcfa2cbb3a2d19c..0000000000000000000000000000000000000000 --- a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/models/Acl.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.opengroup.osdu.models; - -import lombok.Builder; -import lombok.Data; - -@Data -@Builder -public class Acl { - - private String[] viewers; - - private String[] owners; - -} \ No newline at end of file diff --git a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/models/Legal.java b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/models/Legal.java deleted file mode 100644 index 57595ffeadede472b86d9ffa3ee5dd37d769d165..0000000000000000000000000000000000000000 --- a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/models/Legal.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.opengroup.osdu.models; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class Legal { - - private String[] legaltags; - - private String[] otherRelevantDataCountries; - - @lombok.Builder.Default - private String status = "compliant"; -} diff --git a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/models/TestIndex.java b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/models/TestIndex.java index d8c611d8b5a3aff19a5ab23606f45476d9f57609..efd8d1960362fabd2b7ee3da55903816f49c3e20 100644 --- a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/models/TestIndex.java +++ b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/models/TestIndex.java @@ -5,16 +5,19 @@ import com.google.gson.JsonElement; import com.google.gson.reflect.TypeToken; import com.sun.jersey.api.client.ClientResponse; import lombok.Data; -import lombok.NoArgsConstructor; import javax.ws.rs.HttpMethod; +import org.opengroup.osdu.core.common.model.entitlements.Acl; +import org.opengroup.osdu.core.common.model.legal.Legal; import org.opengroup.osdu.util.ElasticUtils; import org.opengroup.osdu.util.FileHandler; import org.opengroup.osdu.util.HTTPClient; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.logging.Logger; import static org.junit.Assert.assertEquals; @@ -127,9 +130,11 @@ public class TestIndex { private Legal generateLegalTag() { Legal legal = new Legal(); - String[] legalTags = {getLegalTag()}; + Set<String> legalTags = new HashSet<>(); + legalTags.add(getLegalTag()); legal.setLegaltags(legalTags); - String[] otherRelevantCountries = {getOtherRelevantDataCountries()}; + Set<String> otherRelevantCountries = new HashSet<>(); + otherRelevantCountries.add(getOtherRelevantDataCountries()); legal.setOtherRelevantDataCountries(otherRelevantCountries); return legal; }