From 4c6901cdc37cf6c6cebe9053269f6f0a6ad0c0bd Mon Sep 17 00:00:00 2001
From: wanzhiji <wanzhiji@amazon.com>
Date: Fri, 5 Feb 2021 22:27:31 +0000
Subject: [PATCH] Storage 404 error causing message to not retry. Add fix

commit 149d03fc
Author: Matt Wise <wsmatth@amazon.com>
Date: Fri Feb 05 2021 10:17:20 GMT-0800 (Pacific Standard Time)

    Merge remote-tracking branch 'origin/dev' into storage-404


commit f478d4d3
Author: zhijie wang <wanzhiji@amazon.com>
Date: Fri Feb 05 2021 09:10:16 GMT-0800 (Pacific Standard Time)

    fix storage 404


commit 3580a510
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com>
Date: Wed Feb 03 2021 08:13:36 GMT-0800 (Pacific Standard Time)

    Merge branch 'dev' of codecommit://os-indexer into dev


commit e17cd0f9
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com>
Date: Wed Feb 03 2021 08:13:24 GMT-0800 (Pacific Standard Time)

    ubuntu expired key fix


commit 8623a8c6
Author: Spencer Sutton <suttonsp@amazon.com>
Date: Wed Feb 03 2021 07:21:23 GMT-0800 (Pacific Standard Time)

    SSL AWS

commit 78cab700
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com>
Date: Fri Jan 29 2021 12:41:00 GMT-0600 (Central Standard Time)

    Adding ssl props


commit 82a15c82
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com>
Date: Fri Jan 29 2021 12:20:36 GMT-0600 (Central Standard Time)

    Adding SSL



commit cd820a21
Author: Matt Wise <wsmatth@amazon.com>
Date: Tue Feb 02 2021 07:57:36 GMT-0800 (Pacific Standard Time)

    disable test failures
---
 .../aws/util/IndexerQueueTaskBuilderAws.java  | 28 +++++++++++++------
 .../src/main/resources/application.properties |  1 +
 2 files changed, 20 insertions(+), 9 deletions(-)

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 8d593794f..a395dfa3d 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
@@ -43,8 +43,8 @@ public class IndexerQueueTaskBuilderAws extends IndexerQueueTaskBuilder {
 
     private ParameterStorePropertySource ssm;
 
-    private String amazonSQSQueueUrl;
-
+    private String storageQueue;
+    private String dlq;
     private final String retryString = "retry";
 
     private Gson gson;
@@ -54,7 +54,8 @@ public class IndexerQueueTaskBuilderAws extends IndexerQueueTaskBuilder {
 
     @Value("${aws.storage.sqs.queue.url}")
     String sqsStorageQueueParameter;
-
+    @Value("${aws.indexer.sqs.dlq.url}")
+    String deadLetterQueueParameter;
 
     @Inject
     public void init() {
@@ -63,7 +64,8 @@ public class IndexerQueueTaskBuilderAws extends IndexerQueueTaskBuilder {
         gson =new Gson();
         SSMConfig ssmConfig = new SSMConfig();
         ssm = ssmConfig.amazonSSM();
-        amazonSQSQueueUrl = ssm.getProperty(sqsStorageQueueParameter).toString();
+        storageQueue = ssm.getProperty(sqsStorageQueueParameter).toString();
+        dlq = ssm.getProperty(deadLetterQueueParameter).toString();
     }
 
     @Override
@@ -119,11 +121,19 @@ public class IndexerQueueTaskBuilderAws extends IndexerQueueTaskBuilder {
         );
 
         // Send a message with an attribute and a delay
-        final SendMessageRequest sendMessageRequest = new SendMessageRequest()
-                .withQueueUrl(amazonSQSQueueUrl)
-                .withMessageBody(message.getData())
-                .withDelaySeconds(new Integer(retryDelay))
-                .withMessageAttributes(messageAttributes);
+        final SendMessageRequest sendMessageRequest ;
+        if (retryCount< 10) {
+
+            sendMessageRequest = new SendMessageRequest()
+                    .withQueueUrl(storageQueue)
+                    .withMessageBody(message.getData())
+                    .withDelaySeconds(new Integer(retryDelay))
+                    .withMessageAttributes(messageAttributes);
+        }else{
+            sendMessageRequest = new SendMessageRequest()
+                    .withQueueUrl(dlq)
+                    .withMessageBody(message.getData());
+        }
         sqsClient.sendMessage(sendMessageRequest);
     }
 
diff --git a/provider/indexer-aws/src/main/resources/application.properties b/provider/indexer-aws/src/main/resources/application.properties
index a340866fb..d42824c82 100644
--- a/provider/indexer-aws/src/main/resources/application.properties
+++ b/provider/indexer-aws/src/main/resources/application.properties
@@ -59,6 +59,7 @@ aws.indexer.sns.topic.arn=${aws.ssm.prefix}/indexer/indexer-sns-topic-arn
 aws.storage.sns.topic.arn=${aws.ssm.prefix}/storage/storage-sns-topic-arn
 
 aws.storage.sqs.queue.url=${aws.ssm.prefix}/storage/storage-sqs-url
+aws.indexer.sqs.dlq.url=${aws.ssm.prefix}/indexer-queue/indexer-deadletter-queue-sqs-url
 
 server.ssl.enabled=${SSL_ENABLED:true}
 server.ssl.key-store-type=PKCS12
-- 
GitLab