Fix Build Errors 75/17475/1
authordaniel <dc443y@att.com>
Fri, 6 Oct 2017 15:08:21 +0000 (10:08 -0500)
committerdaniel <dc443y@att.com>
Fri, 6 Oct 2017 15:08:35 +0000 (10:08 -0500)
Removing the legacy "demo" project as this uses obsolete
code. The operation and control loop timeouts were increased
to allow more time for the simulators to respond.

Issue-Id: POLICY-291
Change-Id: I1143352cefaf9749ca0eca55927960535b2599b8
Signed-off-by: Daniel Cruz <dc443y@att.com>
controlloop/templates/template.demo.v1.0.0/pom.xml
controlloop/templates/template.demo.v1.0.0/template.demo/pom.xml [deleted file]
controlloop/templates/template.demo.v1.0.0/template.demo/src/main/resources/archetype-resources/src/main/resources/ControlLoopDemo__closedLoopControlName__.drl [deleted file]
controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestAPPCPayload.java [deleted file]
controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestFirewallDemo.java [deleted file]
controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestSO.java [deleted file]
controlloop/templates/template.demo.v1.0.0/template.demo/src/test/resources/aairesponse.json [deleted file]
controlloop/templates/template.demo/src/test/resources/yaml/policy_ControlLoop_SO-test.yaml
controlloop/templates/template.demo/src/test/resources/yaml/policy_ControlLoop_VFC.yaml
controlloop/templates/template.demo/src/test/resources/yaml/policy_ControlLoop_vCPE.yaml
controlloop/templates/template.demo/src/test/resources/yaml/policy_ControlLoop_vFW.yaml

index f32ed27..de65d24 100644 (file)
@@ -34,7 +34,6 @@
 
        <modules>
                <module>archetype-cl-legacy</module>
-               <module>template.demo</module>
        </modules>
 
 </project>
