add retry sequence levels 43/101243/2
authorBoslet, Cory <cory.boslet@att.com>
Thu, 6 Feb 2020 15:04:42 +0000 (10:04 -0500)
committerBenjamin, Max (mb388a) <mb388a@att.com>
Fri, 7 Feb 2020 14:03:42 +0000 (09:03 -0500)
Added retry sequence levels so that the different services can specify
their desire.
Updated to be medium and added to be long sequence in audit.
Change retry level to be final and changed default constructor to
private
Changed default constructor to public so its visible.
Updated unit test to reflect change and get verify job to pass
Added and updated the unit test for add graph

Issue-ID: SO-2649
Signed-off-by: Benjamin, Max (mb388a) <mb388a@att.com>
Change-Id: I981b90a5dbb1dca5354fba37589b26dabbfc0b0e

adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AbstractAuditService.java
adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditCreateStackService.java
adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditDeleteStackService.java
adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditQueryStackService.java
adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java
common/src/main/java/org/onap/so/utils/ExternalTaskUtils.java
common/src/main/java/org/onap/so/utils/RetrySequenceLevel.java [new file with mode: 0644]
common/src/test/java/org/onap/so/utils/ExternalTaskUtilsTest.java

index 0c05df9..ddd9fb1 100644 (file)
@@ -25,6 +25,7 @@ import java.util.Optional;
 import org.onap.so.objects.audit.AAIObjectAudit;
 import org.onap.so.objects.audit.AAIObjectAuditList;
 import org.onap.so.utils.ExternalTaskUtils;
+import org.onap.so.utils.RetrySequenceLevel;
 import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -47,6 +48,10 @@ public abstract class AbstractAuditService extends ExternalTaskUtils {
     @Autowired
     public Environment env;
 
+    public AbstractAuditService() {
+        super(RetrySequenceLevel.LONG);
+    }
+
     /**
      * @param auditHeatStackFailed
      * @param auditList
index 43b362c..8291fa9 100644 (file)
@@ -32,6 +32,7 @@ import org.onap.so.audit.beans.AuditInventory;
 import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
 import org.onap.so.externaltasks.logging.AuditMDCSetup;
 import org.onap.so.objects.audit.AAIObjectAuditList;
+import org.onap.so.utils.RetrySequenceLevel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -48,6 +49,10 @@ public class AuditCreateStackService extends AbstractAuditService {
     @Autowired
     private AuditMDCSetup mdcSetup;
 
+    public AuditCreateStackService() {
+        super();
+    }
+
     protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
         mdcSetup.setupMDC(externalTask);
         AuditInventory auditInventory = externalTask.getVariable("auditInventory");
index da5e8bb..cf07791 100644 (file)
@@ -56,6 +56,10 @@ public class AuditDeleteStackService extends AbstractAuditService {
     @Autowired
     protected Environment env;
 
+    public AuditDeleteStackService() {
+        super();
+    }
+
     protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
         mdcSetup.setupMDC(externalTask);
         AuditInventory auditInventory = externalTask.getVariable("auditInventory");
index 8699f8b..1c69a3e 100644 (file)
@@ -28,6 +28,10 @@ public class AuditQueryStackService extends AbstractAuditService {
     @Autowired
     protected AuditDataService auditDataService;
 
+    public AuditQueryStackService() {
+        super();
+    }
+
     protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
         mdcSetup.setupMDC(externalTask);
         AuditInventory auditInventory = externalTask.getVariable("auditInventory");
index 3d2d1d2..e02258c 100644 (file)
@@ -29,6 +29,7 @@ import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvide
 import org.onap.so.externaltasks.logging.AuditMDCSetup;
 import org.onap.so.objects.audit.AAIObjectAuditList;
 import org.onap.so.utils.ExternalTaskUtils;
+import org.onap.so.utils.RetrySequenceLevel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -49,6 +50,10 @@ public class CreateInventoryTask extends ExternalTaskUtils {
     @Autowired
     private AuditMDCSetup mdcSetup;
 
+    public CreateInventoryTask() {
+        super(RetrySequenceLevel.SHORT);
+    }
+
     protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
         mdcSetup.setupMDC(externalTask);
         boolean success = true;
index a2aed63..9488187 100644 (file)
@@ -1,10 +1,7 @@
 package org.onap.so.utils;
 
-import org.camunda.bpm.client.task.ExternalTask;
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
@@ -17,6 +14,16 @@ public abstract class ExternalTaskUtils {
 
     private static final Logger logger = LoggerFactory.getLogger(ExternalTaskUtils.class);
 
+    private final RetrySequenceLevel retrySequenceLevel;
+
+    public ExternalTaskUtils() {
+        this.retrySequenceLevel = RetrySequenceLevel.MEDIUM;
+    }
+
+    public ExternalTaskUtils(RetrySequenceLevel retrySequenceLevel) {
+        this.retrySequenceLevel = retrySequenceLevel;
+    }
+
     public long calculateRetryDelay(int currentRetries) {
         int retrySequence = getRetrySequence().length - currentRetries;
         return Integer.parseInt(getRetrySequence()[retrySequence]) * getRetryMutiplier();
@@ -27,10 +34,30 @@ public abstract class ExternalTaskUtils {
     }
 
     protected String[] getRetrySequence() {
-        String[] seq = {"1", "1", "2", "3", "5", "8", "13", "20"};
-        if (env.getProperty("mso.workflow.topics.retrySequence") != null) {
-            seq = env.getProperty("mso.workflow.topics.retrySequence", String[].class);
+        switch (retrySequenceLevel) {
+            case SHORT:
+                String[] seqShort = {"1", "1"};
+                if (env.getProperty("mso.workflow.topics.retrySequence.short") != null) {
+                    seqShort = env.getProperty("mso.workflow.topics.retrySequence.short", String[].class);
+                }
+                return seqShort;
+            case MEDIUM:
+                String[] seqInter = {"1", "1", "2", "3", "5"};
+                if (env.getProperty("mso.workflow.topics.retrySequence.medium") != null) {
+                    seqInter = env.getProperty("mso.workflow.topics.retrySequence.medium", String[].class);
+                }
+                return seqInter;
+            case LONG:
+                String[] seqLong = {"1", "1", "2", "3", "5", "8", "13", "20"};
+                if (env.getProperty("mso.workflow.topics.retrySequence") != null) {
+                    seqLong = env.getProperty("mso.workflow.topics.retrySequence", String[].class);
+                }
+                return seqLong;
+            default:
+                String[] seq = {"1"};
+                return seq;
         }
-        return seq;
+
     }
+
 }
diff --git a/common/src/main/java/org/onap/so/utils/RetrySequenceLevel.java b/common/src/main/java/org/onap/so/utils/RetrySequenceLevel.java
new file mode 100644 (file)
index 0000000..0296469
--- /dev/null
@@ -0,0 +1,6 @@
+package org.onap.so.utils;
+
+public enum RetrySequenceLevel {
+    SHORT, MEDIUM, LONG
+
+}
index f918781..e27caa6 100644 (file)
@@ -16,7 +16,7 @@ public class ExternalTaskUtilsTest {
     private Environment mockenv;
 
     @InjectMocks
-    private ExternalTaskUtils externalTaskUtilsAnony = new ExternalTaskUtils() {
+    private ExternalTaskUtils externalTaskUtilsAnony = new ExternalTaskUtils(RetrySequenceLevel.LONG) {
 
     };