From f592af2949d175ca6bc7e3d745cf8c0b29b19909 Mon Sep 17 00:00:00 2001
From: Larissa Pereira <LPereira14@slb.com>
Date: Mon, 24 Jul 2023 15:08:39 -0500
Subject: [PATCH] capture inner httpResponse when Partition Exception is thrown

---
 .../osdu/indexer/api/RecordIndexerApi.java    | 27 +++++++++++--------
 .../util/BooleanFeatureFlagClient.java        |  2 +-
 2 files changed, 17 insertions(+), 12 deletions(-)

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 bb28d7869..4f08bbc54 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
@@ -69,19 +69,11 @@ public class RecordIndexerApi {
     public ResponseEntity<JobStatus> indexWorker(
              @NotNull(message = SwaggerDoc.REQUEST_VALIDATION_NOT_NULL_BODY)
              @Valid @RequestBody RecordChangedMessages recordChangedMessages) throws Exception {
-        if (recordChangedMessages == null) {
-            log.info("record change messages is null");
-            return new ResponseEntity(HttpStatus.OK);
-        }
 
-        if (recordChangedMessages.hasCorrelationId()) {
-            this.requestInfo.getHeaders().put(DpsHeaders.CORRELATION_ID, recordChangedMessages.getCorrelationId());
-        }
+        populateCorrelationIdIfExist(recordChangedMessages);
+
+        verifyDataPartitionId(recordChangedMessages);
 
-        if (recordChangedMessages.missingAccountId()) {
-            throw new AppException(org.apache.http.HttpStatus.SC_BAD_REQUEST, "Invalid tenant",
-                        String.format("Required header: '%s' not found", DpsHeaders.DATA_PARTITION_ID));
-        }
         try {
             Type listType = new TypeToken<List<RecordInfo>>() {}.getType();
             List<RecordInfo> recordInfos = new Gson().fromJson(recordChangedMessages.getData(), listType);
@@ -101,6 +93,19 @@ public class RecordIndexerApi {
         }
     }
 
+    private void verifyDataPartitionId(RecordChangedMessages recordChangedMessages) {
+        if (recordChangedMessages.missingAccountId()) {
+            throw new AppException(org.apache.http.HttpStatus.SC_BAD_REQUEST, "Invalid tenant",
+                        String.format("Required header: '%s' not found", DpsHeaders.DATA_PARTITION_ID));
+        }
+    }
+
+    private void populateCorrelationIdIfExist(RecordChangedMessages recordChangedMessages) {
+        if (recordChangedMessages.hasCorrelationId()) {
+            this.requestInfo.getHeaders().put(DpsHeaders.CORRELATION_ID, recordChangedMessages.getCorrelationId());
+        }
+    }
+
     // THIS IS AN INTERNAL USE API ONLY
     // THAT MEANS WE DON'T DOCUMENT IT IN SWAGGER, ACCESS IS LIMITED TO CLOUD TASK QUEUE CALLS ONLY
     @PostMapping("/reindex-worker")
diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/BooleanFeatureFlagClient.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/BooleanFeatureFlagClient.java
index f21e0968d..42a075e69 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/BooleanFeatureFlagClient.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/util/BooleanFeatureFlagClient.java
@@ -55,7 +55,7 @@ public class BooleanFeatureFlagClient {
             PartitionInfo partitionInfo = partitionProvider.get(dataPartitionId);
             return partitionInfo;
         } catch (PartitionException e) {
-            logger.error(String.format("Error getting partition info for data-partition: %s", dataPartitionId), e);
+            logger.error(String.format("Error getting partition info for data-partition: %s. Message: %s. ResponseCode: %s.", dataPartitionId, e.getResponse().getBody(), e.getResponse().getResponseCode()), e);
             throw e;
         }
     }
-- 
GitLab