From 7e6f32d775b8455e5c8f0c244ef0fb8324ce2b7a Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Fri, 22 May 2020 09:06:58 -0400 Subject: Use "outcome" to indicate pending record Mariadb is setting the "endtime" to the current time by default, so rather than indicate a pending record using a null endtime, just modified the code set "outcome" to "Started" to indicate a pending record. Also added code to ensure the "outcome" is never null, as that causes a DB error. Also addressed a comment from a previous review to log a warning message if more than one matching record is found in operations history. Issue-ID: POLICY-2581 Change-Id: I6bf67551cef46808a79cc15afeb0abbfc1b6d945 Signed-off-by: Jim Hahn --- .../controlloop/eventmanager/ControlLoopOperationManager2.java | 6 ++++++ .../controlloop/ophistory/OperationHistoryDataManagerImpl.java | 4 ++++ 2 files changed, 10 insertions(+) (limited to 'controlloop/common/eventmanager/src/main') diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager2.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager2.java index 5e8cbbc2e..9ef892e14 100644 --- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager2.java +++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager2.java @@ -212,6 +212,12 @@ public class ControlLoopOperationManager2 implements Serializable { clOperation = outcome.toControlLoopOperation(); clOperation.setTarget(policy.getTarget().toString()); clResponse = outcome.getControlLoopResponse(); + + if (outcome.getEnd() == null) { + clOperation.setOutcome("Started"); + } else if (clOperation.getOutcome() == null) { + clOperation.setOutcome(""); + } } } diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/ophistory/OperationHistoryDataManagerImpl.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/ophistory/OperationHistoryDataManagerImpl.java index 1d108a349..2b67865bf 100644 --- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/ophistory/OperationHistoryDataManagerImpl.java +++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/ophistory/OperationHistoryDataManagerImpl.java @@ -278,6 +278,10 @@ public class OperationHistoryDataManagerImpl implements OperationHistoryDataMana .setParameter(6, record.getTargetEntity()) .getResultList(); + if (results.size() > 1) { + logger.warn("unexpected operation history record count {} for {}", results.size(), event.getRequestId()); + } + Dbao entry = (results.isEmpty() ? new Dbao() : results.get(0)); entry.setClosedLoopName(event.getClosedLoopControlName()); -- cgit 1.2.3-korg