aboutsummaryrefslogtreecommitdiffstats
path: root/controlloop/common/controller-usecases/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'controlloop/common/controller-usecases/src/main')
-rw-r--r--controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java8
-rw-r--r--controlloop/common/controller-usecases/src/main/resources/usecases.drl26
2 files changed, 30 insertions, 4 deletions
diff --git a/controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java b/controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java
index 4db243408..cb71f8ea0 100644
--- a/controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java
+++ b/controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java
@@ -51,6 +51,7 @@ import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOp
import org.onap.policy.controlloop.drl.legacy.ControlLoopParams;
import org.onap.policy.controlloop.eventmanager.ActorConstants;
import org.onap.policy.controlloop.eventmanager.ClEventManagerWithEvent;
+import org.onap.policy.controlloop.eventmanager.EventManagerServices;
import org.onap.policy.controlloop.eventmanager.StepContext;
import org.onap.policy.drools.apps.controller.usecases.step.AaiCqStep2;
import org.onap.policy.drools.apps.controller.usecases.step.AaiGetPnfStep2;
@@ -105,16 +106,17 @@ public class UsecasesEventManager extends ClEventManagerWithEvent<Step2> impleme
/**
* Constructs the object.
*
+ * @param services services the manager should use when processing the event
* @param params control loop parameters
* @param event event to be managed by this object
* @param workMem working memory to update if this changes
* @throws ControlLoopException if the event is invalid or if a YAML processor cannot
* be created
*/
- public UsecasesEventManager(ControlLoopParams params, VirtualControlLoopEvent event, WorkingMemory workMem)
- throws ControlLoopException {
+ public UsecasesEventManager(EventManagerServices services, ControlLoopParams params, VirtualControlLoopEvent event,
+ WorkingMemory workMem) throws ControlLoopException {
- super(params, event, workMem);
+ super(services, params, event, workMem);
if (isClosedLoopDisabled(event)) {
throw new IllegalStateException("is-closed-loop-disabled is set to true on VServer or VNF");
diff --git a/controlloop/common/controller-usecases/src/main/resources/usecases.drl b/controlloop/common/controller-usecases/src/main/resources/usecases.drl
index 49ab78d71..5074215bb 100644
--- a/controlloop/common/controller-usecases/src/main/resources/usecases.drl
+++ b/controlloop/common/controller-usecases/src/main/resources/usecases.drl
@@ -45,6 +45,7 @@ import org.onap.policy.drools.apps.controller.usecases.UsecasesEventManager;
import org.onap.policy.controlloop.eventmanager.ClEventManagerWithSteps.State;
import org.onap.policy.controlloop.eventmanager.ClEventManagerWithOutcome.OperationOutcome2;
import org.onap.policy.controlloop.eventmanager.ClEventManagerWithEvent.NewEventStatus;
+import org.onap.policy.controlloop.eventmanager.EventManagerServices;
import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
import org.slf4j.LoggerFactory;
@@ -52,6 +53,27 @@ import org.slf4j.Logger;
import org.onap.policy.drools.system.PolicyEngineConstants;
+
+/*
+* Called at initial start-up, to create the event services that will be used by all
+* event managers in this rule engine instance.
+*/
+rule "CREATE.EVENT.SERVICES"
+ when
+ not (EventManagerServices())
+ then
+
+ Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
+ logger.info("{}", drools.getRule().getName());
+
+ try {
+ insert(new EventManagerServices("event-manager"));
+
+ } catch(RuntimeException e) {
+ logger.warn("{}: cannot create event services", drools.getRule().getName(), e);
+ }
+end
+
/*
*
* Called when the ControlLoopParams object has been inserted into working memory from the PAP.
@@ -114,6 +136,7 @@ rule "EVENT"
when
$params : ControlLoopParams( $clName : getClosedLoopControlName() )
$event : CanonicalOnset( closedLoopControlName == $clName )
+ $services : EventManagerServices()
not ( UsecasesEventManager( closedLoopControlName == $event.getClosedLoopControlName(),
getEvent() == $event ) )
then
@@ -144,7 +167,8 @@ rule "EVENT"
notification.setPolicyVersion($params.getPolicyVersion());
} else {
- UsecasesEventManager manager = new UsecasesEventManager($params, $event, drools.getWorkingMemory());
+ UsecasesEventManager manager =
+ new UsecasesEventManager($services, $params, $event, drools.getWorkingMemory());
insert(manager);
try {
// load the first policy/step