From 16c934e0ef54835fb7ec73b98ebe781525d46e30 Mon Sep 17 00:00:00 2001 From: "Dmitriy Rudko (EPAM)" <dmitriy_rudko@epam.com> Date: Tue, 16 Mar 2021 14:57:51 +0000 Subject: [PATCH] Merge branch 'hotfix/#16-array-of-objects' into 'master' #16 - Fix indexing ' array of object' for all CSPs See merge request osdu/platform/system/indexer-service!123 (cherry picked from commit feb78aa0d2287cd99405390c62a40592bd94053e) 2a533b3f #16 - Fix indexing ' array of object' for all CSPs e0e84f13 #16 - Fix unit tests for SchemaToStorageFormatImplTest 5824b1ae Merge branch 'master' into hotfix/#16-array-of-objects ae7f09d5 resolve unwanted cloud tasks retry by fixing exception handler --- .../SchemaConverterPropertiesConfig.java | 2 +- .../Generated/file/File.1.0.0.json.res | 4 +++ .../master-data/Agreement.1.0.0.json.res | 8 ++++++ .../WellLog.1.0.0.json.res | 4 +++ .../work-product/WorkProduct.1.0.0.json.res | 4 +++ .../indexer/util/AppExceptionHandler.java | 28 +++++++++++++++++-- .../src/main/resources/application.properties | 2 -- 7 files changed, 47 insertions(+), 5 deletions(-) diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/config/SchemaConverterPropertiesConfig.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/config/SchemaConverterPropertiesConfig.java index f530c842b..163664f5f 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/config/SchemaConverterPropertiesConfig.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/config/SchemaConverterPropertiesConfig.java @@ -24,7 +24,7 @@ public class SchemaConverterPropertiesConfig implements SchemaConverterConfig { } private Set<String> getDefaultSupportedArrayTypes() { - return new HashSet<>(Arrays.asList("boolean", "integer", "number", "string")); + return new HashSet<>(Arrays.asList("boolean", "integer", "number", "string", "object")); } private Map<String, String> getDefaultSpecialDefinitionsMap() { diff --git a/indexer-core/src/test/resources/converter/R3-json-schema/Generated/file/File.1.0.0.json.res b/indexer-core/src/test/resources/converter/R3-json-schema/Generated/file/File.1.0.0.json.res index b0f71fc6f..d0cc00a8d 100644 --- a/indexer-core/src/test/resources/converter/R3-json-schema/Generated/file/File.1.0.0.json.res +++ b/indexer-core/src/test/resources/converter/R3-json-schema/Generated/file/File.1.0.0.json.res @@ -40,6 +40,10 @@ { "kind": "string", "path": "Checksum" + }, + { + "kind": "[]object", + "path": "VectorHeaderMapping" } ] } \ No newline at end of file diff --git a/indexer-core/src/test/resources/converter/R3-json-schema/Generated/master-data/Agreement.1.0.0.json.res b/indexer-core/src/test/resources/converter/R3-json-schema/Generated/master-data/Agreement.1.0.0.json.res index 136ed0b7e..8728c3bc5 100644 --- a/indexer-core/src/test/resources/converter/R3-json-schema/Generated/master-data/Agreement.1.0.0.json.res +++ b/indexer-core/src/test/resources/converter/R3-json-schema/Generated/master-data/Agreement.1.0.0.json.res @@ -32,6 +32,14 @@ { "kind": "[]link", "path": "Counterparties" + }, + { + "kind": "[]object", + "path": "Terms" + }, + { + "kind": "[]object", + "path": "RestrictedResources" } ] } \ No newline at end of file diff --git a/indexer-core/src/test/resources/converter/R3-json-schema/Generated/work-product-component/WellLog.1.0.0.json.res b/indexer-core/src/test/resources/converter/R3-json-schema/Generated/work-product-component/WellLog.1.0.0.json.res index 517ca0395..359986f47 100644 --- a/indexer-core/src/test/resources/converter/R3-json-schema/Generated/work-product-component/WellLog.1.0.0.json.res +++ b/indexer-core/src/test/resources/converter/R3-json-schema/Generated/work-product-component/WellLog.1.0.0.json.res @@ -76,6 +76,10 @@ { "kind": "string", "path": "VerticalMeasurementID" + }, + { + "kind": "[]object", + "path": "Curves" } ] } \ No newline at end of file diff --git a/indexer-core/src/test/resources/converter/R3-json-schema/Generated/work-product/WorkProduct.1.0.0.json.res b/indexer-core/src/test/resources/converter/R3-json-schema/Generated/work-product/WorkProduct.1.0.0.json.res index 0b807093b..5852817c8 100644 --- a/indexer-core/src/test/resources/converter/R3-json-schema/Generated/work-product/WorkProduct.1.0.0.json.res +++ b/indexer-core/src/test/resources/converter/R3-json-schema/Generated/work-product/WorkProduct.1.0.0.json.res @@ -44,6 +44,10 @@ { "kind": "[]string", "path": "Annotations" + }, + { + "kind": "[]object", + "path": "LineageAssertions" } ] } \ No newline at end of file diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/AppExceptionHandler.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/AppExceptionHandler.java index 0e8293b1a..ebfe87ef0 100644 --- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/AppExceptionHandler.java +++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/util/AppExceptionHandler.java @@ -23,12 +23,36 @@ public class AppExceptionHandler { ? e.getOriginalException().getMessage() : e.getError().getMessage(); - if (e.getError().getCode() > 499) { + Integer errorCode = e.getError().getCode(); + + if (errorCode > 499) { log.error(exceptionMsg, e.getOriginalException()); } else { log.warn(exceptionMsg, e.getOriginalException()); } - return new ResponseEntity<>(e.getError(), HttpStatus.resolve(e.getError().getCode())); + HttpStatus status = Objects.nonNull(HttpStatus.resolve(errorCode)) + ? HttpStatus.resolve(errorCode) + : resolveNotSupportedStatus(errorCode); + + return new ResponseEntity<>(e.getError(), status); + } + + //Currently not all codes provided from core can be resolved by HttpStatus + //example org.opengroup.osdu.core.common.model.http.RequestStatus have not supported by HttpStatus codes + private HttpStatus resolveNotSupportedStatus(int statusCode) { + if (statusCode > 99 && statusCode < 200) { + return HttpStatus.CONTINUE; + } + if (statusCode > 199 && statusCode < 300) { + return HttpStatus.NO_CONTENT; + } + if (statusCode > 299 && statusCode < 400) { + return HttpStatus.MULTIPLE_CHOICES; + } + if (statusCode > 399 && statusCode < 500) { + return HttpStatus.BAD_REQUEST; + } + return HttpStatus.INTERNAL_SERVER_ERROR; } } diff --git a/provider/indexer-gcp/src/main/resources/application.properties b/provider/indexer-gcp/src/main/resources/application.properties index 08ee586c3..2213e4dca 100644 --- a/provider/indexer-gcp/src/main/resources/application.properties +++ b/provider/indexer-gcp/src/main/resources/application.properties @@ -42,5 +42,3 @@ security.https.certificate.trust=false indexer.que.service.mail=default@iam.gserviceaccount.com SCHEMA_HOST=${HOST}/api/schema-service/v1/schema storage-query-kinds-host=https://${STORAGE_HOSTNAME}/api/storage/v2/query/kinds - -schema.converter.supported-array-types=boolean,integer,number,string,object -- GitLab