diff options
Diffstat (limited to 'feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java')
-rw-r--r-- | feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java b/feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java index 6953d831..3ecb4b3a 100644 --- a/feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java +++ b/feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java @@ -179,6 +179,11 @@ public class LifecycleFsm implements Startable { */ public synchronized void start(@NonNull PolicyController controller) { logger.info("lifecycle event: start controller: {}", controller.getName()); + if (!controller.getDrools().isBrained()) { + logger.warn("ignoring lifecycle event: start controller: {}", controller); + return; + } + for (ToscaPolicyTypeIdentifier id : controller.getPolicyTypes()) { if (isToscaPolicyType(id.getName())) { PolicyTypeDroolsController ptDroolsController = (PolicyTypeDroolsController) policyTypesMap.get(id); @@ -191,6 +196,18 @@ public class LifecycleFsm implements Startable { } } + /** + * Patch a controller event. + */ + public synchronized void patch(@NonNull PolicyController controller) { + logger.info("lifecycle event: patch controller: {}", controller.getName()); + if (controller.getDrools().isBrained()) { + this.start(controller); + } else { + this.stop(controller); + } + } + @Override public synchronized boolean stop() { logger.info("lifecycle event: stop engine"); |