summaryrefslogtreecommitdiffstats
path: root/feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java
diff options
context:
space:
mode:
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.java17
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");