Initial OpenECOMP policy/drools-pdp commit

Change-Id: I0072ccab6f40ed32da39667f9f8523b6d6dad2e2
Signed-off-by: Pamela Dragosh <pdragosh@research.att.com>
diff --git a/policy-management/src/main/server-gen/bin/pdpd-configuration.sh b/policy-management/src/main/server-gen/bin/pdpd-configuration.sh
new file mode 100644
index 0000000..8c55392
--- /dev/null
+++ b/policy-management/src/main/server-gen/bin/pdpd-configuration.sh
@@ -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