734282ee9ee90a7b49c73e4dc8a559f633b49082
[policy/drools-applications.git] / controlloop / common / rules-test / src / test / resources / rulesTest.drl
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP
4  * ================================================================================
5  * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.controlloop;
22
23 import org.onap.policy.controlloop.drl.legacy.ControlLoopParams;
24 import org.onap.policy.controlloop.CanonicalOnset;
25 import org.onap.policy.controlloop.VirtualControlLoopEvent;
26 import org.onap.policy.controlloop.VirtualControlLoopNotification;
27 import org.onap.policy.controlloop.ControlLoopNotificationType;
28 import org.onap.policy.controlloop.eventmanager.ControlLoopEventManager2;
29 import org.onap.policy.controlloop.eventmanager.ControlLoopEventManager2.NewEventStatus;
30 import org.onap.policy.controlloop.eventmanager.ControlLoopOperationManager2;
31 import org.onap.policy.controlloop.utils.ControlLoopUtils;
32 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
33
34 import org.slf4j.LoggerFactory;
35 import org.slf4j.Logger;
36
37 import org.onap.policy.drools.system.PolicyEngineConstants;
38
39 rule "STARTED"
40     when
41     then
42     System.out.println(drools.getRule().getName());
43 end
44
45 /*
46 *
47 * Called when the ControlLoopParams object has been inserted into working memory from the BRMSGW.
48 *
49 */
50 rule "INSERT.PARAMS"
51     when
52         $params : ControlLoopParams()
53     then
54
55     Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
56     logger.info("{}: {} : TOSCA-POLICY=[{}]", $params.getClosedLoopControlName(), $params.getPolicyName() + "."
57         + drools.getRule().getName(), $params.getToscaPolicy());
58 end
59
60 /*
61 *
62 * Called when a Tosca Policy is present.
63 *
64 */
65 rule "NEW.TOSCA.POLICY"
66     when
67         $policy : ToscaPolicy()
68     then
69
70     Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
71     logger.info("{}: [{}|{}|{}|{}]: CONTENT: {}", drools.getRule().getName(),
72                 $policy.getType(), $policy.getTypeVersion(), $policy.getName(),
73                 $policy.getVersion(), $policy);
74
75     ControlLoopParams params = ControlLoopUtils.toControlLoopParams($policy);
76     if (params != null) {
77         insert(params);
78     }
79 end
80
81 /*
82  * Remove Control Loop Parameters.
83  */
84 rule "REMOVE.PARAMS"
85     when
86         $params : ControlLoopParams( $policyName :  getPolicyName(), $policyVersion : getPolicyVersion() )
87         not ( ToscaPolicy( getName() == $policyName, getVersion() == $policyVersion ) )
88     then
89
90     Logger logger = LoggerFactory.getLogger(drools.getRule().getPackage());
91     logger.info("{}: [{}|{}|{}]", drools.getRule().getName(),
92                 $params.getPolicyScope(), $params.getPolicyName(), $params.getPolicyVersion());
93
94     retract($params);
95 end