From aec897fe708e37b6a58f2aff04be5de14eabd403 Mon Sep 17 00:00:00 2001 From: renealr Date: Tue, 19 Jun 2018 10:50:41 -0400 Subject: add the gap event transformer add the gap event transformer and add stub data for test cases Issue-ID: AAI-1230 Change-Id: I95f6f050ca4d2d7ea3a288e05f69c6be66a9222b Signed-off-by: renealr --- src/main/bin/start.sh | 28 +----- .../aai/datarouter/policy/GapEventTransformer.java | 105 +++++++++++++++++++++ 2 files changed, 109 insertions(+), 24 deletions(-) create mode 100644 src/main/java/org/onap/aai/datarouter/policy/GapEventTransformer.java (limited to 'src/main') diff --git a/src/main/bin/start.sh b/src/main/bin/start.sh index ced887a..bb219b8 100644 --- a/src/main/bin/start.sh +++ b/src/main/bin/start.sh @@ -2,7 +2,7 @@ BASEDIR="/opt/app/data-router/" AJSC_HOME="$BASEDIR" -AJSC_CONF_HOME="$AJSC_HOME/bundleconfig/" + if [ -z "$CONFIG_HOME" ]; then echo "CONFIG_HOME must be set in order to start up process" @@ -12,35 +12,15 @@ fi if [ -z "$KEY_STORE_PASSWORD" ]; then echo "KEY_STORE_PASSWORD must be set in order to start up process" exit 1 -else - ## Extract java jar to DEOBFUSCATE the password. - CURR_D=`pwd` - cd $BASEDIR - jar xf data-router.jar - sudo java -cp ./BOOT-INF/lib/jetty-util-9.4.8.v20171121.jar org.eclipse.jetty.util.security.Password $KEY_STORE_PASSWORD > pass.txt 2>> pass.txt - PASS=`sed "2q;d" pass.txt` - sudo rm pass.txt - cd $CURR_D fi -## tomcat_keystore to p12 -keytool -importkeystore -noprompt -deststorepass $PASS -destkeypass $PASS -srckeystore $BASEDIR/config/auth/tomcat_keystore -destkeystore $BASEDIR/config/auth/onap.p12 -deststoretype PKCS12 -srcstorepass $PASS - -## import into cacerts -sudo keytool -importkeystore -noprompt -deststorepass changeit -destkeypass changeit -destkeystore /$JAVA_HOME/jre/lib/security/cacerts -srckeystore $BASEDIR/config/auth/onap.p12 -srcstoretype PKCS12 -srcstorepass $PASS -alias tomcat - -PROPS="-DBASEDIR=$BASEDIR" PROPS="-DAJSC_HOME=$AJSC_HOME" -PROPS="$PROPS -DAJSC_CONF_HOME=$AJSC_CONF_HOME" PROPS="$PROPS -Dlogging.config=$BASEDIR/bundleconfig/etc/logback.xml" -PROPS="$PROPS -DAJSC_SHARED_CONFIG=$AJSC_CONF_HOME" -PROPS="$PROPS -DAJSC_SERVICE_NAMESPACE=data-router" -PROPS="$PROPS -DAJSC_SERVICE_VERSION=v1" -PROPS="$PROPS -Dserver.port=9502" PROPS="$PROPS -DCONFIG_HOME=$CONFIG_HOME" -JVM_MAX_HEAP=${MAX_HEAP:-1024} +PROPS="$PROPS -DKEY_STORE_PASSWORD=$KEY_STORE_PASSWORD" + -echo $CLASSPATH +JVM_MAX_HEAP=${MAX_HEAP:-1024} cd ${MICRO_HOME} jar uf0 $MICRO_HOME/data-router.jar BOOT-INF/lib/* diff --git a/src/main/java/org/onap/aai/datarouter/policy/GapEventTransformer.java b/src/main/java/org/onap/aai/datarouter/policy/GapEventTransformer.java new file mode 100644 index 0000000..6565fc2 --- /dev/null +++ b/src/main/java/org/onap/aai/datarouter/policy/GapEventTransformer.java @@ -0,0 +1,105 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-2018 Amdocs + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.aai.datarouter.policy; + +import java.io.FileNotFoundException; + +import org.apache.camel.Exchange; +import org.json.JSONException; +import org.json.JSONObject; +import org.onap.aai.cl.api.Logger; +import org.onap.aai.cl.eelf.LoggerFactory; +import org.onap.aai.datarouter.logging.EntityEventPolicyMsgs; + + + +public class GapEventTransformer { + protected Logger logger; + protected static final String additionalInfo = "Response of GapEvent to transform"; + + protected enum ResponseType { + SUCCESS, PARTIAL_SUCCESS, FAILURE; + } + + public GapEventTransformer() throws FileNotFoundException { + LoggerFactory loggerFactoryInstance = LoggerFactory.getInstance(); + logger = loggerFactoryInstance.getLogger(AbstractSpikeEntityEventProcessor.class.getName()); + } + + + public void process(Exchange exchange) throws Exception { + + String payload = getExchangeBody(exchange); + JSONObject newPayload = transformToSpikePattern(payload); + exchange.getOut().setBody(newPayload.toString()); + + } + + protected JSONObject transformToSpikePattern(String payload) { + JSONObject payloadJson = new JSONObject(payload); + JSONObject payloadEntity = payloadJson.getJSONObject("entity"); + JSONObject payloadProperties = payloadEntity.getJSONObject("properties"); + String payloadId = payloadEntity.getString("id"); + String payloadType = payloadEntity.getString("type"); + + JSONObject newPayload = new JSONObject(); + newPayload.put("operation", "UPDATE"); + JSONObject newPayloadVertex = new JSONObject(); + newPayloadVertex.put("key", payloadId); + newPayloadVertex.put("type", payloadType); + newPayloadVertex.put("properties", payloadProperties); + newPayload.put("vertex", newPayloadVertex); + return newPayload; + } + + protected String getExchangeBody(Exchange exchange) { + String uebPayload = exchange.getIn().getBody().toString(); + if (uebPayload == null || !isJSONValid(uebPayload)) { + uebPayload = exchange.getIn().getBody(String.class); + if (uebPayload == null || !isJSONValid(uebPayload)) { + returnWithError(exchange, uebPayload, "Invalid Payload"); + return null; + } + } + return uebPayload; + } + + private boolean isJSONValid(String test) { + try { + new JSONObject(test); + } catch (JSONException ex) { + return false; + } + return true; + } + + protected void returnWithError(Exchange exchange, String payload, String errorMsg) { + logger.error(EntityEventPolicyMsgs.DISCARD_EVENT_NONVERBOSE, errorMsg); + logger.debug(EntityEventPolicyMsgs.DISCARD_EVENT_VERBOSE, errorMsg, payload); + setResponse(exchange, ResponseType.FAILURE, additionalInfo); + } + + protected void setResponse(Exchange exchange, ResponseType responseType, String additionalInfo) { + + exchange.getOut().setHeader("ResponseType", responseType.toString()); + exchange.getOut().setBody(additionalInfo); + } +} -- cgit 1.2.3-korg