diff --git a/controlloop/templates/template.demo.v1.0.0/template.demo/pom.xml b/controlloop/templates/template.demo.v1.0.0/template.demo/pom.xml
deleted file mode 100644 (file)
index c3c5c74..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-<!--
-  ============LICENSE_START=======================================================
-  drools-pdp-apps Control Loop Drools Templates
-  ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
-  ================================================================================
-  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.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  ============LICENSE_END=========================================================
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-       <modelVersion>4.0.0</modelVersion>
-
-       <artifactId>demo</artifactId>
-
-       <parent>
-               <groupId>org.onap.policy.drools-applications</groupId>
-               <artifactId>template.demo.v1.0.0</artifactId>
-               <version>1.1.0-SNAPSHOT</version>
-       </parent>
-
-       <dependencies>
-               <dependency>
-                       <groupId>junit</groupId>
-                       <artifactId>junit</artifactId>
-                       <version>4.12</version>
-                       <scope>provided</scope>
-               </dependency>
-               <dependency>
-                       <groupId>com.google.code.gson</groupId>
-                       <artifactId>gson</artifactId>
-                       <version>2.5</version>
-                       <scope>provided</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.drools</groupId>
-                       <artifactId>drools-core</artifactId>
-                       <version>6.5.0.Final</version>
-                       <scope>test</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.drools</groupId>
-                       <artifactId>drools-compiler</artifactId>
-                       <version>6.5.0.Final</version>
-                       <scope>test</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.onap.policy.drools-applications</groupId>
-                       <artifactId>events</artifactId>
-                       <version>${project.version}</version>
-                       <scope>provided</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.onap.policy.drools-applications</groupId>
-                       <artifactId>appc</artifactId>
-                       <version>${project.version}</version>
-                       <scope>provided</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.onap.policy.drools-applications</groupId>
-                       <artifactId>aai</artifactId>
-                       <version>${project.version}</version>
-                       <scope>provided</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.onap.policy.drools-applications</groupId>
-                       <artifactId>so</artifactId>
-                       <version>${project.version}</version>
-                       <scope>provided</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.onap.policy.drools-applications</groupId>
-                       <artifactId>trafficgenerator</artifactId>
-                       <version>${project.version}</version>
-                       <scope>provided</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.onap.policy.drools-applications</groupId>
-                       <artifactId>eventmanager</artifactId>
-                       <version>${project.version}</version>
-                       <scope>provided</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.onap.policy.drools-applications</groupId>
-                       <artifactId>guard</artifactId>
-                       <version>${project.version}</version>
-                       <scope>provided</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.onap.policy.drools-applications</groupId>
-                       <artifactId>policy-yaml</artifactId>
-                       <version>${project.version}</version>
-                       <scope>provided</scope>
-               </dependency>
-               <dependency>
-           <groupId>org.apache.httpcomponents</groupId>
-           <artifactId>httpclient</artifactId>
-           <version>4.5.2</version>
-           <scope>test</scope>
-       </dependency>
-       <dependency>
-          <groupId>org.apache.httpcomponents</groupId>
-          <artifactId>httpcore</artifactId>
-          <version>4.4.4</version>
-          <scope>test</scope>
-       </dependency>
-       </dependencies>
-</project>
diff --git a/controlloop/templates/template.demo.v1.0.0/template.demo/src/main/resources/archetype-resources/src/main/resources/ControlLoopDemo__closedLoopControlName__.drl b/controlloop/templates/template.demo.v1.0.0/template.demo/src/main/resources/archetype-resources/src/main/resources/ControlLoopDemo__closedLoopControlName__.drl
deleted file mode 100644 (file)
index 493c858..0000000
+++ /dev/null
@@ -1,1315 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * archetype-closed-loop-demo-rules
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.controlloop;
-
-import java.util.List;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.UUID;
-
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
-import org.onap.policy.controlloop.ControlLoopEventStatus;
-import org.onap.policy.controlloop.VirtualControlLoopNotification;
-import org.onap.policy.controlloop.ControlLoopNotificationType;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.ControlLoopOperationWrapper;
-import org.onap.policy.controlloop.ControlLoopException;
-
-import org.onap.policy.aai.AAINQF199.AAINQF199CloudRegion;
-import org.onap.policy.aai.AAINQF199.AAINQF199ExtraProperties;
-import org.onap.policy.aai.AAINQF199.AAINQF199ExtraProperty;
-import org.onap.policy.aai.AAINQF199.AAINQF199GenericVNF;
-import org.onap.policy.aai.AAINQF199.AAINQF199InstanceFilters;
-import org.onap.policy.aai.AAINQF199.AAINQF199InventoryResponseItem;
-import org.onap.policy.aai.AAINQF199.AAINQF199InventoryResponseItems;
-import org.onap.policy.aai.AAINQF199.AAINQF199Manager;
-import org.onap.policy.aai.AAINQF199.AAINQF199NamedQuery;
-import org.onap.policy.aai.AAINQF199.AAINQF199QueryParameters;
-import org.onap.policy.aai.AAINQF199.AAINQF199Request;
-import org.onap.policy.aai.AAINQF199.AAINQF199RequestWrapper;
-import org.onap.policy.aai.AAINQF199.AAINQF199Response;
-import org.onap.policy.aai.AAINQF199.AAINQF199ResponseWrapper;
-import org.onap.policy.aai.AAINQF199.AAINQF199ServiceInstance;
-import org.onap.policy.aai.AAINQF199.AAINQF199Tenant;
-import org.onap.policy.aai.AAINQF199.AAINQF199VfModule;
-import org.onap.policy.aai.AAINQF199.AAINQF199VServer;
-import org.onap.policy.aai.util.Serialization;
-
-import org.onap.policy.appc.CommonHeader;
-import org.onap.policy.appc.Request;
-import org.onap.policy.appc.Response;
-import org.onap.policy.appc.ResponseCode;
-import org.onap.policy.appc.ResponseStatus;
-import org.onap.policy.appc.ResponseValue;
-
-import org.onap.policy.controlloop.eventmanager.ControlLoopEventManager;
-import org.onap.policy.vnf.trafficgenerator.PGRequest;
-import org.onap.policy.vnf.trafficgenerator.PGStream;
-import org.onap.policy.vnf.trafficgenerator.PGStreams;
-
-import org.onap.policy.mso.SOManager;
-import org.onap.policy.mso.SORequest;
-import org.onap.policy.mso.SORequestStatus;
-import org.onap.policy.mso.SORequestDetails;
-import org.onap.policy.mso.SOModelInfo;
-import org.onap.policy.mso.SOCloudConfiguration;
-import org.onap.policy.mso.SORequestInfo;
-import org.onap.policy.mso.SORequestParameters;
-import org.onap.policy.mso.SORelatedInstanceListElement;
-import org.onap.policy.mso.SORelatedInstance;
-import org.onap.policy.mso.SOResponse;
-
-
-//
-// These parameters are required to build the runtime policy
-//
-declare Params
-    closedLoopControlName : String
-    actor : String
-    aaiURL : String
-    aaiUsername : String
-    aaiPassword : String
-    msoURL : String
-    msoUsername : String
-    msoPassword : String
-    aaiNamedQueryUUID : String
-    aaiPatternMatch : int 
-    notificationTopic : String
-    appcTopic : String
-end
-
-/*
-*
-* Called once and only once to insert the parameters into working memory for this Closed Loop policy.
-* NOTE:  If this file is to be used as a template to be used with the policy BRMS GW, please comment out this line 
-* as the BRMS_GW already generates a SETUP rule
-*
-*/
-rule "${policyName}.SETUP"
-       when
-       then
-               System.out.println("rule SETUP is triggered.");
-               Params params = new Params();
-               params.setClosedLoopControlName("${closedLoopControlName}");
-               params.setActor("${actor}");
-               params.setAaiURL("${aaiURL}");
-               params.setAaiUsername("${aaiUsername}");
-               params.setAaiPassword("${aaiPassword}");
-               params.setMsoURL("${msoURL}");
-               params.setMsoUsername("${msoUsername}");
-               params.setMsoPassword("${msoPassword}");
-               params.setAaiNamedQueryUUID("${aaiNamedQueryUUID}");
-               params.setAaiPatternMatch(${aaiPatternMatch});
-               params.setNotificationTopic("${notificationTopic}");
-               params.setAppcTopic("${appcTopic}");
-               //
-               // This stays in memory as long as the rule is alive and running
-               //
-               insert(params);
-end
-
-
-/*
-*
-* This rule responds to DCAE Events
-*
-*/
-rule "${policyName}.EVENT"
-       when
-        $params : Params( getClosedLoopControlName() == "${closedLoopControlName}" )
-        $event : VirtualControlLoopEvent( closedLoopControlName == $params.getClosedLoopControlName(), closedLoopEventStatus == ControlLoopEventStatus.ONSET )
-        not ( ControlLoopEventManager( closedLoopControlName == $event.closedLoopControlName ))
-       then
-               System.out.println("rule EVENT is triggered.");
-               try {
-                       // 
-                       // Check the requestID in the event to make sure it is not null before we create the EventManager. 
-                       // The EventManager will do extra syntax checking as well check if the closed loop is disabled/
-                       //
-                       if ($event.requestID == null) {
-                               VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
-                               notification.notification = ControlLoopNotificationType.REJECTED;
-                               notification.from = "policy";
-                               notification.message = "Missing requestID from DCAE event";
-                               notification.policyName = drools.getRule().getName();
-                               notification.policyScope = "${policyScope}";
-                               notification.policyVersion = "${policyVersion}";
-                               //
-                               // Let interested parties know
-                               //
-                               try {
-                                       System.out.println(Serialization.gsonPretty.toJson(notification));
-                                       //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-                               } catch (Exception e) {
-                                       e.printStackTrace();
-                                       System.out.println("Can't deliver notification: " + notification);
-                               }
-                               //
-                               // Retract it from memory
-                               //
-                               retract($event);
-                               System.out.println("Event with requestID=null has been retracted.");
-                       } else {
-                               //
-                               // Create an EventManager
-                               //
-                               ControlLoopEventManager manager = new ControlLoopEventManager($params.getClosedLoopControlName(), $event.requestID);
-                               //
-                               // Determine if EventManager can actively process the event (i.e. syntax)
-                               //
-                               VirtualControlLoopNotification notification = manager.activate($event);
-                               notification.from = "policy"; 
-                               notification.policyName = drools.getRule().getName();
-                               notification.policyScope = "${policyScope}";
-                               notification.policyVersion = "${policyVersion}";
-                               //
-                               // Are we actively pursuing this event?
-                               //
-                               if (notification.notification == ControlLoopNotificationType.ACTIVE) {
-                                       //
-                                       // Insert Event Manager into memory, this will now kick off processing.
-                                       //
-                                       insert(manager);
-                                       //
-                                       // Let interested parties know
-                                       //
-                                       try {
-                                               System.out.println(Serialization.gsonPretty.toJson(notification));
-                                               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-                                       } catch (Exception e) {
-                                               e.printStackTrace();
-                                               System.out.println("Can't deliver notification: " + notification);
-                                       }               
-                               } else {
-                                       //
-                                       // Let interested parties know
-                                       //
-                                       try {
-                                               System.out.println(Serialization.gsonPretty.toJson(notification));
-                                               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-                                       } catch (Exception e) {
-                                               e.printStackTrace();
-                                               System.out.println("Can't deliver notification: " + notification);
-                                       }
-                                       //
-                                       // Retract it from memory
-                                       //
-                                       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
-                               // then screen for additional ONSET and ABATED events for this same RequestIDs 
-                               // and for different RequestIDs but with the same closedLoopControlName and target.
-                               //
-                       }
-               //
-               } catch (Exception e) {
-                       e.printStackTrace();
-                       VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
-                       notification.notification = ControlLoopNotificationType.REJECTED;
-                       notification.message = "Exception occurred " + e.getMessage();
-                       notification.policyName = drools.getRule().getName();
-                       notification.policyScope = "${policyScope}";
-                       notification.policyVersion = "${policyVersion}";
-                       //
-                       //
-                       //
-                       try {
-                               System.out.println(Serialization.gsonPretty.toJson(notification));
-                               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-                       } catch (Exception e1) {
-                               System.out.println("Can't deliver notification: " + notification);
-                               e1.printStackTrace();
-                       }
-                       //
-                       // Retract the event
-                       //
-                       retract($event);
-               }
-end
-
-/*
-*
-* This rule happens when we got a valid ONSET, closed loop is enabled and an Event Manager
-* is created. We can start the operations for this closed loop.
-*
-*/
-rule "${policyName}.EVENT.MANAGER"
-       when
-               $params : Params( getClosedLoopControlName() == "${closedLoopControlName}" )
-               $event : VirtualControlLoopEvent( closedLoopControlName == $params.getClosedLoopControlName(), closedLoopEventStatus == ControlLoopEventStatus.ONSET )
-               $manager : ControlLoopEventManager( closedLoopControlName == $event.closedLoopControlName, controlLoopResult == null)
-       then
-               System.out.println("rule EVENT.MANAGER is triggered.");
-               //
-               // Check which event this is.
-               //
-               ControlLoopEventManager.NEW_EVENT_STATUS eventStatus = $manager.onNewEvent($event);
-               //
-               // 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 != ControlLoopEventManager.NEW_EVENT_STATUS.FIRST_ONSET) {
-                       System.out.println("Retracting "+eventStatus+" Event.");
-                       retract($event);
-                       return;
-               }
-               //
-               // Now the event in memory is first onset event
-               //
-               try {
-                       //
-                       // Pull the known AAI field from the Event
-                       //
-                       // generic-vnf is needed for vFirewall case
-                       // vserver-name is needed for vLoadBalancer case
-                       //
-                       String genericVNF = $event.AAI.get("generic-vnf.vnf-id");
-                       String vserver = $event.AAI.get("vserver.vserver-name");
-                       //
-                       // Check if we are implementing a simple pattern match.
-                       //
-                       if ($params.getAaiPatternMatch() == 1) {
-                               //
-                               // Yes
-                               //
-                               //Basic naming characteristics:
-                               //VF Name (9 char)+VM name (13 char total)+VFC (19 char total)
-                               //Example: 
-                               //VF Name (9 characters):    cscf0001v
-                               //VM Name(13 characters): cscf0001vm001
-                               //VFC name(19 characters): cscf0001vm001cfg001
-                               //
-                               // zdfw1fwl01fwl02 or zdfw1fwl01fwl01  
-                               // replaced with
-                               // zdfw1fwl01pgn02 or zdfw1fwl01pgn01
-                               //
-                               int index = genericVNF.lastIndexOf("fwl");
-                               if (index == -1) {
-                                       System.err.println("The generic-vnf.vnf-id from DCAE Event is not valid.");
-                               } else {
-                                       genericVNF = genericVNF.substring(0, index) + "pgn" + genericVNF.substring(index+"fwl".length());
-                               }
-                               //
-                               // Construct an APPC request
-                               //
-                               ControlLoopOperation operation = new ControlLoopOperation();
-                               operation.actor = $params.getActor();
-                               operation.operation = "ModifyConfig";
-                               operation.target = $event.target;
-                               //
-                               // Create operationWrapper
-                               //
-                               ControlLoopOperationWrapper operationWrapper = new ControlLoopOperationWrapper($event.requestID, operation);
-                               //
-                               // insert operationWrapper into memory
-                               //
-                               insert(operationWrapper);
-                               //
-                               Request request = new Request();
-                               request.CommonHeader = new CommonHeader();
-                               request.CommonHeader.RequestID = $event.requestID;
-                               request.Action = operation.operation;
-                               request.Payload = new HashMap<String, Object>();
-                               //
-                               // Fill in the payload
-                               //
-                               request.Payload.put("generic-vnf.vnf-id", genericVNF);
-                               //
-                               PGRequest pgRequest = new PGRequest();
-                               pgRequest.pgStreams = new PGStreams();
-                               
-                               PGStream pgStream;
-                               for(int i = 0; i < 5; i++){
-                                       pgStream = new PGStream();
-                                       pgStream.streamId = "fw_udp"+(i+1);
-                                       pgStream.isEnabled = "true";
-                                       pgRequest.pgStreams.pgStream.add(pgStream);
-                               }
-                               request.Payload.put("pg-streams", pgRequest.pgStreams);
-                               
-                               if (request != null) {
-                                       //
-                                       // Insert request into memory
-                                       //
-                                       insert(request);
-                                       //
-                                       // Tell interested parties we are performing this Operation
-                                       //
-                                       VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
-                                       notification.notification = ControlLoopNotificationType.OPERATION;
-                                       // message and history ??
-                                       notification.from = "policy";
-                                       notification.policyName = drools.getRule().getName();
-                                       notification.policyScope = "${policyScope}";
-                                       notification.policyVersion = "${policyVersion}";
-                                       try {
-                                               System.out.println(Serialization.gsonPretty.toJson(notification));
-                                               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-                                       } catch (Exception e) {
-                                               System.out.println("Can't deliver notification: " + notification);
-                                               e.printStackTrace();
-                                       }
-                                       //
-                                       // Now send the operation request
-                                       //
-                                       if (request instanceof Request) {
-                                               try {
-                                                       System.out.println("APPC request sent:");
-                                                       System.out.println(Serialization.gsonPretty.toJson(request));
-                                                       //PolicyEngine.manager.deliver($params.getAppcTopic(), request);
-                                               } catch (Exception e) {
-                                                       e.printStackTrace();
-                                                       System.out.println("Can't deliver request: " + request);
-                                               }
-                                       }
-                               } else {
-                                       //
-                                       // what happens if it is null
-                                       //
-                               }
-                               //
-                       } else {
-                               //
-                               // create AAI named-query request with UUID started with "F199"
-                               //
-                               AAINQF199Request aainqf199request = new AAINQF199Request();
-                               AAINQF199QueryParameters aainqf199queryparam = new AAINQF199QueryParameters();
-                               AAINQF199NamedQuery aainqf199namedquery = new AAINQF199NamedQuery();
-                               AAINQF199InstanceFilters aainqf199instancefilter = new AAINQF199InstanceFilters();
-                               //
-                               // queryParameters
-                               //
-                               aainqf199namedquery.namedQueryUUID = UUID.fromString($params.getAaiNamedQueryUUID()); 
-                               aainqf199queryparam.namedQuery = aainqf199namedquery;
-                               aainqf199request.queryParameters = aainqf199queryparam;
-                               //
-                               // instanceFilters
-                               //
-                               Map aainqf199instancefiltermap = new HashMap();
-                               Map aainqf199instancefiltermapitem = new HashMap();
-                               aainqf199instancefiltermapitem.put("vserver-name", vserver); 
-                               aainqf199instancefiltermap.put("vserver", aainqf199instancefiltermapitem);
-                               aainqf199instancefilter.instanceFilter.add(aainqf199instancefiltermap);
-                               aainqf199request.instanceFilters = aainqf199instancefilter;
-                               //
-                               // print aainqf199request for debug
-                               //
-                               System.out.println("AAI Request sent:");
-                               System.out.println(Serialization.gsonPretty.toJson(aainqf199request));
-                               //
-                               // Create AAINQF199RequestWrapper
-                               //
-                               AAINQF199RequestWrapper aainqf199RequestWrapper = new AAINQF199RequestWrapper($event.requestID, aainqf199request);
-                               //
-                               // insert aainqf199request into memory
-                               //
-                               insert(aainqf199RequestWrapper);
-                       }
-                       //
-               } catch (Exception e) {
-                e.printStackTrace();
-               }
-end
-
-/*
-*
-* This rule happens when we got a valid ONSET, closed loop is enabled, an Event Manager
-* is created, AAI Manager and AAI Request are ready in memory. We can start sending query to AAI and then wait for response.
-*
-*/
-rule "${policyName}.EVENT.MANAGER.AAINQF199REQUEST"
-       when
-               $params : Params( getClosedLoopControlName() == "${closedLoopControlName}" )
-               $event : VirtualControlLoopEvent( closedLoopControlName == $params.getClosedLoopControlName(), closedLoopEventStatus == ControlLoopEventStatus.ONSET )
-               $manager : ControlLoopEventManager( closedLoopControlName == $event.closedLoopControlName )
-               $aainqf199RequestWrapper : AAINQF199RequestWrapper(requestID == $event.requestID)
-       then
-               System.out.println("rule EVENT.MANAGER.AAINQF199REQUEST is triggered.");
-               //
-               // send the request
-               //
-               AAINQF199Response aainqf199response = AAINQF199Manager.postQuery($params.getAaiURL(), $params.getAaiUsername(), $params.getAaiPassword(),
-                                                                                                          $aainqf199RequestWrapper.aainqf199request, $event.requestID);
-               
-               
-               
-               //////////////////////////////////////////////////////////
-               // Simulate a valid aainqf199response for junit test
-               // Remove this for real deployment
-               //
-               
-               AAINQF199InventoryResponseItem serviceItem = new AAINQF199InventoryResponseItem();
-               serviceItem.modelName = "service-instance";
-               serviceItem.serviceInstance = new AAINQF199ServiceInstance();
-               serviceItem.serviceInstance.serviceInstanceID = "cf8426a6-0b53-4e3d-bfa6-4b2f4d5913a5";
-               serviceItem.serviceInstance.serviceInstanceName = "Service_Ete_Named90e1ab3-dcd5-4877-9edb-eadfc84e32c8";
-               serviceItem.serviceInstance.personaModelId = "4fcbc1c0-7793-46d8-8aa1-fa1c2ed9ec7b";
-               serviceItem.serviceInstance.personaModelVersion = "1.0";
-               serviceItem.serviceInstance.resourceVersion = "1485542400";
-               serviceItem.extraProperties = new AAINQF199ExtraProperties();
-               serviceItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-name", "8330e932-2a23-4943-8606"));
-               serviceItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-type", "service"));
-               serviceItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-version", "1"));
-               serviceItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-id", "4fcbc1c0-7793-46d8-8aa1-fa1c2ed9ec7b"));
-               serviceItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-name-version-id", "5c996219-b2e2-4c76-9b43-7e8672a33c1d"));
-               
-               AAINQF199InventoryResponseItem vfModuleItem = new AAINQF199InventoryResponseItem();
-               vfModuleItem.modelName = "C15ce9e1E9144c8fB8bb..base_vlb..module-0";
-               vfModuleItem.vfModule = new AAINQF199VfModule();
-               vfModuleItem.vfModule.vfModuleId = "b0eff878-e2e1-4947-9597-39afdd0f51dd";
-               vfModuleItem.vfModule.vfModuleName = "Vfmodule_Ete_Named90e1ab3-dcd5-4877-9edb-eadfc84e32c8";
-               vfModuleItem.vfModule.heatStackId = "Vfmodule_Ete_Named90e1ab3-dcd5-4877-9edb-eadfc84e32c8/5845f37b-6cda-4e91-8ca3-f5572d226488";
-               vfModuleItem.vfModule.orchestrationStatus = "active";
-               vfModuleItem.vfModule.isBaseVfModule = true;
-               vfModuleItem.vfModule.resourceVersion = "1485542667";
-               vfModuleItem.vfModule.personaModelId = "79ee24cd-fc9a-4f14-afae-5e1dd2ab2941";
-               vfModuleItem.vfModule.personaModelVersion = "1";
-
-               vfModuleItem.extraProperties = new AAINQF199ExtraProperties();
-               vfModuleItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-name", "C15ce9e1E9144c8fB8bb..base_vlb..module-0"));
-               vfModuleItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-type", "resource"));
-               vfModuleItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-version", "1"));
-               vfModuleItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-id", "79ee24cd-fc9a-4f14-afae-5e1dd2ab2941"));
-               vfModuleItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-name-version-id", "5484cabb-1a0d-4f29-a616-094a3f643d73"));
-
-
-               AAINQF199InventoryResponseItem vfModuleItem1 = new AAINQF199InventoryResponseItem();
-               //vfModuleItem1.modelName = "vf-module";
-               vfModuleItem1.vfModule = new AAINQF199VfModule();
-               vfModuleItem1.vfModule.vfModuleId = "dummy";
-               vfModuleItem1.vfModule.vfModuleName = "dummy";
-               vfModuleItem1.vfModule.isBaseVfModule = false;
-               vfModuleItem1.vfModule.resourceVersion = "1485561752";
-               vfModuleItem1.vfModule.personaModelId = "f32568ec-2f1c-458a-864b-0593d53d141a";
-               vfModuleItem1.vfModule.personaModelVersion = "1.0";
-
-               vfModuleItem1.extraProperties = new AAINQF199ExtraProperties();
-               vfModuleItem1.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-name", "C15ce9e1E9144c8fB8bb..dnsscaling..module-1"));
-               vfModuleItem1.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-type", "resource"));
-               vfModuleItem1.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-version", "1"));
-               vfModuleItem1.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-id", "f32568ec-2f1c-458a-864b-0593d53d141a"));
-               vfModuleItem1.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-name-version-id", "69615025-879d-4f0d-afe3-b7d1a7eeed1f"));
-
-
-
-               AAINQF199InventoryResponseItem vfModuleItem2 = new AAINQF199InventoryResponseItem();
-               //vfModuleItem2.modelName = "vf-module";
-               vfModuleItem2.vfModule = new AAINQF199VfModule();
-               vfModuleItem2.vfModule.vfModuleId = "8cd79e44-1fae-48c1-a160-609f90b46749";
-               vfModuleItem2.vfModule.vfModuleName = "vDNS_Ete_Named90e1ab3-dcd5-4877-9edb-eadfc84e32c8";
-               vfModuleItem2.vfModule.heatStackId = "vDNS_Ete_Named90e1ab3-dcd5-4877-9edb-eadfc84e32c8/f447ce51-14dd-4dcd-9957-68a047c79673";
-               vfModuleItem2.vfModule.orchestrationStatus = "active";
-               vfModuleItem2.vfModule.isBaseVfModule = false;
-               vfModuleItem2.vfModule.resourceVersion = "1485562712";
-               vfModuleItem2.vfModule.personaModelId = "f32568ec-2f1c-458a-864b-0593d53d141a";
-               vfModuleItem2.vfModule.personaModelVersion = "1.0";
-
-               vfModuleItem2.extraProperties = new AAINQF199ExtraProperties();
-               vfModuleItem2.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-name", "C15ce9e1E9144c8fB8bb..dnsscaling..module-1"));
-               vfModuleItem2.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-type", "resource"));
-               vfModuleItem2.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-version", "1"));
-               vfModuleItem2.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-id", "f32568ec-2f1c-458a-864b-0593d53d141a"));
-               vfModuleItem2.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-name-version-id", "69615025-879d-4f0d-afe3-b7d1a7eeed1f"));
-
-
-
-
-               
-               AAINQF199InventoryResponseItem genericVNFItem = new AAINQF199InventoryResponseItem();
-               genericVNFItem.modelName = "generic-vnf";
-               genericVNFItem.genericVNF = new AAINQF199GenericVNF();
-               genericVNFItem.genericVNF.vnfID = "594e2fe0-48b8-41ff-82e2-3d4bab69b192";
-               genericVNFItem.genericVNF.vnfName = "Vnf_Ete_Named90e1ab3-dcd5-4877-9edb-eadfc84e32c8";
-               genericVNFItem.genericVNF.vnfType = "8330e932-2a23-4943-8606/c15ce9e1-e914-4c8f-b8bb 1";
-               genericVNFItem.genericVNF.serviceId = "b3f70641-bdb9-4030-825e-6abb73a1f929";
-//             genericVNFItem.genericVNF.provStatus = "PREPROV";
-//             genericVNFItem.genericVNF.operationalState = "dhv-test-operational-state";
-//             genericVNFItem.genericVNF.ipv4OamAddress = "dhv-test-gvnf-ipv4-oam-address";
-//             genericVNFItem.genericVNF.ipv4Loopback0Address = "dhv-test-gvnfipv4-loopback0-address";
-               genericVNFItem.genericVNF.inMaint = false;
-               genericVNFItem.genericVNF.isClosedLoopDisabled = false;
-               genericVNFItem.genericVNF.resourceVersion = "1485542422";
-//             genericVNFItem.genericVNF.encrypedAccessFlag = true;
-               genericVNFItem.genericVNF.personaModelId = "033a32ed-aa65-4764-a736-36f2942f1aa0";
-               genericVNFItem.genericVNF.personaModelVersion = "1.0";
-               genericVNFItem.extraProperties = new AAINQF199ExtraProperties();
-               genericVNFItem.extraProperties.extraProperty = new LinkedList<AAINQF199ExtraProperty>();
-               genericVNFItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-name", "c15ce9e1-e914-4c8f-b8bb"));
-               genericVNFItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-type", "resource"));
-               genericVNFItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-version", "1"));
-               genericVNFItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-id", "033a32ed-aa65-4764-a736-36f2942f1aa0"));
-               genericVNFItem.extraProperties.extraProperty.add(new AAINQF199ExtraProperty("model.model-name-version-id", "d4d072dc-4e21-4a03-9524-628985819a8e"));
-               genericVNFItem.items = new AAINQF199InventoryResponseItems();
-               genericVNFItem.items.inventoryResponseItems = new LinkedList<AAINQF199InventoryResponseItem>();
-               genericVNFItem.items.inventoryResponseItems.add(serviceItem);
-               genericVNFItem.items.inventoryResponseItems.add(vfModuleItem);
-               genericVNFItem.items.inventoryResponseItems.add(vfModuleItem1);
-               genericVNFItem.items.inventoryResponseItems.add(vfModuleItem2);
-               
-               AAINQF199InventoryResponseItem cloudItem = new AAINQF199InventoryResponseItem();
-               cloudItem.cloudRegion = new AAINQF199CloudRegion();
-               cloudItem.cloudRegion.cloudOwner = "OWNER";
-               cloudItem.cloudRegion.cloudRegionId = "REGIONID";
-               cloudItem.cloudRegion.cloudRegionVersion = "2.5";
-               cloudItem.cloudRegion.complexName = "COMPLEXNAME";
-               cloudItem.cloudRegion.resourceVersion = "1485465545";
-               
-               AAINQF199InventoryResponseItem tenantItem = new AAINQF199InventoryResponseItem();
-               tenantItem.tenant = new AAINQF199Tenant();
-               tenantItem.tenant.tenantId = "1015548";
-               tenantItem.tenant.tenantName = "1015548";
-               tenantItem.tenant.resourceVersion = "1485465545";
-               tenantItem.items = new AAINQF199InventoryResponseItems();
-               tenantItem.items.inventoryResponseItems = new LinkedList<AAINQF199InventoryResponseItem>();
-               tenantItem.items.inventoryResponseItems.add(cloudItem);
-               
-               AAINQF199InventoryResponseItem vserverItem = new AAINQF199InventoryResponseItem();
-               vserverItem.vserver = new AAINQF199VServer();
-               vserverItem.vserver.vserverId = "70f081eb-2a87-4c81-9296-4b93d7d145c6";
-               vserverItem.vserver.vserverName = "vlb-lb-32c8";
-               vserverItem.vserver.vserverName2 = "vlb-lb-32c8";
-               vserverItem.vserver.provStatus = "ACTIVE";
-               vserverItem.vserver.vserverSelflink = "https://dfw.servers.api.rackspacecloud.com/v2/1015548/servers/70f081eb-2a87-4c81-9296-4b93d7d145c6";
-               vserverItem.vserver.inMaint = false;
-               vserverItem.vserver.isClosedLoopDisabled = false;
-               vserverItem.vserver.resourceVersion = "1485546436";
-               vserverItem.items = new AAINQF199InventoryResponseItems();
-               vserverItem.items.inventoryResponseItems = new LinkedList<AAINQF199InventoryResponseItem>();
-               vserverItem.items.inventoryResponseItems.add(genericVNFItem);
-               vserverItem.items.inventoryResponseItems.add(tenantItem);
-               
-               aainqf199response = new AAINQF199Response();
-               aainqf199response.inventoryResponseItems.add(vserverItem);
-               
-               System.out.println("PAM");
-               System.out.println(Serialization.gsonPretty.toJson(aainqf199response));
-               
-               //////////////////////////////////////////////////////////
-               
-               
-               
-               
-               
-               
-               //
-               // Check AAI response
-               //
-               if (aainqf199response == null) {
-                       System.err.println("Failed to get AAI response");
-                       //
-                       // Fail and retract everything
-                       //
-                       retract($event);
-                       retract($manager);
-                       retract($aainqf199RequestWrapper);
-               } else {
-                       //
-                       // Create AAINQF199ResponseWrapper
-                       //
-                       AAINQF199ResponseWrapper aainqf199ResponseWrapper = new AAINQF199ResponseWrapper($event.requestID, aainqf199response);
-                       //
-                       // insert aainqf199ResponseWrapper to memeory
-                       //
-                       insert(aainqf199ResponseWrapper);
-               }
-end
-
-/*
-*
-* This rule happens when we got a valid AAI response. We can start sending request to APPC or SO now.
-*
-*/
-rule "${policyName}.EVENT.MANAGER.AAINQF199RESPONSE"
-       when 
-               $params : Params( getClosedLoopControlName() == "${closedLoopControlName}" )
-               $event : VirtualControlLoopEvent( closedLoopControlName == $params.getClosedLoopControlName(), closedLoopEventStatus == ControlLoopEventStatus.ONSET )
-               $manager : ControlLoopEventManager( closedLoopControlName == $event.closedLoopControlName )
-               $aainqf199RequestWrapper : AAINQF199RequestWrapper(requestID == $event.requestID)
-               $aainqf199ResponseWrapper : AAINQF199ResponseWrapper(requestID == $event.requestID)
-       then
-               System.out.println("rule EVENT.MANAGER.AAINQF199RESPONSE is triggered.");
-               //
-               // Extract related fields out of AAINQF199RESPONSE
-               //
-               String vnfItemVnfId, vnfItemVnfType, vnfItemPersonaModelId, vnfItemPersonaModelVersion, vnfItemModelName, 
-                      vnfItemModelVersion, vnfItemModelNameVersionId, serviceItemServiceInstanceId, serviceItemPersonaModelId,
-                      serviceItemModelName, serviceItemModelType, serviceItemModelVersion, serviceItemModelNameVersionId,
-                      vfModuleItemVfModuleName, vfModuleItemPersonaModelId, vfModuleItemPersonaModelVersion, vfModuleItemModelName, 
-                      vfModuleItemModelNameVersionId, tenantItemTenantId, cloudRegionItemCloudRegionId;
-               try {
-                       //
-                       // vnfItem
-                       //
-                       vnfItemVnfId = $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfID;
-                       vnfItemVnfType = $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfType;
-                       vnfItemVnfType = vnfItemVnfType.substring(vnfItemVnfType.lastIndexOf("/")+1);
-                       vnfItemPersonaModelId = $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.personaModelId;
-                       vnfItemPersonaModelVersion = $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.personaModelVersion;
-                       vnfItemModelName = $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue;
-                       vnfItemModelVersion =           $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(2).propertyValue;
-                       vnfItemModelNameVersionId =     $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue;
-                       //
-                       // serviceItem
-                       //
-                       serviceItemServiceInstanceId = $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.serviceInstanceID;
-                       serviceItemPersonaModelId = $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.personaModelId;
-                       serviceItemModelName = $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue;
-                       serviceItemModelType = $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(1).propertyValue;
-                       serviceItemModelVersion = $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.personaModelVersion;
-                       serviceItemModelNameVersionId = $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue;
-                       //
-                       // Find the index for base vf module and non-base vf module
-                       //
-                       int baseIndex = -1;
-                       int nonBaseIndex = -1;
-                       List<AAINQF199InventoryResponseItem> inventoryItems = $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems;
-                       for (AAINQF199InventoryResponseItem m : inventoryItems) {
-                               if (m.vfModule != null && m.vfModule.isBaseVfModule == true) {
-                                       baseIndex = inventoryItems.indexOf(m);
-                               } else if (m.vfModule != null && m.vfModule.isBaseVfModule == false && m.vfModule.orchestrationStatus == null) {
-                                       nonBaseIndex = inventoryItems.indexOf(m);
-                               }
-                               //
-                               if (baseIndex != -1 && nonBaseIndex != -1) {
-                                       break;
-                               }
-                       }
-                       //
-                       // Report the error if either base vf module or non-base vf module is not found
-                       //
-                       if (baseIndex == -1 || nonBaseIndex == -1) {
-                               System.err.println("Either base or non-base vf module is not found from AAI response.");
-                               retract($aainqf199RequestWrapper);
-                               retract($aainqf199ResponseWrapper);
-                               retract($manager);
-                               retract($event);
-                               return;
-                       }
-                       //
-                       // This comes from the base module
-                       //
-                       vfModuleItemVfModuleName =                      $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(baseIndex).vfModule.vfModuleName;
-                       vfModuleItemVfModuleName = vfModuleItemVfModuleName.replace("Vfmodule", "vDNS");
-                       //
-                       // vfModuleItem - NOT the base module
-                       //
-                       vfModuleItemPersonaModelId =            $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(nonBaseIndex).vfModule.personaModelId;
-                       vfModuleItemPersonaModelVersion =       $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(nonBaseIndex).vfModule.personaModelVersion;
-                       vfModuleItemModelName =                         $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(nonBaseIndex).extraProperties.extraProperty.get(0).propertyValue;
-                       vfModuleItemModelNameVersionId =        $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(nonBaseIndex).extraProperties.extraProperty.get(4).propertyValue;
-                       //
-                       // tenantItem
-                       //
-                       tenantItemTenantId = $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).tenant.tenantId;
-                       //
-                       // cloudRegionItem
-                       //
-                       cloudRegionItemCloudRegionId = $aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).items.inventoryResponseItems.get(0).cloudRegion.cloudRegionId;
-                       //
-               } catch (Exception e) {
-                       e.printStackTrace();
-                       VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
-                       notification.notification = ControlLoopNotificationType.REJECTED;
-                       notification.message = "Exception occurred " + e.getMessage();
-                       notification.policyName = drools.getRule().getName();
-                       notification.policyScope = "${policyScope}";
-                       notification.policyVersion = "${policyVersion}";
-                       //
-                       try {
-                               System.out.println(Serialization.gsonPretty.toJson(notification));
-                               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-                       } catch (Exception e1) {
-                               System.out.println("Can't deliver notification: " + notification);
-                               e1.printStackTrace();
-                       }
-                       //
-                       notification.notification = ControlLoopNotificationType.FINAL_FAILURE;
-                       notification.message = "Invalid named-query response from AAI";
-            //
-            try {
-               System.out.println(Serialization.gsonPretty.toJson(notification));
-                //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-            } catch (Exception e1) {
-                System.out.println("Can't deliver notification: " + notification);
-                e1.printStackTrace();
-            }
-                       //
-                       // Retract everything
-                       //
-                       retract($aainqf199RequestWrapper);
-                       retract($aainqf199ResponseWrapper);
-                       retract($manager);
-                       retract($event);
-                       return;
-               }       
-               //
-               // Extracted fields should not be null
-               //
-               if ((vnfItemVnfId == null) || (vnfItemVnfType == null) ||
-                   (vnfItemPersonaModelId == null) || (vnfItemModelName == null) ||
-                   (vnfItemModelVersion == null) || (vnfItemModelNameVersionId == null) ||
-                   (serviceItemServiceInstanceId == null) || (serviceItemModelName == null) ||
-                   (serviceItemModelType == null) || (serviceItemModelVersion == null) ||
-                   (serviceItemModelNameVersionId == null) || (vfModuleItemVfModuleName == null) ||
-                   (vfModuleItemPersonaModelId == null) || (vfModuleItemPersonaModelVersion == null) ||
-                   (vfModuleItemModelName == null) || (vfModuleItemModelNameVersionId == null) ||
-                   (tenantItemTenantId == null) || (cloudRegionItemCloudRegionId == null)) {
-                       //
-                       System.err.println("some fields are missing from AAI response.");
-                       //
-                       // Fail and retract everything
-                       //
-                       retract($aainqf199RequestWrapper);
-                       retract($aainqf199ResponseWrapper);
-                       retract($manager);
-                       retract($event);
-                       return;
-               }
-               //
-               // We don't need them any more
-               //
-               retract($aainqf199ResponseWrapper);
-               retract($aainqf199RequestWrapper);  
-               //
-               // check the actor of this closed loop
-               //
-               switch ($params.getActor()) {
-                       case "APPC":
-                       {
-                               //
-                               // Construct an APPC request
-                               //
-                               ControlLoopOperation operation = new ControlLoopOperation();
-                               operation.actor = $params.getActor();
-                               operation.operation = "ModifyConfig";
-                               operation.target = $event.target;
-                               //
-                               // Create operationWrapper
-                               //
-                               ControlLoopOperationWrapper operationWrapper = new ControlLoopOperationWrapper($event.requestID, operation);
-                               //
-                               // insert operationWrapper into memory
-                               //
-                               insert(operationWrapper);
-                               //
-                               Request request = new Request();
-                               request.CommonHeader = new CommonHeader();
-                               request.CommonHeader.RequestID = $event.requestID;
-                               request.Action = operation.operation;
-                               request.Payload = new HashMap<String, Object>();
-                               //
-                               // Fill in the payload
-                               // Hardcode genericVNF for now since AAI has not been ready for vFirewall demo case
-                               //
-                               String genericVNF = "zdfw1fwl01pgn02";
-                               request.Payload.put("generic-vnf.vnf-id", genericVNF);
-                               //
-                               PGRequest pgRequest = new PGRequest();
-                               pgRequest.pgStreams = new PGStreams();
-                               
-                               PGStream pgStream;
-                               for(int i = 0; i < 5; i++){
-                                       pgStream = new PGStream();
-                                       pgStream.streamId = "fw_udp"+(i+1);
-                                       pgStream.isEnabled = "true";
-                                       pgRequest.pgStreams.pgStream.add(pgStream);
-                               }
-                               request.Payload.put("pg-streams", pgRequest.pgStreams);
-                               
-                               if (request != null) {
-                                       //
-                                       // Insert request into memory
-                                       //
-                                       insert(request);
-                                       //
-                                       // Tell interested parties we are performing this Operation
-                                       //
-                                       VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
-                                       notification.notification = ControlLoopNotificationType.OPERATION;
-                                       // message and history ??
-                                       notification.from = "policy";
-                                       notification.policyName = drools.getRule().getName();
-                                       notification.policyScope = "${policyScope}";
-                                       notification.policyVersion = "${policyVersion}";
-                                       try {
-                                               System.out.println(Serialization.gsonPretty.toJson(notification));
-                                               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-                                       } catch (Exception e) {
-                                               System.out.println("Can't deliver notification: " + notification);
-                                               e.printStackTrace();
-                                       }
-                                       //
-                                       // Now send the operation request
-                                       //
-                                       if (request instanceof Request) {
-                                               try {
-                                                       System.out.println("APPC request sent:");
-                                                       System.out.println(Serialization.gsonPretty.toJson(request));
-                                                       //PolicyEngine.manager.deliver($params.getAppcTopic(), request);
-                                               } catch (Exception e) {
-                                                       e.printStackTrace();
-                                                       System.out.println("Can't deliver request: " + request);
-                                               }
-                                       }
-                               } else {
-                                       //
-                                       // what happens if it is null
-                                       //
-                               }
-                       }
-                       break;
-                       case "SO":
-                       {
-                               //
-                               // Construct an operation
-                               //
-                               ControlLoopOperation operation = new ControlLoopOperation();
-                               operation.actor = $params.getActor();
-                               operation.operation = "createModuleInstance";
-                               operation.target = $event.target;
-                               //
-                               // Create operationWrapper
-                               //
-                               ControlLoopOperationWrapper operationWrapper = new ControlLoopOperationWrapper($event.requestID, operation);
-                               //
-                               // Construct an SO request
-                               //
-                               SORequest request = new SORequest();
-                               request.requestDetails = new SORequestDetails();
-                               request.requestDetails.modelInfo = new SOModelInfo();
-                               request.requestDetails.cloudConfiguration = new SOCloudConfiguration();
-                               request.requestDetails.requestInfo = new SORequestInfo();
-                               request.requestDetails.requestParameters = new SORequestParameters();
-                               request.requestDetails.requestParameters.userParams = null;
-                               //
-                               // cloudConfiguration
-                               //
-                               request.requestDetails.cloudConfiguration.lcpCloudRegionId = cloudRegionItemCloudRegionId;
-                               request.requestDetails.cloudConfiguration.tenantId = tenantItemTenantId;
-                               //
-                               // modelInfo
-                               //
-                               request.requestDetails.modelInfo.modelType = "vfModule";
-                               request.requestDetails.modelInfo.modelInvariantId = vfModuleItemPersonaModelId;
-                               request.requestDetails.modelInfo.modelNameVersionId = vfModuleItemModelNameVersionId;
-                               request.requestDetails.modelInfo.modelName = vfModuleItemModelName;
-                               request.requestDetails.modelInfo.modelVersion = vfModuleItemPersonaModelVersion;
-                               //
-                               // requestInfo
-                               //
-                               request.requestDetails.requestInfo.instanceName = vfModuleItemVfModuleName;
-                               request.requestDetails.requestInfo.source = "POLICY";
-                               request.requestDetails.requestInfo.suppressRollback = false;
-                               //
-                               // relatedInstanceList
-                               //
-                               SORelatedInstanceListElement relatedInstanceListElement1 = new SORelatedInstanceListElement();
-                               SORelatedInstanceListElement relatedInstanceListElement2 = new SORelatedInstanceListElement();
-                               relatedInstanceListElement1.relatedInstance = new SORelatedInstance();
-                               relatedInstanceListElement2.relatedInstance = new SORelatedInstance();
-                               //
-                               relatedInstanceListElement1.relatedInstance.instanceId = serviceItemServiceInstanceId;
-                               relatedInstanceListElement1.relatedInstance.modelInfo = new SOModelInfo();
-                               relatedInstanceListElement1.relatedInstance.modelInfo.modelType = "service";
-                               relatedInstanceListElement1.relatedInstance.modelInfo.modelInvariantId = serviceItemPersonaModelId;
-                               relatedInstanceListElement1.relatedInstance.modelInfo.modelNameVersionId = serviceItemModelNameVersionId;
-                               relatedInstanceListElement1.relatedInstance.modelInfo.modelName = serviceItemModelName;
-                               relatedInstanceListElement1.relatedInstance.modelInfo.modelVersion = serviceItemModelVersion;
-                               //
-                               relatedInstanceListElement2.relatedInstance.instanceId = vnfItemVnfId;
-                               relatedInstanceListElement2.relatedInstance.modelInfo = new SOModelInfo();
-                               relatedInstanceListElement2.relatedInstance.modelInfo.modelType = "vnf";
-                               relatedInstanceListElement2.relatedInstance.modelInfo.modelInvariantId = vnfItemPersonaModelId;
-                               relatedInstanceListElement2.relatedInstance.modelInfo.modelNameVersionId = vnfItemModelNameVersionId;
-                               relatedInstanceListElement2.relatedInstance.modelInfo.modelName = vnfItemModelName;
-                               relatedInstanceListElement2.relatedInstance.modelInfo.modelVersion = vnfItemModelVersion;
-                               relatedInstanceListElement2.relatedInstance.modelInfo.modelCustomizationName = vnfItemVnfType;
-                               //      
-                               request.requestDetails.relatedInstanceList.add(relatedInstanceListElement1);
-                               request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2);
-                               //
-                               // print SO request for debug
-                               //
-                               System.out.println("SO request sent:");
-                               System.out.println(Serialization.gsonPretty.toJson(request));
-                               //
-                               //
-                               //
-                               if (request != null) {
-                                       //
-                                       // Tell interested parties we are performing this Operation
-                                       //
-                                       VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
-                                       notification.notification = ControlLoopNotificationType.OPERATION;
-                                       notification.from = "policy";
-                                       notification.policyName = drools.getRule().getName();
-                                       notification.policyScope = "${policyScope}";
-                                       notification.policyVersion = "${policyVersion}";
-                                       try {
-                                               System.out.println(Serialization.gsonPretty.toJson(notification));
-                                               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-                                       } catch (Exception e) {
-                                               System.out.println("Can't deliver notification: " + notification);
-                                               e.printStackTrace();
-                                       }
-                                       //
-                                       // Concatenate serviceItemServiceInstanceId and vnfItemVnfId to msoURL
-                                       //
-                                       String SOUrl = $params.getMsoURL() + "/serviceInstances/v2/" + serviceItemServiceInstanceId + "/vnfs/" + vnfItemVnfId + "/vfModules";
-                                       //
-                                       // Call SO
-                                       //
-                                       SOResponse response = SOManager.createModuleInstance(SOUrl, $params.getMsoURL(), $params.getMsoUsername(), $params.getMsoPassword(), request);
-                                       
-                                       
-                                       
-                                       
-                                       //////////////////////////////////////////////////////////
-                                       // Simulate a valid SOResponse for junit test
-                                       // Remove this for real deployment
-                                       //
-                                       response = new SOResponse();
-                                       response.request = new SORequest();
-                                       response.request.requestStatus = new SORequestStatus();
-                                       response.request.requestStatus.requestState = "COMPLETE";
-                                       //////////////////////////////////////////////////////////
-                                       
-                                       
-                                       
-                                       
-                                       
-                                       if (response != null) {
-                                               //
-                                               // Assign requestId
-                                               //
-                                               request.requestId = $event.requestID.toString();                                                
-                                               response.request.requestId = $event.requestID.toString();
-                                               //
-                                               // Insert facts
-                                               //
-                                               insert(operationWrapper);
-                                               insert(request);
-                                               insert(response);
-                                       } else {
-                                               //
-                                               // SO request not even accepted
-                                               //
-                                               notification.message = operationWrapper.operation.toMessage();
-                                               operationWrapper.operation.message = operationWrapper.operation.toMessage();
-                                               operationWrapper.operation.outcome = "FAILURE_EXCEPTION";
-                                               $manager.setControlLoopResult("FAILURE_EXCEPTION");
-                                               notification.history.add(operationWrapper.operation);
-                                               notification.notification = ControlLoopNotificationType.OPERATION_FAILURE;
-                                               //
-                                               // Let interested parties know
-                                               //
-                                               try {
-                                                       System.out.println(Serialization.gsonPretty.toJson(notification));
-                                                       //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-                                               } catch (Exception e) {
-                                                       System.out.println("Can't deliver notification: " + notification);
-                                                       e.printStackTrace();
-                                               }
-                           notification.notification = ControlLoopNotificationType.FINAL_FAILURE;
-                        try {
-                               System.out.println(Serialization.gsonPretty.toJson(notification));
-                               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-                        } catch (Exception e) {
-                               System.out.println("Can't deliver notification: " + notification);
-                               e.printStackTrace();
-                        }
-                                               //
-                                               // Retract everything
-                                               //
-                                               retract($event);
-                                               retract($manager);
-                                       }
-                               } else {
-                                       System.err.println("constructed SO request is invalid.");
-                               }
-                       }
-                       break; 
-               } 
-end
-               
-/*
-*
-* This rule responds to APPC Response Events
-*
-*/
-rule "${policyName}.APPC.RESPONSE"
-       when
-               $params : Params( getClosedLoopControlName() == "${closedLoopControlName}" )
-               $event : VirtualControlLoopEvent( closedLoopControlName == $params.getClosedLoopControlName(), closedLoopEventStatus == ControlLoopEventStatus.ONSET )
-               $manager : ControlLoopEventManager( closedLoopControlName == $event.closedLoopControlName )
-               $operationWrapper : ControlLoopOperationWrapper( requestID == $event.requestID )
-               $request : Request( getCommonHeader().RequestID == $event.requestID )
-               $response : Response( getCommonHeader().RequestID == $event.requestID ) 
-       then
-               System.out.println("rule APPC.RESPONSE is triggered.");
-               if ($response.Status == null) {
-                       $operationWrapper.operation.outcome = "FAILURE_EXCEPTION";
-                       $manager.setControlLoopResult("FAILURE_EXCEPTION");
-               } 
-               //
-               // Get the Response Code
-               //
-               ResponseCode code = ResponseCode.toResponseCode($response.Status.Code);
-               if (code == null) {
-                       $operationWrapper.operation.outcome = "FAILURE_EXCEPTION";
-                       $manager.setControlLoopResult("FAILURE_EXCEPTION");
-               }
-               //
-               // Construct notification
-               //
-               VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
-               notification.from = "policy";
-               notification.policyName = drools.getRule().getName();
-               notification.policyScope = "${policyScope}";
-               notification.policyVersion = "${policyVersion}";
-               notification.message = $operationWrapper.operation.toMessage();
-               $operationWrapper.operation.message = $operationWrapper.operation.toMessage();
-               //
-               // Ok, let's figure out what APP-C's response is
-               //
-               switch (code) {
-                       case ACCEPT:
-                               $operationWrapper.operation.outcome = "PROCESSING";
-                               break;
-                       case ERROR:
-                       case REJECT:
-                               $operationWrapper.operation.outcome = "FAILURE_EXCEPTION";
-                               $manager.setControlLoopResult("FAILURE_EXCEPTION");
-                               break;
-                       case SUCCESS:
-                               $operationWrapper.operation.outcome = "SUCCESS";
-                               $manager.setControlLoopResult("SUCCESS");
-                               break;
-                       case FAILURE:
-                               $operationWrapper.operation.outcome = "FAILURE";
-                               $manager.setControlLoopResult("FAILURE");
-                               break;
-               }
-               if ($operationWrapper.operation.outcome.equals("SUCCESS")) {
-                       notification.history.add($operationWrapper.operation);
-                       notification.notification = ControlLoopNotificationType.OPERATION_SUCCESS;
-                       //
-                       // Let interested parties know
-                       //
-                       try {
-                               System.out.println(Serialization.gsonPretty.toJson(notification));
-                               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-                       } catch (Exception e) {
-                               System.out.println("Can't deliver notification: " + notification);
-                               e.printStackTrace();
-                       }
-            notification.notification = ControlLoopNotificationType.FINAL_SUCCESS;
-            try {
-               System.out.println(Serialization.gsonPretty.toJson(notification));
-               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-            } catch (Exception e) {
-               System.out.println("Can't deliver notification: " + notification);
-               e.printStackTrace();
-            }
-
-                       //
-                       // We are going to retract these objects from memory
-                       //
-                       System.out.println("Retracting everything");
-                       retract($operationWrapper);
-                       retract($request);
-                       retract($response);
-                       retract($event);
-                       retract($manager);
-               } else if ($operationWrapper.operation.outcome.equals("PROCESSING")) {
-                       retract($response);
-               } else {
-                       notification.history.add($operationWrapper.operation);
-                       notification.notification = ControlLoopNotificationType.OPERATION_FAILURE;
-                       //
-                       // Let interested parties know
-                       //
-                       try {
-                               System.out.println(Serialization.gsonPretty.toJson(notification));
-                               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-                       } catch (Exception e) {
-                               System.out.println("Can't deliver notification: " + notification);
-                               e.printStackTrace();
-                       }
-            notification.notification = ControlLoopNotificationType.FINAL_FAILURE;
-            //
-            // Let interested parties know
-            //
-            try {
-               System.out.println(Serialization.gsonPretty.toJson(notification));
-               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-            } catch (Exception e) {
-               System.out.println("Can't deliver notification: " + notification);
-               e.printStackTrace();
-            }
-                       //
-                       // We are going to retract these objects from memory
-                       //
-                       System.out.println("Retracting everything");
-                       retract($operationWrapper);
-                       retract($request);
-                       retract($response);
-                       retract($event);
-                       retract($manager);
-               }
-               
-end            
-
-/*
-*
-* This rule is used to clean up APPC response
-*
-*/             
-rule "${policyName}.APPC.RESPONSE.CLEANUP"
-       when
-               $params : Params( getClosedLoopControlName() == "${closedLoopControlName}" )
-        $response : Response($id : getCommonHeader().RequestID )
-               not ( VirtualControlLoopEvent( closedLoopControlName == $params.getClosedLoopControlName(), requestID == $id, closedLoopEventStatus == ControlLoopEventStatus.ONSET ) ) 
-       then
-               System.out.println("rule APPC.RESPONSE.CLEANUP is triggered.");
-               retract($response);
-end
-
-/*
-*
-* This rule responds to SO Response Events
-*
-*/
-rule "${policyName}.SO.RESPONSE"
-       when
-               $params : Params( getClosedLoopControlName() == "${closedLoopControlName}" )
-               $event : VirtualControlLoopEvent( closedLoopControlName == $params.getClosedLoopControlName(), closedLoopEventStatus == ControlLoopEventStatus.ONSET )
-               $manager : ControlLoopEventManager( closedLoopControlName == $event.closedLoopControlName )
-               $operationWrapper : ControlLoopOperationWrapper( requestID == $event.requestID )
-               $request : SORequest( requestId == $event.requestID.toString() )
-               $response : SOResponse( request.requestId == $event.requestID.toString() )      
-       then
-               System.out.println("rule SO.RESPONSE is triggered.");
-               //
-               // Construct notification
-               //
-               VirtualControlLoopNotification notification = new VirtualControlLoopNotification($event);
-               notification.from = "policy";
-               notification.policyName = drools.getRule().getName();
-               notification.policyScope = "${policyScope}";
-               notification.policyVersion = "${policyVersion}";
-               notification.message = $operationWrapper.operation.toMessage();
-               $operationWrapper.operation.message = $operationWrapper.operation.toMessage();
-               //
-               // The operation can either be succeeded or failed
-               // 
-               if($response.request.requestStatus.requestState.equals("COMPLETE")) {
-                       $operationWrapper.operation.outcome = "SUCCESS";
-                       $manager.setControlLoopResult("SUCCESS");
-                       notification.history.add($operationWrapper.operation);
-                       notification.notification = ControlLoopNotificationType.OPERATION_SUCCESS;
-                       //
-                       // Let interested parties know
-                       //
-                       try {
-                               System.out.println(Serialization.gsonPretty.toJson(notification));
-                               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-                       } catch (Exception e) {
-                               System.out.println("Can't deliver notification: " + notification);
-                               e.printStackTrace();
-                       }
-                       notification.notification = ControlLoopNotificationType.FINAL_SUCCESS;
-            //
-            // Let interested parties know
-            //
-            try {
-               System.out.println(Serialization.gsonPretty.toJson(notification));
-               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-            } catch (Exception e) {
-               System.out.println("Can't deliver notification: " + notification);
-               e.printStackTrace();
-            }
-            //
-                       // We are going to retract these objects from memory
-                       //
-                       System.out.println("Retracting everything");
-                       retract($operationWrapper);
-                       retract($request);
-                       retract($response);
-                       retract($event);
-                       retract($manager);
-               } else {
-                       $operationWrapper.operation.outcome = "FAILURE";
-                       $manager.setControlLoopResult("FAILURE");
-                       notification.history.add($operationWrapper.operation);
-                       notification.notification = ControlLoopNotificationType.OPERATION_FAILURE;
-                       //
-                       // Let interested parties know
-                       //
-                       try {
-                               System.out.println(Serialization.gsonPretty.toJson(notification));
-                               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-                       } catch (Exception e) {
-                               System.out.println("Can't deliver notification: " + notification);
-                               e.printStackTrace();
-                       }
-                       notification.notification = ControlLoopNotificationType.FINAL_FAILURE;
-            //
-            // Let interested parties know
-            //
-            try {
-               System.out.println(Serialization.gsonPretty.toJson(notification));
-               //PolicyEngine.manager.deliver($params.getNotificationTopic(), notification);
-            } catch (Exception e) {
-               System.out.println("Can't deliver notification: " + notification);
-               e.printStackTrace();
-            }
-            //
-                       // We are going to retract these objects from memory
-                       //
-                       System.out.println("Retracting everything");
-                       retract($operationWrapper);
-                       retract($request);
-                       retract($response);
-                       retract($event);
-                       retract($manager);
-               }               
-end
-
-/*
- * Sample Queries for illustration with and without arguments
- * The results of the query can be introspected (and retracted if desired)
- * through REST API.
- */
-query "${policyName}.QUERY.EVENT.ONSET"
-       event : VirtualControlLoopEvent( closedLoopEventStatus == ControlLoopEventStatus.ONSET )
-end
-
-query "${policyName}.QUERY.MANAGER.RNA" (String aRequestId, Integer numOnsetsLowerBound, Boolean aActivated)
-       manager : ControlLoopEventManager( closedLoopControlName == "${closedLoopControlName}", 
-                               requestID.toString() == aRequestId, 
-                               numOnsets > numOnsetsLowerBound,
-                               activated == aActivated )
-end
diff --git a/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestAPPCPayload.java b/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestAPPCPayload.java
deleted file mode 100644 (file)
index 42b28d2..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * demo
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.template.demo;
-
-import java.util.HashMap;
-import java.util.UUID;
-
-import org.junit.Test;
-import org.onap.policy.appc.CommonHeader;
-import org.onap.policy.appc.Request;
-import org.onap.policy.appc.util.Serialization;
-import org.onap.policy.vnf.trafficgenerator.PGRequest;
-import org.onap.policy.vnf.trafficgenerator.PGStream;
-import org.onap.policy.vnf.trafficgenerator.PGStreams;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class TestAPPCPayload {
-
-       private static final Logger logger = LoggerFactory.getLogger(TestAPPCPayload.class);
-       @Test
-       public void test() {
-               PGRequest request = new PGRequest();
-               request.pgStreams = new PGStreams();
-               
-               PGStream pgStream;
-               for(int i = 0; i < 5; i++){
-                       pgStream = new PGStream();
-                       pgStream.streamId = "fw_udp"+(i+1);
-                       pgStream.isEnabled = "true";
-                       request.pgStreams.pgStream.add(pgStream);
-               }
-               
-               Request appc = new Request();
-               appc.CommonHeader = new CommonHeader();
-               appc.CommonHeader.RequestID = UUID.randomUUID();
-               appc.Action = "ModifyConfig";
-               appc.Payload = new HashMap<String, Object>();
-               appc.Payload.put("pg-streams", request);
-               logger.debug(Serialization.gsonPretty.toJson(appc));
-       }
-
-}
diff --git a/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestFirewallDemo.java b/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestFirewallDemo.java
deleted file mode 100644 (file)
index 5675b6b..0000000
+++ /dev/null
@@ -1,594 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * demo
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.template.demo;
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.time.Instant;
-import java.util.HashMap;
-import java.util.UUID;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.junit.Test;
-import org.kie.api.KieServices;
-import org.kie.api.builder.KieBuilder;
-import org.kie.api.builder.KieFileSystem;
-import org.kie.api.builder.Message;
-import org.kie.api.builder.ReleaseId;
-import org.kie.api.builder.Results;
-import org.kie.api.builder.model.KieModuleModel;
-import org.kie.api.runtime.KieContainer;
-import org.kie.api.runtime.KieSession;
-import org.kie.api.runtime.rule.FactHandle;
-import org.onap.policy.appc.CommonHeader;
-import org.onap.policy.appc.Response;
-import org.onap.policy.appc.ResponseStatus;
-import org.onap.policy.controlloop.ControlLoopEventStatus;
-import org.onap.policy.controlloop.ControlLoopTargetType;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
-import org.onap.policy.appc.util.Serialization;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-public class TestFirewallDemo {
-
-       private static final Logger logger = LoggerFactory.getLogger(TestFirewallDemo.class);
-       @Test
-       public void testvDNS() throws IOException {
-               //
-               // Build a container
-               //
-               final String closedLoopControlName = "CL-DNS-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8";
-               final KieSession kieSession = buildContainer("src/main/resources/archetype-resources/src/main/resources/ControlLoopDemo__closedLoopControlName__.drl", 
-                               closedLoopControlName, 
-                               "type=operational", 
-                               "myFirewallDemoPolicy", 
-                               "v1.0",
-                               "SO",
-                               "http://localhost:8080/TestREST/Test",
-                               "POLICY",
-                               "POLICY",
-                               "http://localhost:8080/TestREST/Test",
-                               "POLICY",
-                               "POLICY",
-                               "4ff56a54-9e3f-46b7-a337-07a1d3c6b469",
-                               0,
-                               "POLICY-CL-MGT",
-                               "APPC-CL"
-                               );
-               //
-               // Initial fire of rules
-               //
-               kieSession.fireAllRules();
-               //
-               // Kick a thread that starts testing
-               //
-               new Thread(new Runnable() {
-
-                       @Override
-                       public void run() {
-                               //
-                               // Generate an invalid DCAE Event with requestID=null
-                               //
-                               VirtualControlLoopEvent invalidEvent = new VirtualControlLoopEvent();
-                               invalidEvent.closedLoopControlName = closedLoopControlName;
-                               invalidEvent.requestID = null;
-                               invalidEvent.closedLoopEventClient = "tca.instance00001";
-                               invalidEvent.target_type = ControlLoopTargetType.VF;
-                               invalidEvent.target = "generic-vnf.vnf-id";
-                               invalidEvent.from = "DCAE";
-                               invalidEvent.closedLoopAlarmStart = Instant.now();
-                               invalidEvent.AAI = new HashMap<String, String>();
-                               invalidEvent.AAI.put("vserver.vserver-name", "vserver-name-16102016-aai3255-data-11-1");
-                               invalidEvent.closedLoopEventStatus = ControlLoopEventStatus.ONSET;
-                               
-                               logger.debug("----- Invalid ONSET -----");
-                               logger.debug(Serialization.gsonPretty.toJson(invalidEvent));
-                               
-                               //
-                               // Insert invalid DCAE Event into memory
-                               //
-                               kieSession.insert(invalidEvent);        
-                               try {
-                                       Thread.sleep(500);
-                               } catch (InterruptedException e) {
-                               }
-                               //
-                               // Generate first DCAE ONSET Event
-                               //
-                               VirtualControlLoopEvent onsetEvent = new VirtualControlLoopEvent();
-                               onsetEvent.closedLoopControlName = closedLoopControlName;
-                               onsetEvent.requestID = UUID.randomUUID();
-                               onsetEvent.closedLoopEventClient = "tca.instance00001";
-                               onsetEvent.target_type = ControlLoopTargetType.VF;
-                               onsetEvent.target = "generic-vnf.vnf-id";
-                               onsetEvent.from = "DCAE";
-                               onsetEvent.closedLoopAlarmStart = Instant.now();
-                               onsetEvent.AAI = new HashMap<String, String>();
-                               onsetEvent.AAI.put("vserver.vserver-name", "vserver-name-16102016-aai3255-data-11-1");
-                               onsetEvent.closedLoopEventStatus = ControlLoopEventStatus.ONSET;
-                               
-                               logger.debug("----- ONSET -----");
-                               logger.debug(Serialization.gsonPretty.toJson(onsetEvent));
-                               
-                               //
-                               // Insert first DCAE ONSET Event into memory
-                               //
-                               kieSession.insert(onsetEvent);
-                               //
-                               // We have test for subsequent ONSET Events in testvFirewall()
-                               // So no need to test it again here
-                               //
-                               try {
-                                       Thread.sleep(10000);
-                               } catch (InterruptedException e) {
-                               }
-                               //
-                               // Test is finished, so stop the kieSession
-                               //
-                               kieSession.halt();
-                       }
-               //
-               }).start();
-               //
-               // Start firing rules
-               //
-               kieSession.fireUntilHalt();
-               //
-               // Dump working memory
-               //
-               dumpFacts(kieSession);
-               //
-               // See if there is anything left in memory, there SHOULD only be
-               // a params fact.
-               //
-               assertEquals("There should only be 1 Fact left in memory.", 1, kieSession.getFactCount());
-               for (FactHandle handle : kieSession.getFactHandles()) {
-                       Object fact = kieSession.getObject(handle);
-                       assertEquals("Non-Param Fact left in working memory", "org.onap.policy.controlloop.Params", fact.getClass().getName());
-               }
-       }
-       
-       @Test
-       public void testvFirewall() throws IOException {
-               //
-               // Build a container
-               //
-               final String closedLoopControlName = "CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8";
-               final KieSession kieSession = buildContainer("src/main/resources/archetype-resources/src/main/resources/ControlLoopDemo__closedLoopControlName__.drl", 
-                               closedLoopControlName, 
-                               "type=operational", 
-                               "myFirewallDemoPolicy", 
-                               "v1.0",
-                               "APPC",
-                               "http://localhost:8080/TestREST/Test",
-                               "POLICY",
-                               "POLICY",
-                               null,
-                               null,
-                               null,
-                               null,
-                               1,
-                               "POLICY-CL-MGT",
-                               "APPC-CL"
-                               );
-               //
-               // Initial fire of rules
-               //
-               kieSession.fireAllRules();
-               //
-               // Kick a thread that starts testing
-               //
-               new Thread(new Runnable() {
-
-                       @Override
-                       public void run() {
-                               //
-                               // Generate an invalid DCAE Event with requestID=null
-                               //
-                               VirtualControlLoopEvent invalidEvent = new VirtualControlLoopEvent();
-                               invalidEvent.closedLoopControlName = closedLoopControlName;
-                               invalidEvent.requestID = null;
-                               invalidEvent.closedLoopEventClient = "tca.instance00001";
-                               invalidEvent.target_type = ControlLoopTargetType.VF;
-                               invalidEvent.target = "generic-vnf.vnf-id";
-                               invalidEvent.from = "DCAE";
-                               invalidEvent.closedLoopAlarmStart = Instant.now();
-                               invalidEvent.AAI = new HashMap<String, String>();
-                               invalidEvent.AAI.put("generic-vnf.vnf-id", "foo");
-                               invalidEvent.closedLoopEventStatus = ControlLoopEventStatus.ONSET;
-                               
-                               logger.debug("----- Invalid ONSET -----");
-                               logger.debug(Serialization.gsonPretty.toJson(invalidEvent));
-                               
-                               //
-                               // Insert invalid DCAE Event into memory
-                               //
-                               kieSession.insert(invalidEvent);        
-                               try {
-                                       Thread.sleep(500);
-                               } catch (InterruptedException e) {
-                               }
-                               //
-                               // Generate first DCAE ONSET Event
-                               //
-                               VirtualControlLoopEvent onsetEvent = new VirtualControlLoopEvent();
-                               onsetEvent.closedLoopControlName = closedLoopControlName;
-                               onsetEvent.requestID = UUID.randomUUID();
-                               onsetEvent.closedLoopEventClient = "tca.instance00001";
-                               onsetEvent.target_type = ControlLoopTargetType.VF;
-                               onsetEvent.target = "generic-vnf.vnf-id";
-                               onsetEvent.from = "DCAE";
-                               onsetEvent.closedLoopAlarmStart = Instant.now();
-                               onsetEvent.AAI = new HashMap<String, String>();
-                               onsetEvent.AAI.put("generic-vnf.vnf-id", "fw0001vm001fw001");
-                               //onsetEvent.AAI.put("vserver.vserver-name", "vserver-name-16102016-aai3255-data-11-1");
-                               onsetEvent.closedLoopEventStatus = ControlLoopEventStatus.ONSET;
-                               
-                               logger.debug("----- ONSET -----");
-                               logger.debug(Serialization.gsonPretty.toJson(onsetEvent));
-                               
-                               //
-                               // Insert first DCAE ONSET Event into memory
-                               //
-                               kieSession.insert(onsetEvent);
-                               try {
-                                       Thread.sleep(500);
-                               } catch (InterruptedException e) {
-                               }
-                               
-                               
-                               Thread thread = new Thread(new Runnable() {
-
-                                       @Override
-                                       public void run() {
-                                               while (true) {
-                                                       //
-                                                       // Generate subsequent DCAE ONSET Event
-                                                       //
-                                                       VirtualControlLoopEvent subOnsetEvent = new VirtualControlLoopEvent();
-                                                       subOnsetEvent.closedLoopControlName = closedLoopControlName;
-                                                       subOnsetEvent.requestID = UUID.randomUUID();
-                                                       subOnsetEvent.closedLoopEventClient = "tca.instance00001";
-                                                       subOnsetEvent.target_type = ControlLoopTargetType.VF;
-                                                       subOnsetEvent.target = "generic-vnf.vnf-id";
-                                                       subOnsetEvent.from = "DCAE";
-                                                       subOnsetEvent.closedLoopAlarmStart = Instant.now();
-                                                       subOnsetEvent.AAI = new HashMap<String, String>();
-                                                       subOnsetEvent.AAI.put("generic-vnf.vnf-id", "fw0001vm001fw001");
-                                                       //subOnsetEvent.AAI.put("vserver.vserver-name", "vserver-name-16102016-aai3255-data-11-1");
-                                                       subOnsetEvent.closedLoopEventStatus = ControlLoopEventStatus.ONSET;
-                                                       
-                                                       logger.debug("----- Subsequent ONSET -----");
-                                                       logger.debug(Serialization.gsonPretty.toJson(subOnsetEvent));
-                                                       
-                                                       //
-                                                       // Insert subsequent DCAE ONSET Event into memory
-                                                       //
-                                                       kieSession.insert(subOnsetEvent);
-                                                       try {
-                                                               Thread.sleep(500);
-                                                       } catch (InterruptedException e) {
-                                                               break;
-                                                       }
-                                               }
-                                       }
-                                       
-                               });
-                               thread.start();
-                               try {
-                                       Thread.sleep(3000);
-                               } catch (InterruptedException e) {
-                               }
-                               //
-                               // Stop the thread
-                               //
-                               thread.interrupt();
-                               //
-                               // Generate APPC ACCEPT Response
-                               //
-                               Response response1 = new Response();
-                               // CommonHeader
-                               CommonHeader commonHeader1 = new CommonHeader();
-                               commonHeader1.RequestID = onsetEvent.requestID;
-                               response1.CommonHeader = commonHeader1;
-                               // ResponseStatus
-                               ResponseStatus responseStatus1 = new ResponseStatus();
-                               responseStatus1.Code = 100;
-                               response1.Status = responseStatus1;
-                               //
-                               logger.debug("----- APP-C RESPONSE 100 -----");
-                               logger.debug(Serialization.gsonPretty.toJson(response1));
-                               //
-                               // Insert APPC Response into memory
-                               //
-                               kieSession.insert(response1);
-                               //
-                               // Simulating APPC takes some time for processing the recipe 
-                               // and then gives response
-                               //
-                               try {
-                                       Thread.sleep(1000);
-                               } catch (InterruptedException e) {
-                               }
-                               //
-                               // Generate APPC SUCCESS Response
-                               //
-                               Response response2 = new Response();
-                               // CommonHeader
-                               CommonHeader commonHeader2 = new CommonHeader();
-                               commonHeader2.RequestID = onsetEvent.requestID;
-                               response2.CommonHeader = commonHeader2;
-                               // ResponseStatus
-                               ResponseStatus responseStatus2 = new ResponseStatus();
-                               responseStatus2.Code = 400;
-                               response2.Status = responseStatus2;
-                               //
-                               logger.debug("----- APP-C RESPONSE 400 -----");
-                               logger.debug(Serialization.gsonPretty.toJson(response2));
-                               //
-                               // Insert APPC Response into memory
-                               //
-                               kieSession.insert(response2);
-                               //
-                               try {
-                                       Thread.sleep(3000);
-                               } catch (InterruptedException e) {
-                               }
-                               //
-                               // Test is finished, so stop the kieSession
-                               //
-                               kieSession.halt();
-                       }
-               //
-               }).start();
-               //
-               // Start firing rules
-               //
-               kieSession.fireUntilHalt();
-               //
-               // Dump working memory
-               //
-               dumpFacts(kieSession);
-               //
-               // See if there is anything left in memory, there SHOULD only be
-               // a params fact.
-               //
-               assertEquals("There should only be 1 Fact left in memory.", 1, kieSession.getFactCount());
-               for (FactHandle handle : kieSession.getFactHandles()) {
-                       Object fact = kieSession.getObject(handle);
-                       assertEquals("Non-Param Fact left in working memory", "org.onap.policy.controlloop.Params", fact.getClass().getName());
-               }
-       }
-       
-       public static void dumpFacts(KieSession kieSession) {
-               logger.debug("Fact Count: {}", kieSession.getFactCount());
-               for (FactHandle handle : kieSession.getFactHandles()) {
-                       logger.debug("FACT: {}", handle);
-               }
-       }
-
-       public static KieSession buildContainer(String droolsTemplate, 
-                       String closedLoopControlName, 
-                       String policyScope, 
-                       String policyName, 
-                       String policyVersion, 
-                       String actor, 
-                       String aaiURL,
-                       String aaiUsername,
-                       String aaiPassword,
-                       String msoURL,
-                       String msoUsername,
-                       String msoPassword,
-                       String aaiNamedQuery,
-                       int aaiPatternMatch,
-                       String notificationTopic,
-                       String appcTopic ) throws IOException {
-               //
-       // Get our Drools Kie factory
-       //
-        KieServices ks = KieServices.Factory.get();
-        
-        KieModuleModel kModule = ks.newKieModuleModel();
-        
-        logger.debug("KMODULE: {} {}", System.lineSeparator(), kModule.toXML());
-        
-        //
-        // Generate our drools rule from our template
-        //
-        KieFileSystem kfs = ks.newKieFileSystem();
-        
-        kfs.writeKModuleXML(kModule.toXML());
-        {
-               Path rule = Paths.get(droolsTemplate);
-               String ruleTemplate = new String(Files.readAllBytes(rule));
-               String drlContents = generatePolicy(ruleTemplate,
-                                                               closedLoopControlName,
-                                                               policyScope,
-                                                                       policyName,
-                                                                       policyVersion,
-                                                                       actor,
-                                                                       aaiURL,
-                                                                       aaiUsername,
-                                                                       aaiPassword,
-                                                                       msoURL,
-                                                                       msoUsername,
-                                                                       msoPassword,
-                                                                       aaiNamedQuery,
-                                                                       aaiPatternMatch,
-                                                                       notificationTopic,
-                                                                       appcTopic
-                                                                       );
-               
-               kfs.write("src/main/resources/" + policyName + ".drl", ks.getResources().newByteArrayResource(drlContents.getBytes()));
-        }
-        //
-        // Compile the rule
-        //
-        KieBuilder builder = ks.newKieBuilder(kfs).buildAll();
-        Results results = builder.getResults();
-        if (results.hasMessages(Message.Level.ERROR)) {
-               for (Message msg : results.getMessages()) {
-                       logger.error("{}", msg);
-               }
-               throw new RuntimeException("Drools Rule has Errors");
-        }
-       for (Message msg : results.getMessages()) {
-               logger.debug("{}", msg);
-       }
-       //
-       // Create our kie Session and container
-       //
-        ReleaseId releaseId = ks.getRepository().getDefaultReleaseId();
-        logger.debug("{}", releaseId);
-           KieContainer kContainer = ks.newKieContainer(releaseId);
-           
-           return kContainer.newKieSession();
-       }
-       public static String    generatePolicy(String ruleContents, 
-                       String closedLoopControlName, 
-                       String policyScope, 
-                       String policyName, 
-                       String policyVersion,
-                       String actor,
-                       String aaiURL,
-                       String aaiUsername,
-                       String aaiPassword,
-                       String msoURL,
-                       String msoUsername,
-                       String msoPassword,
-                       String aaiNamedQueryUUID,
-                       int aaiPatternMatch,
-                       String notificationTopic,
-                       String appcTopic) {
-
-               Pattern p = Pattern.compile("\\$\\{closedLoopControlName\\}");
-               Matcher m = p.matcher(ruleContents);
-               ruleContents = m.replaceAll(closedLoopControlName);
-
-               p = Pattern.compile("\\$\\{policyScope\\}");
-               m = p.matcher(ruleContents);
-               ruleContents = m.replaceAll(policyScope);
-
-               p = Pattern.compile("\\$\\{policyName\\}");
-               m = p.matcher(ruleContents);
-               ruleContents = m.replaceAll(policyName);
-
-               p = Pattern.compile("\\$\\{policyVersion\\}");
-               m = p.matcher(ruleContents);
-               ruleContents = m.replaceAll(policyVersion);
-               
-               p = Pattern.compile("\\$\\{actor\\}");
-               m = p.matcher(ruleContents);
-               ruleContents = m.replaceAll(actor);
-               
-               p = Pattern.compile("\\$\\{aaiURL\\}");
-               m = p.matcher(ruleContents);
-               if (aaiURL == null) {
-                       ruleContents = m.replaceAll("null");
-               } else {
-                       ruleContents = m.replaceAll(aaiURL);
-               }
-               
-               p = Pattern.compile("\\$\\{aaiUsername\\}");
-               m = p.matcher(ruleContents);
-               if (aaiUsername == null) {
-                       ruleContents = m.replaceAll("null");
-               } else {
-                       ruleContents = m.replaceAll(aaiUsername);
-               }
-
-               p = Pattern.compile("\\$\\{aaiPassword\\}");
-               m = p.matcher(ruleContents);
-               if (aaiPassword == null) {
-                       ruleContents = m.replaceAll("null");
-               } else {
-                       ruleContents = m.replaceAll(aaiPassword);
-               }
-
-               p = Pattern.compile("\\$\\{msoURL\\}");
-               m = p.matcher(ruleContents);
-               if (msoURL == null) {
-                       ruleContents = m.replaceAll("null");
-               } else {
-                       ruleContents = m.replaceAll(msoURL);
-               }
-
-               p = Pattern.compile("\\$\\{msoUsername\\}");
-               m = p.matcher(ruleContents);
-               if (msoUsername == null) {
-                       ruleContents = m.replaceAll("null");
-               } else {
-                       ruleContents = m.replaceAll(msoUsername);
-               }
-
-               p = Pattern.compile("\\$\\{msoPassword\\}");
-               m = p.matcher(ruleContents);
-               if (msoPassword == null) {
-                       ruleContents = m.replaceAll("null");
-               } else {
-                       ruleContents = m.replaceAll(msoPassword);
-               }
-
-               p = Pattern.compile("\\$\\{aaiNamedQueryUUID\\}");
-               m = p.matcher(ruleContents);
-               if (aaiNamedQueryUUID == null) {
-                       ruleContents = m.replaceAll("null");
-               } else {
-                       ruleContents = m.replaceAll(aaiNamedQueryUUID);
-               }
-
-               p = Pattern.compile("\\$\\{aaiPatternMatch\\}");
-               m = p.matcher(ruleContents);
-               if (aaiPatternMatch == 1) {
-                       ruleContents = m.replaceAll("1");
-               } else {
-                       ruleContents = m.replaceAll("0");
-               }
-               
-               p = Pattern.compile("\\$\\{notificationTopic\\}");
-               m = p.matcher(ruleContents);
-               if (notificationTopic == null) {
-                       ruleContents = m.replaceAll("null");
-               } else {
-                       ruleContents = m.replaceAll(notificationTopic);
-               }
-               
-               p = Pattern.compile("\\$\\{appcTopic\\}");
-               m = p.matcher(ruleContents);
-               if (appcTopic == null) {
-                       ruleContents = m.replaceAll("null");
-               } else {
-                       ruleContents = m.replaceAll(appcTopic);
-               }
-               
-               logger.debug(ruleContents);
-
-               return ruleContents;
-       }
-
-}
diff --git a/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestSO.java b/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/java/org/onap/policy/template/demo/TestSO.java
deleted file mode 100644 (file)
index 333fde6..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * demo
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.template.demo;
-
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.util.UUID;
-
-import org.junit.Test;
-import org.onap.policy.mso.SOCloudConfiguration;
-import org.onap.policy.mso.SOModelInfo;
-import org.onap.policy.mso.SORelatedInstance;
-import org.onap.policy.mso.SORelatedInstanceListElement;
-import org.onap.policy.mso.SORequest;
-import org.onap.policy.mso.SORequestDetails;
-import org.onap.policy.mso.SORequestInfo;
-import org.onap.policy.mso.SORequestParameters;
-import org.onap.policy.aai.AAINQResponse;
-import org.onap.policy.aai.AAINQResponseWrapper;
-import org.onap.policy.mso.util.Serialization;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.gson.Gson;
-import com.google.gson.stream.JsonReader;
-
-public class TestSO {
-
-       private static final Logger logger = LoggerFactory.getLogger(TestSO.class);
-                       
-       @Test
-       public void test() throws FileNotFoundException {
-               Gson gson = new Gson();
-               JsonReader reader = new JsonReader(new FileReader("src/test/resources/aairesponse.json"));
-               AAINQF199Response response = gson.fromJson(reader, AAINQF199Response.class);
-               
-               logger.debug(Serialization.gsonPretty.toJson(response));
-               
-               AAINQF199ResponseWrapper aainqf199ResponseWrapper = new AAINQF199ResponseWrapper(UUID.randomUUID(), response);
-               
-               //
-               //
-               // vnfItem
-               //
-               String vnfItemVnfId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfID;
-               String vnfItemVnfType = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfType;
-               vnfItemVnfType = vnfItemVnfType.substring(vnfItemVnfType.lastIndexOf("/")+1);
-               String vnfItemPersonaModelId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.personaModelId;
-               String vnfItemPersonaModelVersion = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.personaModelVersion;
-               String vnfItemModelName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue;
-               String vnfItemModelNameVersionId =      aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue;
-               //
-               // serviceItem
-               //
-               String serviceItemServiceInstanceId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.serviceInstanceID;
-               String serviceItemPersonaModelId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.personaModelId;
-               String serviceItemModelName = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue;
-               String serviceItemModelVersion = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.personaModelVersion;
-               String serviceItemModelNameVersionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue;
-               //
-               // This comes from the base module
-               //
-               String vfModuleItemVfModuleName =                       aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).vfModule.vfModuleName;
-               vfModuleItemVfModuleName = vfModuleItemVfModuleName.replace("Vfmodule", "vDNS");
-               //
-               // vfModuleItem - NOT the base module
-               //
-               String vfModuleItemPersonaModelId =             aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).vfModule.personaModelId;
-               String vfModuleItemPersonaModelVersion =        aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).vfModule.personaModelVersion;
-               String vfModuleItemModelName =                          aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).extraProperties.extraProperty.get(0).propertyValue;
-               String vfModuleItemModelNameVersionId =         aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(2).extraProperties.extraProperty.get(4).propertyValue;
-               
-               //
-               // tenantItem
-               //
-               String tenantItemTenantId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).tenant.tenantId;
-               //
-               // cloudRegionItem
-               //
-               String cloudRegionItemCloudRegionId = aainqf199ResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).items.inventoryResponseItems.get(0).cloudRegion.cloudRegionId;
-
-               //
-               // Construct an SO request
-               //
-               SORequest request = new SORequest();
-               request.requestDetails = new SORequestDetails();
-               request.requestDetails.modelInfo = new SOModelInfo();
-               request.requestDetails.cloudConfiguration = new SOCloudConfiguration();
-               request.requestDetails.requestInfo = new SORequestInfo();
-               request.requestDetails.requestParameters = new SORequestParameters();
-               request.requestDetails.requestParameters.userParams = null;
-               //
-               // cloudConfiguration
-               //
-               request.requestDetails.cloudConfiguration.lcpCloudRegionId = cloudRegionItemCloudRegionId;
-               request.requestDetails.cloudConfiguration.tenantId = tenantItemTenantId;
-               //
-               // modelInfo
-               //
-               request.requestDetails.modelInfo.modelType = "vfModule";
-               request.requestDetails.modelInfo.modelInvariantId = vfModuleItemPersonaModelId;
-               request.requestDetails.modelInfo.modelNameVersionId = vfModuleItemModelNameVersionId;
-               request.requestDetails.modelInfo.modelName = vfModuleItemModelName;
-               request.requestDetails.modelInfo.modelVersion = vfModuleItemPersonaModelVersion;
-               //
-               // requestInfo
-               //
-               request.requestDetails.requestInfo.instanceName = vfModuleItemVfModuleName;
-               request.requestDetails.requestInfo.source = "POLICY";
-               request.requestDetails.requestInfo.suppressRollback = false;
-               //
-               // relatedInstanceList
-               //
-               SORelatedInstanceListElement relatedInstanceListElement1 = new SORelatedInstanceListElement();
-               SORelatedInstanceListElement relatedInstanceListElement2 = new SORelatedInstanceListElement();
-               relatedInstanceListElement1.relatedInstance = new SORelatedInstance();
-               relatedInstanceListElement2.relatedInstance = new SORelatedInstance();
-               //
-               relatedInstanceListElement1.relatedInstance.instanceId = serviceItemServiceInstanceId;
-               relatedInstanceListElement1.relatedInstance.modelInfo = new SOModelInfo();
-               relatedInstanceListElement1.relatedInstance.modelInfo.modelType = "service";
-               relatedInstanceListElement1.relatedInstance.modelInfo.modelInvariantId = serviceItemPersonaModelId;
-               relatedInstanceListElement1.relatedInstance.modelInfo.modelNameVersionId = serviceItemModelNameVersionId;
-               relatedInstanceListElement1.relatedInstance.modelInfo.modelName = serviceItemModelName;
-               relatedInstanceListElement1.relatedInstance.modelInfo.modelVersion = serviceItemModelVersion;
-               //
-               relatedInstanceListElement2.relatedInstance.instanceId = vnfItemVnfId;
-               relatedInstanceListElement2.relatedInstance.modelInfo = new SOModelInfo();
-               relatedInstanceListElement2.relatedInstance.modelInfo.modelType = "vnf";
-               relatedInstanceListElement2.relatedInstance.modelInfo.modelInvariantId = vnfItemPersonaModelId;
-               relatedInstanceListElement2.relatedInstance.modelInfo.modelNameVersionId = vnfItemModelNameVersionId;
-               relatedInstanceListElement2.relatedInstance.modelInfo.modelName = vnfItemModelName;
-               relatedInstanceListElement2.relatedInstance.modelInfo.modelVersion = vnfItemPersonaModelVersion;
-               relatedInstanceListElement2.relatedInstance.modelInfo.modelCustomizationName = vnfItemVnfType;
-               //      
-               request.requestDetails.relatedInstanceList.add(relatedInstanceListElement1);
-               request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2);
-               //
-               // print SO request for debug
-               //
-               logger.debug("SO request sent:");
-               logger.debug(Serialization.gsonPretty.toJson(request));
-       }
-
-}
diff --git a/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/resources/aairesponse.json b/controlloop/templates/template.demo.v1.0.0/template.demo/src/test/resources/aairesponse.json
deleted file mode 100644 (file)
index 66da8e7..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-{
-    "inventory-response-item": [
-        {
-            "extra-properties": {},
-            "inventory-response-items": {
-                "inventory-response-item": [
-                    {
-                        "extra-properties": {
-                            "extra-property": [
-                                {
-                                    "property-name": "model.model-name",
-                                    "property-value": "c15ce9e1-e914-4c8f-b8bb"
-                                },
-                                {
-                                    "property-name": "model.model-type",
-                                    "property-value": "resource"
-                                },
-                                {
-                                    "property-name": "model.model-version",
-                                    "property-value": "1"
-                                },
-                                {
-                                    "property-name": "model.model-id",
-                                    "property-value": "033a32ed-aa65-4764-a736-36f2942f1aa0"
-                                },
-                                {
-                                    "property-name": "model.model-name-version-id",
-                                    "property-value": "d4d072dc-4e21-4a03-9524-628985819a8e"
-                                }
-                            ]
-                        },
-                        "generic-vnf": {
-                            "in-maint": false,
-                            "is-closed-loop-disabled": false,
-                            "orchestration-status": "Created",
-                            "persona-model-id": "033a32ed-aa65-4764-a736-36f2942f1aa0",
-                            "persona-model-version": "1.0",
-                            "resource-version": "1485542422",
-                            "service-id": "b3f70641-bdb9-4030-825e-6abb73a1f929",
-                            "vnf-id": "594e2fe0-48b8-41ff-82e2-3d4bab69b192",
-                            "vnf-name": "Vnf_Ete_Named90e1ab3-dcd5-4877-9edb-eadfc84e32c8",
-                            "vnf-type": "8330e932-2a23-4943-8606/c15ce9e1-e914-4c8f-b8bb 1"
-                        },
-                        "inventory-response-items": {
-                            "inventory-response-item": [
-                                {
-                                    "extra-properties": {
-                                        "extra-property": [
-                                            {
-                                                "property-name": "model.model-name",
-                                                "property-value": "8330e932-2a23-4943-8606"
-                                            },
-                                            {
-                                                "property-name": "model.model-type",
-                                                "property-value": "service"
-                                            },
-                                            {
-                                                "property-name": "model.model-version",
-                                                "property-value": "1"
-                                            },
-                                            {
-                                                "property-name": "model.model-id",
-                                                "property-value": "4fcbc1c0-7793-46d8-8aa1-fa1c2ed9ec7b"
-                                            },
-                                            {
-                                                "property-name": "model.model-name-version-id",
-                                                "property-value": "5c996219-b2e2-4c76-9b43-7e8672a33c1d"
-                                            }
-                                        ]
-                                    },
-                                    "service-instance": {
-                                        "persona-model-id": "4fcbc1c0-7793-46d8-8aa1-fa1c2ed9ec7b",
-                                       "persona-model-version": "1.0",
-                                        "resource-version": "1485542400",
-                                        "service-instance-id": "cf8426a6-0b53-4e3d-bfa6-4b2f4d5913a5",
-                                        "service-instance-name": "Service_Ete_Named90e1ab3-dcd5-4877-9edb-eadfc84e32c8"
-                                    }
-                                },
-                                {
-                                    "extra-properties": {
-                                        "extra-property": [
-                                            {
-                                                "property-name": "model.model-name",
-                                                "property-value": "C15ce9e1E9144c8fB8bb..base_vlb..module-0"
-                                            },
-                                            {
-                                                "property-name": "model.model-type",
-                                                "property-value": "resource"
-                                            },
-                                            {
-                                                "property-name": "model.model-version",
-                                                "property-value": "1"
-                                            },
-                                            {
-                                                "property-name": "model.model-id",
-                                                "property-value": "79ee24cd-fc9a-4f14-afae-5e1dd2ab2941"
-                                            },
-                                            {
-                                                "property-name": "model.model-name-version-id",
-                                                "property-value": "5484cabb-1a0d-4f29-a616-094a3f643d73"
-                                            }
-                                        ]
-                                    },
-                                    "model-name": "C15ce9e1E9144c8fB8bb..base_vlb..module-0",
-                                    "vf-module": {
-                                        "heat-stack-id": "Vfmodule_Ete_Named90e1ab3-dcd5-4877-9edb-eadfc84e32c8/5845f37b-6cda-4e91-8ca3-f5572d226488",
-                                        "is-base-vf-module": true,
-                                        "orchestration-status": "active",
-                                        "persona-model-id": "79ee24cd-fc9a-4f14-afae-5e1dd2ab2941",
-                                        "persona-model-version": "1",
-                                        "resource-version": "1485542667",
-                                        "vf-module-id": "b0eff878-e2e1-4947-9597-39afdd0f51dd",
-                                        "vf-module-name": "Vfmodule_Ete_Named90e1ab3-dcd5-4877-9edb-eadfc84e32c8"
-                                    }
-                                },
-                                {
-                                    "extra-properties": {
-                                        "extra-property": [
-                                            {
-                                                "property-name": "model.model-name",
-                                                "property-value": "C15ce9e1E9144c8fB8bb..dnsscaling..module-1"
-                                            },
-                                            {
-                                                "property-name": "model.model-type",
-                                                "property-value": "resource"
-                                            },
-                                            {
-                                                "property-name": "model.model-version",
-                                                "property-value": "1"
-                                            },
-                                            {
-                                                "property-name": "model.model-id",
-                                                "property-value": "f32568ec-2f1c-458a-864b-0593d53d141a"
-                                            },
-                                            {
-                                                "property-name": "model.model-name-version-id",
-                                                "property-value": "69615025-879d-4f0d-afe3-b7d1a7eeed1f"
-                                            }
-                                        ]
-                                    },
-                                    "vf-module": {
-                                        "is-base-vf-module": false,
-                                        "persona-model-id": "f32568ec-2f1c-458a-864b-0593d53d141a",
-                                        "persona-model-version": "1.0",
-                                        "resource-version": "1485561752",
-                                        "vf-module-id": "dummy",
-                                        "vf-module-name": "dummy"
-                                    }
-                                },
-                                {
-                                    "extra-properties": {
-                                        "extra-property": [
-                                            {
-                                                "property-name": "model.model-name",
-                                                "property-value": "C15ce9e1E9144c8fB8bb..dnsscaling..module-1"
-                                            },
-                                            {
-                                                "property-name": "model.model-type",
-                                                "property-value": "resource"
-                                            },
-                                            {
-                                                "property-name": "model.model-version",
-                                                "property-value": "1"
-                                            },
-                                            {
-                                                "property-name": "model.model-id",
-                                                "property-value": "f32568ec-2f1c-458a-864b-0593d53d141a"
-                                            },
-                                            {
-                                                "property-name": "model.model-name-version-id",
-                                                "property-value": "69615025-879d-4f0d-afe3-b7d1a7eeed1f"
-                                            }
-                                        ]
-                                    },
-                                    "vf-module": {
-                                        "heat-stack-id": "vDNS_Ete_Named90e1ab3-dcd5-4877-9edb-eadfc84e32c8/f447ce51-14dd-4dcd-9957-68a047c79673",
-                                        "is-base-vf-module": false,
-                                        "orchestration-status": "active",
-                                        "persona-model-id": "f32568ec-2f1c-458a-864b-0593d53d141a",
-                                        "persona-model-version": "1.0",
-                                        "resource-version": "1485562712",
-                                        "vf-module-id": "8cd79e44-1fae-48c1-a160-609f90b46749",
-                                        "vf-module-name": "vDNS_Ete_Named90e1ab3-dcd5-4877-9edb-eadfc84e32c8"
-                                    }
-                                }
-                            ]
-                        }
-                    },
-                    {
-                        "extra-properties": {},
-                        "inventory-response-items": {
-                            "inventory-response-item": [
-                                {
-                                    "cloud-region": {
-                                        "cloud-owner": "Rackspace",
-                                        "cloud-region-id": "DFW",
-                                        "cloud-region-version": "v1",
-                                        "cloud-type": "SharedNode",
-                                        "cloud-zone": "CloudZone",
-                                        "owner-defined-type": "OwnerType",
-                                        "resource-version": "1485465545"
-                                    },
-                                    "extra-properties": {}
-                                }
-                            ]
-                        },
-                        "tenant": {
-                            "resource-version": "1485465545",
-                            "tenant-id": "1015548",
-                            "tenant-name": "1015548"
-                        }
-                    }
-                ]
-            },
-            "vserver": {
-                "in-maint": false,
-                "is-closed-loop-disabled": false,
-                "prov-status": "ACTIVE",
-                "resource-version": "1485546436",
-                "vserver-id": "70f081eb-2a87-4c81-9296-4b93d7d145c6",
-                "vserver-name": "vlb-lb-32c8",
-                "vserver-name2": "vlb-lb-32c8",
-                "vserver-selflink": "https://dfw.servers.api.rackspacecloud.com/v2/1015548/servers/70f081eb-2a87-4c81-9296-4b93d7d145c6"
-            }
-        }
-    ]
-}
index d4b0403..27d3f79 100644 (file)
@@ -6,7 +6,7 @@ controlLoop:
       serviceInvariantUUID: dc112d6e-7e73-4777-9c6f-1a7fb5fd1b6f
       serviceUUID: 2eea06c6-e1d3-4c3a-b9c4-478c506eeedf
   trigger_policy: unique-policy-id-1-scale-up
