test tooling to generate vcpe use case in lab 21/13621/1
authorJorge Hernandez <jh1730@att.com>
Wed, 20 Sep 2017 00:55:42 +0000 (19:55 -0500)
committerJorge Hernandez <jh1730@att.com>
Wed, 20 Sep 2017 00:55:42 +0000 (19:55 -0500)
run successully vcpe case in lab in 2 steps:

1.  docker-install load
2.  run create-cl-amsterdam (with defaults)
3.  injecting dcae.onset and appc.success packaged
    with archetypes

Change-Id: Idb20c0078228da962510dbf36dae96aceb43546c
Issue-ID: POLICY-162
Signed-off-by: Jorge Hernandez <jh1730@att.com>
controlloop/packages/apps/src/files/apps-installer
controlloop/packages/basex/src/files/bin/create-cl-amsterdam [new file with mode: 0644]
controlloop/templates/archetype-cl-amsterdam/src/main/resources/archetype-resources/src/main/config/appc.success.json [new file with mode: 0644]

index f6b27ab..f53a48b 100644 (file)
 
 echo "APPS INSTALL"
 
-# cache in local maven repo
+source ${POLICY_HOME}/etc/build.info
+
+# caching in local maven repo all dependencies to make it
+# easier for drools kie-ci - aether to fetch them
 
 mvn dependency:get -Dartifact=com.att.research.xacml:xacml-pdp:1.0.0:jar
