diff options
author | Jim Hahn <jrh3@att.com> | 2020-05-22 09:06:58 -0400 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2020-05-22 13:35:50 -0400 |
commit | 7e6f32d775b8455e5c8f0c244ef0fb8324ce2b7a (patch) | |
tree | d48162ab700e67edf1e4ebe82a08b394f54abbe2 /controlloop/common/eventmanager | |
parent | 0c544a84cd51f49ad3de56a2f1f47f4eb0af6c8e (diff) |
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 <jrh3@att.com>
Diffstat (limited to 'controlloop/common/eventmanager')
3 files changed, 14 insertions, 0 deletions
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); |