-  timeout: 20
+  timeout: 60
  
 policies:
   - id: unique-policy-id-1-scale-up
@@ -17,7 +17,7 @@ policies:
     target:
       type: VNF
     retry: 0
-    timeout: 10
+    timeout: 30
     success: final_success
     failure: final_failure
     failure_timeout: final_failure_timeout
index 336d83f..930137c 100644 (file)
@@ -3,7 +3,7 @@ controlLoop:
   controlLoopName: ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b
 
   trigger_policy: unique-policy-id-1-restart
-  timeout: 20
+  timeout: 60
 
 policies:
   - id: unique-policy-id-1-restart
@@ -14,7 +14,7 @@ policies:
     target:
       type: VM
     retry: 3
-    timeout: 10
+    timeout: 30
     success: final_success
     failure: final_failure
     failure_timeout: final_failure_timeout
index 65a3a4f..1f3444f 100644 (file)
@@ -2,7 +2,7 @@ controlLoop:
   version: 2.0.0
   controlLoopName: ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
   trigger_policy: unique-policy-id-1-restart
-  timeout: 20
+  timeout: 60
   abatement: true
  
 policies:
@@ -14,7 +14,7 @@ policies:
     target:
       type: VM
     retry: 3
-    timeout: 10
+    timeout: 30
     success: final_success
     failure: final_failure
     failure_timeout: final_failure_timeout
index 4a92a24..806720a 100644 (file)
@@ -6,7 +6,7 @@ controlLoop:
       serviceUUID: 0f40bba5-986e-4b3c-803f-ddd1b7b25f24
       serviceName: 57e66ea7-0ed6-45c7-970f
   trigger_policy: unique-policy-id-1-modifyConfig
-  timeout: 20
+  timeout: 60
   abatement: true
  
 policies:
@@ -19,7 +19,7 @@ policies:
       resourceID: Eace933104d443b496b8.nodes.heat.vpg
       type: VNF
     retry: 0
-    timeout: 10
+    timeout: 30
     success: final_success
     failure: final_failure
     failure_timeout: final_failure_timeout