2e62beb08305df3bc2cc646878bc0a0c78738424
[so.git] / adapters / mso-openstack-adapters / src / main / java / org / onap / so / adapters / audit / AbstractAuditService.java
1 package org.onap.so.adapters.audit;
2
3 import java.util.Optional;
4 import org.camunda.bpm.client.task.ExternalTask;
5 import org.onap.logging.ref.slf4j.ONAPLogConstants;
6 import org.onap.so.objects.audit.AAIObjectAudit;
7 import org.onap.so.objects.audit.AAIObjectAuditList;
8 import org.slf4j.Logger;
9 import org.slf4j.LoggerFactory;
10 import org.slf4j.MDC;
11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.core.env.Environment;
13 import org.springframework.stereotype.Component;
14
15 @Component
16 public abstract class AbstractAuditService {
17
18     private static final Logger logger = LoggerFactory.getLogger(AbstractAuditService.class);
19
20
21
22     protected static final String UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI =
23             "Unable to find all VServers and L-Interaces in A&AI";
24
25     @Autowired
26     public Environment env;
27
28     /**
29      * @param auditHeatStackFailed
30      * @param auditList
31      * @return
32      */
33     protected boolean didCreateAuditFail(Optional<AAIObjectAuditList> auditList) {
34         if (auditList.get().getAuditList() != null && !auditList.get().getAuditList().isEmpty()) {
35             if (logger.isInfoEnabled()) {
36                 logger.info("Audit Results: {}", auditList.get().toString());
37             }
38             return auditList.get().getAuditList().stream().filter(auditObject -> !auditObject.isDoesObjectExist())
39                     .findFirst().map(v -> true).orElse(false);
40         } else {
41             return false;
42         }
43     }
44
45     /**
46      * @param auditHeatStackFailed
47      * @param auditList
48      * @return
49      */
50     protected boolean didDeleteAuditFail(Optional<AAIObjectAuditList> auditList) {
51         if (auditList.get().getAuditList() != null && !auditList.get().getAuditList().isEmpty()) {
52             if (logger.isInfoEnabled()) {
53                 logger.info("Audit Results: {}", auditList.get().toString());
54             }
55             return auditList.get().getAuditList().stream().filter(AAIObjectAudit::isDoesObjectExist).findFirst()
56                     .map(v -> true).orElse(false);
57         } else {
58             return false;
59         }
60     }
61
62     protected String[] getRetrySequence() {
63         return env.getProperty("mso.workflow.topics.retrySequence", String[].class);
64     }
65
66     protected void setupMDC(ExternalTask externalTask) {
67         String msoRequestId = externalTask.getVariable("mso-request-id");
68         if (msoRequestId != null && !msoRequestId.isEmpty())
69             MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId);
70     }
71
72     protected long calculateRetryDelay(int currentRetries) {
73         int retrySequence = getRetrySequence().length - currentRetries;
74         long retryMultiplier = Long.parseLong(env.getProperty("mso.workflow.topics.retryMultiplier", "6000"));
75         return Integer.parseInt(getRetrySequence()[retrySequence]) * retryMultiplier;
76     }
77 }