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 ++++ .../controlloop/ophistory/OperationHistoryDataManagerImplTest.java | 4 ++++ 3 files changed, 14 insertions(+) (limited to 'controlloop') 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()); diff --git a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/ophistory/OperationHistoryDataManagerImplTest.java b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/ophistory/OperationHistoryDataManagerImplTest.java index e6d42d452..697628144 100644 --- a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/ophistory/OperationHistoryDataManagerImplTest.java +++ b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/ophistory/OperationHistoryDataManagerImplTest.java @@ -340,17 +340,21 @@ public class OperationHistoryDataManagerImplTest { */ // no start time + operation.setStart(null); mgr.store(REQ_ID, event, MY_ENTITY, operation); // no end time + operation = new ControlLoopOperation(operation); operation.setStart(Instant.now()); mgr.store(REQ_ID, event, MY_ENTITY, operation); // both start and end times + operation = new ControlLoopOperation(operation); operation.setEnd(Instant.now()); mgr.store(REQ_ID, event, MY_ENTITY, operation); // only end time + operation = new ControlLoopOperation(operation); operation.setStart(null); mgr.store(REQ_ID, event, MY_ENTITY, operation); -- cgit 1.2.3-korg