diff options
author | Jim Hahn <jrh3@att.com> | 2020-08-31 17:59:44 -0400 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2020-08-31 18:04:27 -0400 |
commit | 25c8a555a739b1c80966ed88cc123a6e9ad9318e (patch) | |
tree | d165abf12e68cf51219bcb2f3ff128cdf36a0570 /controlloop/common/controller-usecases/src | |
parent | 1c5cb8a0d740ccd92d2b3fdce8eb192cd20b147f (diff) |
Allow guards to be dynamically enabled/disabled
Modified drools-apps so that guards can be dynamically enabled and
disabled. Due to the current design, there are two properties that
control this:
- an actor-level property: when enabled, the DB connection is created,
otherwise a stub connection is created. This property is NOT dynamic
- an engine-level property: when enabled, the connection created by the
actor is used, otherwise a stub connection is used. This property IS
dynamic
Issue-ID: POLICY-2748
Change-Id: I2a5baf908ce274f2eb46a6a3f01df1b3532038ff
Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'controlloop/common/controller-usecases/src')
-rw-r--r-- | controlloop/common/controller-usecases/src/main/resources/usecases.drl | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/controlloop/common/controller-usecases/src/main/resources/usecases.drl b/controlloop/common/controller-usecases/src/main/resources/usecases.drl index d3365e6cc..12c9849f9 100644 --- a/controlloop/common/controller-usecases/src/main/resources/usecases.drl +++ b/controlloop/common/controller-usecases/src/main/resources/usecases.drl @@ -20,6 +20,7 @@ package org.onap.policy.controlloop; +import java.time.Instant; import java.util.Collections; import java.util.stream.Collectors; import org.onap.policy.controlloop.CanonicalOnset; @@ -32,6 +33,7 @@ import org.onap.policy.controlloop.actor.aai.AaiGetTenantOperation; import org.onap.policy.controlloop.actor.guard.GuardActor; import org.onap.policy.controlloop.actor.guard.DecisionOperation; import org.onap.policy.controlloop.actorserviceprovider.Operation; +import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome; import org.onap.policy.controlloop.actorserviceprovider.OperationFinalResult; import org.onap.policy.controlloop.actorserviceprovider.OperationProperties; import org.onap.policy.controlloop.actorserviceprovider.OperationResult; @@ -388,7 +390,19 @@ rule "EVENT.MANAGER.EXECUTE.STEP" $step.init(); $step.setProperties(); - if ($manager.executeStep()) { + boolean guardDisabled = "true".equalsIgnoreCase( + PolicyEngineConstants.getManager().getEnvironmentProperty("guard.disabled")); + + if (guardDisabled && "GUARD".equals($step.getActorName())) { + // guard is disabled - just enqueue a "SUCCESS" (i.e., "Permit") + OperationOutcome outcome = $step.getParams().makeOutcome(); + outcome.setStart(Instant.now()); + outcome.setEnd(outcome.getStart()); + + $manager.getOutcomes().add(outcome); + $manager.setState(State.AWAITING_OUTCOME); + + } else if ($manager.executeStep()) { $manager.setState(State.AWAITING_OUTCOME); } else { |