+
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:archetype-cl-amsterdam:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:events:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:appc:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:appclcm:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:aai:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:so:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:trafficgenerator:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:eventmanager:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:guard:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:actorServiceProvider:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:actor.appc:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:actor.appclcm:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:actor.so:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:actor.vfc:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:policy-yaml:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:demo:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:template.demo:${version}:jar -Dtransitive=false
+mvn dependency:get -Dartifact=org.onap.policy.drools-applications:guard:${version}:jar -Dtransitive=false
diff --git a/controlloop/packages/basex/src/files/bin/create-cl-amsterdam b/controlloop/packages/basex/src/files/bin/create-cl-amsterdam
new file mode 100644 (file)
index 0000000..6aad8a3
--- /dev/null
@@ -0,0 +1,235 @@
+#! /bin/bash
+
+###
+# ============LICENSE_START=======================================================
+# PDP-D APPS Base Package
+# ================================================================================
+# 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=========================================================
+###
+
+# Interactive script to generate and install in a pdp-d control loops demo rules
+# for a standalone PDP-D usage
+
+source ${POLICY_HOME}/etc/build.info
+
+echo "Control Loop CLI Generator for R1 Amsterdam Release"
+echo "---------------------------------------------------"
+echo
+
+GROUP_ID="org.onap.policy.rules.amsterdam"
+ARTIFACT_ID="amsterdam"
+VERSION="1.1.0"
+PACKAGE="org.onap.policy.rules.amsterdam"
+CONTROL_LOOP_NAME="ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e"
+POLICY_SCOPE="amsterdam"
+POLICY_NAME="vcpe"
+POLICY_VERSION="v0.0.1"
+CONTROL_LOOP_YAML="controlLoop%3A%0A++version%3A+2.0.0%0A++controlLoopName%3A+ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0A++trigger_policy%3A+unique-policy-id-1-restart%0A++timeout%3A+3600%0A+%0Apolicies%3A%0A+%0A++-+id%3A+unique-policy-id-1-restart%0A++++name%3A+Restart+the+VM%0A++++description%3A%0A++++actor%3A+APPC%0A++++recipe%3A+Restart%0A++++target%3A%0A++++++type%3A+VM%0A++++retry%3A+3%0A++++timeout%3A+1200%0A++++success%3A+final_success%0A++++failure%3A+final_failure%0A++++failure_timeout%3A+final_failure_timeout%0A++++failure_retries%3A+final_failure_retries%0A++++failure_exception%3A+final_failure_exception%0A++++failure_guard%3A"
+DMAAP_SERVERS="vm1.mr.simpledemo.openecomp.org"
+DCAE_TOPIC="unauthenticated.TCA_EVENT_OUTPUT"
+DCAE_SERVERS="10.0.4.102"
+
+read -e -i "${GROUP_ID}" -p "Target Rules Group Id> " GROUP_ID
+read -e -i "${ARTIFACT_ID}" -p "Target Rules Artifact Id> " ARTIFACT_ID
+read -e -i "${VERSION}" -p "Target Rules Version> " VERSION
+read -e -i "${PACKAGE}" -p "Target Rules Java Package> " PACKAGE
+
+read -e -i "${CONTROL_LOOP_NAME}" -p "Template Control Loop Name> " CONTROL_LOOP_NAME
+read -e -i "${POLICY_SCOPE}" -p "Template Policy Scope> " POLICY_SCOPE
+read -e -i "${POLICY_NAME}" -p "Template Policy Name> " POLICY_NAME
+read -e -i "${POLICY_VERSION}" -p "Template Policy Version> " POLICY_VERSION
+
+read -e -i "${CONTROL_LOOP_YAML}" -p "Control Loop Yaml> " CONTROL_LOOP_YAML
+
+read -e -i "${DCAE_SERVERS}" -p "Configuration DCAE DMaaP Servers> " DCAE_SERVERS
+read -e -i "${DMAAP_SERVERS}" -p "Configuration Open DMaaP Servers> " DMAAP_SERVERS
+read -e -i "${DCAE_TOPIC}" -p "Template DCAE Topic> " DCAE_TOPIC
+
+echo
+echo
+
+if [ -z "${GROUP_ID}" ]; then echo "Aborting: Rules Maven Group Id not provided"; exit 1; fi
+if [ -z "${ARTIFACT_ID}" ]; then echo "Aborting: Rules Maven Coordinates Artifact Id not provided"; exit 1; fi
+if [ -z "${VERSION}" ]; then echo "Aborting: Rules Maven Coordinates Version not provided"; exit 1; fi
+if [ -z "${PACKAGE}" ]; then echo "Aborting: Rules Package not provided"; exit 1; fi
+if [ -z "${CONTROL_LOOP_NAME}" ]; then echo "Aborting: Template Control Loop Name not provided"; exit 1; fi
+if [ -z "${POLICY_SCOPE}" ]; then echo "Aborting: Template Policy Scope not provided"; exit 1; fi
+if [ -z "${POLICY_NAME}" ]; then echo "Aborting: Template Policy Name not provided"; exit 1; fi
+if [ -z "${POLICY_VERSION}" ]; then echo "Aborting: Template Policy Version not provided"; exit 1; fi
+if [ -z "${CONTROL_LOOP_YAML}" ]; then echo "Aborting: Control Loop Yaml not provided"; exit 1; fi
+
+if [ -z "${DCAE_TOPIC}" ]; then echo "Aborting: Configuration DCAE DMaaP Topic not provided"; exit 1; fi
+if [ -z "${DMAAP_SERVERS}" ]; then echo "Aborting: Configuration Open DMaaP Servers not provided"; exit 1; fi
+if [ -z "${DCAE_SERVERS}" ]; then echo "Aborting: Configuration DCAE DMaaP Servers not provided"; exit 1; fi
+
+if [[ "${version}" == *-SNAPSHOT ]]; then
+       DEPENDENCIES_VERSION="1.1.0-SNAPSHOT"
+else
+       DEPENDENCIES_VERSION="${version}"
+fi
+
+read -e -i "${DEPENDENCIES_VERSION}" -p  "Control Loop Jar Dependencies Version (ie: 1.1.0-SNAPSHOT, or 1.1.0) > " DEPENDENCIES_VERSION
+if [ -z "${DEPENDENCIES_VERSION}" ]; then echo "Aborting: Control Loop Jar Dependencies Version not provided"; exit 1; fi
+
+echo "---------------------------------------------------------------------------------------"
+echo "Please review the Control Loop Rules, Template, and Configuration Parameters:"
+echo
+echo "The generated rules jar will be installed in a local Maven Repository"
+echo
+echo "Rules Maven Artifact Generation: Group Id: ${GROUP_ID}"
+echo "Rules Maven Artifact Generation: Artifact Id: ${ARTIFACT_ID}"
+echo "Rules Maven Artifact Generation: Version: ${VERSION}"
+echo "Rules Maven Artifact Generation: Java Package: ${PACKAGE}"
+echo "Rules Maven Artifact Generation: pom: Java Libraries Dependencies Version: ${DEPENDENCIES_VERSION}"
+echo
+echo "Template Drools DRL Expansion: Control Loop Control Name: ${CONTROL_LOOP_NAME}"
+echo "Template Drools DRL Expansion: Control Loop Policy Scope: ${POLICY_SCOPE}"
+echo "Template Drools DRL Expansion: Control Loop Policy Name: ${POLICY_NAME}"
+echo "Template Drools DRL Expansion: Control Loop Policy Version: ${POLICY_VERSION}"
+echo "Template Drools DRL Expansion: Control Loop Yaml: ${CONTROL_LOOP_YAML}"
+echo
+echo "Configuration Policy Controller: Rules: Group Id: ${GROUP_ID}"
+echo "Configuration Policy Controller: Rules: Artifact Id: ${ARTIFACT_ID}"
+echo "Configuration Policy Controller: Rules: Version: ${VERSION}"
+echo
+echo "Configuration Policy Controller: DCAE DMaaP Topic: ${DCAE_TOPIC}"
+echo "Configuration Policy Controller: DCAE DMaaP Servers: ${DCAE_SERVERS}"
+echo
+echo "Configuration Policy Controller: Open DMaaP Servers: ${DMAAP_SERVERS}"
+echo "---------------------------------------------------------------------------------------"
+echo
+
+HAPPY="Y"
+read -e -i "${HAPPY}" -p  "Are the previous parameters correct (Y/N)? " HAPPY
+if [[ ${HAPPY} != "Y" ]]; then
+       exit 1
+fi
+
+echo
+DIR_TMP="/tmp"
+echo "The Control Loop Rules Maven Project Source Rules will be installed at ${DIR_TMP}"
+read -e -i "${DIR_TMP}" -p  "Do you want to change the Rules Source Project install directory? " DIR_TMP
+
+if [ ! -w "${DIR_TMP}" ]; then
+       echo "Aborting.  ${DIR_TMP} is not writable"
+       exit 1
+fi
+
+ARCHETYPE_GROUP_ID="org.onap.policy.drools-applications"
+ARCHETYPE_ARTIFACT_ID="archetype-cl-amsterdam"
+ARCHETYPE_VERSION="${VERSION}"
+
+if [ -d "${DIR_TMP}/${ARTIFACT_ID}/" ]; then
+       if [ "$(ls -A "${DIR_TMP}/${ARTIFACT_ID}"/)" ]; then
+               echo "${DIR_TMP} already contains a ${ARTIFACT_ID}/ directory, saving it to ${DIR_TMP}/${ARTIFACT_ID}.arch.bak/"
+               if [ -d "${DIR_TMP}/${ARTIFACT_ID}.arch.bak"/ ]; then
+                       ( 
+                               echo "${DIR_TMP}/${ARTIFACT_ID}.arch.bak/ also exists, deleting it .."
+                               cd "${DIR_TMP}"/
+                               rm -fr "${ARTIFACT_ID}.arch.bak"
+                       )
+               fi
+               /bin/mv --force "${DIR_TMP}/${ARTIFACT_ID}/" "${DIR_TMP}/${ARTIFACT_ID}.arch.bak"
+               if [ "${?}" -ne 0 ]; then
+                       echo
+                       echo
+                   echo "Aborting: ${DIR_TMP}/${ARTIFACT_ID}/ cannot be moved"
+                   exit 1
+               fi
+       else
+               ( cd "${DIR_TMP}/" ; rmdir "${DIR_TMP}/${ARTIFACT_ID}/" )
+       fi
+fi
+
+CREATEARTIFACT="Y"
+read -e -i "${CREATEARTIFACT}" -p  "Create Maven Artifact (Y/N)? " CREATEARTIFACT
+if [[ ${CREATEARTIFACT} != "Y" ]]; then
+       exit 1
+fi
+
+(
+cd "${DIR_TMP}"
+
+mvn archetype:generate \
+    -B \
+    -DarchetypeCatalog=local \
+    -DarchetypeGroupId="${ARCHETYPE_GROUP_ID}" \
+    -DarchetypeArtifactId="${ARCHETYPE_ARTIFACT_ID}" \
+    -DarchetypeVersion="${ARCHETYPE_VERSION}" \
+    -Dpackage="${PACKAGE}" \
+    -DgroupId="${GROUP_ID}" \
+    -DartifactId="${ARTIFACT_ID}" \
+    -Dversion="${VERSION}" \
+    -DclosedLoopControlName="${CONTROL_LOOP_NAME}" \
+    -DcontrolLoopYaml="${CONTROL_LOOP_YAML}" \
+    -DpolicyScope="${POLICY_SCOPE}" \
+    -DpolicyName="${POLICY_NAME}" \
+    -DpolicyVersion="${POLICY_VERSION}" \
+    -DdmaapServers="${DMAAP_SERVERS}" \
+    -DdcaeTopic="${DCAE_TOPIC}" \
+    -DdcaeServers="${DCAE_SERVERS}" \
+    -DdependenciesVersion="${DEPENDENCIES_VERSION}"
+    
+if [ "${?}" -ne 0 ]; then
+       echo
+       echo
+       echo "Aborting: ${ARTIFACT_ID} has not been successfully generated"
+       exit 1
+fi
+
+echo 
+
+cd "${DIR_TMP}/${ARTIFACT_ID}"/
+
+mv src/main/config/* .
+
+echo
+echo "Control Loop Rules from templates have been successfully created under ${DIR_TMP}/${ARTIFACT_ID}/"
+echo "You have to option to further tweak this project or deploy it as is to the local maven repository."
+echo "If you decide to customize the source rules project, please enter 'N' below,"
+echo "and when finished type 'mvn install' at ${DIR_TMP}/${ARTIFACT_ID}/ to install the Control Loop."
+
+INSTALLREPO="Y"
+read -e -i "${INSTALLREPO}" -p  "Do you want to deploy ${ARTIFACT_ID} rules into maven repository (Y/N)? " INSTALLREPO
+if [[ ${INSTALLREPO} != "Y" ]]; then
+       exit 1
+fi
+
+echo
+echo "installing the rules ${ARTIFACT_ID} maven artifact .."
+
+mvn install
+
+if [ "${?}" -ne 0 ]; then
+       echo
+       echo
+       echo "Aborting: ${ARTIFACT_ID} deployable jar cannot be installed"
+       echo "Fix the source rules project issues, and issue 'mvn install'"
+       echo "at ${DIR_TMP}/${ARTIFACT_ID}/ when done to install it."
+       exit 1
+fi
+
+
+echo
+echo "${ARTIFACT_ID} has been successfully installed in user's (${USER}) local repository"
+echo "Find configuration files at ${DIR_TMP}/${ARTIFACT_ID}/"
+echo
+echo "To deploy this Control Loop into the PDP-D, follow one of these methods: "
+echo "1. copy ${DIR_TMP}/${ARTIFACT_ID}/${ARTIFACT_ID}-controller.properties under '${POLICY_HOME}/config'"
+echo "   and restart the pdp-d (policy stop; policy start)"
+echo "2. rest-add-controller ${ARTIFACT_ID}"
+echo
+)
diff --git a/controlloop/templates/archetype-cl-amsterdam/src/main/resources/archetype-resources/src/main/config/appc.success.json b/controlloop/templates/archetype-cl-amsterdam/src/main/resources/archetype-resources/src/main/config/appc.success.json
new file mode 100644 (file)
index 0000000..6f8af9b
--- /dev/null
@@ -0,0 +1,22 @@
+{ 
+  "body": { 
+    "output": { 
+      "common-header": { 
+        "timestamp": "2017-08-25T21:06:23.037Z", 
+        "api-ver": "5.00", 
+        "originator-id": "a20e2073-30b1-4357-893b-f5ed57b66ef0", 
+        "request-id": "664be3d2-6c12-4f4b-a3e7-c349acced200", 
+        "sub-request-id": "1", 
+        "flags": {} 
+      }, 
+      "status": { 
+        "code": 400, 
+        "message": "Restart Successful" 
+      } 
+    } 
+  }, 
+  "version": "2.0", 
+  "rpc-name": "restart", 
+  "correlation-id": "a20e2073-30b1-4357-893b-f5ed57b66ef0-1", 
+  "type": "response" 
+}
\ No newline at end of file