aboutsummaryrefslogtreecommitdiffstats
path: root/controlloop
diff options
context:
space:
mode:
Diffstat (limited to 'controlloop')
-rw-r--r--controlloop/common/controller-beijing/.gitignore1
-rw-r--r--controlloop/common/controller-casablanca/.gitignore1
-rw-r--r--controlloop/common/controller-casablanca/pom.xml (renamed from controlloop/common/controller-beijing/pom.xml)8
-rw-r--r--controlloop/common/controller-casablanca/src/main/resources/META-INF/kmodule.xml (renamed from controlloop/common/controller-beijing/src/main/resources/META-INF/kmodule.xml)2
-rw-r--r--controlloop/common/feature-controlloop-beijing/src/main/resources/META-INF/services/org.onap.policy.drools.features.PolicyEngineFeatureAPI1
-rw-r--r--controlloop/common/feature-controlloop-casablanca/pom.xml (renamed from controlloop/common/feature-controlloop-beijing/pom.xml)4
-rw-r--r--controlloop/common/feature-controlloop-casablanca/src/assembly/assemble_zip.xml (renamed from controlloop/common/feature-controlloop-beijing/src/assembly/assemble_zip.xml)4
-rw-r--r--controlloop/common/feature-controlloop-casablanca/src/main/feature/config/casablanca-controller.properties (renamed from controlloop/common/feature-controlloop-beijing/src/main/feature/config/beijing-controller.properties)4
-rw-r--r--controlloop/common/feature-controlloop-casablanca/src/main/java/org/onap/policy/drools/apps/controlloop/feature/casablanca/CasablancaFeature.java (renamed from controlloop/common/feature-controlloop-beijing/src/main/java/org/onap/policy/drools/apps/controlloop/feature/beijing/BeijingFeature.java)8
-rw-r--r--controlloop/common/feature-controlloop-casablanca/src/main/resources/META-INF/services/org.onap.policy.drools.features.PolicyEngineFeatureAPI1
-rw-r--r--controlloop/common/feature-controlloop-casablanca/src/test/java/org/onap/policy/drools/apps/controlloop/feature/casablanca/CasablancaFeatureTest.java (renamed from controlloop/common/feature-controlloop-beijing/src/test/java/org/onap/policy/drools/apps/controlloop/feature/beijing/BeijingFeatureTest.java)10
-rw-r--r--controlloop/common/pom.xml4
-rw-r--r--controlloop/packages/apps-controlloop/pom.xml2
-rw-r--r--controlloop/packages/apps-controlloop/src/files/apps-controlloop-installer2
-rw-r--r--controlloop/packages/basex-controlloop/src/files/bin/create-cl-casablanca (renamed from controlloop/packages/basex-controlloop/src/files/bin/create-cl-beijing)14
-rw-r--r--controlloop/packages/basex-controlloop/src/files/bin/push-policies-casablanca (renamed from controlloop/packages/basex-controlloop/src/files/bin/push-policies-beijing)2
-rw-r--r--controlloop/templates/archetype-cl-casablanca/pom.xml (renamed from controlloop/templates/archetype-cl-beijing/pom.xml)4
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/META-INF/maven/archetype-metadata.xml (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/META-INF/maven/archetype-metadata.xml)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/pom.xml (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/pom.xml)2
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/VoLTE.yaml (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/VoLTE.yaml)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/__artifactId__-controller.properties (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/__artifactId__-controller.properties)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/__artifactId__-controller.rest.json (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/__artifactId__-controller.rest.json)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/appc.lcm.success.json (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/appc.lcm.success.json)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/appc.legacy.success.json (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/appc.legacy.success.json)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.vcpe.abatement.json (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.vcpe.abatement.json)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.vcpe.onset.json (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.vcpe.onset.json)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.vdns.onset.json (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.vdns.onset.json)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.vfw.onset.json (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.vfw.onset.json)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.volte.onset.json (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.volte.onset.json)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/so.success.json (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/so.success.json)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vCPE.yaml (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vCPE.yaml)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vDNS.yaml (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vDNS.yaml)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vFW.yaml (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vFW.yaml)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vcpe.brmsgw.params.json (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vcpe.brmsgw.params.json)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vdns.brmsgw.params.json (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vdns.brmsgw.params.json)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vfw.brmsgw.params.json (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vfw.brmsgw.params.json)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/volte.brmsgw.params.json (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/volte.brmsgw.params.json)0
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/resources/META-INF/kmodule.xml (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/resources/META-INF/kmodule.xml)2
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl (renamed from controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl)720
-rw-r--r--controlloop/templates/archetype-cl-casablanca/src/test/resources/projects/basic/archetype.properties (renamed from controlloop/templates/archetype-cl-beijing/src/test/resources/projects/basic/archetype.properties)0
-rw-r--r--controlloop/templates/pom.xml2
41 files changed, 412 insertions, 386 deletions
diff --git a/controlloop/common/controller-beijing/.gitignore b/controlloop/common/controller-beijing/.gitignore
deleted file mode 100644
index 2e1b1149f..000000000
--- a/controlloop/common/controller-beijing/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-src/main/resources/beijing.drl
diff --git a/controlloop/common/controller-casablanca/.gitignore b/controlloop/common/controller-casablanca/.gitignore
new file mode 100644
index 000000000..f4e96567c
--- /dev/null
+++ b/controlloop/common/controller-casablanca/.gitignore
@@ -0,0 +1 @@
+src/main/resources/casablanca.drl
diff --git a/controlloop/common/controller-beijing/pom.xml b/controlloop/common/controller-casablanca/pom.xml
index 7fe97a994..deeb5b346 100644
--- a/controlloop/common/controller-beijing/pom.xml
+++ b/controlloop/common/controller-casablanca/pom.xml
@@ -29,11 +29,11 @@
<version>1.3.0-SNAPSHOT</version>
</parent>
- <artifactId>controller-beijing</artifactId>
+ <artifactId>controller-casablanca</artifactId>
<packaging>kjar</packaging>
<name>${project.artifactId}</name>
- <description>Beijing Experimental Controller</description>
+ <description>Casablanca Experimental Controller</description>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
@@ -62,9 +62,9 @@
</goals>
<configuration>
<sourceFile>
- ../../templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl
+ ../../templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl
</sourceFile>
- <destinationFile>src/main/resources/beijing.drl</destinationFile>
+ <destinationFile>src/main/resources/casablanca.drl</destinationFile>
</configuration>
</execution>
</executions>
diff --git a/controlloop/common/controller-beijing/src/main/resources/META-INF/kmodule.xml b/controlloop/common/controller-casablanca/src/main/resources/META-INF/kmodule.xml
index fb96d70fd..3c2030da9 100644
--- a/controlloop/common/controller-beijing/src/main/resources/META-INF/kmodule.xml
+++ b/controlloop/common/controller-casablanca/src/main/resources/META-INF/kmodule.xml
@@ -20,6 +20,6 @@
-->
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
<kbase name="rules">
- <ksession name="beijing"/>
+ <ksession name="casablanca"/>
</kbase>
</kmodule>
diff --git a/controlloop/common/feature-controlloop-beijing/src/main/resources/META-INF/services/org.onap.policy.drools.features.PolicyEngineFeatureAPI b/controlloop/common/feature-controlloop-beijing/src/main/resources/META-INF/services/org.onap.policy.drools.features.PolicyEngineFeatureAPI
deleted file mode 100644
index 93439489c..000000000
--- a/controlloop/common/feature-controlloop-beijing/src/main/resources/META-INF/services/org.onap.policy.drools.features.PolicyEngineFeatureAPI
+++ /dev/null
@@ -1 +0,0 @@
-org.onap.policy.drools.apps.controlloop.feature.beijing.BeijingFeature
diff --git a/controlloop/common/feature-controlloop-beijing/pom.xml b/controlloop/common/feature-controlloop-casablanca/pom.xml
index 33aca1772..dd60243c0 100644
--- a/controlloop/common/feature-controlloop-beijing/pom.xml
+++ b/controlloop/common/feature-controlloop-casablanca/pom.xml
@@ -28,10 +28,10 @@
<version>1.3.0-SNAPSHOT</version>
</parent>
- <artifactId>feature-controlloop-beijing</artifactId>
+ <artifactId>feature-controlloop-casablanca</artifactId>
<description>
- Load Experimental Beijing Control Loop Use Cases Controller as a feature.
+ Load Experimental Casablanca Control Loop Use Cases Controller as a feature.
</description>
<properties>
diff --git a/controlloop/common/feature-controlloop-beijing/src/assembly/assemble_zip.xml b/controlloop/common/feature-controlloop-casablanca/src/assembly/assemble_zip.xml
index f549cfc91..7cb637918 100644
--- a/controlloop/common/feature-controlloop-beijing/src/assembly/assemble_zip.xml
+++ b/controlloop/common/feature-controlloop-casablanca/src/assembly/assemble_zip.xml
@@ -24,7 +24,7 @@
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
- <id>feature-controlloop-beijing-package</id>
+ <id>feature-controlloop-casablanca-package</id>
<formats>
<format>zip</format>
</formats>
@@ -36,7 +36,7 @@
<directory>target</directory>
<outputDirectory>lib/feature</outputDirectory>
<includes>
- <include>feature-controlloop-beijing-${project.version}.jar</include>
+ <include>feature-controlloop-casablanca-${project.version}.jar</include>
</includes>
</fileSet>
<fileSet>
diff --git a/controlloop/common/feature-controlloop-beijing/src/main/feature/config/beijing-controller.properties b/controlloop/common/feature-controlloop-casablanca/src/main/feature/config/casablanca-controller.properties
index 787e90f0c..5d1a0a3c6 100644
--- a/controlloop/common/feature-controlloop-beijing/src/main/feature/config/beijing-controller.properties
+++ b/controlloop/common/feature-controlloop-casablanca/src/main/feature/config/casablanca-controller.properties
@@ -18,7 +18,7 @@
# ============LICENSE_END=========================================================
###
-controller.name=beijing
+controller.name=casablanca
ueb.source.topics=${{PDPD_CONFIGURATION_TOPIC}},${{DCAE_TOPIC}},APPC-CL,APPC-LCM-WRITE
@@ -71,5 +71,5 @@ ueb.sink.topics.POLICY-CL-MGT.events=org.onap.policy.controlloop.VirtualControlL
ueb.sink.topics.POLICY-CL-MGT.events.custom.gson=org.onap.policy.controlloop.util.Serialization,gsonPretty
rules.groupId=${project.groupId}
-rules.artifactId=controller-beijing
+rules.artifactId=controller-casablanca
rules.version=${project.version}
diff --git a/controlloop/common/feature-controlloop-beijing/src/main/java/org/onap/policy/drools/apps/controlloop/feature/beijing/BeijingFeature.java b/controlloop/common/feature-controlloop-casablanca/src/main/java/org/onap/policy/drools/apps/controlloop/feature/casablanca/CasablancaFeature.java
index 6f2a03c77..79bef2326 100644
--- a/controlloop/common/feature-controlloop-beijing/src/main/java/org/onap/policy/drools/apps/controlloop/feature/beijing/BeijingFeature.java
+++ b/controlloop/common/feature-controlloop-casablanca/src/main/java/org/onap/policy/drools/apps/controlloop/feature/casablanca/CasablancaFeature.java
@@ -18,13 +18,13 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.policy.drools.apps.controlloop.feature.beijing;
+package org.onap.policy.drools.apps.controlloop.feature.casablanca;
import org.onap.policy.drools.features.PolicyEngineFeatureAPI;
/**
- * Beijing installation as a feature saves time
- * loading the Beijing controller at runtime over the
+ * Casablanca installation as a feature saves time
+ * loading the Casablanca controller at runtime over the
* usual installation from nexus. It also reduces
* potential for errors in the pom.xml generated in
* the brmsgw side.
@@ -36,7 +36,7 @@ import org.onap.policy.drools.features.PolicyEngineFeatureAPI;
* functionality
*
*/
-public class BeijingFeature implements PolicyEngineFeatureAPI {
+public class CasablancaFeature implements PolicyEngineFeatureAPI {
public static final int SEQNO = 1000;
diff --git a/controlloop/common/feature-controlloop-casablanca/src/main/resources/META-INF/services/org.onap.policy.drools.features.PolicyEngineFeatureAPI b/controlloop/common/feature-controlloop-casablanca/src/main/resources/META-INF/services/org.onap.policy.drools.features.PolicyEngineFeatureAPI
new file mode 100644
index 000000000..5252ca115
--- /dev/null
+++ b/controlloop/common/feature-controlloop-casablanca/src/main/resources/META-INF/services/org.onap.policy.drools.features.PolicyEngineFeatureAPI
@@ -0,0 +1 @@
+org.onap.policy.drools.apps.controlloop.feature.casablanca.CasablancaFeature
diff --git a/controlloop/common/feature-controlloop-beijing/src/test/java/org/onap/policy/drools/apps/controlloop/feature/beijing/BeijingFeatureTest.java b/controlloop/common/feature-controlloop-casablanca/src/test/java/org/onap/policy/drools/apps/controlloop/feature/casablanca/CasablancaFeatureTest.java
index 66e5a3e02..8960603ae 100644
--- a/controlloop/common/feature-controlloop-beijing/src/test/java/org/onap/policy/drools/apps/controlloop/feature/beijing/BeijingFeatureTest.java
+++ b/controlloop/common/feature-controlloop-casablanca/src/test/java/org/onap/policy/drools/apps/controlloop/feature/casablanca/CasablancaFeatureTest.java
@@ -17,16 +17,14 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-package org.onap.policy.drools.apps.controlloop.feature.beijing;
+package org.onap.policy.drools.apps.controlloop.feature.casablanca;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
-import org.onap.policy.drools.apps.controlloop.feature.beijing.BeijingFeature;
-
-public class BeijingFeatureTest {
+public class CasablancaFeatureTest {
@org.junit.Test
public void getSequenceNumber() {
- assertTrue(new BeijingFeature().getSequenceNumber() == BeijingFeature.SEQNO);
+ assertEquals(CasablancaFeature.SEQNO, new CasablancaFeature().getSequenceNumber());
}
}
diff --git a/controlloop/common/pom.xml b/controlloop/common/pom.xml
index ae318d626..5e3b3de37 100644
--- a/controlloop/common/pom.xml
+++ b/controlloop/common/pom.xml
@@ -39,11 +39,11 @@
<module>model-impl</module>
<module>policy-yaml</module>
<module>simulators</module>
- <module>controller-beijing</module>
+ <module>controller-casablanca</module>
<module>feature-controlloop-utils</module>
<module>feature-controlloop-trans</module>
<module>feature-controlloop-amsterdam</module>
- <module>feature-controlloop-beijing</module>
+ <module>feature-controlloop-casablanca</module>
<module>msb</module>
</modules>
diff --git a/controlloop/packages/apps-controlloop/pom.xml b/controlloop/packages/apps-controlloop/pom.xml
index d345d8f5f..9773ee6f6 100644
--- a/controlloop/packages/apps-controlloop/pom.xml
+++ b/controlloop/packages/apps-controlloop/pom.xml
@@ -90,7 +90,7 @@
</dependency>
<dependency>
<groupId>org.onap.policy.drools-applications.controlloop.common</groupId>
- <artifactId>feature-controlloop-beijing</artifactId>
+ <artifactId>feature-controlloop-casablanca</artifactId>
<version>${project.version}</version>
<type>zip</type>
</dependency>
diff --git a/controlloop/packages/apps-controlloop/src/files/apps-controlloop-installer b/controlloop/packages/apps-controlloop/src/files/apps-controlloop-installer
index b50f6efea..4d75ec8e3 100644
--- a/controlloop/packages/apps-controlloop/src/files/apps-controlloop-installer
+++ b/controlloop/packages/apps-controlloop/src/files/apps-controlloop-installer
@@ -37,7 +37,7 @@ source ${POLICY_HOME}/etc/build.info
features install controlloop-trans
features install controlloop-amsterdam
-features install controlloop-beijing
+features install controlloop-casablanca
features enable controlloop-trans
features enable controlloop-amsterdam
diff --git a/controlloop/packages/basex-controlloop/src/files/bin/create-cl-beijing b/controlloop/packages/basex-controlloop/src/files/bin/create-cl-casablanca
index 6972fd0fb..d32657444 100644
--- a/controlloop/packages/basex-controlloop/src/files/bin/create-cl-beijing
+++ b/controlloop/packages/basex-controlloop/src/files/bin/create-cl-casablanca
@@ -25,14 +25,14 @@
source "${POLICY_HOME}"/etc/build.info
-echo "Control Loop CLI Generator for R2 Beijing Release"
+echo "Control Loop CLI Generator for R2 Casablanca Release"
echo "---------------------------------------------------"
echo
-GROUP_ID="org.onap.policy.rules.beijing"
-ARTIFACT_ID="beijing"
+GROUP_ID="org.onap.policy.rules.casablanca"
+ARTIFACT_ID="casablanca"
VERSION="${version:-1.2.0}"
-PACKAGE="org.onap.policy.rules.beijing"
+PACKAGE="org.onap.policy.rules.casablanca"
# vCPE Policy Parameters
VCPE_CONTROL_LOOP_NAME="ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e"
@@ -55,7 +55,7 @@ VOLTE_POLICY_NAME="volte"
VOLTE_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+VFC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
# Generic Scope and Version
-POLICY_SCOPE="beijing"
+POLICY_SCOPE="casablanca"
POLICY_VERSION="v0.0.1"
BRMSGW_TOPIC="BRMSGW-POLICY"
@@ -196,7 +196,7 @@ if [ ! -w "${DIR_TMP}" ]; then
fi
ARCHETYPE_GROUP_ID="org.onap.policy.drools-applications.controlloop.templates"
-ARCHETYPE_ARTIFACT_ID="archetype-cl-beijing"
+ARCHETYPE_ARTIFACT_ID="archetype-cl-casablanca"
ARCHETYPE_VERSION="${VERSION}"
if [ -d "${DIR_TMP}/${ARTIFACT_ID}/" ]; then
@@ -310,7 +310,7 @@ echo "1. copy ${DIR_TMP}/${ARTIFACT_ID}/${ARTIFACT_ID}-controller.properties und
echo " and restart the pdp-d (policy stop; policy start)"
echo "2. cd ${DIR_TMP}/${ARTIFACT_ID}/; rest-add-controller ${ARTIFACT_ID}"
echo
-echo "Once this Control Loop is deployed, you can run the push-policies-beijing script"
+echo "Once this Control Loop is deployed, you can run the push-policies-casablanca script"
echo "to automatically insert the policies for all use cases supported in this release"
echo
)
diff --git a/controlloop/packages/basex-controlloop/src/files/bin/push-policies-beijing b/controlloop/packages/basex-controlloop/src/files/bin/push-policies-casablanca
index 92259790a..685deb1c3 100644
--- a/controlloop/packages/basex-controlloop/src/files/bin/push-policies-beijing
+++ b/controlloop/packages/basex-controlloop/src/files/bin/push-policies-casablanca
@@ -119,4 +119,4 @@ echo "Policy insertions completed."
echo
echo "The working memory is now: "
-curl --silent --user @1b3rt:31nst31n -X GET http://localhost:9696/policy/pdp/engine/controllers/${CONTROLLER_NAME}/drools/facts/beijing | python -m json.tool
+curl --silent --user @1b3rt:31nst31n -X GET http://localhost:9696/policy/pdp/engine/controllers/${CONTROLLER_NAME}/drools/facts/casablanca | python -m json.tool
diff --git a/controlloop/templates/archetype-cl-beijing/pom.xml b/controlloop/templates/archetype-cl-casablanca/pom.xml
index e98eab18c..dd9ef5abe 100644
--- a/controlloop/templates/archetype-cl-beijing/pom.xml
+++ b/controlloop/templates/archetype-cl-casablanca/pom.xml
@@ -30,10 +30,10 @@
<version>1.3.0-SNAPSHOT</version>
</parent>
- <artifactId>archetype-cl-beijing</artifactId>
+ <artifactId>archetype-cl-casablanca</artifactId>
<name>${project.artifactId}</name>
- <description>Archetype to generate a yaml based control loop for ONAP Beijing release</description>
+ <description>Archetype to generate a yaml based control loop for ONAP Casablanca release</description>
<build>
<extensions>
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/META-INF/maven/archetype-metadata.xml b/controlloop/templates/archetype-cl-casablanca/src/main/resources/META-INF/maven/archetype-metadata.xml
index 2acec10dd..2acec10dd 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/META-INF/maven/archetype-metadata.xml
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/pom.xml b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/pom.xml
index fae94aecb..1fc31bae2 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/pom.xml
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/pom.xml
@@ -29,7 +29,7 @@
<packaging>kjar</packaging>
<name>${artifactId}</name>
- <description>Control Loop Beijing Release Rules</description>
+ <description>Control Loop Casablanca Release Rules</description>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/VoLTE.yaml b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/VoLTE.yaml
index 03001520b..03001520b 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/VoLTE.yaml
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/VoLTE.yaml
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/__artifactId__-controller.properties b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/__artifactId__-controller.properties
index 390a946fe..390a946fe 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/__artifactId__-controller.properties
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/__artifactId__-controller.properties
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/__artifactId__-controller.rest.json b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/__artifactId__-controller.rest.json
index 148e35562..148e35562 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/__artifactId__-controller.rest.json
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/__artifactId__-controller.rest.json
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/appc.lcm.success.json b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/appc.lcm.success.json
index 985685000..985685000 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/appc.lcm.success.json
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/appc.lcm.success.json
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/appc.legacy.success.json b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/appc.legacy.success.json
index 2c6570d03..2c6570d03 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/appc.legacy.success.json
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/appc.legacy.success.json
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.vcpe.abatement.json b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.vcpe.abatement.json
index 3d6dc4ae1..3d6dc4ae1 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.vcpe.abatement.json
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.vcpe.abatement.json
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.vcpe.onset.json b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.vcpe.onset.json
index 98403b034..98403b034 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.vcpe.onset.json
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.vcpe.onset.json
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.vdns.onset.json b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.vdns.onset.json
index 80730e9e3..80730e9e3 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.vdns.onset.json
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.vdns.onset.json
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.vfw.onset.json b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.vfw.onset.json
index 0aa0effa6..0aa0effa6 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.vfw.onset.json
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.vfw.onset.json
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.volte.onset.json b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.volte.onset.json
index 2cf28fb3f..2cf28fb3f 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/dcae.volte.onset.json
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/dcae.volte.onset.json
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/so.success.json b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/so.success.json
index 8f3387e4d..8f3387e4d 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/so.success.json
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/so.success.json
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vCPE.yaml b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vCPE.yaml
index 2838b6127..2838b6127 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vCPE.yaml
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vCPE.yaml
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vDNS.yaml b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vDNS.yaml
index d4ed17396..d4ed17396 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vDNS.yaml
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vDNS.yaml
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vFW.yaml b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vFW.yaml
index dcbdf5459..dcbdf5459 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vFW.yaml
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vFW.yaml
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vcpe.brmsgw.params.json b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vcpe.brmsgw.params.json
index 6b0ebd227..6b0ebd227 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vcpe.brmsgw.params.json
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vcpe.brmsgw.params.json
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vdns.brmsgw.params.json b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vdns.brmsgw.params.json
index 744723c87..744723c87 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vdns.brmsgw.params.json
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vdns.brmsgw.params.json
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vfw.brmsgw.params.json b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vfw.brmsgw.params.json
index 353c19c59..353c19c59 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/vfw.brmsgw.params.json
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/vfw.brmsgw.params.json
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/volte.brmsgw.params.json b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/volte.brmsgw.params.json
index c20b25adc..c20b25adc 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/config/volte.brmsgw.params.json
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/config/volte.brmsgw.params.json
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/resources/META-INF/kmodule.xml b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/resources/META-INF/kmodule.xml
index 0e6660e5c..d30e3c525 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/resources/META-INF/kmodule.xml
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/resources/META-INF/kmodule.xml
@@ -24,6 +24,6 @@
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
<kbase name="rules">
- <ksession name="beijing"/>
+ <ksession name="casablanca"/>
</kbase>
</kmodule>
diff --git a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl
index 7e0d7e1a0..24cb7f86a 100644
--- a/controlloop/templates/archetype-cl-beijing/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl
+++ b/controlloop/templates/archetype-cl-casablanca/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -97,19 +97,17 @@ end
/*
*
-* Called to insert the ControlLoopParams object into working memory from the BRMSGW.
+* Called when the ControlLoopParams object has been inserted into working memory from the BRMSGW.
*
*/
rule "INSERT.PARAMS"
when
$params : ControlLoopParams()
then
-
- insert($params);
// Note: globals have bad behavior when persistence is used,
// hence explicitly getting the logger vs using a global
-
+
Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
logger.info("{}: {} : YAML=[{}]", $params.getClosedLoopControlName(), $params.getPolicyName() + "." + drools.getRule().getName(), $params.getControlLoopYaml());
end
@@ -126,12 +124,12 @@ rule "EVENT"
$event : VirtualControlLoopEvent( closedLoopControlName == $clName )
not ( ControlLoopEventManager( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId() ) )
then
-
+
Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
logger.info("{}: {}", $clName, $params.getPolicyName() + "." + drools.getRule().getName());
-
+
try {
-
+
//
// Check the event, because we need it to not be null when
// we create the ControlLoopEventManager. The ControlLoopEventManager
@@ -145,18 +143,18 @@ rule "EVENT"
notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName());
notification.setPolicyScope($params.getPolicyScope());
notification.setPolicyVersion($params.getPolicyVersion());
-
+
//
// Let interested parties know
//
PolicyEngine.manager.deliver("POLICY-CL-MGT", notification);
-
+
//
// Retract it from memory
//
retract($event);
} else if ($event.getClosedLoopEventStatus() != ControlLoopEventStatus.ONSET) {
- throw new ControlLoopException($event.getClosedLoopEventStatus() + " received with no prior onset");
+ throw new ControlLoopException($event.getClosedLoopEventStatus() + " received with no prior onset");
} else {
//
// Create an EventManager
@@ -203,7 +201,7 @@ rule "EVENT"
//
retract($event);
}
-
+
//
// Now that the manager is inserted into Drools working memory, we'll wait for
// another rule to fire in order to continue processing. This way we can also
@@ -212,7 +210,7 @@ rule "EVENT"
}
} catch (Exception e) {
logger.warn("{}: {}", $clName, $params.getPolicyName() + "." + drools.getRule().getName(), e);
-
+
VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
notification.setNotification(ControlLoopNotificationType.REJECTED);
notification.setMessage("Exception occurred: " + e.getMessage());
@@ -245,66 +243,66 @@ rule "EVENT.MANAGER"
then
Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
- logger.info("{}: {}: event={} manager={} clTimer={}",
+ logger.info("{}: {}: event={} manager={} clTimer={}",
$clName, $params.getPolicyName() + "." + drools.getRule().getName(),
$event, $manager, $clTimer);
-
+
try {
- //
- // Check which event this is.
- //
- ControlLoopEventManager.NEW_EVENT_STATUS eventStatus = $manager.onNewEvent($event);
- //
- // Check what kind of event this is
- //
- if (eventStatus == NEW_EVENT_STATUS.SUBSEQUENT_ONSET) {
- //
- // We don't care about subsequent onsets
- //
- logger.info("{}: {}: subsequent onset",
- $clName, $params.getPolicyName() + "." + drools.getRule().getName());
- retract($event);
- return;
- }
- if (eventStatus == NEW_EVENT_STATUS.SYNTAX_ERROR) {
- //
- // Ignore any bad syntax events
- //
- logger.warn("{}: {}: syntax error",
- $clName, $params.getPolicyName() + "." + drools.getRule().getName());
- retract($event);
- return;
- }
- //
- // We only want the initial ONSET event in memory,
- // all the other events need to be retracted to support
- // cleanup and avoid the other rules being fired for this event.
- //
- if (eventStatus != NEW_EVENT_STATUS.FIRST_ONSET) {
- logger.warn("{}: {}: no first onset",
- $clName, $params.getPolicyName() + "." + drools.getRule().getName());
- retract($event);
- }
-
- logger.debug("{}: {}: target={}", $clName,
- $params.getPolicyName() + "." + drools.getRule().getName(), $event.getTarget());
- //
- // Now start seeing if we need to process this event
- //
+ //
+ // Check which event this is.
+ //
+ ControlLoopEventManager.NEW_EVENT_STATUS eventStatus = $manager.onNewEvent($event);
+ //
+ // Check what kind of event this is
+ //
+ if (eventStatus == NEW_EVENT_STATUS.SUBSEQUENT_ONSET) {
+ //
+ // We don't care about subsequent onsets
+ //
+ logger.info("{}: {}: subsequent onset",
+ $clName, $params.getPolicyName() + "." + drools.getRule().getName());
+ retract($event);
+ return;
+ }
+ if (eventStatus == NEW_EVENT_STATUS.SYNTAX_ERROR) {
+ //
+ // Ignore any bad syntax events
+ //
+ logger.warn("{}: {}: syntax error",
+ $clName, $params.getPolicyName() + "." + drools.getRule().getName());
+ retract($event);
+ return;
+ }
+ //
+ // We only want the initial ONSET event in memory,
+ // all the other events need to be retracted to support
+ // cleanup and avoid the other rules being fired for this event.
+ //
+ if (eventStatus != NEW_EVENT_STATUS.FIRST_ONSET) {
+ logger.warn("{}: {}: no first onset",
+ $clName, $params.getPolicyName() + "." + drools.getRule().getName());
+ retract($event);
+ }
+
+ logger.debug("{}: {}: target={}", $clName,
+ $params.getPolicyName() + "." + drools.getRule().getName(), $event.getTarget());
+ //
+ // Now start seeing if we need to process this event
+ //
//
// Check if this is a Final Event
//
VirtualControlLoopNotification notification = $manager.isControlLoopFinal();
-
-
+
+
if (notification != null) {
//
// Its final, but are we waiting for abatement?
//
if ($manager.getNumAbatements() > 0) {
- logger.info("{}: {}: abatement received for {}. Closing the control loop",
- $clName, $params.getPolicyName() + "." + drools.getRule().getName(),
+ logger.info("{}: {}: abatement received for {}. Closing the control loop",
+ $clName, $params.getPolicyName() + "." + drools.getRule().getName(),
$event.getRequestId());
notification.setFrom("policy");
notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName());
@@ -319,16 +317,16 @@ rule "EVENT.MANAGER"
//
TargetLock lock = $manager.unlockCurrentOperation();
if (lock != null) {
- logger.debug("{}: {}: retracting lock=", $clName,
+ logger.debug("{}: {}: retracting lock=", $clName,
$params.getPolicyName() + "." + drools.getRule().getName(), lock);
retract(lock);
}
//
// Retract everything from memory
//
- logger.info("{}: {}: retracting onset, manager, and timer",
+ logger.info("{}: {}: retracting onset, manager, and timer",
$clName, $params.getPolicyName() + "." + drools.getRule().getName());
-
+
retract($manager.getOnsetEvent());
retract($manager);
retract($clTimer);
@@ -342,18 +340,18 @@ rule "EVENT.MANAGER"
// Check whether we need to wait for abatement
//
if ($manager.getProcessor().getControlLoop().getAbatement() == true && notification.getNotification() == ControlLoopNotificationType.FINAL_SUCCESS) {
- logger.info("{}: {}: waiting for abatement ..",
+ logger.info("{}: {}: waiting for abatement ..",
$clName, $params.getPolicyName() + "." + drools.getRule().getName());
} else {
- logger.info("{}: {}: no abatement expect for {}. Closing the control loop",
- $clName, $params.getPolicyName() + "." + drools.getRule().getName(),
+ logger.info("{}: {}: no abatement expect for {}. Closing the control loop",
+ $clName, $params.getPolicyName() + "." + drools.getRule().getName(),
$event.getRequestId());
-
+
notification.setFrom("policy");
notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName());
notification.setPolicyScope($params.getPolicyScope());
notification.setPolicyVersion($params.getPolicyVersion());
-
+
//
// In this case, we are done
//
@@ -363,16 +361,16 @@ rule "EVENT.MANAGER"
//
TargetLock lock = $manager.unlockCurrentOperation();
if (lock != null) {
- logger.debug("{}: {}: retracting lock=", $clName,
+ logger.debug("{}: {}: retracting lock=", $clName,
$params.getPolicyName() + "." + drools.getRule().getName(), lock);
retract(lock);
}
//
// Retract everything from memory
//
- logger.info("{}: {}: retracting onset, manager, and timer",
+ logger.info("{}: {}: retracting onset, manager, and timer",
$clName, $params.getPolicyName() + "." + drools.getRule().getName());
-
+
retract($manager.getOnsetEvent());
retract($manager);
retract($clTimer);
@@ -388,77 +386,81 @@ rule "EVENT.MANAGER"
// Let's ask for a lock right away
//
LockResult<GuardResult, TargetLock> result = $manager.lockCurrentOperation();
- logger.info("{}: {}: guard lock acquired={}",
- $clName, $params.getPolicyName() + "." + drools.getRule().getName(),
+ logger.info("{}: {}: guard lock acquired={}",
+ $clName, $params.getPolicyName() + "." + drools.getRule().getName(),
result.getB());
if (result.getA().equals(GuardResult.LOCK_ACQUIRED)) {
- //
- // insert the operation into memory
- //
- insert(operation);
-
- //
- // insert operation timeout object
- //
- OperationTimer opTimer = new OperationTimer();
- opTimer.setClosedLoopControlName($event.getClosedLoopControlName());
- opTimer.setRequestID($event.getRequestId().toString());
- opTimer.setDelay(operation.getOperationTimeout().toString() + "s");
- insert(opTimer);
-
- //
- // Insert lock into memory
- //
- insert(result.getB());
+ //
+ // insert the operation into memory
+ //
+ insert(operation);
+
+ //
+ // insert operation timeout object
+ //
+ OperationTimer opTimer = new OperationTimer();
+ opTimer.setClosedLoopControlName($event.getClosedLoopControlName());
+ opTimer.setRequestID($event.getRequestId().toString());
+ opTimer.setDelay(operation.getOperationTimeout().toString() + "s");
+ insert(opTimer);
+
+ //
+ // Insert lock into memory
+ //
+ insert(result.getB());
}
else {
- logger.debug("The target resource {} is already processing",
- $event.getAai().get($event.getTarget()));
- notification = new VirtualControlLoopNotification($event);
- notification.setNotification(ControlLoopNotificationType.REJECTED);
- notification.setMessage("The target " + $event.getAai().get($event.getTarget()) + " is already locked");
- notification.setFrom("policy");
- notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName());
- notification.setPolicyScope($params.getPolicyScope());
- notification.setPolicyVersion($params.getPolicyVersion());
-
- PolicyEngine.manager.deliver("POLICY-CL-MGT", notification);
-
- retract($event);
- retract($manager);
- retract($clTimer);
+ logger.debug("The target resource {} is already processing",
+ $event.getAai().get($event.getTarget()));
+ notification = new VirtualControlLoopNotification($event);
+ notification.setNotification(ControlLoopNotificationType.REJECTED);
+ notification.setMessage("The target " + $event.getAai().get($event.getTarget()) + " is already locked");
+ notification.setFrom("policy");
+ notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName());
+ notification.setPolicyScope($params.getPolicyScope());
+ notification.setPolicyVersion($params.getPolicyVersion());
+
+ PolicyEngine.manager.deliver("POLICY-CL-MGT", notification);
+
+ retract($event);
+ retract($manager);
+ retract($clTimer);
+
+ if(result.getB() != null) {
+ retract(result.getB());
+ }
}
- logger.info("{}: {}: starting operation={}",
- $clName, $params.getPolicyName() + "." + drools.getRule().getName(),
+ logger.info("{}: {}: starting operation={}",
+ $clName, $params.getPolicyName() + "." + drools.getRule().getName(),
operation);
} else {
- //
- // Probably waiting for abatement
- //
- logger.info("{}: {}: no operation, probably waiting for abatement",
+ //
+ // Probably waiting for abatement
+ //
+ logger.info("{}: {}: no operation, probably waiting for abatement",
$clName, $params.getPolicyName() + "." + drools.getRule().getName());
}
}
} catch (Exception e) {
- logger.warn("{}: {}: unexpected",
- $clName,
- $params.getPolicyName() + "." + drools.getRule().getName(), e);
-
- VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
- notification.setNotification(ControlLoopNotificationType.FINAL_FAILURE);
- notification.setMessage(e.getMessage());
- notification.setFrom("policy");
- notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName());
+ logger.warn("{}: {}: unexpected",
+ $clName,
+ $params.getPolicyName() + "." + drools.getRule().getName(), e);
+
+ VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
+ notification.setNotification(ControlLoopNotificationType.FINAL_FAILURE);
+ notification.setMessage(e.getMessage());
+ notification.setFrom("policy");
+ notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName());
notification.setPolicyScope($params.getPolicyScope());
notification.setPolicyVersion($params.getPolicyVersion());
-
- PolicyEngine.manager.deliver("POLICY-CL-MGT", notification);
-
+
+ PolicyEngine.manager.deliver("POLICY-CL-MGT", notification);
+
retract($event);
retract($manager);
retract($clTimer);
}
-
+
end
/*
@@ -477,100 +479,120 @@ rule "EVENT.MANAGER.OPERATION.LOCKED.GUARD_PERMITTED"
then
Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
- logger.info("{}: {}: event={} manager={} operation={} lock={}",
+ logger.info("{}: {}: event={} manager={} operation={} lock={}",
$clName, $params.getPolicyName() + "." + drools.getRule().getName(),
- $event, $manager, $operation, $lock);
+ $event, $manager, $operation, $lock);
Object request = null;
boolean caughtException = false;
+
try {
request = $operation.startOperation($event);
- }
- catch (ControlLoopException e) {
+
+ if (request != null) {
+ logger.debug("{}: {}: starting operation ..",
+ $clName,
+ $params.getPolicyName() + "." + drools.getRule().getName());
+ //
+ // Tell interested parties we are performing this Operation
+ //
+ VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
+ notification.setNotification(ControlLoopNotificationType.OPERATION);
+ notification.setMessage($operation.getOperationMessage());
+ notification.setHistory($operation.getHistory());
+ notification.setFrom("policy");
+ notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName());
+ notification.setPolicyScope($params.getPolicyScope());
+ notification.setPolicyVersion($params.getPolicyVersion());
+
+ PolicyEngine.manager.deliver("POLICY-CL-MGT", notification);
+
+ switch ($operation.policy.getActor()){
+
+ case "APPC":
+
+ if (request instanceof Request) {
+ PolicyEngine.manager.deliver("APPC-CL", request);
+ }
+ else if (request instanceof LcmRequestWrapper) {
+ PolicyEngine.manager.deliver("APPC-LCM-READ", request);
+ }
+ break;
+ case "SO":
+ // at this point the AAI named query request should have already been made, the response recieved and used
+ // in the construction of the SO Request which is stored in operationRequest
+
+ if(request instanceof SORequest) {
+ // Call SO. The response will be inserted into memory once it's received
+ SOActorServiceProvider.sendRequest($event.getRequestId().toString(), drools.getWorkingMemory(), request);
+ }
+ break;
+ case "VFC":
+ if (request instanceof VFCRequest) {
+ // Start VFC thread
+ Thread t = new Thread(new VFCManager(drools.getWorkingMemory(), (VFCRequest)request));
+ t.start();
+ }
+ break;
+ }
+ } else {
+ //
+ // What happens if its null?
+ //
+ logger.warn("{}: {}: unexpected null operation request",
+ $clName,
+ $params.getPolicyName() + "." + drools.getRule().getName());
+ if ("SO".equals($operation.policy.getActor())) {
+ retract($opTimer);
+ retract($operation);
+ modify($manager) {finishOperation($operation)};
+ }
+ else if ("vfc".equalsIgnoreCase($operation.policy.getActor())) {
+ retract($opTimer);
+ retract($operation);
+ modify($manager) {finishOperation($operation)};
+ }
+ }
+
+ } catch (Exception e) {
String msg = e.getMessage();
- logger.warn("{}: {}: operation={}: AAI failure: {}",
- $clName, $params.getPolicyName() + "." + drools.getRule().getName(),
+ logger.warn("{}: {}: operation={}: AAI failure: {}",
+ $clName,
+ $params.getPolicyName() + "." + drools.getRule().getName(),
$operation, msg, e);
$operation.setOperationHasException(msg);
+
+ if(request != null) {
+ //
+ // Create a notification for it ("DB Write - end operation")
+ //
+ VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
+ notification.setFrom("policy");
+ notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName());
+ notification.setPolicyScope($params.getPolicyScope());
+ notification.setPolicyVersion($params.getPolicyVersion());
+ notification.setNotification(ControlLoopNotificationType.OPERATION_FAILURE);
+ notification.setMessage($operation.getOperationHistory());
+ notification.setHistory($operation.getHistory());
+
+ PolicyEngine.manager.deliver("POLICY-CL-MGT", notification);
+ }
+
retract($opTimer);
retract($operation);
caughtException = true;
}
-
+
// Having the modify statement in the catch clause doesn't work for whatever reason
if (caughtException) {
modify($manager) {finishOperation($operation)};
}
- else if (request != null) {
- logger.debug("{}: {}: starting operation ..",
- $clName, $params.getPolicyName() + "." + drools.getRule().getName());
- //
- // Tell interested parties we are performing this Operation
- //
- VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
- notification.setNotification(ControlLoopNotificationType.OPERATION);
- notification.setMessage($operation.getOperationMessage());
- notification.setHistory($operation.getHistory());
- notification.setFrom("policy");
- notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName());
- notification.setPolicyScope($params.getPolicyScope());
- notification.setPolicyVersion($params.getPolicyVersion());
-
- PolicyEngine.manager.deliver("POLICY-CL-MGT", notification);
-
- switch ($operation.policy.getActor()){
-
- case "APPC":
-
- if (request instanceof Request) {
- PolicyEngine.manager.deliver("APPC-CL", request);
- }
- else if (request instanceof LcmRequestWrapper) {
- PolicyEngine.manager.deliver("APPC-LCM-READ", request);
- }
- break;
- case "SO":
- // at this point the AAI named query request should have already been made, the response recieved and used
- // in the construction of the SO Request which is stored in operationRequest
-
- if(request instanceof SORequest) {
- // Call SO. The response will be inserted into memory once it's received
- SOActorServiceProvider.sendRequest($event.getRequestId().toString(), drools.getWorkingMemory(), request);
- }
- break;
- case "VFC":
- if (request instanceof VFCRequest) {
- // Start VFC thread
- Thread t = new Thread(new VFCManager(drools.getWorkingMemory(), (VFCRequest)request));
- t.start();
- }
- break;
- }
- } else {
- //
- // What happens if its null?
- //
- logger.warn("{}: {}: unexpected null operation request",
- $clName,
- $params.getPolicyName() + "." + drools.getRule().getName());
- if ("SO".equals($operation.policy.getActor())) {
- retract($opTimer);
- retract($operation);
- modify($manager) {finishOperation($operation)};
- }
- else if ("vfc".equalsIgnoreCase($operation.policy.getActor())) {
- retract($opTimer);
- retract($operation);
- modify($manager) {finishOperation($operation)};
- }
-
- }
end
/*
*
-* We were able to acquire a lock so now let's ask Xacml Guard whether
+* We were able to acquire a lock so now let's ask Xacml Guard whether
* we are allowed to proceed with the request to the actor.
*
*/
@@ -584,10 +606,10 @@ rule "EVENT.MANAGER.OPERATION.LOCKED.GUARD_NOT_YET_QUERIED"
then
Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
- logger.info("{}: {}: event={} manager={} operation={} lock={}",
+ logger.info("{}: {}: event={} manager={} operation={} lock={}",
$clName, $params.getPolicyName() + "." + drools.getRule().getName(),
$event, $manager, $operation, $lock);
-
+
//
// Sending notification that we are about to query Guard ("DB write - start operation")
//
@@ -599,23 +621,23 @@ rule "EVENT.MANAGER.OPERATION.LOCKED.GUARD_NOT_YET_QUERIED"
notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName());
notification.setPolicyScope($params.getPolicyScope());
notification.setPolicyVersion($params.getPolicyVersion());
-
+
PolicyEngine.manager.deliver("POLICY-CL-MGT", notification);
-
+
//
- // Now send Guard Request to XACML Guard. In order to bypass the call to Guard,
+ // Now send Guard Request to XACML Guard. In order to bypass the call to Guard,
// just change guardEnabled to false.
- //
- // In order to use REST XACML, provide a URL instead of "" as a second argument
- // to the CallGuardTask() and set the first argument to null
+ //
+ // In order to use REST XACML, provide a URL instead of "" as a second argument
+ // to the CallGuardTask() and set the first argument to null
// (instead of XacmlPdpEngine).
//
-
+
// NOTE: The environment properties uses "guard.disabled" but the boolean is guardEnabled
boolean guardEnabled = "false".equalsIgnoreCase(PolicyEngine.manager.getEnvironmentProperty("guard.disabled"));
-
+
if(guardEnabled){
-
+
Thread t = new Thread(new org.onap.policy.guard.CallGuardTask(
drools.getWorkingMemory(),
$event.getClosedLoopControlName(),
@@ -633,14 +655,14 @@ rule "EVENT.MANAGER.OPERATION.LOCKED.GUARD_NOT_YET_QUERIED"
end
//
-// This rule will be triggered when a thread talking to the XACML Guard inserts a
+// This rule will be triggered when a thread talking to the XACML Guard inserts a
// guardResponse object into the working memory
//
rule "GUARD.RESPONSE"
when
$params : ControlLoopParams( $clName : getClosedLoopControlName() )
$event : VirtualControlLoopEvent( closedLoopControlName == $clName, closedLoopEventStatus == ControlLoopEventStatus.ONSET )
- $manager : ControlLoopEventManager( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId() )
+ $manager : ControlLoopEventManager( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId() )
$operation : ControlLoopOperationManager( onset.closedLoopControlName == $event.getClosedLoopControlName(), onset.getRequestId() == $event.getRequestId() )
$lock : TargetLock (requestID == $event.getRequestId())
$opTimer : OperationTimer( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId().toString() )
@@ -648,16 +670,16 @@ rule "GUARD.RESPONSE"
then
Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
- logger.info("{}: {}: event={} manager={} operation={} lock={} opTimer={} guardResponse={}",
+ logger.info("{}: {}: event={} manager={} operation={} lock={} opTimer={} guardResponse={}",
$clName, $params.getPolicyName() + "." + drools.getRule().getName(),
$event, $manager, $operation, $lock, $opTimer, $guardResponse);
-
-
+
+
//we will permit the operation if there was no Guard for it
if("Indeterminate".equalsIgnoreCase($guardResponse.getResult())){
$guardResponse.setResult("Permit");
}
-
+
//
// This notification has Guard result in "message". ("DB write - end operation in case of Guard Deny")
//
@@ -669,11 +691,11 @@ rule "GUARD.RESPONSE"
notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName());
notification.setPolicyScope($params.getPolicyScope());
notification.setPolicyVersion($params.getPolicyVersion());
-
+
PolicyEngine.manager.deliver("POLICY-CL-MGT", notification);
-
+
if("Permit".equalsIgnoreCase($guardResponse.getResult())){
-
+
modify($operation){setGuardApprovalStatus($guardResponse.getResult())};
}
else {
@@ -684,9 +706,9 @@ rule "GUARD.RESPONSE"
retract($operation);
modify($manager) {finishOperation($operation)};
}
-
+
retract($guardResponse);
-
+
end
/*
@@ -703,7 +725,7 @@ end
rule "APPC.RESPONSE"
when
$params : ControlLoopParams( $clName : getClosedLoopControlName() )
- $event : VirtualControlLoopEvent( closedLoopControlName == $clName, closedLoopEventStatus == ControlLoopEventStatus.ONSET )
+ $event : VirtualControlLoopEvent( closedLoopControlName == $clName, closedLoopEventStatus == ControlLoopEventStatus.ONSET )
$manager : ControlLoopEventManager( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId() )
$operation : ControlLoopOperationManager( onset.closedLoopControlName == $event.getClosedLoopControlName(), onset.getRequestId() == $event.getRequestId() )
$opTimer : OperationTimer( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId().toString() )
@@ -713,7 +735,7 @@ rule "APPC.RESPONSE"
Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
logger.info("{}: {}", $clName, $params.getPolicyName() + "." + drools.getRule().getName());
- logger.debug("{}: {}: event={} manager={} operation={} lock={} opTimer={} response={}",
+ logger.debug("{}: {}: event={} manager={} operation={} lock={} opTimer={} response={}",
$clName, $params.getPolicyName() + "." + drools.getRule().getName(),
$event, $manager, $operation, $lock, $opTimer, $response);
//
@@ -721,7 +743,7 @@ rule "APPC.RESPONSE"
//
PolicyResult policyResult = $operation.onResponse($response);
if (policyResult != null) {
- logger.debug("{}: {}: operation finished - result={}",
+ logger.debug("{}: {}: operation finished - result={}",
$clName, $params.getPolicyName() + "." + drools.getRule().getName(),
policyResult);
//
@@ -795,14 +817,14 @@ rule "APPC.RESPONSE.CLEANUP"
when
$params : ControlLoopParams( $clName : getClosedLoopControlName() )
$response : Response($id : getCommonHeader().RequestId )
- not ( VirtualControlLoopEvent( requestId == $id, closedLoopEventStatus == ControlLoopEventStatus.ONSET ) )
+ not ( VirtualControlLoopEvent( requestId == $id, closedLoopEventStatus == ControlLoopEventStatus.ONSET ) )
then
Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
logger.info("{}: {}", $clName, $params.getPolicyName() + "." + drools.getRule().getName());
- logger.debug("{}: {}: orphan appc response={}",
+ logger.debug("{}: {}: orphan appc response={}",
$clName, $params.getPolicyName() + "." + drools.getRule().getName(), $id);
-
+
//
// Retract it
//
@@ -817,7 +839,7 @@ end
rule "APPC.LCM.RESPONSE"
when
$params : ControlLoopParams( $clName : getClosedLoopControlName() )
- $event : VirtualControlLoopEvent( closedLoopControlName == $clName, closedLoopEventStatus == ControlLoopEventStatus.ONSET )
+ $event : VirtualControlLoopEvent( closedLoopControlName == $clName, closedLoopEventStatus == ControlLoopEventStatus.ONSET )
$manager : ControlLoopEventManager( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId() )
$operation : ControlLoopOperationManager( onset.closedLoopControlName == $event.getClosedLoopControlName(), onset.getRequestId() == $event.getRequestId() )
$opTimer : OperationTimer( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId().toString() )
@@ -827,19 +849,19 @@ rule "APPC.LCM.RESPONSE"
Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
logger.info("{}: {}", $clName, $params.getPolicyName() + "." + drools.getRule().getName());
- logger.debug("{}: {}: event={} manager={} operation={} lock={} opTimer={} response={}",
+ logger.debug("{}: {}: event={} manager={} operation={} lock={} opTimer={} response={}",
$clName, $params.getPolicyName() + "." + drools.getRule().getName(),
$event, $manager, $operation, $lock, $operation, $opTimer, $response);
-
+
//
// Get the result of the operation
//
PolicyResult policyResult = $operation.onResponse($response);
if (policyResult != null) {
- logger.debug("{}: {}: operation finished - result={}",
+ logger.debug("{}: {}: operation finished - result={}",
$clName, $params.getPolicyName() + "." + drools.getRule().getName(),
policyResult);
-
+
//
// This Operation has completed, construct a notification showing our results. (DB write - end operation)
//
@@ -901,12 +923,12 @@ rule "APPC.LCM.RESPONSE.CLEANUP"
when
$params : ControlLoopParams( $clName : getClosedLoopControlName() )
$response : LcmResponseWrapper($id : getBody().getCommonHeader().getRequestId )
- not ( VirtualControlLoopEvent( requestId == $id, closedLoopEventStatus == ControlLoopEventStatus.ONSET ) )
+ not ( VirtualControlLoopEvent( requestId == $id, closedLoopEventStatus == ControlLoopEventStatus.ONSET ) )
then
-
+
Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
logger.info("{}: {}", $clName, $params.getPolicyName() + "." + drools.getRule().getName());
- logger.debug("{}: {}: orphan appc response={}",
+ logger.debug("{}: {}: orphan appc response={}",
$clName, $params.getPolicyName() + "." + drools.getRule().getName(), $id);
//
// Retract it
@@ -929,21 +951,21 @@ rule "SO.RESPONSE"
$lock : TargetLock (requestID == $event.getRequestId())
$response : SOResponseWrapper(requestID.toString() == $event.getRequestId().toString() )
then
-
+
Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
logger.info("{}: {}", $clName, $params.getPolicyName() + "." + drools.getRule().getName());
- logger.debug("{}: {}: event={} manager={} operation={} lock={} opTimer={} response={}",
+ logger.debug("{}: {}: event={} manager={} operation={} lock={} opTimer={} response={}",
$clName, $params.getPolicyName() + "." + drools.getRule().getName(),
$event, $manager, $operation, $lock, $operation, $opTimer, $response);
-
+
// Get the result of the operation
//
PolicyResult policyResult = $operation.onResponse($response);
if (policyResult != null) {
- logger.debug("{}: {}: operation finished - result={}",
+ logger.debug("{}: {}: operation finished - result={}",
$clName, $params.getPolicyName() + "." + drools.getRule().getName(),
policyResult);
-
+
//
// This Operation has completed, construct a notification showing our results
//
@@ -1004,69 +1026,69 @@ end
*
*/
rule "VFC.RESPONSE"
- when
- $params : ControlLoopParams( $clName : getClosedLoopControlName() )
+ when
+ $params : ControlLoopParams( $clName : getClosedLoopControlName() )
$event : VirtualControlLoopEvent( closedLoopControlName == $clName, closedLoopEventStatus == ControlLoopEventStatus.ONSET )
- $manager : ControlLoopEventManager( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId() )
- $operation : ControlLoopOperationManager( onset.closedLoopControlName == $event.getClosedLoopControlName(), onset.getRequestId() == $event.getRequestId() )
- $opTimer : OperationTimer( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId().toString() )
+ $manager : ControlLoopEventManager( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId() )
+ $operation : ControlLoopOperationManager( onset.closedLoopControlName == $event.getClosedLoopControlName(), onset.getRequestId() == $event.getRequestId() )
+ $opTimer : OperationTimer( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId().toString() )
$lock : TargetLock (requestID == $event.getRequestId())
- $response : VFCResponse( requestId.toString() == $event.getRequestId().toString() )
- then
- Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
- logger.info("{}: {}", $clName, $params.getPolicyName() + "." + drools.getRule().getName());
- logger.debug("{}: {}: event={} manager={} operation={} lock={} opTimer={} response={}",
- $clName, $params.getPolicyName() + "." + drools.getRule().getName(),
- $event, $manager, $operation, $lock, $operation, $opTimer, $response);
-
- // Get the result of the operation
- //
- PolicyResult policyResult = $operation.onResponse($response);
- if (policyResult != null) {
- //
- // This Operation has completed, construct a notification showing our results
- //
- VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
- notification.setFrom("policy");
- notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName());
+ $response : VFCResponse( requestId.toString() == $event.getRequestId().toString() )
+ then
+ Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
+ logger.info("{}: {}", $clName, $params.getPolicyName() + "." + drools.getRule().getName());
+ logger.debug("{}: {}: event={} manager={} operation={} lock={} opTimer={} response={}",
+ $clName, $params.getPolicyName() + "." + drools.getRule().getName(),
+ $event, $manager, $operation, $lock, $operation, $opTimer, $response);
+
+ // Get the result of the operation
+ //
+ PolicyResult policyResult = $operation.onResponse($response);
+ if (policyResult != null) {
+ //
+ // This Operation has completed, construct a notification showing our results
+ //
+ VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
+ notification.setFrom("policy");
+ notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName());
notification.setPolicyScope($params.getPolicyScope());
notification.setPolicyVersion($params.getPolicyVersion());
- notification.setMessage($operation.getOperationHistory());
- notification.setHistory($operation.getHistory());
- //
- // Ensure the operation is complete
- //
- if ($operation.isOperationComplete() == true) {
- //
- // It is complete, remove it from memory
- //
- retract($operation);
- //
- // We must also retract the timer object
- // NOTE: We could write a Rule to do this
- //
- retract($opTimer);
- //
- // Complete the operation
- //
- modify($manager) {finishOperation($operation)};
- } else {
- //
- // Just doing this will kick off the LOCKED rule again
- //
- modify($operation) {};
- }
- } else {
- //
- // Its not finished yet (i.e. expecting more Response objects)
- //
- // Or possibly it is a leftover response that we timed the request out previously
- //
- }
- //
- // We are going to retract these objects from memory
- //
- retract($response);
+ notification.setMessage($operation.getOperationHistory());
+ notification.setHistory($operation.getHistory());
+ //
+ // Ensure the operation is complete
+ //
+ if ($operation.isOperationComplete() == true) {
+ //
+ // It is complete, remove it from memory
+ //
+ retract($operation);
+ //
+ // We must also retract the timer object
+ // NOTE: We could write a Rule to do this
+ //
+ retract($opTimer);
+ //
+ // Complete the operation
+ //
+ modify($manager) {finishOperation($operation)};
+ } else {
+ //
+ // Just doing this will kick off the LOCKED rule again
+ //
+ modify($operation) {};
+ }
+ } else {
+ //
+ // Its not finished yet (i.e. expecting more Response objects)
+ //
+ // Or possibly it is a leftover response that we timed the request out previously
+ //
+ }
+ //
+ // We are going to retract these objects from memory
+ //
+ retract($response);
end
@@ -1085,13 +1107,13 @@ rule "EVENT.MANAGER.OPERATION.TIMEOUT"
$opTimer : OperationTimer( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId().toString(), $to : getDelay() )
$lock : TargetLock (requestID == $event.getRequestId())
then
-
+
Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
logger.info("{}: {}", $clName, $params.getPolicyName() + "." + drools.getRule().getName());
- logger.debug("{}: {}: event={} manager={} operation={} lock={} opTimer={}",
+ logger.debug("{}: {}: event={} manager={} operation={} lock={} opTimer={}",
$clName, $params.getPolicyName() + "." + drools.getRule().getName(),
$event, $manager, $operation, $lock, $operation, $opTimer);
-
+
//
// Tell it its timed out
//
@@ -1147,26 +1169,14 @@ rule "EVENT.MANAGER.TIMEOUT"
$event : VirtualControlLoopEvent( closedLoopControlName == $clName )
$manager : ControlLoopEventManager( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId() )
$clTimer : ControlLoopTimer ( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId().toString(), $to : getDelay() )
- $operations : LinkedList()
- from collect( ControlLoopOperationManager( onset.closedLoopControlName == $event.getClosedLoopControlName(), onset.getRequestId() == $event.getRequestId() ) )
- $opTimers : LinkedList()
- from collect( OperationTimer( closedLoopControlName == $event.getClosedLoopControlName(), requestID == $event.getRequestId().toString() ) )
- $locks : LinkedList()
- from collect( TargetLock (requestID == $event.getRequestId()) )
then
-
+
Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
logger.info("{}: {}", $clName, $params.getPolicyName() + "." + drools.getRule().getName());
- if ($operations == null) {
- logger.debug("{}: {}: event={} manager={} clTimer={} operations=0",
- $clName, $params.getPolicyName() + "." + drools.getRule().getName(),
- $event, $manager, $clTimer);
- } else {
- logger.debug("{}: {}: event={} manager={} clTimer={} operations={}",
- $clName, $params.getPolicyName() + "." + drools.getRule().getName(),
- $event, $manager, $clTimer, $operations.size());
- }
+ logger.debug("{}: {}: event={}",
+ $clName, $params.getPolicyName() + "." + drools.getRule().getName(),
+ $event);
//
// Tell the Event Manager it has timed out
//
@@ -1182,44 +1192,62 @@ rule "EVENT.MANAGER.TIMEOUT"
PolicyEngine.manager.deliver("POLICY-CL-MGT", notification);
}
//
- // Retract EVERYTHING
+ // Retract the event
//
retract($event);
+end
+
+/*
+*
+* This rule cleans up the manager and other objects after an event has
+* been retracted.
+*
+*/
+rule "EVENT.MANAGER.CLEANUP"
+ when
+ $manager : ControlLoopEventManager( $clName : getClosedLoopControlName(), $requestId : getRequestID() )
+ $clTimer : ControlLoopTimer ( closedLoopControlName == $clName, requestID == $requestId.toString() )
+ $operations : LinkedList()
+ from collect( ControlLoopOperationManager( onset.closedLoopControlName == $clName, onset.getRequestId() == $requestId ) )
+ $opTimers : LinkedList()
+ from collect( OperationTimer( closedLoopControlName == $clName, requestID == $requestId.toString() ) )
+ $locks : LinkedList()
+ from collect( TargetLock (requestID == $requestId) )
+ not( VirtualControlLoopEvent( closedLoopControlName == $clName, requestId == $requestId ) )
+ then
+
+ Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
+ logger.info("{}: {}", $clName, drools.getRule().getName());
+
+ logger.debug("{}: {}: manager={} clTimer={} operations={}",
+ $clName, drools.getRule().getName(),
+ $manager, $clTimer, $operations.size());
+
+ //
+ // Retract EVERYTHING
+ //
retract($manager);
retract($clTimer);
- if ($operations != null && $operations.size() > 0) {
- Iterator<ControlLoopOperationManager> iter = $operations.iterator();
- while (iter.hasNext()) {
- ControlLoopOperationManager manager = iter.next();
- retract(manager);
- }
+
+ for(Object manager: $operations) {
+ retract((ControlLoopOperationManager) manager);
}
- if ($opTimers != null && $opTimers.size() > 0) {
- Iterator<OperationTimer> iter = $opTimers.iterator();
- while (iter.hasNext()) {
- OperationTimer opTimer = iter.next();
- retract(opTimer);
- }
+ for(Object opTimer: $opTimers) {
+ retract((OperationTimer) opTimer);
}
- if ($locks != null && $locks.size() > 0) {
- Iterator<TargetLock> iter = $locks.iterator();
- while (iter.hasNext()) {
- TargetLock lock = iter.next();
- //
- // Ensure we release the lock
- //
- PolicyGuard.unlockTarget(lock);
- //
- //
- //
- retract(lock);
- }
+ for(Object lock: $locks) {
+ TargetLock tgt = (TargetLock) lock;
+ //
+ // Ensure we release the lock
+ //
+ PolicyGuard.unlockTarget(tgt);
+ retract(tgt);
}
end
/*
*
-* This rule will clean up any rogue onsets where there is no
+* This rule will clean up any rogue onsets where there is no
* ControlLoopParams object corresponding to the onset event.
*
*/
@@ -1228,10 +1256,10 @@ rule "EVENT.CLEANUP"
$event : VirtualControlLoopEvent( $clName: closedLoopControlName )
not ( ControlLoopParams( getClosedLoopControlName() == $clName) )
then
-
+
Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
logger.info("{}: {}", $clName, drools.getRule().getName());
- logger.debug("{}: {}: orphan onset event={}",
+ logger.debug("{}: {}: orphan onset event={}",
$clName, drools.getRule().getName(), $event);
retract($event);
diff --git a/controlloop/templates/archetype-cl-beijing/src/test/resources/projects/basic/archetype.properties b/controlloop/templates/archetype-cl-casablanca/src/test/resources/projects/basic/archetype.properties
index 8cc10c97c..8cc10c97c 100644
--- a/controlloop/templates/archetype-cl-beijing/src/test/resources/projects/basic/archetype.properties
+++ b/controlloop/templates/archetype-cl-casablanca/src/test/resources/projects/basic/archetype.properties
diff --git a/controlloop/templates/pom.xml b/controlloop/templates/pom.xml
index a614ade0b..10a4a24d2 100644
--- a/controlloop/templates/pom.xml
+++ b/controlloop/templates/pom.xml
@@ -35,7 +35,7 @@
<modules>
<module>template.demo</module>
<module>archetype-cl-amsterdam</module>
- <module>archetype-cl-beijing</module>
+ <module>archetype-cl-casablanca</module>
</modules>