From 6b3e0fcc0b0c362ce6067f0d6604ec60f984f850 Mon Sep 17 00:00:00 2001 From: jhh Date: Mon, 1 Apr 2019 07:29:36 -0500 Subject: Rename "casablanca" controller to "usecases" Change-Id: I41487becd1705fbe725023798a3ea10f4638a6af Issue-ID: POLICY-1474 Signed-off-by: jhh --- .../src/main/feature/bin/create-cl-casablanca | 359 --------------------- .../src/main/feature/bin/create-cl-usecases | 359 +++++++++++++++++++++ .../src/main/feature/bin/push-policies-casablanca | 145 --------- .../src/main/feature/bin/push-policies-usecases | 145 +++++++++ 4 files changed, 504 insertions(+), 504 deletions(-) delete mode 100644 controlloop/common/feature-controlloop-management/src/main/feature/bin/create-cl-casablanca create mode 100644 controlloop/common/feature-controlloop-management/src/main/feature/bin/create-cl-usecases delete mode 100644 controlloop/common/feature-controlloop-management/src/main/feature/bin/push-policies-casablanca create mode 100644 controlloop/common/feature-controlloop-management/src/main/feature/bin/push-policies-usecases (limited to 'controlloop/common/feature-controlloop-management/src/main/feature') diff --git a/controlloop/common/feature-controlloop-management/src/main/feature/bin/create-cl-casablanca b/controlloop/common/feature-controlloop-management/src/main/feature/bin/create-cl-casablanca deleted file mode 100644 index b1924d54f..000000000 --- a/controlloop/common/feature-controlloop-management/src/main/feature/bin/create-cl-casablanca +++ /dev/null @@ -1,359 +0,0 @@ -#!/bin/bash - -### -# ============LICENSE_START======================================================= -# ONAP -# ================================================================================ -# Copyright (C) 2018-2019 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 R2 Casablanca Release" -echo "---------------------------------------------------" -echo - -GROUP_ID="org.onap.policy.rules.casablanca" -ARTIFACT_ID="casablanca" -VERSION="${version:-1.3.4}" -PACKAGE="org.onap.policy.rules.casablanca" - -# vCPE Policy Parameters -VCPE_CONTROL_LOOP_NAME="ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e" -VCPE_POLICY_NAME="vcpe" -VCPE_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+true%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard" - -# vFW Policy Parameters -VFW_CONTROL_LOOP_NAME="ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a" -VFW_POLICY_NAME="vfw" -VFW_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0D%0A++trigger_policy%3A+unique-policy-id-1-modifyConfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-modifyConfig%0D%0A++++name%3A+modify+packet+gen+config%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+TBD+-+Cannot+be+known+until+instantiation+is+done%0D%0A++++++resourceID%3A+Eace933104d443b496b8.nodes.heat.vpg%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard" - -# vDNS Policy Parameters -VDNS_CONTROL_LOOP_NAME="ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3" -VDNS_POLICY_NAME="vdns" -VDNS_CONTROL_LOOP_YAML="controlLoop%3A%0A++version%3A+2.0.0%0A++controlLoopName%3A+ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0A++timeout%3A+1200%0A++abatement%3A+false%0Apolicies%3A%0A++-+id%3A+unique-policy-id-1-scale-up%0A++++name%3A+Create+a+new+VF+Module%0A++++description%3A%0A++++actor%3A+SO%0A++++recipe%3A+VF+Module+Create%0A++++target%3A%0A++++++type%3A+VNF%0A++++payload%3A%0A++++++requestParameters%3A+%27%7B%22usePreload%22%3Atrue%2C%22userParams%22%3A%5B%5D%7D%27%0A++++++configurationParameters%3A+%27%5B%7B%22ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B9%5D%22%2C%22oam-ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B16%5D%22%2C%22enabled%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B23%5D%22%7D%5D%27%0A++++retry%3A+0%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+final_failure_guard" - -# VoLTE Policy Parameters -VOLTE_CONTROL_LOOP_NAME="ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b" -VOLTE_POLICY_NAME="volte" -VOLTE_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+VFC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard" - -# vPCI Policy Parameters -VPCI_CONTROL_LOOP_NAME="ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459" -VPCI_POLICY_NAME="vpci" -VPCI_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+3.0.0%0D%0A++controlLoopName%3A+ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459%0D%0A++trigger_policy%3A+unique-policy-id-123-modifyconfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-123-modifyconfig%0D%0A++++name%3A+modify+PCI+config%0D%0A++++description%3A%0D%0A++++actor%3A+SDNR%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+These+fields+are+not+used%0D%0A++++++resourceID%3A+Eace933104d443b496b8.nodes.heat.vpg%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard" - -# CCVPN Policy Parameters -CCVPN_CONTROL_LOOP_NAME="ControlLoop-CCVPN-2179b738-fd36-4843-a71a-a8c24c70c66b" -CCVPN_POLICY_NAME="ccvpn" -CCVPN_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-CCVPN-2179b738-fd36-4843-a71a-a8c24c70c66b%0D%0A++trigger_policy%3A+unique-policy-id-16-Reroute%0D%0A++t -imeout%3A+3600%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-16-Reroute%0D%0A++++name%3A+Connectivity Reroute%0D%0A++++description%3A%0D%0A++++actor%3A+SDNC%0D%0A++++reci -pe%3A+Reroute%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_fail -ure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard" - -# Generic Scope and Version -POLICY_SCOPE="casablanca" -POLICY_VERSION="v0.0.1" - -BRMSGW_TOPIC="BRMSGW-POLICY" -BRMSGW_SERVERS="vm1.mr.simpledemo.openecomp.org" - -DMAAP_SERVERS="vm1.mr.simpledemo.openecomp.org" -DCAE_TOPIC="unauthenticated.DCAE_CL_OUTPUT" -DCAE_SERVERS="vm1.mr.simpledemo.openecomp.org" - -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 "${VCPE_CONTROL_LOOP_NAME}" -p "VCPE Control Loop Name> " VCPE_CONTROL_LOOP_NAME -read -e -i "${VCPE_POLICY_NAME}" -p "VCPE Policy Name> " VCPE_POLICY_NAME -read -e -i "${VCPE_CONTROL_LOOP_YAML}" -p "VCPE Control Loop Yaml> " VCPE_CONTROL_LOOP_YAML - -read -e -i "${VFW_CONTROL_LOOP_NAME}" -p "VFW Control Loop Name> " VFW_CONTROL_LOOP_NAME -read -e -i "${VFW_POLICY_NAME}" -p "VFW Policy Name> " VFW_POLICY_NAME -read -e -i "${VFW_CONTROL_LOOP_YAML}" -p "VFW Control Loop Yaml> " VFW_CONTROL_LOOP_YAML - -read -e -i "${VDNS_CONTROL_LOOP_NAME}" -p "VDNS Control Loop Name> " VDNS_CONTROL_LOOP_NAME -read -e -i "${VDNS_POLICY_NAME}" -p "VDNS Policy Name> " VDNS_POLICY_NAME -read -e -i "${VDNS_CONTROL_LOOP_YAML}" -p "VDNS Control Loop Yaml> " VDNS_CONTROL_LOOP_YAML - -read -e -i "${VOLTE_CONTROL_LOOP_NAME}" -p "VOLTE Control Loop Name> " VOLTE_CONTROL_LOOP_NAME -read -e -i "${VOLTE_POLICY_NAME}" -p "VOLTE Policy Name> " VOLTE_POLICY_NAME -read -e -i "${VOLTE_CONTROL_LOOP_YAML}" -p "VOLTE Control Loop Yaml> " VOLTE_CONTROL_LOOP_YAML - -read -e -i "${VPCI_CONTROL_LOOP_NAME}" -p "VPCI Control Loop Name> " VPCI_CONTROL_LOOP_NAME -read -e -i "${VPCI_POLICY_NAME}" -p "VPCI Policy Name> " VPCI_POLICY_NAME -read -e -i "${VPCI_CONTROL_LOOP_YAML}" -p "VPCI Control Loop Yaml> " VPCI_CONTROL_LOOP_YAML - -read -e -i "${CCVPN_CONTROL_LOOP_NAME}" -p "CCVPN Control Loop Name> " CCVPN_CONTROL_LOOP_NAME -read -e -i "${CCVPN_POLICY_NAME}" -p "CCVPN Policy Name> " CCVPN_POLICY_NAME -read -e -i "${CCVPN_CONTROL_LOOP_YAML}" -p "CCVPN Control Loop Yaml> " CCVPN_CONTROL_LOOP_YAML - -read -e -i "${POLICY_SCOPE}" -p "Generic Policy Scope> " POLICY_SCOPE -read -e -i "${POLICY_VERSION}" -p "Generic Policy Version> " POLICY_VERSION - -read -e -i "${BRMSGW_TOPIC}" -p "Controller BRMSGW TOPIC> " BRMSGW_TOPIC -read -e -i "${BRMSGW_SERVERS}" -p "Configuration BRMSGW DMaaP Servers> " BRMSGW_SERVERS - -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 "Controller 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 "${VCPE_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VCPE Control Loop Name not provided"; exit 1; fi -if [ -z "${VCPE_POLICY_NAME}" ]; then echo "Aborting: VCPE Policy Name not provided"; exit 1; fi -if [ -z "${VCPE_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VCPE Control Loop Yaml not provided"; exit 1; fi - -if [ -z "${VFW_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VFW Control Loop Name not provided"; exit 1; fi -if [ -z "${VFW_POLICY_NAME}" ]; then echo "Aborting: VFW Policy Name not provided"; exit 1; fi -if [ -z "${VFW_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VFW Control Loop Yaml not provided"; exit 1; fi - -if [ -z "${VDNS_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VDNS Control Loop Name not provided"; exit 1; fi -if [ -z "${VDNS_POLICY_NAME}" ]; then echo "Aborting: VDNS Policy Name not provided"; exit 1; fi -if [ -z "${VDNS_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VDNS Control Loop Yaml not provided"; exit 1; fi - -if [ -z "${VOLTE_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VOLTE Control Loop Name not provided"; exit 1; fi -if [ -z "${VOLTE_POLICY_NAME}" ]; then echo "Aborting: VOLTE Policy Name not provided"; exit 1; fi -if [ -z "${VOLTE_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VOLTE Control Loop Yaml not provided"; exit 1; fi - -if [ -z "${VPCI_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VPCI Control Loop Name not provided"; exit 1; fi -if [ -z "${VPCI_POLICY_NAME}" ]; then echo "Aborting: VPCI Policy Name not provided"; exit 1; fi -if [ -z "${VPCI_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VPCI Control Loop Yaml not provided"; exit 1; fi - -if [ -z "${CCVPN_CONTROL_LOOP_NAME}" ]; then echo "Aborting: CCVPN Control Loop Name not provided"; exit 1; fi -if [ -z "${CCVPN_POLICY_NAME}" ]; then echo "Aborting: CCVPN Policy Name not provided"; exit 1; fi -if [ -z "${CCVPN_CONTROL_LOOP_YAML}" ]; then echo "Aborting: CCVPN Control Loop Yaml not provided"; exit 1; fi - -if [ -z "${POLICY_SCOPE}" ]; then echo "Aborting: Template Policy Scope not provided"; exit 1; fi -if [ -z "${POLICY_VERSION}" ]; then echo "Aborting: Template Policy Version not provided"; exit 1; fi - -if [ -z "${BRMSGW_TOPIC}" ]; then echo "Aborting: Configuration BRMSGW DMaaP Topic not provided"; exit 1; fi -if [ -z "${BRMSGW_SERVERS}" ]; then echo "Aborting: Configuration BRMSGW DMaaP Servers 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 - -DEPENDENCIES_VERSION="${version}" - -read -e -i "${DEPENDENCIES_VERSION}" -p "Control Loop Jar Dependencies Version (ie: 1.2.0-SNAPSHOT, or 1.2.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 "VCPE Drools Fact Generation: VCPE Control Loop Control Name: ${VCPE_CONTROL_LOOP_NAME}" -echo "VCPE Drools Fact Generation: VCPE Control Loop Policy Name: ${VCPE_POLICY_NAME}" -echo "VCPE Drools Fact Generation: VCPE Control Loop Yaml: ${VCPE_CONTROL_LOOP_YAML}" -echo -echo "VFW Drools Fact Generation: VFW Control Loop Control Name: ${VFW_CONTROL_LOOP_NAME}" -echo "VFW Drools Fact Generation: VFW Control Loop Policy Name: ${VFW_POLICY_NAME}" -echo "VFW Drools Fact Generation: VFW Control Loop Yaml: ${VFW_CONTROL_LOOP_YAML}" -echo -echo "VDNS Drools Fact Generation: VDNS Control Loop Control Name: ${VDNS_CONTROL_LOOP_NAME}" -echo "VDNS Drools Fact Generation: VDNS Control Loop Policy Name: ${VDNS_POLICY_NAME}" -echo "VDNS Drools Fact Generation: VDNS Control Loop Yaml: ${VDNS_CONTROL_LOOP_YAML}" -echo -echo "VOLTE Drools Fact Generation: VOLTE Control Loop Control Name: ${VOLTE_CONTROL_LOOP_NAME}" -echo "VOLTE Drools Fact Generation: VOLTE Control Loop Policy Name: ${VOLTE_POLICY_NAME}" -echo "VOLTE Drools Fact Generation: VOLTE Control Loop Yaml: ${VOLTE_CONTROL_LOOP_YAML}" -echo -echo "VPCI Drools Fact Generation: VPCI Control Loop Control Name: ${VPCI_CONTROL_LOOP_NAME}" -echo "VPCI Drools Fact Generation: VPCI Control Loop Policy Name: ${VPCI_POLICY_NAME}" -echo "VPCI Drools Fact Generation: VPCI Control Loop Yaml: ${VPCI_CONTROL_LOOP_YAML}" -echo -echo "CCVPN Drools Fact Generation: CCVPN Control Loop Control Name: ${CCVPN_CONTROL_LOOP_NAME}" -echo "CCVPN Drools Fact Generation: CCVPN Control Loop Policy Name: ${CCVPN_POLICY_NAME}" -echo "CCVPN Drools Fact Generation: CCVPN Control Loop Yaml: ${CCVPN_CONTROL_LOOP_YAML}" -echo -echo "Generic Drools Fact: Control Loop Policy Scope: ${POLICY_SCOPE}" -echo "Generic: Control Loop Policy Version: ${POLICY_VERSION}" -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: BRMSGW DMaaP Topic: ${BRMSGW_TOPIC}" -echo "Configuration Policy Controller: BRMSGW DMaaP Servers: ${BRMSGW_SERVERS}" -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.controlloop.templates" -ARCHETYPE_ARTIFACT_ID="archetype-cl-casablanca" -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}" \ - -DvcpeClosedLoopControlName="${VCPE_CONTROL_LOOP_NAME}" \ - -DvcpePolicyName="${VCPE_POLICY_NAME}" \ - -DvcpeControlLoopYaml="${VCPE_CONTROL_LOOP_YAML}" \ - -DvfwClosedLoopControlName="${VFW_CONTROL_LOOP_NAME}" \ - -DvfwPolicyName="${VFW_POLICY_NAME}" \ - -DvfwControlLoopYaml="${VFW_CONTROL_LOOP_YAML}" \ - -DvdnsClosedLoopControlName="${VDNS_CONTROL_LOOP_NAME}" \ - -DvdnsPolicyName="${VDNS_POLICY_NAME}" \ - -DvdnsControlLoopYaml="${VDNS_CONTROL_LOOP_YAML}" \ - -DvolteClosedLoopControlName="${VOLTE_CONTROL_LOOP_NAME}" \ - -DvoltePolicyName="${VOLTE_POLICY_NAME}" \ - -DvolteControlLoopYaml="${VOLTE_CONTROL_LOOP_YAML}" \ - -DvpciClosedLoopControlName="${VPCI_CONTROL_LOOP_NAME}" \ - -DvpciPolicyName="${VPCI_POLICY_NAME}" \ - -DvpciControlLoopYaml="${VPCI_CONTROL_LOOP_YAML}" \ - -DccvpnClosedLoopControlName="${CCVPN_CONTROL_LOOP_NAME}" \ - -DccvpnPolicyName="${CCVPN_POLICY_NAME}" \ - -DccvpnControlLoopYaml="${CCVPN_CONTROL_LOOP_YAML}" \ - -DpolicyScope="${POLICY_SCOPE}" \ - -DpolicyVersion="${POLICY_VERSION}" \ - -DbrmsgwTopic="${BRMSGW_TOPIC}" \ - -DbrmsgwServers="${BRMSGW_SERVERS}" \ - -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. cd ${DIR_TMP}/${ARTIFACT_ID}/; rest-add-controller ${ARTIFACT_ID}" -echo -echo "Once this Control Loop is deployed, you can run the push-policies-casablanca script" -echo "to automatically insert the policies for all use cases supported in this release" -echo -) diff --git a/controlloop/common/feature-controlloop-management/src/main/feature/bin/create-cl-usecases b/controlloop/common/feature-controlloop-management/src/main/feature/bin/create-cl-usecases new file mode 100644 index 000000000..5662e7c92 --- /dev/null +++ b/controlloop/common/feature-controlloop-management/src/main/feature/bin/create-cl-usecases @@ -0,0 +1,359 @@ +#!/bin/bash + +### +# ============LICENSE_START======================================================= +# ONAP +# ================================================================================ +# Copyright (C) 2018-2019 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 R2 the ONAP Usecases Demo" +echo "--------------------------------------------------------" +echo + +GROUP_ID="org.onap.policy.rules.usecases" +ARTIFACT_ID="usecases" +VERSION="${version:-1.3.4}" +PACKAGE="org.onap.policy.rules.usecases" + +# vCPE Policy Parameters +VCPE_CONTROL_LOOP_NAME="ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e" +VCPE_POLICY_NAME="vcpe" +VCPE_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+true%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard" + +# vFW Policy Parameters +VFW_CONTROL_LOOP_NAME="ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a" +VFW_POLICY_NAME="vfw" +VFW_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0D%0A++trigger_policy%3A+unique-policy-id-1-modifyConfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-modifyConfig%0D%0A++++name%3A+modify+packet+gen+config%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+TBD+-+Cannot+be+known+until+instantiation+is+done%0D%0A++++++resourceID%3A+Eace933104d443b496b8.nodes.heat.vpg%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard" + +# vDNS Policy Parameters +VDNS_CONTROL_LOOP_NAME="ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3" +VDNS_POLICY_NAME="vdns" +VDNS_CONTROL_LOOP_YAML="controlLoop%3A%0A++version%3A+2.0.0%0A++controlLoopName%3A+ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0A++timeout%3A+1200%0A++abatement%3A+false%0Apolicies%3A%0A++-+id%3A+unique-policy-id-1-scale-up%0A++++name%3A+Create+a+new+VF+Module%0A++++description%3A%0A++++actor%3A+SO%0A++++recipe%3A+VF+Module+Create%0A++++target%3A%0A++++++type%3A+VNF%0A++++payload%3A%0A++++++requestParameters%3A+%27%7B%22usePreload%22%3Atrue%2C%22userParams%22%3A%5B%5D%7D%27%0A++++++configurationParameters%3A+%27%5B%7B%22ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B9%5D%22%2C%22oam-ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B16%5D%22%2C%22enabled%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B23%5D%22%7D%5D%27%0A++++retry%3A+0%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+final_failure_guard" + +# VoLTE Policy Parameters +VOLTE_CONTROL_LOOP_NAME="ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b" +VOLTE_POLICY_NAME="volte" +VOLTE_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+VFC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard" + +# vPCI Policy Parameters +VPCI_CONTROL_LOOP_NAME="ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459" +VPCI_POLICY_NAME="vpci" +VPCI_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+3.0.0%0D%0A++controlLoopName%3A+ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459%0D%0A++trigger_policy%3A+unique-policy-id-123-modifyconfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-123-modifyconfig%0D%0A++++name%3A+modify+PCI+config%0D%0A++++description%3A%0D%0A++++actor%3A+SDNR%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+These+fields+are+not+used%0D%0A++++++resourceID%3A+Eace933104d443b496b8.nodes.heat.vpg%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard" + +# CCVPN Policy Parameters +CCVPN_CONTROL_LOOP_NAME="ControlLoop-CCVPN-2179b738-fd36-4843-a71a-a8c24c70c66b" +CCVPN_POLICY_NAME="ccvpn" +CCVPN_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-CCVPN-2179b738-fd36-4843-a71a-a8c24c70c66b%0D%0A++trigger_policy%3A+unique-policy-id-16-Reroute%0D%0A++t +imeout%3A+3600%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-16-Reroute%0D%0A++++name%3A+Connectivity Reroute%0D%0A++++description%3A%0D%0A++++actor%3A+SDNC%0D%0A++++reci +pe%3A+Reroute%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_fail +ure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard" + +# Generic Scope and Version +POLICY_SCOPE="usecases" +POLICY_VERSION="v0.0.1" + +BRMSGW_TOPIC="BRMSGW-POLICY" +BRMSGW_SERVERS="vm1.mr.simpledemo.openecomp.org" + +DMAAP_SERVERS="vm1.mr.simpledemo.openecomp.org" +DCAE_TOPIC="unauthenticated.DCAE_CL_OUTPUT" +DCAE_SERVERS="vm1.mr.simpledemo.openecomp.org" + +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 "${VCPE_CONTROL_LOOP_NAME}" -p "VCPE Control Loop Name> " VCPE_CONTROL_LOOP_NAME +read -e -i "${VCPE_POLICY_NAME}" -p "VCPE Policy Name> " VCPE_POLICY_NAME +read -e -i "${VCPE_CONTROL_LOOP_YAML}" -p "VCPE Control Loop Yaml> " VCPE_CONTROL_LOOP_YAML + +read -e -i "${VFW_CONTROL_LOOP_NAME}" -p "VFW Control Loop Name> " VFW_CONTROL_LOOP_NAME +read -e -i "${VFW_POLICY_NAME}" -p "VFW Policy Name> " VFW_POLICY_NAME +read -e -i "${VFW_CONTROL_LOOP_YAML}" -p "VFW Control Loop Yaml> " VFW_CONTROL_LOOP_YAML + +read -e -i "${VDNS_CONTROL_LOOP_NAME}" -p "VDNS Control Loop Name> " VDNS_CONTROL_LOOP_NAME +read -e -i "${VDNS_POLICY_NAME}" -p "VDNS Policy Name> " VDNS_POLICY_NAME +read -e -i "${VDNS_CONTROL_LOOP_YAML}" -p "VDNS Control Loop Yaml> " VDNS_CONTROL_LOOP_YAML + +read -e -i "${VOLTE_CONTROL_LOOP_NAME}" -p "VOLTE Control Loop Name> " VOLTE_CONTROL_LOOP_NAME +read -e -i "${VOLTE_POLICY_NAME}" -p "VOLTE Policy Name> " VOLTE_POLICY_NAME +read -e -i "${VOLTE_CONTROL_LOOP_YAML}" -p "VOLTE Control Loop Yaml> " VOLTE_CONTROL_LOOP_YAML + +read -e -i "${VPCI_CONTROL_LOOP_NAME}" -p "VPCI Control Loop Name> " VPCI_CONTROL_LOOP_NAME +read -e -i "${VPCI_POLICY_NAME}" -p "VPCI Policy Name> " VPCI_POLICY_NAME +read -e -i "${VPCI_CONTROL_LOOP_YAML}" -p "VPCI Control Loop Yaml> " VPCI_CONTROL_LOOP_YAML + +read -e -i "${CCVPN_CONTROL_LOOP_NAME}" -p "CCVPN Control Loop Name> " CCVPN_CONTROL_LOOP_NAME +read -e -i "${CCVPN_POLICY_NAME}" -p "CCVPN Policy Name> " CCVPN_POLICY_NAME +read -e -i "${CCVPN_CONTROL_LOOP_YAML}" -p "CCVPN Control Loop Yaml> " CCVPN_CONTROL_LOOP_YAML + +read -e -i "${POLICY_SCOPE}" -p "Generic Policy Scope> " POLICY_SCOPE +read -e -i "${POLICY_VERSION}" -p "Generic Policy Version> " POLICY_VERSION + +read -e -i "${BRMSGW_TOPIC}" -p "Controller BRMSGW TOPIC> " BRMSGW_TOPIC +read -e -i "${BRMSGW_SERVERS}" -p "Configuration BRMSGW DMaaP Servers> " BRMSGW_SERVERS + +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 "Controller 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 "${VCPE_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VCPE Control Loop Name not provided"; exit 1; fi +if [ -z "${VCPE_POLICY_NAME}" ]; then echo "Aborting: VCPE Policy Name not provided"; exit 1; fi +if [ -z "${VCPE_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VCPE Control Loop Yaml not provided"; exit 1; fi + +if [ -z "${VFW_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VFW Control Loop Name not provided"; exit 1; fi +if [ -z "${VFW_POLICY_NAME}" ]; then echo "Aborting: VFW Policy Name not provided"; exit 1; fi +if [ -z "${VFW_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VFW Control Loop Yaml not provided"; exit 1; fi + +if [ -z "${VDNS_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VDNS Control Loop Name not provided"; exit 1; fi +if [ -z "${VDNS_POLICY_NAME}" ]; then echo "Aborting: VDNS Policy Name not provided"; exit 1; fi +if [ -z "${VDNS_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VDNS Control Loop Yaml not provided"; exit 1; fi + +if [ -z "${VOLTE_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VOLTE Control Loop Name not provided"; exit 1; fi +if [ -z "${VOLTE_POLICY_NAME}" ]; then echo "Aborting: VOLTE Policy Name not provided"; exit 1; fi +if [ -z "${VOLTE_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VOLTE Control Loop Yaml not provided"; exit 1; fi + +if [ -z "${VPCI_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VPCI Control Loop Name not provided"; exit 1; fi +if [ -z "${VPCI_POLICY_NAME}" ]; then echo "Aborting: VPCI Policy Name not provided"; exit 1; fi +if [ -z "${VPCI_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VPCI Control Loop Yaml not provided"; exit 1; fi + +if [ -z "${CCVPN_CONTROL_LOOP_NAME}" ]; then echo "Aborting: CCVPN Control Loop Name not provided"; exit 1; fi +if [ -z "${CCVPN_POLICY_NAME}" ]; then echo "Aborting: CCVPN Policy Name not provided"; exit 1; fi +if [ -z "${CCVPN_CONTROL_LOOP_YAML}" ]; then echo "Aborting: CCVPN Control Loop Yaml not provided"; exit 1; fi + +if [ -z "${POLICY_SCOPE}" ]; then echo "Aborting: Template Policy Scope not provided"; exit 1; fi +if [ -z "${POLICY_VERSION}" ]; then echo "Aborting: Template Policy Version not provided"; exit 1; fi + +if [ -z "${BRMSGW_TOPIC}" ]; then echo "Aborting: Configuration BRMSGW DMaaP Topic not provided"; exit 1; fi +if [ -z "${BRMSGW_SERVERS}" ]; then echo "Aborting: Configuration BRMSGW DMaaP Servers 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 + +DEPENDENCIES_VERSION="${version}" + +read -e -i "${DEPENDENCIES_VERSION}" -p "Control Loop Jar Dependencies Version (ie: 1.2.0-SNAPSHOT, or 1.2.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 "VCPE Drools Fact Generation: VCPE Control Loop Control Name: ${VCPE_CONTROL_LOOP_NAME}" +echo "VCPE Drools Fact Generation: VCPE Control Loop Policy Name: ${VCPE_POLICY_NAME}" +echo "VCPE Drools Fact Generation: VCPE Control Loop Yaml: ${VCPE_CONTROL_LOOP_YAML}" +echo +echo "VFW Drools Fact Generation: VFW Control Loop Control Name: ${VFW_CONTROL_LOOP_NAME}" +echo "VFW Drools Fact Generation: VFW Control Loop Policy Name: ${VFW_POLICY_NAME}" +echo "VFW Drools Fact Generation: VFW Control Loop Yaml: ${VFW_CONTROL_LOOP_YAML}" +echo +echo "VDNS Drools Fact Generation: VDNS Control Loop Control Name: ${VDNS_CONTROL_LOOP_NAME}" +echo "VDNS Drools Fact Generation: VDNS Control Loop Policy Name: ${VDNS_POLICY_NAME}" +echo "VDNS Drools Fact Generation: VDNS Control Loop Yaml: ${VDNS_CONTROL_LOOP_YAML}" +echo +echo "VOLTE Drools Fact Generation: VOLTE Control Loop Control Name: ${VOLTE_CONTROL_LOOP_NAME}" +echo "VOLTE Drools Fact Generation: VOLTE Control Loop Policy Name: ${VOLTE_POLICY_NAME}" +echo "VOLTE Drools Fact Generation: VOLTE Control Loop Yaml: ${VOLTE_CONTROL_LOOP_YAML}" +echo +echo "VPCI Drools Fact Generation: VPCI Control Loop Control Name: ${VPCI_CONTROL_LOOP_NAME}" +echo "VPCI Drools Fact Generation: VPCI Control Loop Policy Name: ${VPCI_POLICY_NAME}" +echo "VPCI Drools Fact Generation: VPCI Control Loop Yaml: ${VPCI_CONTROL_LOOP_YAML}" +echo +echo "CCVPN Drools Fact Generation: CCVPN Control Loop Control Name: ${CCVPN_CONTROL_LOOP_NAME}" +echo "CCVPN Drools Fact Generation: CCVPN Control Loop Policy Name: ${CCVPN_POLICY_NAME}" +echo "CCVPN Drools Fact Generation: CCVPN Control Loop Yaml: ${CCVPN_CONTROL_LOOP_YAML}" +echo +echo "Generic Drools Fact: Control Loop Policy Scope: ${POLICY_SCOPE}" +echo "Generic: Control Loop Policy Version: ${POLICY_VERSION}" +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: BRMSGW DMaaP Topic: ${BRMSGW_TOPIC}" +echo "Configuration Policy Controller: BRMSGW DMaaP Servers: ${BRMSGW_SERVERS}" +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.controlloop.templates" +ARCHETYPE_ARTIFACT_ID="archetype-cl-usecases" +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}" \ + -DvcpeClosedLoopControlName="${VCPE_CONTROL_LOOP_NAME}" \ + -DvcpePolicyName="${VCPE_POLICY_NAME}" \ + -DvcpeControlLoopYaml="${VCPE_CONTROL_LOOP_YAML}" \ + -DvfwClosedLoopControlName="${VFW_CONTROL_LOOP_NAME}" \ + -DvfwPolicyName="${VFW_POLICY_NAME}" \ + -DvfwControlLoopYaml="${VFW_CONTROL_LOOP_YAML}" \ + -DvdnsClosedLoopControlName="${VDNS_CONTROL_LOOP_NAME}" \ + -DvdnsPolicyName="${VDNS_POLICY_NAME}" \ + -DvdnsControlLoopYaml="${VDNS_CONTROL_LOOP_YAML}" \ + -DvolteClosedLoopControlName="${VOLTE_CONTROL_LOOP_NAME}" \ + -DvoltePolicyName="${VOLTE_POLICY_NAME}" \ + -DvolteControlLoopYaml="${VOLTE_CONTROL_LOOP_YAML}" \ + -DvpciClosedLoopControlName="${VPCI_CONTROL_LOOP_NAME}" \ + -DvpciPolicyName="${VPCI_POLICY_NAME}" \ + -DvpciControlLoopYaml="${VPCI_CONTROL_LOOP_YAML}" \ + -DccvpnClosedLoopControlName="${CCVPN_CONTROL_LOOP_NAME}" \ + -DccvpnPolicyName="${CCVPN_POLICY_NAME}" \ + -DccvpnControlLoopYaml="${CCVPN_CONTROL_LOOP_YAML}" \ + -DpolicyScope="${POLICY_SCOPE}" \ + -DpolicyVersion="${POLICY_VERSION}" \ + -DbrmsgwTopic="${BRMSGW_TOPIC}" \ + -DbrmsgwServers="${BRMSGW_SERVERS}" \ + -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. cd ${DIR_TMP}/${ARTIFACT_ID}/; rest-add-controller ${ARTIFACT_ID}" +echo +echo "Once this Control Loop is deployed, you can run the push-policies-usecases script" +echo "to automatically insert the policies for all use cases supported in this release" +echo +) diff --git a/controlloop/common/feature-controlloop-management/src/main/feature/bin/push-policies-casablanca b/controlloop/common/feature-controlloop-management/src/main/feature/bin/push-policies-casablanca deleted file mode 100644 index 2289aea1f..000000000 --- a/controlloop/common/feature-controlloop-management/src/main/feature/bin/push-policies-casablanca +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/env bash - -### -# ============LICENSE_START======================================================= -# ONAP -# ================================================================================ -# Copyright (C) 2018-2019 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========================================================= -### - -# A script to insert policies using ControlLoopParams facts -# for a standalone PDP-D usage - -# Obtain the controller properties file -if [[ "${CONTROLLER_PROPERTIES}" != "" ]] ; then - # The user already exported CONTROLLER_PROPERTIES - configFile="${CONTROLLER_PROPERTIES}" -else - # CONTROL_LOOP_PROPERTIES are missing, ask the user for them - echo "What is the path to the controller properties file?" - read -e -i "${configFile}" -p "Controller properties file> " configFile - - # Ensure the user gave a path - if [ -z "${configFile}" ]; then echo "Aborting: No controller properties file was specified"; exit 1; fi - - # Ensure the controller properties file exists in the user specified path - if [[ ! -f "${configFile}" ]] ; then - echo "Aborting: Can't find controller properties file at: ${configFile}" - exit 1 - fi -fi - -echo -echo "Extracting properties from properties file..." -echo - -echo "Extracting the controller's name..." -CONTROLLER_NAME=$(egrep ".*controller.name=" \ - "${configFile}") -CONTROLLER_NAME=`echo ${CONTROLLER_NAME} | sed -e 's/.*controller\.name=\(.*\)/\1/'` -echo "The controller's name is: ${CONTROLLER_NAME}" -echo - -echo "Extracting the BRMSGW Topic..." -BRMSGW_TOPIC=$(egrep "^ *(ueb|dmaap)\.source\.topics\..*\.events=org.onap.policy.controlloop.params.ControlLoopParams" \ - "${configFile}") -BRMSGW_TOPIC=`echo ${BRMSGW_TOPIC} | sed -e 's/.*topics\.\(.*\)\.events=org.onap.policy.controlloop.params.ControlLoopParams/\1/'` -echo "The BRMSGW topic is: ${BRMSGW_TOPIC}" -echo - -if [ -z "${BRMSGW_TOPIC}" ]; then echo "Aborting: BRMSGW DMaaP Topic was not found in controller properties file"; exit 1; fi - -echo -echo "Inserting ControlLoopParams facts in to working memory..." -echo - -echo -echo "Inserting vCPE Policy..." -curl -k --silent --user @1b3rt:31nst31n -X PUT --header 'Content-Type: text/plain' -d '{ - "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e", - "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+true%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard", - "policyName": "vcpe", - "policyScope": "DCAE", - "policyVersion": "1.2.0" -}' "https://localhost:9696/policy/pdp/engine/topics/sources/ueb/${BRMSGW_TOPIC}/events" | python -m json.tool - -sleep 2 - -echo -echo "Inserting vFW Policy..." -curl -k --silent --user @1b3rt:31nst31n -X PUT --header 'Content-Type: text/plain' -d '{ - "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a", - "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0D%0A++trigger_policy%3A+unique-policy-id-1-modifyConfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-modifyConfig%0D%0A++++name%3A+modify+packet+gen+config%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+TBD+-+Cannot+be+known+until+instantiation+is+done%0D%0A++++++resourceID%3A+Eace933104d443b496b8.nodes.heat.vpg%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard", - "policyName": "vfw", - "policyScope": "DCAE", - "policyVersion": "1.2.0" -}' "https://localhost:9696/policy/pdp/engine/topics/sources/ueb/${BRMSGW_TOPIC}/events" | python -m json.tool - -sleep 2 - -echo -echo "Inserting vDNS Policy..." -curl -k --silent --user @1b3rt:31nst31n -X PUT --header 'Content-Type: text/plain' -d '{ - "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3", - "controlLoopYaml": "controlLoop%3A%0A++version%3A+2.0.0%0A++controlLoopName%3A+ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0A++timeout%3A+1200%0A++abatement%3A+false%0Apolicies%3A%0A++-+id%3A+unique-policy-id-1-scale-up%0A++++name%3A+Create+a+new+VF+Module%0A++++description%3A%0A++++actor%3A+SO%0A++++recipe%3A+VF+Module+Create%0A++++target%3A%0A++++++type%3A+VNF%0A++++payload%3A%0A++++++requestParameters%3A+%27%7B%22usePreload%22%3Atrue%2C%22userParams%22%3A%5B%5D%7D%27%0A++++++configurationParameters%3A+%27%5B%7B%22ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B9%5D%22%2C%22oam-ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B16%5D%22%2C%22enabled%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B23%5D%22%7D%5D%27%0A++++retry%3A+0%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+final_failure_guard", - "policyName": "vdns", - "policyScope": "DCAE", - "policyVersion": "1.2.0" -}' "https://localhost:9696/policy/pdp/engine/topics/sources/ueb/${BRMSGW_TOPIC}/events" | python -m json.tool - -sleep 2 - -echo -echo "Inserting VoLTE Policy..." -curl -k --silent --user @1b3rt:31nst31n -X PUT --header 'Content-Type: text/plain' -d '{ - "closedLoopControlName": "ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b", - "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+VFC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard", - "policyName": "volte", - "policyScope": "DCAE", - "policyVersion": "1.2.0" -}' "https://localhost:9696/policy/pdp/engine/topics/sources/ueb/${BRMSGW_TOPIC}/events" | python -m json.tool - -sleep 2 -echo -echo "Inserting vPCI Policy..." -curl -k --silent --user @1b3rt:31nst31n -X PUT --header 'Content-Type: text/plain' -d '{ - "closedLoopControlName": "ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459", - "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+3.0.0%0D%0A++controlLoopName%3A+ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459%0D%0A++trigger_policy%3A+unique-policy-id-123-modifyconfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-123-modifyconfig%0D%0A++++name%3A+modify+PCI+config%0D%0A++++description%3A%0D%0A++++actor%3A+SDNR%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+These+fields+are+not+used%0D%0A++++++resourceID%3A+Eace933104d443b496b8.nodes.heat.vpg%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard", - "policyName": "vpci", - "policyScope": "DCAE", - "policyVersion": "1.2.0" -}' "https://localhost:9696/policy/pdp/engine/topics/sources/ueb/${BRMSGW_TOPIC}/events" | python -m json.tool - -sleep 2 - -echo -echo "Inserting CCVPN Policy..." -curl -k --silent --user @1b3rt:31nst31n -X PUT --header 'Content-Type: text/plain' -d '{ - "closedLoopControlName": "ControlLoop-CCVPN-2179b738-fd36-4843-a71a-a8c24c70c66b", - "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-CCVPN-2179b738-fd36-4843-a71a-a8c24c70c66b%0D%0A++trigger_policy%3A+unique-policy-id-16-Reroute%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-16-Reroute%0D%0A++++name%3A+Connectivity Reroute%0D%0A++++description%3A%0D%0A++++actor%3A+SDNC%0D%0A++++recipe%3A+Reroute%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard", - "policyName": "ccvpn", - "policyScope": "DCAE", - "policyVersion": "1.2.0" -}' "https://localhost:9696/policy/pdp/engine/topics/sources/ueb/${BRMSGW_TOPIC}/events" | python -m json.tool - -sleep 2 - -echo -echo "Policy insertions completed." -echo - -echo "The working memory is now: " -curl -k --silent --user @1b3rt:31nst31n -X GET https://localhost:9696/policy/pdp/engine/controllers/${CONTROLLER_NAME}/drools/facts/casablanca | python -m json.tool diff --git a/controlloop/common/feature-controlloop-management/src/main/feature/bin/push-policies-usecases b/controlloop/common/feature-controlloop-management/src/main/feature/bin/push-policies-usecases new file mode 100644 index 000000000..dc64c3ece --- /dev/null +++ b/controlloop/common/feature-controlloop-management/src/main/feature/bin/push-policies-usecases @@ -0,0 +1,145 @@ +#!/usr/bin/env bash + +### +# ============LICENSE_START======================================================= +# ONAP +# ================================================================================ +# Copyright (C) 2018-2019 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========================================================= +### + +# A script to insert policies using ControlLoopParams facts +# for a standalone PDP-D usage + +# Obtain the controller properties file +if [[ "${CONTROLLER_PROPERTIES}" != "" ]] ; then + # The user already exported CONTROLLER_PROPERTIES + configFile="${CONTROLLER_PROPERTIES}" +else + # CONTROL_LOOP_PROPERTIES are missing, ask the user for them + echo "What is the path to the controller properties file?" + read -e -i "${configFile}" -p "Controller properties file> " configFile + + # Ensure the user gave a path + if [ -z "${configFile}" ]; then echo "Aborting: No controller properties file was specified"; exit 1; fi + + # Ensure the controller properties file exists in the user specified path + if [[ ! -f "${configFile}" ]] ; then + echo "Aborting: Can't find controller properties file at: ${configFile}" + exit 1 + fi +fi + +echo +echo "Extracting properties from properties file..." +echo + +echo "Extracting the controller's name..." +CONTROLLER_NAME=$(egrep ".*controller.name=" \ + "${configFile}") +CONTROLLER_NAME=`echo ${CONTROLLER_NAME} | sed -e 's/.*controller\.name=\(.*\)/\1/'` +echo "The controller's name is: ${CONTROLLER_NAME}" +echo + +echo "Extracting the BRMSGW Topic..." +BRMSGW_TOPIC=$(egrep "^ *(ueb|dmaap)\.source\.topics\..*\.events=org.onap.policy.controlloop.params.ControlLoopParams" \ + "${configFile}") +BRMSGW_TOPIC=`echo ${BRMSGW_TOPIC} | sed -e 's/.*topics\.\(.*\)\.events=org.onap.policy.controlloop.params.ControlLoopParams/\1/'` +echo "The BRMSGW topic is: ${BRMSGW_TOPIC}" +echo + +if [ -z "${BRMSGW_TOPIC}" ]; then echo "Aborting: BRMSGW DMaaP Topic was not found in controller properties file"; exit 1; fi + +echo +echo "Inserting ControlLoopParams facts in to working memory..." +echo + +echo +echo "Inserting vCPE Policy..." +curl -k --silent --user @1b3rt:31nst31n -X PUT --header 'Content-Type: text/plain' -d '{ + "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e", + "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+true%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard", + "policyName": "vcpe", + "policyScope": "DCAE", + "policyVersion": "1.2.0" +}' "https://localhost:9696/policy/pdp/engine/topics/sources/ueb/${BRMSGW_TOPIC}/events" | python -m json.tool + +sleep 2 + +echo +echo "Inserting vFW Policy..." +curl -k --silent --user @1b3rt:31nst31n -X PUT --header 'Content-Type: text/plain' -d '{ + "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a", + "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0D%0A++trigger_policy%3A+unique-policy-id-1-modifyConfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-modifyConfig%0D%0A++++name%3A+modify+packet+gen+config%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+TBD+-+Cannot+be+known+until+instantiation+is+done%0D%0A++++++resourceID%3A+Eace933104d443b496b8.nodes.heat.vpg%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard", + "policyName": "vfw", + "policyScope": "DCAE", + "policyVersion": "1.2.0" +}' "https://localhost:9696/policy/pdp/engine/topics/sources/ueb/${BRMSGW_TOPIC}/events" | python -m json.tool + +sleep 2 + +echo +echo "Inserting vDNS Policy..." +curl -k --silent --user @1b3rt:31nst31n -X PUT --header 'Content-Type: text/plain' -d '{ + "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3", + "controlLoopYaml": "controlLoop%3A%0A++version%3A+2.0.0%0A++controlLoopName%3A+ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0A++timeout%3A+1200%0A++abatement%3A+false%0Apolicies%3A%0A++-+id%3A+unique-policy-id-1-scale-up%0A++++name%3A+Create+a+new+VF+Module%0A++++description%3A%0A++++actor%3A+SO%0A++++recipe%3A+VF+Module+Create%0A++++target%3A%0A++++++type%3A+VNF%0A++++payload%3A%0A++++++requestParameters%3A+%27%7B%22usePreload%22%3Atrue%2C%22userParams%22%3A%5B%5D%7D%27%0A++++++configurationParameters%3A+%27%5B%7B%22ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B9%5D%22%2C%22oam-ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B16%5D%22%2C%22enabled%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B23%5D%22%7D%5D%27%0A++++retry%3A+0%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+final_failure_guard", + "policyName": "vdns", + "policyScope": "DCAE", + "policyVersion": "1.2.0" +}' "https://localhost:9696/policy/pdp/engine/topics/sources/ueb/${BRMSGW_TOPIC}/events" | python -m json.tool + +sleep 2 + +echo +echo "Inserting VoLTE Policy..." +curl -k --silent --user @1b3rt:31nst31n -X PUT --header 'Content-Type: text/plain' -d '{ + "closedLoopControlName": "ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b", + "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+VFC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard", + "policyName": "volte", + "policyScope": "DCAE", + "policyVersion": "1.2.0" +}' "https://localhost:9696/policy/pdp/engine/topics/sources/ueb/${BRMSGW_TOPIC}/events" | python -m json.tool + +sleep 2 +echo +echo "Inserting vPCI Policy..." +curl -k --silent --user @1b3rt:31nst31n -X PUT --header 'Content-Type: text/plain' -d '{ + "closedLoopControlName": "ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459", + "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+3.0.0%0D%0A++controlLoopName%3A+ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459%0D%0A++trigger_policy%3A+unique-policy-id-123-modifyconfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-123-modifyconfig%0D%0A++++name%3A+modify+PCI+config%0D%0A++++description%3A%0D%0A++++actor%3A+SDNR%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+These+fields+are+not+used%0D%0A++++++resourceID%3A+Eace933104d443b496b8.nodes.heat.vpg%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard", + "policyName": "vpci", + "policyScope": "DCAE", + "policyVersion": "1.2.0" +}' "https://localhost:9696/policy/pdp/engine/topics/sources/ueb/${BRMSGW_TOPIC}/events" | python -m json.tool + +sleep 2 + +echo +echo "Inserting CCVPN Policy..." +curl -k --silent --user @1b3rt:31nst31n -X PUT --header 'Content-Type: text/plain' -d '{ + "closedLoopControlName": "ControlLoop-CCVPN-2179b738-fd36-4843-a71a-a8c24c70c66b", + "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-CCVPN-2179b738-fd36-4843-a71a-a8c24c70c66b%0D%0A++trigger_policy%3A+unique-policy-id-16-Reroute%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-16-Reroute%0D%0A++++name%3A+Connectivity Reroute%0D%0A++++description%3A%0D%0A++++actor%3A+SDNC%0D%0A++++recipe%3A+Reroute%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard", + "policyName": "ccvpn", + "policyScope": "DCAE", + "policyVersion": "1.2.0" +}' "https://localhost:9696/policy/pdp/engine/topics/sources/ueb/${BRMSGW_TOPIC}/events" | python -m json.tool + +sleep 2 + +echo +echo "Policy insertions completed." +echo + +echo "The working memory is now: " +curl -k --silent --user @1b3rt:31nst31n -X GET https://localhost:9696/policy/pdp/engine/controllers/${CONTROLLER_NAME}/drools/facts/usecases | python -m json.tool -- cgit 1.2.3-korg