diff options
author | Jim Hahn <jrh3@att.com> | 2018-06-27 11:04:11 -0400 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2018-06-29 11:07:51 -0400 |
commit | cecd4ac43f199ad9f020d38fb7d1651b296d1703 (patch) | |
tree | 827cbcc055db03dd3e21a91fdfff9926f77b635c /controlloop/common/eventmanager/src/main | |
parent | 9e865fe364ed6aa3445d9b1f1844378c52feab42 (diff) |
Add time limit to local guard locking facility
Modified the local policy guard locking facility to add
a time parameter.
Modified the control loop event manager to extend the lock
when lockCurrentOperation() is re-invoked.
Modified the rules to retract the lock if the lock request
was denied.
Reorder assertions in junit test.
Change-Id: Ic9b77acbb4881a5a516f30eb56664bad1a5c4d7e
Issue-ID: POLICY-872
Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'controlloop/common/eventmanager/src/main')
-rw-r--r-- | controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java index bc9d3df79..5f36bcc20 100644 --- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java +++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java @@ -60,6 +60,12 @@ public class ControlLoopEventManager implements LockCallback, Serializable { private static final String GENERIC_VNF_IS_CLOSED_LOOP_DISABLED = "generic-vnf.is-closed-loop-disabled"; private static final String VSERVER_IS_CLOSED_LOOP_DISABLED = "vserver.is-closed-loop-disabled"; + /** + * Additional time, in seconds, to add to a "lock" request. This ensures that the lock + * won't expire right before an operation completes. + */ + private static final int ADDITIONAL_LOCK_SEC = 60; + private static final Logger logger = LoggerFactory.getLogger(ControlLoopEventManager.class); private static final long serialVersionUID = -1216568161322872641L; @@ -447,14 +453,17 @@ public class ControlLoopEventManager implements LockCallback, Serializable { // TODO: Make sure the current lock is for the same target. // Currently, it should be. But in the future it may not. // - return new LockResult<>(GuardResult.LOCK_ACQUIRED, this.targetLock); + GuardResult result = PolicyGuard.lockTarget(targetLock, + this.currentOperation.getOperationTimeout() + ADDITIONAL_LOCK_SEC); + return new LockResult<>(result, this.targetLock); } else { // // Ask the Guard // LockResult<GuardResult, TargetLock> lockResult = PolicyGuard.lockTarget(this.currentOperation.policy.getTarget().getType(), - this.currentOperation.getTargetEntity(), this.onset.getRequestId(), this); + this.currentOperation.getTargetEntity(), this.onset.getRequestId(), this, + this.currentOperation.getOperationTimeout() + ADDITIONAL_LOCK_SEC); // // Was it acquired? // |