aboutsummaryrefslogtreecommitdiffstats
path: root/policy-management/src/main/server-gen/bin/pdpd-configuration
diff options
context:
space:
mode:
authorJorge Hernandez <jh1730@att.com>2017-07-24 08:48:51 -0500
committerJorge Hernandez <jh1730@att.com>2017-07-24 08:48:51 -0500
commitb395d8251fffd36040d47c88b1346c5655d56a21 (patch)
tree94246673a7952c0ea8c83dfa75cb33cb56127d28 /policy-management/src/main/server-gen/bin/pdpd-configuration
parent1ad88d1ce542a10fb57d1205ac10c8882d103723 (diff)
[POLICY-66] consolidate script naming + location
consolidate scripting convention by all adopting not .sh for bash scripts. Location is under policy-management/src/main/server-gen/bin/ so they are inherited by lab installations that don't use the packages directory. Change-Id: Ibcbd4bffad38e87cb3b644deb768120b1a6b2cbb Signed-off-by: Jorge Hernandez <jh1730@att.com>
Diffstat (limited to 'policy-management/src/main/server-gen/bin/pdpd-configuration')
-rw-r--r--policy-management/src/main/server-gen/bin/pdpd-configuration200
1 files changed, 200 insertions, 0 deletions
diff --git a/policy-management/src/main/server-gen/bin/pdpd-configuration b/policy-management/src/main/server-gen/bin/pdpd-configuration
new file mode 100644
index 00000000..8c553927
--- /dev/null
+++ b/policy-management/src/main/server-gen/bin/pdpd-configuration
@@ -0,0 +1,200 @@
+#! /bin/bash
+
+###
+# ============LICENSE_START=======================================================
+# policy-management
+# ================================================================================
+# 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=========================================================
+###
+
+function usage() {
+ echo -n "Usage: $(basename $0) "
+ echo -n "[(-d|--debug)] "
+ echo -n "(-h|--host) <bus-host> "
+ echo -n "[(-p|--port) <bus-port>] "
+ echo -n "[(-k|--key) <api-key>] "
+ echo -n "[(-s|--secret) <api-secret>] "
+ echo -n "[(-r|--request-id) <request-id>] "
+ echo -n "(-c|--controller-name) <controller-name> "
+ echo -n "(-o|--operation) <create|update|lock|unlock> "
+ echo -n "[(-g|--group-id) <group-id> "
+ echo -n "(-a|--artifact-id) <artifact-id> "
+ echo -n "(-v|--version) <version>] "
+ echo -n "[(-t|--topic) <topic>] "
+ echo ""
+}
+
+BUS_PORT=3904
+ENTITY=controller
+REQUEST_ID="7f5474ca-16a9-42ac-abc0-d86f62296fbc"
+TOPIC="PDPD_CONFIGURATION"
+
+# command line options parsing
+until [[ -z "$1" ]]; do
+ case $1 in
+ -d|--debug) set -x
+ ;;
+ -h|--host) shift
+ BUS_HOST=$1
+ ;;
+ -p|--port) shift
+ BUS_PORT=$1
+ ;;
+ -r|--request-id) shift
+ REQUEST_ID=$1
+ ;;
+ -k|--key) shift
+ API_KEY=$1
+ ;;
+ -s|--secret) shift
+ API_SECRET=$1
+ ;;
+ -c|--controller-name) shift
+ CONTROLLER_NAME=$1
+ ;;
+ -o|--operation) shift
+ OPERATION=$1
+ ;;
+ -g|--group-id) shift
+ GROUP_ID=$1
+ ;;
+ -a|--artifact-id) shift
+ ARTIFACT_ID=$1
+ ;;
+ -v|--version) shift
+ VERSION=$1
+ ;;
+ -t|--topic) shift
+ TOPIC=$1
+ ;;
+ *) usage
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+if [[ -z ${BUS_HOST} ]]; then
+ echo "An UEB/DMAAP server must be provided."
+ echo
+ usage
+ exit 1
+fi
+
+if [[ -z ${CONTROLLER_NAME} ]]; then
+ echo "The controller-name must be provided."
+ usage
+ exit 2
+fi
+
+if [[ -z ${OPERATION} ]]; then
+ echo "The operation must be provided: create|update|lock|unlock"
+ usage
+ exit 3
+fi
+
+if [[ ${OPERATION} == "create" ]] || [[ ${OPERATION} == "update" ]]; then
+ if [[ -z ${GROUP_ID} ]]; then
+ echo "The maven group id must be provided when operation is create|update"
+ usage
+ exit 4
+ fi
+
+ if [[ -z ${ARTIFACT_ID} ]]; then
+ echo "The maven artifact id must be provided when operation is create|update"
+ usage
+ exit 5
+ fi
+
+ if [[ -z ${VERSION} ]]; then
+ echo "The maven version must be provided when operation is create|update"
+ usage
+ exit 6
+ fi
+fi
+
+UPDATE_BODY=$(< <(cat <<EOF
+{
+ "requestID": "${REQUEST_ID}",
+ "entity": "controller",
+ "controllers": [{
+ "name": "${CONTROLLER_NAME}",
+ "drools": {
+ "groupId": "${GROUP_ID}",
+ "artifactId": "${ARTIFACT_ID}",
+ "version": "${VERSION}"
+ },
+ "operation": "${OPERATION}"
+ }]
+}
+
+EOF
+))
+
+LOCK_BODY=$(< <(cat <<EOF
+{
+ "requestID": "${REQUEST_ID}",
+ "entity": "controller",
+ "controllers": [{
+ "name": "${CONTROLLER_NAME}",
+ "operation": "${OPERATION}"
+ }]
+}
+
+EOF
+))
+
+unset http_proxy
+
+if [[ ${OPERATION} == "lock" ]] || [[ ${OPERATION} == "unlock" ]]; then
+ if [[ -n ${API_KEY} ]]; then
+ DATE=$(date)
+ DATE_HASH=$(echo -n "${DATE}" | openssl sha1 -hmac "${API_SECRET}" -binary | openssl base64)
+ curl --silent -X POST \
+ --header "Accept:" \
+ --header "X-CambriaDate: ${DATE}" \
+ --header "X-CambriaAuth: ${API_KEY}:${DATE_HASH}" \
+ --header "Content-Type: application/json" \
+ --data "${LOCK_BODY}" \
+ http://${BUS_HOST}:${BUS_PORT}/events/${TOPIC}
+ else
+ curl --silent -X POST \
+ --header "Accept:" \
+ --header "Content-Type: application/json" \
+ --data "${LOCK_BODY}" \
+ http://${BUS_HOST}:${BUS_PORT}/events/${TOPIC}
+ fi
+fi
+
+if [[ ${OPERATION} == "create" ]] || [[ ${OPERATION} == "update" ]]; then
+ if [[ -n ${API_KEY} ]]; then
+ DATE=$(date)
+ DATE_HASH=$(echo -n "${DATE}" | openssl sha1 -hmac "${API_SECRET}" -binary | openssl base64)
+ curl --silent -X POST \
+ --header "Accept:" \
+ --header "X-CambriaDate: ${DATE}" \
+ --header "X-CambriaAuth: ${API_KEY}:${DATE_HASH}" \
+ --header "Content-Type: application/json" \
+ --data "${UPDATE_BODY}" \
+ http://${BUS_HOST}:${BUS_PORT}/events/${TOPIC}
+ else
+ curl --silent -X POST \
+ --header "Accept:" \
+ --header "Content-Type: application/json" \
+ --data "${UPDATE_BODY}" \
+ http://${BUS_HOST}:${BUS_PORT}/events/${TOPIC}
+ fi
+fi