From 161df8a94bb3b0c34ed16fd4fdba078bd1eeef9a Mon Sep 17 00:00:00 2001 From: Patrick Brady Date: Wed, 13 Dec 2017 11:14:21 -0800 Subject: Second part of onap rename This is the second commit of the rename. The folder structure is renamed for appc-adapters and appc-config in this commit. Change-Id: Iaa2b8c937ff1ca1b5d1178128961fb115ee65d9b Signed-off-by: Patrick Brady Issue-ID: APPC-13 --- .../config/generator/ConfigGeneratorActivator.java | 86 ++++++++++ .../config/generator/ConfigGeneratorConstant.java | 68 ++++++++ .../sdnc/config/generator/convert/ConvertNode.java | 189 +++++++++++++++++++++ .../sdnc/config/generator/merge/MergeNode.java | 132 ++++++++++++++ .../sdnc/config/generator/pattern/PatternNode.java | 81 +++++++++ .../sdnc/config/generator/reader/ReaderNode.java | 62 +++++++ .../sdnc/config/generator/tool/CheckDataTool.java | 84 +++++++++ .../onap/sdnc/config/generator/tool/Constants.java | 32 ++++ .../generator/tool/CustomJsonNodeFactory.java | 32 ++++ .../sdnc/config/generator/tool/CustomTextNode.java | 50 ++++++ .../sdnc/config/generator/tool/DbServiceUtil.java | 75 ++++++++ .../sdnc/config/generator/tool/EscapeUtils.java | 102 +++++++++++ .../onap/sdnc/config/generator/tool/JSONTool.java | 157 +++++++++++++++++ .../sdnc/config/generator/tool/LogParserTool.java | 94 ++++++++++ .../onap/sdnc/config/generator/tool/MergeTool.java | 109 ++++++++++++ .../generator/transform/XSLTTransformerNode.java | 96 +++++++++++ .../config/generator/writer/FileWriterNode.java | 70 ++++++++ .../config/generator/ConfigGeneratorActivator.java | 86 ---------- .../config/generator/ConfigGeneratorConstant.java | 68 -------- .../sdnc/config/generator/convert/ConvertNode.java | 189 --------------------- .../sdnc/config/generator/merge/MergeNode.java | 132 -------------- .../sdnc/config/generator/pattern/PatternNode.java | 81 --------- .../sdnc/config/generator/reader/ReaderNode.java | 62 ------- .../sdnc/config/generator/tool/CheckDataTool.java | 84 --------- .../sdnc/config/generator/tool/Constants.java | 32 ---- .../generator/tool/CustomJsonNodeFactory.java | 32 ---- .../sdnc/config/generator/tool/CustomTextNode.java | 50 ------ .../sdnc/config/generator/tool/DbServiceUtil.java | 75 -------- .../sdnc/config/generator/tool/EscapeUtils.java | 102 ----------- .../sdnc/config/generator/tool/JSONTool.java | 157 ----------------- .../sdnc/config/generator/tool/LogParserTool.java | 94 ---------- .../sdnc/config/generator/tool/MergeTool.java | 109 ------------ .../generator/transform/XSLTTransformerNode.java | 96 ----------- .../config/generator/writer/FileWriterNode.java | 70 -------- .../config/generator/convert/TestConvertNode.java | 146 ++++++++++++++++ .../sdnc/config/generator/merge/TestMergeNode.java | 103 +++++++++++ .../config/generator/pattern/TestPatternNode.java | 81 +++++++++ .../config/generator/reader/TestReaderNode.java | 49 ++++++ .../sdnc/config/generator/tool/TestDataTool.java | 153 +++++++++++++++++ .../transform/TestXSLTTransformerNode.java | 56 ++++++ .../generator/writer/TestFileWriterNode.java | 45 +++++ .../config/generator/convert/TestConvertNode.java | 146 ---------------- .../sdnc/config/generator/merge/TestMergeNode.java | 103 ----------- .../config/generator/pattern/TestPatternNode.java | 81 --------- .../config/generator/reader/TestReaderNode.java | 49 ------ .../sdnc/config/generator/tool/TestDataTool.java | 153 ----------------- .../transform/TestXSLTTransformerNode.java | 56 ------ .../generator/writer/TestFileWriterNode.java | 45 ----- 48 files changed, 2152 insertions(+), 2152 deletions(-) create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/ConfigGeneratorActivator.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/ConfigGeneratorConstant.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/convert/ConvertNode.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/merge/MergeNode.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/pattern/PatternNode.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/reader/ReaderNode.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CheckDataTool.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/Constants.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CustomJsonNodeFactory.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CustomTextNode.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/DbServiceUtil.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/EscapeUtils.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/JSONTool.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/LogParserTool.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/MergeTool.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/transform/XSLTTransformerNode.java create mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/writer/FileWriterNode.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/ConfigGeneratorActivator.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/ConfigGeneratorConstant.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/convert/ConvertNode.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/merge/MergeNode.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/pattern/PatternNode.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/reader/ReaderNode.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/CheckDataTool.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/Constants.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/CustomJsonNodeFactory.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/CustomTextNode.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/DbServiceUtil.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/EscapeUtils.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/JSONTool.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/LogParserTool.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/MergeTool.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/transform/XSLTTransformerNode.java delete mode 100644 appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/writer/FileWriterNode.java create mode 100644 appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/convert/TestConvertNode.java create mode 100644 appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/merge/TestMergeNode.java create mode 100644 appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/pattern/TestPatternNode.java create mode 100644 appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/reader/TestReaderNode.java create mode 100644 appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/tool/TestDataTool.java create mode 100644 appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/transform/TestXSLTTransformerNode.java create mode 100644 appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/writer/TestFileWriterNode.java delete mode 100644 appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/convert/TestConvertNode.java delete mode 100644 appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/merge/TestMergeNode.java delete mode 100644 appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/pattern/TestPatternNode.java delete mode 100644 appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/reader/TestReaderNode.java delete mode 100644 appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/tool/TestDataTool.java delete mode 100644 appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/transform/TestXSLTTransformerNode.java delete mode 100644 appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/writer/TestFileWriterNode.java (limited to 'appc-config/appc-config-generator') diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/ConfigGeneratorActivator.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/ConfigGeneratorActivator.java new file mode 100644 index 000000000..f2987d2f4 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/ConfigGeneratorActivator.java @@ -0,0 +1,86 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator; + +import java.util.LinkedList; +import java.util.List; + +import org.openecomp.sdnc.config.generator.convert.ConvertNode; +import org.openecomp.sdnc.config.generator.merge.MergeNode; +import org.openecomp.sdnc.config.generator.pattern.PatternNode; +import org.openecomp.sdnc.config.generator.reader.ReaderNode; +import org.openecomp.sdnc.config.generator.writer.FileWriterNode; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + +public class ConfigGeneratorActivator implements BundleActivator{ + + private List registrations = new LinkedList(); + + + private static final EELFLogger log = EELFManager.getInstance().getLogger(ConfigGeneratorActivator.class); + + @Override + public void start(BundleContext ctx) throws Exception + { + + ConvertNode convertNode = new ConvertNode(); + log.info("Registering service "+ convertNode.getClass().getName()); + registrations.add(ctx.registerService(convertNode.getClass().getName(), convertNode, null)); + log.info("Registering service sccessful for "+ convertNode.getClass().getName()); + + MergeNode mergeNode = new MergeNode(); + log.info("Registering service "+ mergeNode.getClass().getName()); + registrations.add(ctx.registerService(mergeNode.getClass().getName(), mergeNode, null)); + log.info("Registering service sccessful for "+ mergeNode.getClass().getName()); + + PatternNode patternNode = new PatternNode(); + log.info("Registering service "+ patternNode.getClass().getName()); + registrations.add(ctx.registerService(patternNode.getClass().getName(), patternNode, null)); + log.info("Registering service sccessful for "+ patternNode.getClass().getName()); + + ReaderNode readerNode = new ReaderNode(); + log.info("Registering service "+ readerNode.getClass().getName()); + registrations.add(ctx.registerService(readerNode.getClass().getName(), readerNode, null)); + log.info("Registering service sccessful for "+ readerNode.getClass().getName()); + + FileWriterNode writerNode = new FileWriterNode(); + log.info("Registering service "+ writerNode.getClass().getName()); + registrations.add(ctx.registerService(writerNode.getClass().getName(), writerNode, null)); + log.info("Registering service sccessful for "+ writerNode.getClass().getName()); + + } + @Override + public void stop(BundleContext arg0) throws Exception + { + for (ServiceRegistration registration: registrations) + { + registration.unregister(); + registration = null; + } + + } + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/ConfigGeneratorConstant.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/ConfigGeneratorConstant.java new file mode 100644 index 000000000..cdfc34229 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/ConfigGeneratorConstant.java @@ -0,0 +1,68 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator; + +public class ConfigGeneratorConstant { + + + public static String STRING_ENCODING = "utf-8"; + public static String Y = "Y"; + public static String N = "N"; + public static String DATA_TYPE_TEXT = "TEXT"; + public static String DATA_TYPE_JSON = "JSON"; + public static String DATA_TYPE_XML = "XML"; + public static String DATA_TYPE_SQL = "SQL"; + + public static String INPUT_PARAM_JSON_DATA = "jsonData"; + public static String INPUT_PARAM_IS_ESCAPED = "isEscaped"; + public static String INPUT_PARAM_BLOCK_KEYS = "blockKeys"; + public static String INPUT_PARAM_LOG_DATA = "logData"; + public static String INPUT_PARAM_CHECK_DATA = "checkData"; + public static String INPUT_PARAM_ESCAPE_DATA = "escapeData"; + public static String INPUT_PARAM_UNESCAPE_DATA = "unEscapeData"; + public static String INPUT_PARAM_DATA_TYPE = "dataType"; + public static String INPUT_PARAM_FILE_NAME = "fileName"; + + public static String INPUT_PARAM_TEMPLATE_DATA = "templateData"; + public static String INPUT_PARAM_TEMPLATE_FILE = "templateFile"; + public static String INPUT_PARAM_TEMPLATE_TYPE = "templateType"; + public static String INPUT_PARAM_DO_PRETTY_OUTPUT = "doPrettyOutput"; + public static String INPUT_PARAM_REQUEST_DATA = "requestData"; + public static String INPUT_PARAM_RESPONSE_PRIFIX = "responsePrefix"; + + + public static String OUTPUT_PARAM_MERGED_DATA = "mergedData"; + public static String OUTPUT_PARAM_TRANSFORMED_DATA = "transformedData"; + public static String OUTPUT_PARAM_FILE_DATA = "fileData"; + public static String OUTPUT_PARAM_PARSED_ERROR = "parsedError"; + public static String OUTPUT_PARAM_DATA_TYPE = "dataType"; + public static String OUTPUT_PARAM_STATUS = "status"; + public static String OUTPUT_PARAM_ERROR_MESSAGE = "error-message"; + public static String OUTPUT_PARAM_ESCAPE_DATA = "escapeData"; + public static String OUTPUT_PARAM_UNESCAPE_DATA = "unEscapeData"; + + public static String OUTPUT_STATUS_SUCCESS = "success"; + public static String OUTPUT_STATUS_FAILURE = "failure"; + + public static final Object INPUT_PARAM_CONTEXT_KEY = "contextKey"; + public static final Object INPUT_PARAM_JSON_CONTENT = "jsonContent"; + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/convert/ConvertNode.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/convert/ConvertNode.java new file mode 100644 index 000000000..f6a9043b1 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/convert/ConvertNode.java @@ -0,0 +1,189 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.convert; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang3.StringUtils; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; +import org.openecomp.sdnc.config.generator.tool.EscapeUtils; +import org.openecomp.sdnc.config.generator.tool.JSONTool; +import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; + +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; + +public class ConvertNode implements SvcLogicJavaPlugin { + + private static final EELFLogger log = EELFManager.getInstance().getLogger(ConvertNode.class); + + public void convertJson2DGContext( Map inParams, SvcLogicContext ctx) throws SvcLogicException { + log.trace("Received convertJson2DGContext call with params : " + inParams); + String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); + try { + String jsonData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA); + String isEscaped = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_IS_ESCAPED); + String blockKey = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_BLOCK_KEYS); + responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; + + if(StringUtils.isNotBlank(jsonData)){ + if(StringUtils.isNotBlank(isEscaped) && isEscaped.equalsIgnoreCase("Y")){ + jsonData = StringEscapeUtils.unescapeJavaScript(jsonData); + } + + List blockKeys = new ArrayList(); + if(blockKey != null){ + blockKeys = Arrays.asList(blockKey.split(",")); + } + + Map dgContext = JSONTool.convertToProperties(jsonData, blockKeys); + log.trace("DG Context Populated:"+dgContext); + + for (Map.Entry entry : dgContext.entrySet()) { + if(entry != null && entry.getKey() != null){ + ctx.setAttribute(entry.getKey(), entry.getValue()); + } + } + } + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + + } catch (Exception e) { + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); + log.error("Failed in JSON to DGContext Conversion" + e.getMessage()); + throw new SvcLogicException(e.getMessage()); + } + } + + + public void escapeData( Map inParams, SvcLogicContext ctx) throws SvcLogicException { + log.trace("Received escapeData call with params : " + inParams); + String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); + try { + responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; + String unEscapeData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_UNESCAPE_DATA); + String dataType = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE); + + if(StringUtils.isBlank(unEscapeData)){ + throw new Exception("Unescape ("+ConfigGeneratorConstant.INPUT_PARAM_UNESCAPE_DATA +") param is missing for escapeData conversion." + unEscapeData); + } + + if(StringUtils.isBlank(dataType)){ + throw new Exception(" Datatype ("+ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE+")param is missing for escapeData conversion."); + } + + String escapedData = null; + if(ConfigGeneratorConstant.DATA_TYPE_JSON.equalsIgnoreCase(dataType)){ + escapedData = StringEscapeUtils.escapeJavaScript(unEscapeData); + }else if(ConfigGeneratorConstant.DATA_TYPE_XML.equalsIgnoreCase(dataType)){ + escapedData = StringEscapeUtils.escapeXml(unEscapeData); + }else if(ConfigGeneratorConstant.DATA_TYPE_SQL.equalsIgnoreCase(dataType)){ + escapedData = EscapeUtils.escapeSql(unEscapeData); + }else{ + throw new Exception(" Datatype ("+ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE+") param value ("+dataType+")is not supported for escapeData conversion."); + } + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ESCAPE_DATA, escapedData); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + log.trace("Data escapeData Successfully :" + ctx.getAttributeKeySet()); + } catch (Exception e) { + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); + log.error("Failed in escapeData Conversion" + e.getMessage()); + throw new SvcLogicException(e.getMessage()); + } + } + + public void unEscapeData( Map inParams, SvcLogicContext ctx) throws SvcLogicException { + log.trace("Received unEscapeData call with params : " + inParams); + String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); + try { + responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; + String escapeData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_ESCAPE_DATA); + String dataType = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE); + + if(StringUtils.isBlank(escapeData)){ + throw new Exception("Escape ("+ConfigGeneratorConstant.INPUT_PARAM_ESCAPE_DATA +") param is missing for escapeData conversion."); + } + + if(StringUtils.isBlank(dataType)){ + throw new Exception(" Datatype ("+ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE+")param is missing for escapeData conversion."); + } + + String unEscapedData = null; + if(ConfigGeneratorConstant.DATA_TYPE_JSON.equalsIgnoreCase(dataType)){ + unEscapedData = StringEscapeUtils.unescapeJavaScript(escapeData); + }else if(ConfigGeneratorConstant.DATA_TYPE_XML.equalsIgnoreCase(dataType)){ + unEscapedData = StringEscapeUtils.unescapeXml(escapeData); + }else{ + throw new Exception(" Datatype ("+ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE+") param value ("+dataType+")is not supported for unEscapeData conversion."); + } + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_UNESCAPE_DATA, unEscapedData); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + log.trace("Converted unEscapeData Successfully :" + ctx.getAttributeKeySet()); + } catch (Exception e) { + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); + log.error("Failed in unEscapeData Conversion" + e.getMessage()); + throw new SvcLogicException(e.getMessage()); + } + } + + + public void convertContextToJson(Map inParams, SvcLogicContext ctx) throws SvcLogicException{ + log.trace("Received convertContextToJson call with params : " + inParams); + String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); + String contextKey = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_CONTEXT_KEY); + try { + responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; + + ObjectMapper mapper = new ObjectMapper(); + ObjectNode objectNode = mapper.createObjectNode(); + + Set keys = ctx.getAttributeKeySet(); + for (String key : keys) { + if(key.startsWith(contextKey +".")){ + String objkey= key.replaceFirst(contextKey + ".", ""); + objectNode.put(objkey, ctx.getAttribute(key)); + + } + } + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.INPUT_PARAM_JSON_CONTENT, objectNode.toString()); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + log.trace("convertContextToJson Successful" ); + } catch (Exception e) { + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); + log.error("Failed in convertContextToJson" + e.getMessage()); + throw new SvcLogicException(e.getMessage()); + } + } + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/merge/MergeNode.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/merge/MergeNode.java new file mode 100644 index 000000000..3369f7588 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/merge/MergeNode.java @@ -0,0 +1,132 @@ + +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); +i * 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.openecomp.sdnc.config.generator.merge; + +import java.nio.charset.Charset; +import java.util.Map; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; +import org.openecomp.sdnc.config.generator.tool.JSONTool; +import org.openecomp.sdnc.config.generator.tool.MergeTool; +import org.openecomp.sdnc.config.generator.tool.EscapeUtils; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; + +public class MergeNode implements SvcLogicJavaPlugin { + + private static final EELFLogger log = EELFManager.getInstance().getLogger(MergeNode.class); + + public void mergeDataOnTemplate(Map inParams, SvcLogicContext ctx) throws SvcLogicException { + + } + + public void mergeJsonDataOnTemplate(Map inParams, SvcLogicContext ctx) throws SvcLogicException { + log.info("Received mergeJsonDataOnTemplate call with params : " + inParams); + String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); + try{ + responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; + String jsonData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA); + if(StringUtils.isBlank(jsonData)){ + throw new Exception("JSON Data is missing"); + } + + String templateData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA); + String templateFile = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_FILE); + + if(StringUtils.isBlank(templateData) && StringUtils.isBlank(templateFile)){ + throw new Exception("Template data or Template file is missing"); + } + if(StringUtils.isBlank(templateData)){ + String path = MergeNode.class.getClassLoader().getResource(".").toString(); + templateData = IOUtils.toString(MergeNode.class.getClassLoader().getResourceAsStream(templateFile)); + } + + String templateType = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_TYPE); + + Map dataMap = JSONTool.convertToProperties(jsonData); + log.info("Data Maps created :" + dataMap); + if(dataMap != null){ + String mergedData = MergeTool.mergeMap2TemplateData(templateData, dataMap); + if(mergedData != null){ + // ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_MERGED_DATA,mergedData); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_MERGED_DATA,EscapeUtils.unescapeSql(mergedData)); + + } + } + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + log.info("Data Merge Successful :" + ctx); + } catch (Exception e) { + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); + log.error("Failed in merging data to template " + e.getMessage()); + throw new SvcLogicException(e.getMessage()); + } + } + + public void mergeComplexJsonDataOnTemplate(Map inParams, SvcLogicContext ctx) throws SvcLogicException { + //log.info("Received mergeJsonComplexDataOnTemplate call with params : " + inParams); + String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); + try{ + responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; + String jsonData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA); + if(StringUtils.isBlank(jsonData)){ + throw new Exception("JSON Data is missing"); + } + + String templateData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA); + String templateFile = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_FILE); + + if(StringUtils.isBlank(templateData) && StringUtils.isBlank(templateFile)){ + throw new Exception("Template data or Template file is missing"); + } + if(StringUtils.isBlank(templateData)){ + //String path = MergeNode.class.getClassLoader().getResource(".").toString(); + templateData = IOUtils.toString(MergeNode.class.getClassLoader().getResourceAsStream(templateFile), Charset.defaultCharset()); + } + + String templateType = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_TYPE); + String doPrettyOutput = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_DO_PRETTY_OUTPUT); + + String mergedData = MergeTool.mergeJson2TemplateData(templateData, jsonData, templateType, doPrettyOutput); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_MERGED_DATA,mergedData); + + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + //log.info("Data Merge Successful :" + ctx); + } catch (Exception e) { + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); + log.error("Failed in merging data to template " + e.getMessage()); + throw new SvcLogicException(e.getMessage()); + } + } + + public void mergeYamlDataOnTemplate(Map inParams, SvcLogicContext ctx) throws SvcLogicException { + + } + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/pattern/PatternNode.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/pattern/PatternNode.java new file mode 100644 index 000000000..67a5d2cc7 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/pattern/PatternNode.java @@ -0,0 +1,81 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.pattern; + +import java.util.Map; + +import org.apache.commons.lang3.StringUtils; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; +import org.openecomp.sdnc.config.generator.tool.CheckDataTool; +import org.openecomp.sdnc.config.generator.tool.LogParserTool; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; + +public class PatternNode implements SvcLogicJavaPlugin { + + private static final EELFLogger log = EELFManager.getInstance().getLogger(PatternNode.class); + + public void parseErrorLog(Map inParams, SvcLogicContext ctx) throws SvcLogicException { + log.info("Received parseErroLog call with params : " + inParams); + String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); + try{ + responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; + String logData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_LOG_DATA); + if(StringUtils.isBlank(logData)){ + throw new Exception("Log Data is missing"); + } + LogParserTool logParserTool = new LogParserTool(); + String parsedError = logParserTool.parseErrorLog(logData); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_PARSED_ERROR, parsedError); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + } catch (Exception e) { + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); + log.error("Failed in parsing error log " + e.getMessage()); + throw new SvcLogicException(e.getMessage()); + } + } + + public void checkDataType(Map inParams, SvcLogicContext ctx) throws SvcLogicException { + log.info("Received checkDataType call with params : " + inParams); + String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); + try{ + responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; + String checkData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_CHECK_DATA); + if(StringUtils.isBlank(checkData)){ + throw new Exception("Check Data is missing"); + } + String dataType = CheckDataTool.checkData(checkData); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_DATA_TYPE, dataType); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + } catch (Exception e) { + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); + log.error("Failed in checkDataType " + e.getMessage()); + throw new SvcLogicException(e.getMessage()); + } + } + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/reader/ReaderNode.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/reader/ReaderNode.java new file mode 100644 index 000000000..379b7c769 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/reader/ReaderNode.java @@ -0,0 +1,62 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.reader; + +import java.io.File; +import java.util.Map; + +import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.StringUtils; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; +import org.openecomp.sdnc.config.generator.merge.MergeNode; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; + +public class ReaderNode implements SvcLogicJavaPlugin { + + private static final EELFLogger log = EELFManager.getInstance().getLogger(MergeNode.class); + + + public void getFileData(Map inParams, SvcLogicContext ctx) throws SvcLogicException { + log.info("Received getFileData call with params : " + inParams); + String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); + try{ + responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; + String fileName = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_FILE_NAME); + + String fileData = FileUtils.readFileToString(new File(fileName), ConfigGeneratorConstant.STRING_ENCODING); + + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_FILE_DATA,fileData); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + } catch (Exception e) { + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); + log.error("Failed in merging data to template " + e.getMessage()); + throw new SvcLogicException(e.getMessage()); + } + } + + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CheckDataTool.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CheckDataTool.java new file mode 100644 index 000000000..316e821df --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CheckDataTool.java @@ -0,0 +1,84 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.tool; + +import java.io.StringReader; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.codehaus.jettison.json.JSONArray; +import org.codehaus.jettison.json.JSONException; +import org.codehaus.jettison.json.JSONObject; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; +import org.w3c.dom.Document; +import org.xml.sax.InputSource; + +public class CheckDataTool { + + public static String checkData(String data){ + boolean isJSON = isJSON(data); + if(isJSON){ + return ConfigGeneratorConstant.DATA_TYPE_JSON; + } + + boolean isXML = isXML(data); + if(isXML){ + return ConfigGeneratorConstant.DATA_TYPE_XML; + } + + return ConfigGeneratorConstant.DATA_TYPE_TEXT; + } + + public static boolean isJSON(String data) { + try { + new JSONObject(data); + } catch (JSONException ex) { + try { + new JSONArray(data); + } catch (JSONException ex1) { + return false; + } + } + return true; + + // try { + // final ObjectMapper mapper = new ObjectMapper(); + // mapper.readTree(data); + // return true; + // } catch (IOException e) { + // return false; + // } + } + + public static boolean isXML(String data) { + try { + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + Document doc = dBuilder.parse(new InputSource(new StringReader(data))); + return true; + } catch (Exception ex) { + return false; + } + + } + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/Constants.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/Constants.java new file mode 100644 index 000000000..d8af571e8 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/Constants.java @@ -0,0 +1,32 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.tool; + +public class Constants +{ + + public static final String DBLIB_SERVICE = "org.openecomp.sdnc.sli.resource.dblib.DBResourceManager"; + public static final String DEVICE_AUTHENTICATION="DEVICE_AUTHENTICATION"; + public static final String SCHEMA_SDNCTL="SDNCTL"; + + public static final String APPC_CONFIG_DIR="/opt/app/bvc/properties"; + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CustomJsonNodeFactory.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CustomJsonNodeFactory.java new file mode 100644 index 000000000..5820cea7a --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CustomJsonNodeFactory.java @@ -0,0 +1,32 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.tool; + +import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import com.fasterxml.jackson.databind.node.TextNode; + +public class CustomJsonNodeFactory extends JsonNodeFactory { + + public TextNode textNode(String text) { + return new CustomTextNode(text); + } + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CustomTextNode.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CustomTextNode.java new file mode 100644 index 000000000..93e252a6d --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CustomTextNode.java @@ -0,0 +1,50 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.tool; + + +import com.fasterxml.jackson.core.io.CharTypes; +import com.fasterxml.jackson.databind.node.TextNode; + +public class CustomTextNode extends TextNode{ + + public CustomTextNode(String v) { + super(v); + } + + @Override + public String toString() + { + int len = textValue().length(); + len = len + 2 + (len >> 4); + StringBuilder sb = new StringBuilder(len); + appendQuoted(sb, textValue()); + return sb.toString(); + } + + protected static void appendQuoted(StringBuilder sb, String content) + { + // sb.append('"'); + CharTypes.appendQuoted(sb, content); + // sb.append('"'); + } + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/DbServiceUtil.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/DbServiceUtil.java new file mode 100644 index 000000000..c8340816e --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/DbServiceUtil.java @@ -0,0 +1,75 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.tool; + +import java.io.File; +import java.net.URL; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Properties; + +import javax.sql.rowset.CachedRowSet; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.onap.ccsdk.sli.core.dblib.DBResourceManager; +import org.onap.ccsdk.sli.core.dblib.DbLibService; + +public class DbServiceUtil +{ + private static final Logger log = LoggerFactory + .getLogger(DbServiceUtil.class); + + private static Properties props; + private static DBResourceManager jdbcDataSource = null; + + + public static boolean updateDB(String tableName, ArrayList inputArgs, String scema, String whereClause, String setCluase) throws SQLException + { + String updatePasswordString = "update " + tableName + " set " + setCluase + " where " + whereClause ; + boolean result = jdbcDataSource.writeData(updatePasswordString, inputArgs,Constants.SCHEMA_SDNCTL); + return result; + } + + + public static CachedRowSet getData(String tableName, ArrayList argList, String schema, String getselectData, String getDataClasue ) throws SQLException + { + String selectQuery = "select " + getselectData + "from " + tableName + " where " + getDataClasue ; + CachedRowSet data = jdbcDataSource.getData(selectQuery, argList, schema); + return data; + } + + + public static DBResourceManager initDbLibService() throws Exception + { + props = new Properties(); + File file = new File("/opt/app/bvc/properties/dblib.properties"); + URL propURL = file.toURI().toURL(); + props.load(propURL.openStream()); + jdbcDataSource = new DBResourceManager(props); + return jdbcDataSource; + + } + + + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/EscapeUtils.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/EscapeUtils.java new file mode 100644 index 000000000..36afe76ae --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/EscapeUtils.java @@ -0,0 +1,102 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.tool; + +import org.apache.commons.lang3.StringUtils; + +public class EscapeUtils { + + public EscapeUtils() { + // TODO Auto-generated constructor stub + } + + public static String escapeSql(String str) { + if (str == null) { + return null; + } + String searchList[] = new String[]{"'","\\"}; + String replacementList[] = new String[]{ "''","\\\\"}; + return StringUtils.replaceEach(str,searchList, replacementList); + } + + public static String unescapeSql(String str) { + if (str == null) { + return null; + } + + String searchList[] = new String[] {"''"}; + String replacementList[] = new String[] {"'"}; + return StringUtils.replaceEach(str, searchList, replacementList); + } + + + // For Generic Purpose + public static String escapeSQL(String s) { + if (s == null) { + return null; + } + + int length = s.length(); + int newLength = length; + for (int i = 0; i < length; i++) { + char c = s.charAt(i); + switch (c) { + case '\\': + case '\"': + case '\'': + case '\0': { + newLength += 1; + } + break; + } + } + if (length == newLength) { + // nothing to escape in the string + return s; + } + StringBuffer sb = new StringBuffer(newLength); + for (int i = 0; i < length; i++) { + char c = s.charAt(i); + switch (c) { + case '\\': { + sb.append("\\\\"); + } + break; + case '\"': { + sb.append("\\\""); + } + break; + case '\'': { + sb.append("\\\'"); + } + break; + case '\0': { + sb.append("\\0"); + } + break; + default: { + sb.append(c); + } + } + } + return sb.toString(); + } +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/JSONTool.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/JSONTool.java new file mode 100644 index 000000000..63fd7006e --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/JSONTool.java @@ -0,0 +1,157 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.tool; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.codehaus.jettison.json.JSONArray; +import org.codehaus.jettison.json.JSONException; +import org.codehaus.jettison.json.JSONObject; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + + + +public class JSONTool { + + private static final EELFLogger log = EELFManager.getInstance().getLogger(JSONTool.class); + + public static Map convertToProperties(String s) throws JSONException { + return convertToProperties(s, null); + } + + public static Map convertToProperties(String s,List blockKeys) throws JSONException { + JSONObject json = new JSONObject(s); + Map mm = new HashMap(); + + Map wm = new HashMap(); + Iterator ii = json.keys(); + while (ii.hasNext()) { + String key1 = ii.next(); + wm.put(key1, json.get(key1)); + + + } + + while (!wm.isEmpty()) + for (String key : new ArrayList<>(wm.keySet())) { + Object o = wm.get(key); + wm.remove(key); + + + if(blockKeys != null && blockKeys.contains(key) && o != null){ + //log.info("Adding JSON Block Keys : " + key + "=" + o.toString()); + mm.put("block_" +key,o.toString()); + } + + if (o instanceof Boolean || o instanceof Number || o instanceof String) { + mm.put(key, o.toString()); + //log.info("Added property: " + key + ": " + o.toString()); + } + + else if (o instanceof JSONObject) { + JSONObject jo = (JSONObject) o; + Iterator i = jo.keys(); + while (i.hasNext()) { + String key1 = i.next(); + wm.put(key + "." + key1, jo.get(key1)); + } + } + + else if (o instanceof JSONArray) { + JSONArray ja = (JSONArray) o; + mm.put("size_"+key, String.valueOf(ja.length())); + + //log.info("Added property: " + key + "_length" + ": " + String.valueOf(ja.length())); + + for (int i = 0; i < ja.length(); i++) + wm.put(key + '[' + i + ']', ja.get(i)); + } + } + + return mm; + } + + /* + public static Map convertToProperties1(String s,List blockKeys) throws Exception { + ObjectMapper objectMapper = new ObjectMapper(); + + JsonNode rootNode = objectMapper.readTree(s); + + Map mm = new HashMap(); + + Map wm = new HashMap(); + Iterator ii = rootNode.fieldNames(); + while (ii.hasNext()) { + String key1 = ii.next(); + wm.put(key1, rootNode.get(key1)); + + + } + + while (!wm.isEmpty()) + for (String key : new ArrayList<>(wm.keySet())) { + Object o = wm.get(key); + wm.remove(key); + + + if(blockKeys != null && blockKeys.contains(key) && o != null){ + //log.info("Adding JSON Block Keys : " + key + "=" + o.toString()); + mm.put("block_" +key,o.toString()); + } + + if (o instanceof Boolean || o instanceof Number || o instanceof String) { + mm.put(key, o.toString()); + //log.info("Added property: " + key + ": " + o.toString()); + } + + else if (o instanceof JSONObject) { + JSONObject jo = (JSONObject) o; + Iterator i = jo.keys(); + while (i.hasNext()) { + String key1 = i.next(); + wm.put(key + "." + key1, jo.get(key1)); + } + } + + else if (o instanceof JSONArray) { + JSONArray ja = (JSONArray) o; + mm.put("size_"+key, String.valueOf(ja.length())); + + //log.info("Added property: " + key + "_length" + ": " + String.valueOf(ja.length())); + + for (int i = 0; i < ja.length(); i++) + wm.put(key + '[' + i + ']', ja.get(i)); + } + } + + return mm; + } +*/ + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/LogParserTool.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/LogParserTool.java new file mode 100644 index 000000000..54823bc17 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/LogParserTool.java @@ -0,0 +1,94 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.tool; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + +public class LogParserTool { + private static final EELFLogger log = EELFManager.getInstance().getLogger(JSONTool.class); + + private String[] singleLines; + private List recentErrors = new ArrayList ();; + private Date todaysDate = new Date(); + private SimpleDateFormat dFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); + private final int minMilli = 60000; + private final int IN_TIME = 0; + private final int NOT_IN_TIME = 1; + private final int NO_DATE = 2; + + public String parseErrorLog(String data){ + singleLines = data.split("\\r?\\n"); + try { + getNearestDates(); + + } catch (Exception e) { + e.printStackTrace(); + } + if(recentErrors.size() == 0){ + recentErrors.clear(); + return "Did not find the string 'Starting orchestration of file backed up to /var/opt/MetaSwitch/orch/orch_conf.json' in the log file with timestamp within the last 5 minutes"; + }else if(recentErrors.size() == 1){ + recentErrors.clear(); + return "Did not find the string ‘Error parsing orchestration file’ in the log file with timestamp within the last 5 minutes"; + }else{ + String error = recentErrors.get(0); + recentErrors.clear(); + return "Error: "+ error.substring(error.indexOf("Error parsing orchestration file:")+34); + } + } + + public void getNearestDates() throws ParseException{ + int result; + for( int i = singleLines.length-1; i >= 0 ; i--){ + if(singleLines[i].contains("Starting orchestration of file backed up to") || singleLines[i].contains("Error parsing orchestration file:")){ + result = checkDateTime(singleLines[i]); + if( result == IN_TIME) + recentErrors.add(singleLines[i]); + else if(result == NOT_IN_TIME){ + return; + } + } + } + } + + private int checkDateTime(String line){ + Date newDate; + try { + newDate = dFormat.parse(line.substring(0, 19)); + if((todaysDate.getTime() - newDate.getTime()) <= 5*minMilli){ + return IN_TIME; + }else + return NOT_IN_TIME; + } catch (ParseException e) { + e.printStackTrace(); + return NO_DATE; + } + } + + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/MergeTool.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/MergeTool.java new file mode 100644 index 000000000..0958deebb --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/MergeTool.java @@ -0,0 +1,109 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.tool; + +import java.io.IOException; +import java.io.StringWriter; +import java.util.Iterator; +import java.util.Map; + +import org.apache.commons.lang3.StringUtils; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; +import org.apache.velocity.app.VelocityEngine; +import org.apache.velocity.runtime.RuntimeConstants; +import org.apache.velocity.runtime.resource.loader.StringResourceLoader; +import org.apache.velocity.runtime.resource.util.StringResourceRepository; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + + +public class MergeTool { + + private static final EELFLogger log = EELFManager.getInstance().getLogger(MergeTool.class); + + public static String mergeMap2TemplateData(String template, Map< String, String> dataMap ){ + log.info("MergeMap2TemplateData Template :"+ template + " Maps :"+ dataMap); + StringWriter writer = new StringWriter(); + VelocityEngine ve = new VelocityEngine(); + ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "string"); + ve.addProperty("string.resource.loader.class", StringResourceLoader.class.getName()); + ve.addProperty("string.resource.loader.repository.static", "false"); + ve.init(); + + StringResourceRepository repo = (StringResourceRepository)ve.getApplicationAttribute(StringResourceLoader.REPOSITORY_NAME_DEFAULT); + repo.putStringResource("TemplateResource", template); + + Template t = ve.getTemplate("TemplateResource"); + VelocityContext context = new VelocityContext(); + Iterator> entries = dataMap.entrySet().iterator(); + while (entries.hasNext()) { + Map.Entry entry = entries.next(); + context.put(entry.getKey(), entry.getValue()); + } + t.merge(context, writer); + return writer.toString(); + } + + + public static String mergeJson2TemplateData(String template, String jsonData, String templateType, String doPrettyOutput) throws JsonParseException, JsonMappingException, IOException{ + String mergedData = template; + if( StringUtils.isNotBlank(template) && StringUtils.isNotBlank(jsonData)){ + Velocity.init(); + + ObjectMapper mapper = new ObjectMapper(); + CustomJsonNodeFactory f = new CustomJsonNodeFactory(); + mapper.setNodeFactory(f); + + JsonNode jsonObj = mapper.readValue(jsonData, JsonNode.class); + + VelocityContext context = new VelocityContext(); + Iterator ii = jsonObj.fieldNames(); + while (ii.hasNext()) { + String key = ii.next(); + context.put(key, jsonObj.get(key)); + } + + StringWriter writer = new StringWriter(); + Velocity.evaluate(context, writer, "TemplateData", template); + writer.flush(); + mergedData = writer.toString(); + + if(StringUtils.isNotBlank(templateType) && StringUtils.isNotBlank(doPrettyOutput) + && ConfigGeneratorConstant.Y.equalsIgnoreCase(doPrettyOutput) + && ( ConfigGeneratorConstant.DATA_TYPE_JSON.equalsIgnoreCase(templateType) + || ConfigGeneratorConstant.DATA_TYPE_XML.equalsIgnoreCase(templateType)) ){ + // Perform Prettying + + } + } + return mergedData; + + } + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/transform/XSLTTransformerNode.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/transform/XSLTTransformerNode.java new file mode 100644 index 000000000..682b3f2c1 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/transform/XSLTTransformerNode.java @@ -0,0 +1,96 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.transform; + +import java.io.File; +import java.io.StringReader; +import java.io.StringWriter; +import java.nio.charset.Charset; +import java.util.Map; + +import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.StringUtils; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; + +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + + +public class XSLTTransformerNode implements SvcLogicJavaPlugin { + + private static final EELFLogger log = EELFManager.getInstance().getLogger(XSLTTransformerNode.class); + + public void transformData(Map inParams, SvcLogicContext ctx) throws SvcLogicException { + log.trace("Received convertJson2DGContext call with params : " + inParams); + String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); + try { + responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix + ".") : ""; + + String templateData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA); + + if (StringUtils.isNotBlank(templateData)) { + String templateFile = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_FILE); + if (StringUtils.isNotBlank(templateFile)) { + templateData = FileUtils.readFileToString(new File(templateFile), Charset.defaultCharset()); + } + } + if (StringUtils.isBlank(templateData)) { + throw new Exception("In-param templateFile/templateData value is missing"); + } + + String requestData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_REQUEST_DATA); + if (StringUtils.isBlank(requestData)) { + throw new Exception("In-param requestData value is missing"); + } + + String transformedData = transform(requestData, templateData); + log.trace("Transformed Data : "+ transformedData); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_TRANSFORMED_DATA, transformedData); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + } catch (Exception e) { + e.printStackTrace(); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, + ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE, e.getMessage()); + log.error("Failed in XSLTTransformerNode : " + e.getMessage()); + throw new SvcLogicException(e.getMessage()); + } + } + + public String transform(String requestData, String templateData) + throws TransformerConfigurationException, TransformerException { + StringWriter xmlResultResource = new StringWriter(); + Transformer xmlTransformer = TransformerFactory.newInstance().newTransformer(new StreamSource(new StringReader(templateData))); + xmlTransformer.transform(new StreamSource(new StringReader(requestData)), new StreamResult(xmlResultResource)); + return xmlResultResource.getBuffer().toString(); + } + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/writer/FileWriterNode.java b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/writer/FileWriterNode.java new file mode 100644 index 000000000..e383476c2 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/writer/FileWriterNode.java @@ -0,0 +1,70 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.writer; + +import java.io.File; +import java.util.Map; + +import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.StringUtils; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; + + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; + +public class FileWriterNode implements SvcLogicJavaPlugin { + + private static final EELFLogger log = EELFManager.getInstance().getLogger(FileWriterNode.class); + + + + public void writeFile(Map inParams, SvcLogicContext ctx) throws SvcLogicException { + log.info("Received writeFile call with params : " + inParams); + String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); + try{ + responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; + String fileName = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_FILE_NAME); + String fileContents = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_REQUEST_DATA); + + + File file = new File(fileName); + File filePath = file.getParentFile(); + FileUtils.forceMkdir(filePath); + + FileUtils.writeStringToFile(file, fileContents, ConfigGeneratorConstant.STRING_ENCODING); + + + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + } catch (Exception e) { + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); + ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); + log.error("Failed in writeFile " + e.getMessage()); + throw new SvcLogicException(e.getMessage()); + } + } + + + +} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/ConfigGeneratorActivator.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/ConfigGeneratorActivator.java deleted file mode 100644 index f2987d2f4..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/ConfigGeneratorActivator.java +++ /dev/null @@ -1,86 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator; - -import java.util.LinkedList; -import java.util.List; - -import org.openecomp.sdnc.config.generator.convert.ConvertNode; -import org.openecomp.sdnc.config.generator.merge.MergeNode; -import org.openecomp.sdnc.config.generator.pattern.PatternNode; -import org.openecomp.sdnc.config.generator.reader.ReaderNode; -import org.openecomp.sdnc.config.generator.writer.FileWriterNode; -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceRegistration; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; - -public class ConfigGeneratorActivator implements BundleActivator{ - - private List registrations = new LinkedList(); - - - private static final EELFLogger log = EELFManager.getInstance().getLogger(ConfigGeneratorActivator.class); - - @Override - public void start(BundleContext ctx) throws Exception - { - - ConvertNode convertNode = new ConvertNode(); - log.info("Registering service "+ convertNode.getClass().getName()); - registrations.add(ctx.registerService(convertNode.getClass().getName(), convertNode, null)); - log.info("Registering service sccessful for "+ convertNode.getClass().getName()); - - MergeNode mergeNode = new MergeNode(); - log.info("Registering service "+ mergeNode.getClass().getName()); - registrations.add(ctx.registerService(mergeNode.getClass().getName(), mergeNode, null)); - log.info("Registering service sccessful for "+ mergeNode.getClass().getName()); - - PatternNode patternNode = new PatternNode(); - log.info("Registering service "+ patternNode.getClass().getName()); - registrations.add(ctx.registerService(patternNode.getClass().getName(), patternNode, null)); - log.info("Registering service sccessful for "+ patternNode.getClass().getName()); - - ReaderNode readerNode = new ReaderNode(); - log.info("Registering service "+ readerNode.getClass().getName()); - registrations.add(ctx.registerService(readerNode.getClass().getName(), readerNode, null)); - log.info("Registering service sccessful for "+ readerNode.getClass().getName()); - - FileWriterNode writerNode = new FileWriterNode(); - log.info("Registering service "+ writerNode.getClass().getName()); - registrations.add(ctx.registerService(writerNode.getClass().getName(), writerNode, null)); - log.info("Registering service sccessful for "+ writerNode.getClass().getName()); - - } - @Override - public void stop(BundleContext arg0) throws Exception - { - for (ServiceRegistration registration: registrations) - { - registration.unregister(); - registration = null; - } - - } - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/ConfigGeneratorConstant.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/ConfigGeneratorConstant.java deleted file mode 100644 index cdfc34229..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/ConfigGeneratorConstant.java +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator; - -public class ConfigGeneratorConstant { - - - public static String STRING_ENCODING = "utf-8"; - public static String Y = "Y"; - public static String N = "N"; - public static String DATA_TYPE_TEXT = "TEXT"; - public static String DATA_TYPE_JSON = "JSON"; - public static String DATA_TYPE_XML = "XML"; - public static String DATA_TYPE_SQL = "SQL"; - - public static String INPUT_PARAM_JSON_DATA = "jsonData"; - public static String INPUT_PARAM_IS_ESCAPED = "isEscaped"; - public static String INPUT_PARAM_BLOCK_KEYS = "blockKeys"; - public static String INPUT_PARAM_LOG_DATA = "logData"; - public static String INPUT_PARAM_CHECK_DATA = "checkData"; - public static String INPUT_PARAM_ESCAPE_DATA = "escapeData"; - public static String INPUT_PARAM_UNESCAPE_DATA = "unEscapeData"; - public static String INPUT_PARAM_DATA_TYPE = "dataType"; - public static String INPUT_PARAM_FILE_NAME = "fileName"; - - public static String INPUT_PARAM_TEMPLATE_DATA = "templateData"; - public static String INPUT_PARAM_TEMPLATE_FILE = "templateFile"; - public static String INPUT_PARAM_TEMPLATE_TYPE = "templateType"; - public static String INPUT_PARAM_DO_PRETTY_OUTPUT = "doPrettyOutput"; - public static String INPUT_PARAM_REQUEST_DATA = "requestData"; - public static String INPUT_PARAM_RESPONSE_PRIFIX = "responsePrefix"; - - - public static String OUTPUT_PARAM_MERGED_DATA = "mergedData"; - public static String OUTPUT_PARAM_TRANSFORMED_DATA = "transformedData"; - public static String OUTPUT_PARAM_FILE_DATA = "fileData"; - public static String OUTPUT_PARAM_PARSED_ERROR = "parsedError"; - public static String OUTPUT_PARAM_DATA_TYPE = "dataType"; - public static String OUTPUT_PARAM_STATUS = "status"; - public static String OUTPUT_PARAM_ERROR_MESSAGE = "error-message"; - public static String OUTPUT_PARAM_ESCAPE_DATA = "escapeData"; - public static String OUTPUT_PARAM_UNESCAPE_DATA = "unEscapeData"; - - public static String OUTPUT_STATUS_SUCCESS = "success"; - public static String OUTPUT_STATUS_FAILURE = "failure"; - - public static final Object INPUT_PARAM_CONTEXT_KEY = "contextKey"; - public static final Object INPUT_PARAM_JSON_CONTENT = "jsonContent"; - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/convert/ConvertNode.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/convert/ConvertNode.java deleted file mode 100644 index f6a9043b1..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/convert/ConvertNode.java +++ /dev/null @@ -1,189 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.convert; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang3.StringUtils; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; -import org.openecomp.sdnc.config.generator.tool.EscapeUtils; -import org.openecomp.sdnc.config.generator.tool.JSONTool; -import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; - -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; - -public class ConvertNode implements SvcLogicJavaPlugin { - - private static final EELFLogger log = EELFManager.getInstance().getLogger(ConvertNode.class); - - public void convertJson2DGContext( Map inParams, SvcLogicContext ctx) throws SvcLogicException { - log.trace("Received convertJson2DGContext call with params : " + inParams); - String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); - try { - String jsonData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA); - String isEscaped = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_IS_ESCAPED); - String blockKey = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_BLOCK_KEYS); - responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; - - if(StringUtils.isNotBlank(jsonData)){ - if(StringUtils.isNotBlank(isEscaped) && isEscaped.equalsIgnoreCase("Y")){ - jsonData = StringEscapeUtils.unescapeJavaScript(jsonData); - } - - List blockKeys = new ArrayList(); - if(blockKey != null){ - blockKeys = Arrays.asList(blockKey.split(",")); - } - - Map dgContext = JSONTool.convertToProperties(jsonData, blockKeys); - log.trace("DG Context Populated:"+dgContext); - - for (Map.Entry entry : dgContext.entrySet()) { - if(entry != null && entry.getKey() != null){ - ctx.setAttribute(entry.getKey(), entry.getValue()); - } - } - } - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - - } catch (Exception e) { - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); - log.error("Failed in JSON to DGContext Conversion" + e.getMessage()); - throw new SvcLogicException(e.getMessage()); - } - } - - - public void escapeData( Map inParams, SvcLogicContext ctx) throws SvcLogicException { - log.trace("Received escapeData call with params : " + inParams); - String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); - try { - responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; - String unEscapeData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_UNESCAPE_DATA); - String dataType = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE); - - if(StringUtils.isBlank(unEscapeData)){ - throw new Exception("Unescape ("+ConfigGeneratorConstant.INPUT_PARAM_UNESCAPE_DATA +") param is missing for escapeData conversion." + unEscapeData); - } - - if(StringUtils.isBlank(dataType)){ - throw new Exception(" Datatype ("+ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE+")param is missing for escapeData conversion."); - } - - String escapedData = null; - if(ConfigGeneratorConstant.DATA_TYPE_JSON.equalsIgnoreCase(dataType)){ - escapedData = StringEscapeUtils.escapeJavaScript(unEscapeData); - }else if(ConfigGeneratorConstant.DATA_TYPE_XML.equalsIgnoreCase(dataType)){ - escapedData = StringEscapeUtils.escapeXml(unEscapeData); - }else if(ConfigGeneratorConstant.DATA_TYPE_SQL.equalsIgnoreCase(dataType)){ - escapedData = EscapeUtils.escapeSql(unEscapeData); - }else{ - throw new Exception(" Datatype ("+ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE+") param value ("+dataType+")is not supported for escapeData conversion."); - } - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ESCAPE_DATA, escapedData); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - log.trace("Data escapeData Successfully :" + ctx.getAttributeKeySet()); - } catch (Exception e) { - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); - log.error("Failed in escapeData Conversion" + e.getMessage()); - throw new SvcLogicException(e.getMessage()); - } - } - - public void unEscapeData( Map inParams, SvcLogicContext ctx) throws SvcLogicException { - log.trace("Received unEscapeData call with params : " + inParams); - String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); - try { - responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; - String escapeData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_ESCAPE_DATA); - String dataType = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE); - - if(StringUtils.isBlank(escapeData)){ - throw new Exception("Escape ("+ConfigGeneratorConstant.INPUT_PARAM_ESCAPE_DATA +") param is missing for escapeData conversion."); - } - - if(StringUtils.isBlank(dataType)){ - throw new Exception(" Datatype ("+ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE+")param is missing for escapeData conversion."); - } - - String unEscapedData = null; - if(ConfigGeneratorConstant.DATA_TYPE_JSON.equalsIgnoreCase(dataType)){ - unEscapedData = StringEscapeUtils.unescapeJavaScript(escapeData); - }else if(ConfigGeneratorConstant.DATA_TYPE_XML.equalsIgnoreCase(dataType)){ - unEscapedData = StringEscapeUtils.unescapeXml(escapeData); - }else{ - throw new Exception(" Datatype ("+ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE+") param value ("+dataType+")is not supported for unEscapeData conversion."); - } - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_UNESCAPE_DATA, unEscapedData); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - log.trace("Converted unEscapeData Successfully :" + ctx.getAttributeKeySet()); - } catch (Exception e) { - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); - log.error("Failed in unEscapeData Conversion" + e.getMessage()); - throw new SvcLogicException(e.getMessage()); - } - } - - - public void convertContextToJson(Map inParams, SvcLogicContext ctx) throws SvcLogicException{ - log.trace("Received convertContextToJson call with params : " + inParams); - String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); - String contextKey = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_CONTEXT_KEY); - try { - responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; - - ObjectMapper mapper = new ObjectMapper(); - ObjectNode objectNode = mapper.createObjectNode(); - - Set keys = ctx.getAttributeKeySet(); - for (String key : keys) { - if(key.startsWith(contextKey +".")){ - String objkey= key.replaceFirst(contextKey + ".", ""); - objectNode.put(objkey, ctx.getAttribute(key)); - - } - } - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.INPUT_PARAM_JSON_CONTENT, objectNode.toString()); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - log.trace("convertContextToJson Successful" ); - } catch (Exception e) { - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); - log.error("Failed in convertContextToJson" + e.getMessage()); - throw new SvcLogicException(e.getMessage()); - } - } - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/merge/MergeNode.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/merge/MergeNode.java deleted file mode 100644 index 3369f7588..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/merge/MergeNode.java +++ /dev/null @@ -1,132 +0,0 @@ - -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); -i * 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.openecomp.sdnc.config.generator.merge; - -import java.nio.charset.Charset; -import java.util.Map; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; -import org.openecomp.sdnc.config.generator.tool.JSONTool; -import org.openecomp.sdnc.config.generator.tool.MergeTool; -import org.openecomp.sdnc.config.generator.tool.EscapeUtils; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; - -public class MergeNode implements SvcLogicJavaPlugin { - - private static final EELFLogger log = EELFManager.getInstance().getLogger(MergeNode.class); - - public void mergeDataOnTemplate(Map inParams, SvcLogicContext ctx) throws SvcLogicException { - - } - - public void mergeJsonDataOnTemplate(Map inParams, SvcLogicContext ctx) throws SvcLogicException { - log.info("Received mergeJsonDataOnTemplate call with params : " + inParams); - String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); - try{ - responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; - String jsonData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA); - if(StringUtils.isBlank(jsonData)){ - throw new Exception("JSON Data is missing"); - } - - String templateData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA); - String templateFile = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_FILE); - - if(StringUtils.isBlank(templateData) && StringUtils.isBlank(templateFile)){ - throw new Exception("Template data or Template file is missing"); - } - if(StringUtils.isBlank(templateData)){ - String path = MergeNode.class.getClassLoader().getResource(".").toString(); - templateData = IOUtils.toString(MergeNode.class.getClassLoader().getResourceAsStream(templateFile)); - } - - String templateType = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_TYPE); - - Map dataMap = JSONTool.convertToProperties(jsonData); - log.info("Data Maps created :" + dataMap); - if(dataMap != null){ - String mergedData = MergeTool.mergeMap2TemplateData(templateData, dataMap); - if(mergedData != null){ - // ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_MERGED_DATA,mergedData); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_MERGED_DATA,EscapeUtils.unescapeSql(mergedData)); - - } - } - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - log.info("Data Merge Successful :" + ctx); - } catch (Exception e) { - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); - log.error("Failed in merging data to template " + e.getMessage()); - throw new SvcLogicException(e.getMessage()); - } - } - - public void mergeComplexJsonDataOnTemplate(Map inParams, SvcLogicContext ctx) throws SvcLogicException { - //log.info("Received mergeJsonComplexDataOnTemplate call with params : " + inParams); - String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); - try{ - responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; - String jsonData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA); - if(StringUtils.isBlank(jsonData)){ - throw new Exception("JSON Data is missing"); - } - - String templateData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA); - String templateFile = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_FILE); - - if(StringUtils.isBlank(templateData) && StringUtils.isBlank(templateFile)){ - throw new Exception("Template data or Template file is missing"); - } - if(StringUtils.isBlank(templateData)){ - //String path = MergeNode.class.getClassLoader().getResource(".").toString(); - templateData = IOUtils.toString(MergeNode.class.getClassLoader().getResourceAsStream(templateFile), Charset.defaultCharset()); - } - - String templateType = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_TYPE); - String doPrettyOutput = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_DO_PRETTY_OUTPUT); - - String mergedData = MergeTool.mergeJson2TemplateData(templateData, jsonData, templateType, doPrettyOutput); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_MERGED_DATA,mergedData); - - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - //log.info("Data Merge Successful :" + ctx); - } catch (Exception e) { - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); - log.error("Failed in merging data to template " + e.getMessage()); - throw new SvcLogicException(e.getMessage()); - } - } - - public void mergeYamlDataOnTemplate(Map inParams, SvcLogicContext ctx) throws SvcLogicException { - - } - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/pattern/PatternNode.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/pattern/PatternNode.java deleted file mode 100644 index 67a5d2cc7..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/pattern/PatternNode.java +++ /dev/null @@ -1,81 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.pattern; - -import java.util.Map; - -import org.apache.commons.lang3.StringUtils; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; -import org.openecomp.sdnc.config.generator.tool.CheckDataTool; -import org.openecomp.sdnc.config.generator.tool.LogParserTool; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; - -public class PatternNode implements SvcLogicJavaPlugin { - - private static final EELFLogger log = EELFManager.getInstance().getLogger(PatternNode.class); - - public void parseErrorLog(Map inParams, SvcLogicContext ctx) throws SvcLogicException { - log.info("Received parseErroLog call with params : " + inParams); - String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); - try{ - responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; - String logData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_LOG_DATA); - if(StringUtils.isBlank(logData)){ - throw new Exception("Log Data is missing"); - } - LogParserTool logParserTool = new LogParserTool(); - String parsedError = logParserTool.parseErrorLog(logData); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_PARSED_ERROR, parsedError); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - } catch (Exception e) { - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); - log.error("Failed in parsing error log " + e.getMessage()); - throw new SvcLogicException(e.getMessage()); - } - } - - public void checkDataType(Map inParams, SvcLogicContext ctx) throws SvcLogicException { - log.info("Received checkDataType call with params : " + inParams); - String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); - try{ - responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; - String checkData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_CHECK_DATA); - if(StringUtils.isBlank(checkData)){ - throw new Exception("Check Data is missing"); - } - String dataType = CheckDataTool.checkData(checkData); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_DATA_TYPE, dataType); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - } catch (Exception e) { - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); - log.error("Failed in checkDataType " + e.getMessage()); - throw new SvcLogicException(e.getMessage()); - } - } - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/reader/ReaderNode.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/reader/ReaderNode.java deleted file mode 100644 index 379b7c769..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/reader/ReaderNode.java +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.reader; - -import java.io.File; -import java.util.Map; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang3.StringUtils; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; -import org.openecomp.sdnc.config.generator.merge.MergeNode; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; - -public class ReaderNode implements SvcLogicJavaPlugin { - - private static final EELFLogger log = EELFManager.getInstance().getLogger(MergeNode.class); - - - public void getFileData(Map inParams, SvcLogicContext ctx) throws SvcLogicException { - log.info("Received getFileData call with params : " + inParams); - String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); - try{ - responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; - String fileName = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_FILE_NAME); - - String fileData = FileUtils.readFileToString(new File(fileName), ConfigGeneratorConstant.STRING_ENCODING); - - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_FILE_DATA,fileData); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - } catch (Exception e) { - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); - log.error("Failed in merging data to template " + e.getMessage()); - throw new SvcLogicException(e.getMessage()); - } - } - - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/CheckDataTool.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/CheckDataTool.java deleted file mode 100644 index 316e821df..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/CheckDataTool.java +++ /dev/null @@ -1,84 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.tool; - -import java.io.StringReader; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.codehaus.jettison.json.JSONArray; -import org.codehaus.jettison.json.JSONException; -import org.codehaus.jettison.json.JSONObject; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; -import org.w3c.dom.Document; -import org.xml.sax.InputSource; - -public class CheckDataTool { - - public static String checkData(String data){ - boolean isJSON = isJSON(data); - if(isJSON){ - return ConfigGeneratorConstant.DATA_TYPE_JSON; - } - - boolean isXML = isXML(data); - if(isXML){ - return ConfigGeneratorConstant.DATA_TYPE_XML; - } - - return ConfigGeneratorConstant.DATA_TYPE_TEXT; - } - - public static boolean isJSON(String data) { - try { - new JSONObject(data); - } catch (JSONException ex) { - try { - new JSONArray(data); - } catch (JSONException ex1) { - return false; - } - } - return true; - - // try { - // final ObjectMapper mapper = new ObjectMapper(); - // mapper.readTree(data); - // return true; - // } catch (IOException e) { - // return false; - // } - } - - public static boolean isXML(String data) { - try { - DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); - Document doc = dBuilder.parse(new InputSource(new StringReader(data))); - return true; - } catch (Exception ex) { - return false; - } - - } - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/Constants.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/Constants.java deleted file mode 100644 index d8af571e8..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/Constants.java +++ /dev/null @@ -1,32 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.tool; - -public class Constants -{ - - public static final String DBLIB_SERVICE = "org.openecomp.sdnc.sli.resource.dblib.DBResourceManager"; - public static final String DEVICE_AUTHENTICATION="DEVICE_AUTHENTICATION"; - public static final String SCHEMA_SDNCTL="SDNCTL"; - - public static final String APPC_CONFIG_DIR="/opt/app/bvc/properties"; - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/CustomJsonNodeFactory.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/CustomJsonNodeFactory.java deleted file mode 100644 index 5820cea7a..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/CustomJsonNodeFactory.java +++ /dev/null @@ -1,32 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.tool; - -import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import com.fasterxml.jackson.databind.node.TextNode; - -public class CustomJsonNodeFactory extends JsonNodeFactory { - - public TextNode textNode(String text) { - return new CustomTextNode(text); - } - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/CustomTextNode.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/CustomTextNode.java deleted file mode 100644 index 93e252a6d..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/CustomTextNode.java +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.tool; - - -import com.fasterxml.jackson.core.io.CharTypes; -import com.fasterxml.jackson.databind.node.TextNode; - -public class CustomTextNode extends TextNode{ - - public CustomTextNode(String v) { - super(v); - } - - @Override - public String toString() - { - int len = textValue().length(); - len = len + 2 + (len >> 4); - StringBuilder sb = new StringBuilder(len); - appendQuoted(sb, textValue()); - return sb.toString(); - } - - protected static void appendQuoted(StringBuilder sb, String content) - { - // sb.append('"'); - CharTypes.appendQuoted(sb, content); - // sb.append('"'); - } - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/DbServiceUtil.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/DbServiceUtil.java deleted file mode 100644 index c8340816e..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/DbServiceUtil.java +++ /dev/null @@ -1,75 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.tool; - -import java.io.File; -import java.net.URL; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Properties; - -import javax.sql.rowset.CachedRowSet; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import org.onap.ccsdk.sli.core.dblib.DBResourceManager; -import org.onap.ccsdk.sli.core.dblib.DbLibService; - -public class DbServiceUtil -{ - private static final Logger log = LoggerFactory - .getLogger(DbServiceUtil.class); - - private static Properties props; - private static DBResourceManager jdbcDataSource = null; - - - public static boolean updateDB(String tableName, ArrayList inputArgs, String scema, String whereClause, String setCluase) throws SQLException - { - String updatePasswordString = "update " + tableName + " set " + setCluase + " where " + whereClause ; - boolean result = jdbcDataSource.writeData(updatePasswordString, inputArgs,Constants.SCHEMA_SDNCTL); - return result; - } - - - public static CachedRowSet getData(String tableName, ArrayList argList, String schema, String getselectData, String getDataClasue ) throws SQLException - { - String selectQuery = "select " + getselectData + "from " + tableName + " where " + getDataClasue ; - CachedRowSet data = jdbcDataSource.getData(selectQuery, argList, schema); - return data; - } - - - public static DBResourceManager initDbLibService() throws Exception - { - props = new Properties(); - File file = new File("/opt/app/bvc/properties/dblib.properties"); - URL propURL = file.toURI().toURL(); - props.load(propURL.openStream()); - jdbcDataSource = new DBResourceManager(props); - return jdbcDataSource; - - } - - - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/EscapeUtils.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/EscapeUtils.java deleted file mode 100644 index 36afe76ae..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/EscapeUtils.java +++ /dev/null @@ -1,102 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.tool; - -import org.apache.commons.lang3.StringUtils; - -public class EscapeUtils { - - public EscapeUtils() { - // TODO Auto-generated constructor stub - } - - public static String escapeSql(String str) { - if (str == null) { - return null; - } - String searchList[] = new String[]{"'","\\"}; - String replacementList[] = new String[]{ "''","\\\\"}; - return StringUtils.replaceEach(str,searchList, replacementList); - } - - public static String unescapeSql(String str) { - if (str == null) { - return null; - } - - String searchList[] = new String[] {"''"}; - String replacementList[] = new String[] {"'"}; - return StringUtils.replaceEach(str, searchList, replacementList); - } - - - // For Generic Purpose - public static String escapeSQL(String s) { - if (s == null) { - return null; - } - - int length = s.length(); - int newLength = length; - for (int i = 0; i < length; i++) { - char c = s.charAt(i); - switch (c) { - case '\\': - case '\"': - case '\'': - case '\0': { - newLength += 1; - } - break; - } - } - if (length == newLength) { - // nothing to escape in the string - return s; - } - StringBuffer sb = new StringBuffer(newLength); - for (int i = 0; i < length; i++) { - char c = s.charAt(i); - switch (c) { - case '\\': { - sb.append("\\\\"); - } - break; - case '\"': { - sb.append("\\\""); - } - break; - case '\'': { - sb.append("\\\'"); - } - break; - case '\0': { - sb.append("\\0"); - } - break; - default: { - sb.append(c); - } - } - } - return sb.toString(); - } -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/JSONTool.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/JSONTool.java deleted file mode 100644 index 63fd7006e..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/JSONTool.java +++ /dev/null @@ -1,157 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.tool; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.codehaus.jettison.json.JSONArray; -import org.codehaus.jettison.json.JSONException; -import org.codehaus.jettison.json.JSONObject; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; - - - -public class JSONTool { - - private static final EELFLogger log = EELFManager.getInstance().getLogger(JSONTool.class); - - public static Map convertToProperties(String s) throws JSONException { - return convertToProperties(s, null); - } - - public static Map convertToProperties(String s,List blockKeys) throws JSONException { - JSONObject json = new JSONObject(s); - Map mm = new HashMap(); - - Map wm = new HashMap(); - Iterator ii = json.keys(); - while (ii.hasNext()) { - String key1 = ii.next(); - wm.put(key1, json.get(key1)); - - - } - - while (!wm.isEmpty()) - for (String key : new ArrayList<>(wm.keySet())) { - Object o = wm.get(key); - wm.remove(key); - - - if(blockKeys != null && blockKeys.contains(key) && o != null){ - //log.info("Adding JSON Block Keys : " + key + "=" + o.toString()); - mm.put("block_" +key,o.toString()); - } - - if (o instanceof Boolean || o instanceof Number || o instanceof String) { - mm.put(key, o.toString()); - //log.info("Added property: " + key + ": " + o.toString()); - } - - else if (o instanceof JSONObject) { - JSONObject jo = (JSONObject) o; - Iterator i = jo.keys(); - while (i.hasNext()) { - String key1 = i.next(); - wm.put(key + "." + key1, jo.get(key1)); - } - } - - else if (o instanceof JSONArray) { - JSONArray ja = (JSONArray) o; - mm.put("size_"+key, String.valueOf(ja.length())); - - //log.info("Added property: " + key + "_length" + ": " + String.valueOf(ja.length())); - - for (int i = 0; i < ja.length(); i++) - wm.put(key + '[' + i + ']', ja.get(i)); - } - } - - return mm; - } - - /* - public static Map convertToProperties1(String s,List blockKeys) throws Exception { - ObjectMapper objectMapper = new ObjectMapper(); - - JsonNode rootNode = objectMapper.readTree(s); - - Map mm = new HashMap(); - - Map wm = new HashMap(); - Iterator ii = rootNode.fieldNames(); - while (ii.hasNext()) { - String key1 = ii.next(); - wm.put(key1, rootNode.get(key1)); - - - } - - while (!wm.isEmpty()) - for (String key : new ArrayList<>(wm.keySet())) { - Object o = wm.get(key); - wm.remove(key); - - - if(blockKeys != null && blockKeys.contains(key) && o != null){ - //log.info("Adding JSON Block Keys : " + key + "=" + o.toString()); - mm.put("block_" +key,o.toString()); - } - - if (o instanceof Boolean || o instanceof Number || o instanceof String) { - mm.put(key, o.toString()); - //log.info("Added property: " + key + ": " + o.toString()); - } - - else if (o instanceof JSONObject) { - JSONObject jo = (JSONObject) o; - Iterator i = jo.keys(); - while (i.hasNext()) { - String key1 = i.next(); - wm.put(key + "." + key1, jo.get(key1)); - } - } - - else if (o instanceof JSONArray) { - JSONArray ja = (JSONArray) o; - mm.put("size_"+key, String.valueOf(ja.length())); - - //log.info("Added property: " + key + "_length" + ": " + String.valueOf(ja.length())); - - for (int i = 0; i < ja.length(); i++) - wm.put(key + '[' + i + ']', ja.get(i)); - } - } - - return mm; - } -*/ - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/LogParserTool.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/LogParserTool.java deleted file mode 100644 index 54823bc17..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/LogParserTool.java +++ /dev/null @@ -1,94 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.tool; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; - -public class LogParserTool { - private static final EELFLogger log = EELFManager.getInstance().getLogger(JSONTool.class); - - private String[] singleLines; - private List recentErrors = new ArrayList ();; - private Date todaysDate = new Date(); - private SimpleDateFormat dFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); - private final int minMilli = 60000; - private final int IN_TIME = 0; - private final int NOT_IN_TIME = 1; - private final int NO_DATE = 2; - - public String parseErrorLog(String data){ - singleLines = data.split("\\r?\\n"); - try { - getNearestDates(); - - } catch (Exception e) { - e.printStackTrace(); - } - if(recentErrors.size() == 0){ - recentErrors.clear(); - return "Did not find the string 'Starting orchestration of file backed up to /var/opt/MetaSwitch/orch/orch_conf.json' in the log file with timestamp within the last 5 minutes"; - }else if(recentErrors.size() == 1){ - recentErrors.clear(); - return "Did not find the string ‘Error parsing orchestration file’ in the log file with timestamp within the last 5 minutes"; - }else{ - String error = recentErrors.get(0); - recentErrors.clear(); - return "Error: "+ error.substring(error.indexOf("Error parsing orchestration file:")+34); - } - } - - public void getNearestDates() throws ParseException{ - int result; - for( int i = singleLines.length-1; i >= 0 ; i--){ - if(singleLines[i].contains("Starting orchestration of file backed up to") || singleLines[i].contains("Error parsing orchestration file:")){ - result = checkDateTime(singleLines[i]); - if( result == IN_TIME) - recentErrors.add(singleLines[i]); - else if(result == NOT_IN_TIME){ - return; - } - } - } - } - - private int checkDateTime(String line){ - Date newDate; - try { - newDate = dFormat.parse(line.substring(0, 19)); - if((todaysDate.getTime() - newDate.getTime()) <= 5*minMilli){ - return IN_TIME; - }else - return NOT_IN_TIME; - } catch (ParseException e) { - e.printStackTrace(); - return NO_DATE; - } - } - - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/MergeTool.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/MergeTool.java deleted file mode 100644 index 0958deebb..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/tool/MergeTool.java +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.tool; - -import java.io.IOException; -import java.io.StringWriter; -import java.util.Iterator; -import java.util.Map; - -import org.apache.commons.lang3.StringUtils; -import org.apache.velocity.Template; -import org.apache.velocity.VelocityContext; -import org.apache.velocity.app.Velocity; -import org.apache.velocity.app.VelocityEngine; -import org.apache.velocity.runtime.RuntimeConstants; -import org.apache.velocity.runtime.resource.loader.StringResourceLoader; -import org.apache.velocity.runtime.resource.util.StringResourceRepository; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; - - -public class MergeTool { - - private static final EELFLogger log = EELFManager.getInstance().getLogger(MergeTool.class); - - public static String mergeMap2TemplateData(String template, Map< String, String> dataMap ){ - log.info("MergeMap2TemplateData Template :"+ template + " Maps :"+ dataMap); - StringWriter writer = new StringWriter(); - VelocityEngine ve = new VelocityEngine(); - ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "string"); - ve.addProperty("string.resource.loader.class", StringResourceLoader.class.getName()); - ve.addProperty("string.resource.loader.repository.static", "false"); - ve.init(); - - StringResourceRepository repo = (StringResourceRepository)ve.getApplicationAttribute(StringResourceLoader.REPOSITORY_NAME_DEFAULT); - repo.putStringResource("TemplateResource", template); - - Template t = ve.getTemplate("TemplateResource"); - VelocityContext context = new VelocityContext(); - Iterator> entries = dataMap.entrySet().iterator(); - while (entries.hasNext()) { - Map.Entry entry = entries.next(); - context.put(entry.getKey(), entry.getValue()); - } - t.merge(context, writer); - return writer.toString(); - } - - - public static String mergeJson2TemplateData(String template, String jsonData, String templateType, String doPrettyOutput) throws JsonParseException, JsonMappingException, IOException{ - String mergedData = template; - if( StringUtils.isNotBlank(template) && StringUtils.isNotBlank(jsonData)){ - Velocity.init(); - - ObjectMapper mapper = new ObjectMapper(); - CustomJsonNodeFactory f = new CustomJsonNodeFactory(); - mapper.setNodeFactory(f); - - JsonNode jsonObj = mapper.readValue(jsonData, JsonNode.class); - - VelocityContext context = new VelocityContext(); - Iterator ii = jsonObj.fieldNames(); - while (ii.hasNext()) { - String key = ii.next(); - context.put(key, jsonObj.get(key)); - } - - StringWriter writer = new StringWriter(); - Velocity.evaluate(context, writer, "TemplateData", template); - writer.flush(); - mergedData = writer.toString(); - - if(StringUtils.isNotBlank(templateType) && StringUtils.isNotBlank(doPrettyOutput) - && ConfigGeneratorConstant.Y.equalsIgnoreCase(doPrettyOutput) - && ( ConfigGeneratorConstant.DATA_TYPE_JSON.equalsIgnoreCase(templateType) - || ConfigGeneratorConstant.DATA_TYPE_XML.equalsIgnoreCase(templateType)) ){ - // Perform Prettying - - } - } - return mergedData; - - } - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/transform/XSLTTransformerNode.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/transform/XSLTTransformerNode.java deleted file mode 100644 index 682b3f2c1..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/transform/XSLTTransformerNode.java +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.transform; - -import java.io.File; -import java.io.StringReader; -import java.io.StringWriter; -import java.nio.charset.Charset; -import java.util.Map; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang3.StringUtils; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; - -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.stream.StreamResult; -import javax.xml.transform.stream.StreamSource; - - -public class XSLTTransformerNode implements SvcLogicJavaPlugin { - - private static final EELFLogger log = EELFManager.getInstance().getLogger(XSLTTransformerNode.class); - - public void transformData(Map inParams, SvcLogicContext ctx) throws SvcLogicException { - log.trace("Received convertJson2DGContext call with params : " + inParams); - String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); - try { - responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix + ".") : ""; - - String templateData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA); - - if (StringUtils.isNotBlank(templateData)) { - String templateFile = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_FILE); - if (StringUtils.isNotBlank(templateFile)) { - templateData = FileUtils.readFileToString(new File(templateFile), Charset.defaultCharset()); - } - } - if (StringUtils.isBlank(templateData)) { - throw new Exception("In-param templateFile/templateData value is missing"); - } - - String requestData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_REQUEST_DATA); - if (StringUtils.isBlank(requestData)) { - throw new Exception("In-param requestData value is missing"); - } - - String transformedData = transform(requestData, templateData); - log.trace("Transformed Data : "+ transformedData); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_TRANSFORMED_DATA, transformedData); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - } catch (Exception e) { - e.printStackTrace(); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, - ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE, e.getMessage()); - log.error("Failed in XSLTTransformerNode : " + e.getMessage()); - throw new SvcLogicException(e.getMessage()); - } - } - - public String transform(String requestData, String templateData) - throws TransformerConfigurationException, TransformerException { - StringWriter xmlResultResource = new StringWriter(); - Transformer xmlTransformer = TransformerFactory.newInstance().newTransformer(new StreamSource(new StringReader(templateData))); - xmlTransformer.transform(new StreamSource(new StringReader(requestData)), new StreamResult(xmlResultResource)); - return xmlResultResource.getBuffer().toString(); - } - -} diff --git a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/writer/FileWriterNode.java b/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/writer/FileWriterNode.java deleted file mode 100644 index e383476c2..000000000 --- a/appc-config/appc-config-generator/provider/src/main/java/org/openecomp/sdnc/config/generator/writer/FileWriterNode.java +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.writer; - -import java.io.File; -import java.util.Map; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang3.StringUtils; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; - - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; - -public class FileWriterNode implements SvcLogicJavaPlugin { - - private static final EELFLogger log = EELFManager.getInstance().getLogger(FileWriterNode.class); - - - - public void writeFile(Map inParams, SvcLogicContext ctx) throws SvcLogicException { - log.info("Received writeFile call with params : " + inParams); - String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX); - try{ - responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; - String fileName = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_FILE_NAME); - String fileContents = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_REQUEST_DATA); - - - File file = new File(fileName); - File filePath = file.getParentFile(); - FileUtils.forceMkdir(filePath); - - FileUtils.writeStringToFile(file, fileContents, ConfigGeneratorConstant.STRING_ENCODING); - - - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - } catch (Exception e) { - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS, ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE); - ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,e.getMessage()); - log.error("Failed in writeFile " + e.getMessage()); - throw new SvcLogicException(e.getMessage()); - } - } - - - -} diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/convert/TestConvertNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/convert/TestConvertNode.java new file mode 100644 index 000000000..0bfb80cf1 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/convert/TestConvertNode.java @@ -0,0 +1,146 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.convert; + +import static org.junit.Assert.assertEquals; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import org.apache.commons.io.IOUtils; +import org.junit.Test; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; +import org.openecomp.sdnc.config.generator.merge.TestMergeNode; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.powermock.reflect.Whitebox; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + +public class TestConvertNode { + + private static final EELFLogger log = EELFManager.getInstance().getLogger(TestConvertNode.class); + @Test(expected = Exception.class) + public void testPayloadParametersConfig() throws Exception { + SvcLogicContext ctx = new SvcLogicContext(); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_IS_ESCAPED, "N"); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_BLOCK_KEYS, + "configuration-parameters,configuration.configuration-json,configuration.configuration-string"); + convertJson2Context("convert/payload_parameters_config.json", inParams, ctx); + Whitebox.invokeMethod("convertJson2Context", "convert/payload_parameters_config.json", inParams, ctx); + log.info("testPayloadParametersConfig Result: " + ctx.getAttribute("block_configuration-parameters")); + } + + @Test + public void testPayloadCliConfig() throws Exception { + SvcLogicContext ctx = new SvcLogicContext(); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_IS_ESCAPED, "N"); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_BLOCK_KEYS, + "configuration-parameters,configuration.configuration-json,configuration.configuration-string"); + convertJson2Context("convert/payload_cli_config.json", inParams, ctx); + log.info("testPayloadCliConfig Result: " + ctx.getAttribute("block_configuration-parameters")); + log.info("testPayloadCliConfig Result: " + ctx.getAttribute("block_configuration.configuration-string")); + } + + @Test(expected = Exception.class) + public void testPayloadXMLConfig() throws Exception { + SvcLogicContext ctx = new SvcLogicContext(); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_IS_ESCAPED, "N"); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_BLOCK_KEYS, + "configuration-parameters,configuration.configuration-json,configuration.configuration-string"); + convertJson2Context("convert/payload_xml_config.json", inParams, ctx); + log.info("testPayloadXMLConfig Result: " + ctx.getAttribute("block_configuration-parameters")); + log.info("testPayloadXMLConfig Result: " + ctx.getAttribute("block_configuration.configuration-string")); + } + + @Test(expected = Exception.class) + public void testPayloadJsonConfig() throws Exception { + SvcLogicContext ctx = new SvcLogicContext(); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_IS_ESCAPED, "N"); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_BLOCK_KEYS, + "configuration-parameters,configuration.configuration-json,configuration.configuration-string"); + convertJson2Context("convert/payload_json_config.json", inParams, ctx); + log.info("testPayloadJsonConfig Result: " + ctx.getAttribute("block_configuration-parameters")); + log.info("testPayloadJsonConfig Result: " + ctx.getAttribute("block_configuration.configuration-json")); + } + + private void convertJson2Context(String jsonFile, Map inParams, SvcLogicContext ctx) + throws IOException, SvcLogicException { + ConvertNode convertNode = new ConvertNode(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); + String jsonData = IOUtils.toString(TestMergeNode.class.getClassLoader().getResourceAsStream(jsonFile)); + log.info("TestConvertNode.testConvertJson2DGContext()" + jsonData); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA, jsonData); + convertNode.convertJson2DGContext(inParams, ctx); + assertEquals(ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), + ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + } + + @Test(expected = Exception.class) + public void testEscapeData() throws Exception { + SvcLogicContext ctx = new SvcLogicContext(); + Map inParams = new HashMap(); + String unescapeData = IOUtils + .toString(TestMergeNode.class.getClassLoader().getResourceAsStream("convert/escape/config_ssc.txt")); + log.info("TestConvertNode.testEscapeData() unescapeData :" + unescapeData); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_UNESCAPE_DATA, unescapeData); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE, ConfigGeneratorConstant.DATA_TYPE_SQL); + ConvertNode convertNode = new ConvertNode(); + convertNode.escapeData(inParams, ctx); + log.info("testEscapeData Result: " + + ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_ESCAPE_DATA)); + } + + @Test + public void testConvertContextToJson() throws Exception { + SvcLogicContext ctx = new SvcLogicContext(); + ctx.setAttribute("tmp.uploadConfigInfo.UPLOAD-CONFIG-ID", "200"); + ctx.setAttribute("tmp.uploadConfigInfo.VNF-ID", "00000"); + ctx.setAttribute("tmp.uploadConfigInfo.test[0]", "test0"); + ctx.setAttribute("tmp.uploadConfigInfo.test[1]", "test1"); + ctx.setAttribute("tmp.uploadConfigInfo.test[2]", "test2"); + ConvertNode convertNode = new ConvertNode(); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); + inParams.put("contextKey", "tmp.uploadConfigInfo"); + convertNode.convertContextToJson(inParams, ctx); + log.info("JSON CONTENT " + ctx.getAttribute("test.jsonContent")); + assertEquals(ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), + ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + + } + @Test(expected = Exception.class) + public void testunEscapeData() throws Exception { + ConvertNode convertNode = new ConvertNode(); + Map inParams = new HashMap(); + SvcLogicContext ctx = new SvcLogicContext(); + log.trace("Received unEscapeData call with params : " + inParams); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "tmp"); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_ESCAPE_DATA, "//"); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE, "String"); + convertNode.unEscapeData(inParams, ctx); + + } +} diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/merge/TestMergeNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/merge/TestMergeNode.java new file mode 100644 index 000000000..cd7bb9e9a --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/merge/TestMergeNode.java @@ -0,0 +1,103 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.merge; + +import org.apache.commons.io.IOUtils; +import org.junit.Test; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; +import org.openecomp.sdnc.config.generator.merge.MergeNode; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import static org.junit.Assert.assertEquals; +import java.util.HashMap; +import java.util.Map; + +public class TestMergeNode { + + @Test(expected = Exception.class) + public void testMergeJsonDataOnTemplate() throws Exception { + MergeNode mergeNode = new MergeNode(); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); + String jsonData = IOUtils + .toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/vdbe_data.json")); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA, jsonData); + String templateData = IOUtils + .toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/vdbe_template.xml")); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA, templateData); + SvcLogicContext ctx = new SvcLogicContext(); + mergeNode.mergeJsonDataOnTemplate(inParams, ctx); + assertEquals(ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), + ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + + } + + @Test(expected = Exception.class) + public void testMergeComplexJsonDataOnTemplate() throws Exception { + MergeNode mergeNode = new MergeNode(); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); + String jsonData = IOUtils + .toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/complex/vdbe_data.json")); + System.out.println("TestMergeNode.testMergeJsonComplexDataOnTemplate()" + jsonData); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA, jsonData); + + String templateData = IOUtils + .toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/complex/vdbe_template.xml")); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA, templateData); + SvcLogicContext ctx = new SvcLogicContext(); + mergeNode.mergeComplexJsonDataOnTemplate(inParams, ctx); + assertEquals(ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), + ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + + } + + @Test(expected = Exception.class) + public void testMergeJsonDataOnTemplateFile() throws Exception { + MergeNode mergeNode = new MergeNode(); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); + String jsonData = IOUtils + .toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/vdbe_data.json")); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA, jsonData); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_FILE, "merge/vdbe_template.xml"); + + SvcLogicContext ctx = new SvcLogicContext(); + mergeNode.mergeJsonDataOnTemplate(inParams, ctx); + assertEquals(ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), + ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + } + @Test + public void testMmergeDataOnTemplate() throws SvcLogicException { + MergeNode mergeNode = new MergeNode(); + SvcLogicContext ctx = new SvcLogicContext(); + Map inParams = new HashMap(); + mergeNode.mergeDataOnTemplate(inParams, ctx); + } + + @Test + public void mergeYamlDataOnTemplate() throws SvcLogicException { + MergeNode mergeNode = new MergeNode(); + SvcLogicContext ctx = new SvcLogicContext(); + Map inParams = new HashMap(); + mergeNode.mergeYamlDataOnTemplate(inParams, ctx); + } +} diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/pattern/TestPatternNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/pattern/TestPatternNode.java new file mode 100644 index 000000000..db3fa7149 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/pattern/TestPatternNode.java @@ -0,0 +1,81 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.pattern; + +import static org.junit.Assert.assertEquals; +import java.util.HashMap; +import java.util.Map; +import org.apache.commons.io.IOUtils; +import org.junit.Test; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; +import org.openecomp.sdnc.config.generator.pattern.PatternNode; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; + +public class TestPatternNode { + + @Test + public void parseErrorLog() throws Exception { + PatternNode patternNode = new PatternNode(); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); + String logData = IOUtils.toString(TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/errorlog.txt"),ConfigGeneratorConstant.STRING_ENCODING); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_LOG_DATA, logData); + SvcLogicContext ctx = new SvcLogicContext(); + patternNode.parseErrorLog(inParams, ctx); + assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + + } +// @Test(expected=Exception.class) + public void checkXMLData() throws Exception { + PatternNode patternNode = new PatternNode(); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); + + String xmlData = IOUtils.toString(TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/xml_data.xml"),ConfigGeneratorConstant.STRING_ENCODING); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_CHECK_DATA, xmlData); + SvcLogicContext ctx = new SvcLogicContext(); + patternNode.checkDataType(inParams, ctx); + } + + //@Test + public void checkJsonData() throws Exception { + PatternNode patternNode = new PatternNode(); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); + String xmlData = IOUtils.toString(TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/json_data.json"),ConfigGeneratorConstant.STRING_ENCODING); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_CHECK_DATA, xmlData); + SvcLogicContext ctx = new SvcLogicContext(); + patternNode.checkDataType(inParams, ctx); + assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + } + + @Test(expected=Exception.class) + public void checStringData() throws Exception { + PatternNode patternNode = new PatternNode(); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); + String stringData = IOUtils.toString(TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/text_data.txt"),ConfigGeneratorConstant.STRING_ENCODING); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_CHECK_DATA, stringData); + SvcLogicContext ctx = new SvcLogicContext(); + patternNode.checkDataType(inParams, ctx); + assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + } +} diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/reader/TestReaderNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/reader/TestReaderNode.java new file mode 100644 index 000000000..cda966b60 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/reader/TestReaderNode.java @@ -0,0 +1,49 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Copyright (C) 2017 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. + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdnc.config.generator.reader; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import org.apache.commons.io.IOUtils; +import org.junit.Test; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; +import org.openecomp.sdnc.config.generator.merge.TestMergeNode; +import org.openecomp.sdnc.config.generator.reader.ReaderNode; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; + +public class TestReaderNode { + @Test(expected = Exception.class) + public void testGetFileData() throws SvcLogicException, IOException { + ReaderNode r = new ReaderNode(); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_FILE_NAME, IOUtils + .toString(TestMergeNode.class.getClassLoader().getResourceAsStream("convert/payload_cli_config.json"))); + SvcLogicContext ctx = new SvcLogicContext(); + r.getFileData(inParams, ctx); + } +} diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/tool/TestDataTool.java b/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/tool/TestDataTool.java new file mode 100644 index 000000000..85230f472 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/tool/TestDataTool.java @@ -0,0 +1,153 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Copyright (C) 2017 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. + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdnc.config.generator.tool; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.commons.io.IOUtils; +import org.junit.Test; +import org.mockito.Mock; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; +import org.openecomp.sdnc.config.generator.pattern.TestPatternNode; +import org.openecomp.sdnc.config.generator.tool.CheckDataTool; +import org.powermock.reflect.Whitebox; + +public class TestDataTool { + @Mock + LogParserTool lp = new LogParserTool(); + + @Test + public void testCheckData() throws IOException { + String data = IOUtils.toString( + TestPatternNode.class.getClassLoader().getResourceAsStream("convert/payload_cli_config.json"), + ConfigGeneratorConstant.STRING_ENCODING); + CheckDataTool.checkData(data); + } + + @Test + public void testIsJSON() throws IOException { + String data = IOUtils.toString( + TestPatternNode.class.getClassLoader().getResourceAsStream("convert/payload_cli_config.json"), + ConfigGeneratorConstant.STRING_ENCODING); + CheckDataTool.isJSON(data); + } + + @Test + public void testIsXML() throws IOException { + String data = IOUtils.toString( + TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/xml_data.xml"), + ConfigGeneratorConstant.STRING_ENCODING); + CheckDataTool.isXML(data); + } + + @Test + public void testNode() { + CustomJsonNodeFactory c = new CustomJsonNodeFactory(); + String text = "test"; + c.textNode(text); + } + + @Test + public void testCustomText() { + CustomTextNode c = new CustomTextNode("test"); + c.toString(); + } + + @Test + public void testEscapeUtils() { + String s = "test\\"; + String st = "test\"test"; + String str = "test\'" + "test"; + String strng = "test\0"; + EscapeUtils.escapeSQL(s); + EscapeUtils.escapeSql(s); + EscapeUtils.escapeSQL(st); + EscapeUtils.escapeSQL(str); + EscapeUtils.escapeSQL(strng); + EscapeUtils.escapeSQL(null); + } + +// @Test(expected = Exception.class) + public void testgetData() throws Exception { + ArrayList argList = null; + String schema = "sdnctl"; + String tableName = "dual"; + String getselectData = "123"; + String getDataClasue = "123='123'"; + DbServiceUtil.getData(tableName, argList, schema, getselectData, getDataClasue); + } + +// @Test(expected = Exception.class) + public void testupdateDB() throws Exception { + String setCluase = null; + String schema = "sdnctl"; + String tableName = "dual"; + ArrayList inputArgs = null; + String whereClause = "123='123'"; + DbServiceUtil.updateDB(tableName, inputArgs, schema, whereClause, setCluase); + } + +// @Test(expected = Exception.class) + public void testinitDbLibService() throws Exception { + DbServiceUtil.initDbLibService(); + } + + @Test + public void testJSONTool() throws Exception { + String data = IOUtils.toString( + TestPatternNode.class.getClassLoader().getResourceAsStream("convert/payload_cli_config.json"), + ConfigGeneratorConstant.STRING_ENCODING); + JSONTool.convertToProperties(data); + List blockKeys = new ArrayList(); + blockKeys.add("vnf-type"); + blockKeys.add("request-parameters"); + JSONTool.convertToProperties(data, blockKeys); + } + + @Test + public void testLogParserTool() throws Exception { + String data = IOUtils.toString( + TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/errorlog.txt"), + ConfigGeneratorConstant.STRING_ENCODING); + LogParserTool lpt = new LogParserTool(); + lpt.parseErrorLog(data); + } + + @Test + public void testMergeTool() throws Exception { + String template = "test"; + Map dataMap = new HashMap(); + MergeTool.mergeMap2TemplateData(template, dataMap); + } + + @Test + public void testcheckDateTime() throws Exception { + String line = "2017-08-20T17:40:23.100361+00:00"; + Whitebox.invokeMethod(lp, "checkDateTime", line); + } +} diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/transform/TestXSLTTransformerNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/transform/TestXSLTTransformerNode.java new file mode 100644 index 000000000..e2e808192 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/transform/TestXSLTTransformerNode.java @@ -0,0 +1,56 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.transform; + +import java.nio.charset.Charset; +import java.util.HashMap; +import java.util.Map; +import org.apache.commons.io.IOUtils; +import org.junit.Test; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; +import org.openecomp.sdnc.config.generator.merge.TestMergeNode; +import org.openecomp.sdnc.config.generator.transform.XSLTTransformerNode; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; + +public class TestXSLTTransformerNode { + + private static final EELFLogger log = EELFManager.getInstance().getLogger(TestXSLTTransformerNode.class); + + @Test + public void transformData() throws Exception { + SvcLogicContext ctx = new SvcLogicContext(); + String templateData = IOUtils.toString( + TestMergeNode.class.getClassLoader().getResourceAsStream("transform/template.xsl"), + Charset.defaultCharset()); + String requestData = IOUtils.toString( + TestMergeNode.class.getClassLoader().getResourceAsStream("transform/request.xml"), + Charset.defaultCharset()); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA, templateData); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_REQUEST_DATA, requestData); + XSLTTransformerNode transformerNode = new XSLTTransformerNode(); + transformerNode.transformData(inParams, ctx); + log.info("transformData Result: " + ctx.getAttribute(ConfigGeneratorConstant.OUTPUT_PARAM_TRANSFORMED_DATA)); + + } +} diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/writer/TestFileWriterNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/writer/TestFileWriterNode.java new file mode 100644 index 000000000..74c17bdc6 --- /dev/null +++ b/appc-config/appc-config-generator/provider/src/test/java/org/onap/sdnc/config/generator/writer/TestFileWriterNode.java @@ -0,0 +1,45 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APP-C + * ================================================================================ + * 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========================================================= + */ + +package org.openecomp.sdnc.config.generator.writer; + +import static org.junit.Assert.assertEquals; +import java.util.HashMap; +import java.util.Map; +import org.junit.Test; +import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; +import org.openecomp.sdnc.config.generator.writer.FileWriterNode; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; + +public class TestFileWriterNode { + + @Test + public void writeFile() throws Exception { + FileWriterNode FileWriterNode = new FileWriterNode(); + Map inParams = new HashMap(); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_FILE_NAME, "src/test/resources/writer/testcvaas.json"); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_REQUEST_DATA, "{'name':'Name','role':'admin'}"); + inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); + SvcLogicContext ctx = new SvcLogicContext(); + FileWriterNode.writeFile(inParams, ctx); + assertEquals(ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), + ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); + } +} diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/convert/TestConvertNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/convert/TestConvertNode.java deleted file mode 100644 index 0bfb80cf1..000000000 --- a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/convert/TestConvertNode.java +++ /dev/null @@ -1,146 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.convert; - -import static org.junit.Assert.assertEquals; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import org.apache.commons.io.IOUtils; -import org.junit.Test; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; -import org.openecomp.sdnc.config.generator.merge.TestMergeNode; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.powermock.reflect.Whitebox; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; - -public class TestConvertNode { - - private static final EELFLogger log = EELFManager.getInstance().getLogger(TestConvertNode.class); - @Test(expected = Exception.class) - public void testPayloadParametersConfig() throws Exception { - SvcLogicContext ctx = new SvcLogicContext(); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_IS_ESCAPED, "N"); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_BLOCK_KEYS, - "configuration-parameters,configuration.configuration-json,configuration.configuration-string"); - convertJson2Context("convert/payload_parameters_config.json", inParams, ctx); - Whitebox.invokeMethod("convertJson2Context", "convert/payload_parameters_config.json", inParams, ctx); - log.info("testPayloadParametersConfig Result: " + ctx.getAttribute("block_configuration-parameters")); - } - - @Test - public void testPayloadCliConfig() throws Exception { - SvcLogicContext ctx = new SvcLogicContext(); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_IS_ESCAPED, "N"); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_BLOCK_KEYS, - "configuration-parameters,configuration.configuration-json,configuration.configuration-string"); - convertJson2Context("convert/payload_cli_config.json", inParams, ctx); - log.info("testPayloadCliConfig Result: " + ctx.getAttribute("block_configuration-parameters")); - log.info("testPayloadCliConfig Result: " + ctx.getAttribute("block_configuration.configuration-string")); - } - - @Test(expected = Exception.class) - public void testPayloadXMLConfig() throws Exception { - SvcLogicContext ctx = new SvcLogicContext(); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_IS_ESCAPED, "N"); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_BLOCK_KEYS, - "configuration-parameters,configuration.configuration-json,configuration.configuration-string"); - convertJson2Context("convert/payload_xml_config.json", inParams, ctx); - log.info("testPayloadXMLConfig Result: " + ctx.getAttribute("block_configuration-parameters")); - log.info("testPayloadXMLConfig Result: " + ctx.getAttribute("block_configuration.configuration-string")); - } - - @Test(expected = Exception.class) - public void testPayloadJsonConfig() throws Exception { - SvcLogicContext ctx = new SvcLogicContext(); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_IS_ESCAPED, "N"); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_BLOCK_KEYS, - "configuration-parameters,configuration.configuration-json,configuration.configuration-string"); - convertJson2Context("convert/payload_json_config.json", inParams, ctx); - log.info("testPayloadJsonConfig Result: " + ctx.getAttribute("block_configuration-parameters")); - log.info("testPayloadJsonConfig Result: " + ctx.getAttribute("block_configuration.configuration-json")); - } - - private void convertJson2Context(String jsonFile, Map inParams, SvcLogicContext ctx) - throws IOException, SvcLogicException { - ConvertNode convertNode = new ConvertNode(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); - String jsonData = IOUtils.toString(TestMergeNode.class.getClassLoader().getResourceAsStream(jsonFile)); - log.info("TestConvertNode.testConvertJson2DGContext()" + jsonData); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA, jsonData); - convertNode.convertJson2DGContext(inParams, ctx); - assertEquals(ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), - ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - } - - @Test(expected = Exception.class) - public void testEscapeData() throws Exception { - SvcLogicContext ctx = new SvcLogicContext(); - Map inParams = new HashMap(); - String unescapeData = IOUtils - .toString(TestMergeNode.class.getClassLoader().getResourceAsStream("convert/escape/config_ssc.txt")); - log.info("TestConvertNode.testEscapeData() unescapeData :" + unescapeData); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_UNESCAPE_DATA, unescapeData); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE, ConfigGeneratorConstant.DATA_TYPE_SQL); - ConvertNode convertNode = new ConvertNode(); - convertNode.escapeData(inParams, ctx); - log.info("testEscapeData Result: " - + ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_ESCAPE_DATA)); - } - - @Test - public void testConvertContextToJson() throws Exception { - SvcLogicContext ctx = new SvcLogicContext(); - ctx.setAttribute("tmp.uploadConfigInfo.UPLOAD-CONFIG-ID", "200"); - ctx.setAttribute("tmp.uploadConfigInfo.VNF-ID", "00000"); - ctx.setAttribute("tmp.uploadConfigInfo.test[0]", "test0"); - ctx.setAttribute("tmp.uploadConfigInfo.test[1]", "test1"); - ctx.setAttribute("tmp.uploadConfigInfo.test[2]", "test2"); - ConvertNode convertNode = new ConvertNode(); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); - inParams.put("contextKey", "tmp.uploadConfigInfo"); - convertNode.convertContextToJson(inParams, ctx); - log.info("JSON CONTENT " + ctx.getAttribute("test.jsonContent")); - assertEquals(ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), - ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - - } - @Test(expected = Exception.class) - public void testunEscapeData() throws Exception { - ConvertNode convertNode = new ConvertNode(); - Map inParams = new HashMap(); - SvcLogicContext ctx = new SvcLogicContext(); - log.trace("Received unEscapeData call with params : " + inParams); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "tmp"); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_ESCAPE_DATA, "//"); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE, "String"); - convertNode.unEscapeData(inParams, ctx); - - } -} diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/merge/TestMergeNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/merge/TestMergeNode.java deleted file mode 100644 index cd7bb9e9a..000000000 --- a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/merge/TestMergeNode.java +++ /dev/null @@ -1,103 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.merge; - -import org.apache.commons.io.IOUtils; -import org.junit.Test; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; -import org.openecomp.sdnc.config.generator.merge.MergeNode; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import static org.junit.Assert.assertEquals; -import java.util.HashMap; -import java.util.Map; - -public class TestMergeNode { - - @Test(expected = Exception.class) - public void testMergeJsonDataOnTemplate() throws Exception { - MergeNode mergeNode = new MergeNode(); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); - String jsonData = IOUtils - .toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/vdbe_data.json")); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA, jsonData); - String templateData = IOUtils - .toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/vdbe_template.xml")); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA, templateData); - SvcLogicContext ctx = new SvcLogicContext(); - mergeNode.mergeJsonDataOnTemplate(inParams, ctx); - assertEquals(ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), - ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - - } - - @Test(expected = Exception.class) - public void testMergeComplexJsonDataOnTemplate() throws Exception { - MergeNode mergeNode = new MergeNode(); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); - String jsonData = IOUtils - .toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/complex/vdbe_data.json")); - System.out.println("TestMergeNode.testMergeJsonComplexDataOnTemplate()" + jsonData); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA, jsonData); - - String templateData = IOUtils - .toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/complex/vdbe_template.xml")); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA, templateData); - SvcLogicContext ctx = new SvcLogicContext(); - mergeNode.mergeComplexJsonDataOnTemplate(inParams, ctx); - assertEquals(ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), - ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - - } - - @Test(expected = Exception.class) - public void testMergeJsonDataOnTemplateFile() throws Exception { - MergeNode mergeNode = new MergeNode(); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); - String jsonData = IOUtils - .toString(TestMergeNode.class.getClassLoader().getResourceAsStream("merge/vdbe_data.json")); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_JSON_DATA, jsonData); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_FILE, "merge/vdbe_template.xml"); - - SvcLogicContext ctx = new SvcLogicContext(); - mergeNode.mergeJsonDataOnTemplate(inParams, ctx); - assertEquals(ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), - ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - } - @Test - public void testMmergeDataOnTemplate() throws SvcLogicException { - MergeNode mergeNode = new MergeNode(); - SvcLogicContext ctx = new SvcLogicContext(); - Map inParams = new HashMap(); - mergeNode.mergeDataOnTemplate(inParams, ctx); - } - - @Test - public void mergeYamlDataOnTemplate() throws SvcLogicException { - MergeNode mergeNode = new MergeNode(); - SvcLogicContext ctx = new SvcLogicContext(); - Map inParams = new HashMap(); - mergeNode.mergeYamlDataOnTemplate(inParams, ctx); - } -} diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/pattern/TestPatternNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/pattern/TestPatternNode.java deleted file mode 100644 index db3fa7149..000000000 --- a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/pattern/TestPatternNode.java +++ /dev/null @@ -1,81 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.pattern; - -import static org.junit.Assert.assertEquals; -import java.util.HashMap; -import java.util.Map; -import org.apache.commons.io.IOUtils; -import org.junit.Test; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; -import org.openecomp.sdnc.config.generator.pattern.PatternNode; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; - -public class TestPatternNode { - - @Test - public void parseErrorLog() throws Exception { - PatternNode patternNode = new PatternNode(); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); - String logData = IOUtils.toString(TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/errorlog.txt"),ConfigGeneratorConstant.STRING_ENCODING); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_LOG_DATA, logData); - SvcLogicContext ctx = new SvcLogicContext(); - patternNode.parseErrorLog(inParams, ctx); - assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - - } -// @Test(expected=Exception.class) - public void checkXMLData() throws Exception { - PatternNode patternNode = new PatternNode(); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); - - String xmlData = IOUtils.toString(TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/xml_data.xml"),ConfigGeneratorConstant.STRING_ENCODING); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_CHECK_DATA, xmlData); - SvcLogicContext ctx = new SvcLogicContext(); - patternNode.checkDataType(inParams, ctx); - } - - //@Test - public void checkJsonData() throws Exception { - PatternNode patternNode = new PatternNode(); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); - String xmlData = IOUtils.toString(TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/json_data.json"),ConfigGeneratorConstant.STRING_ENCODING); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_CHECK_DATA, xmlData); - SvcLogicContext ctx = new SvcLogicContext(); - patternNode.checkDataType(inParams, ctx); - assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - } - - @Test(expected=Exception.class) - public void checStringData() throws Exception { - PatternNode patternNode = new PatternNode(); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); - String stringData = IOUtils.toString(TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/text_data.txt"),ConfigGeneratorConstant.STRING_ENCODING); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_CHECK_DATA, stringData); - SvcLogicContext ctx = new SvcLogicContext(); - patternNode.checkDataType(inParams, ctx); - assertEquals(ctx.getAttribute("test."+ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - } -} diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/reader/TestReaderNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/reader/TestReaderNode.java deleted file mode 100644 index cda966b60..000000000 --- a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/reader/TestReaderNode.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APPC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Copyright (C) 2017 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. - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.config.generator.reader; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import org.apache.commons.io.IOUtils; -import org.junit.Test; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; -import org.openecomp.sdnc.config.generator.merge.TestMergeNode; -import org.openecomp.sdnc.config.generator.reader.ReaderNode; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; - -public class TestReaderNode { - @Test(expected = Exception.class) - public void testGetFileData() throws SvcLogicException, IOException { - ReaderNode r = new ReaderNode(); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_FILE_NAME, IOUtils - .toString(TestMergeNode.class.getClassLoader().getResourceAsStream("convert/payload_cli_config.json"))); - SvcLogicContext ctx = new SvcLogicContext(); - r.getFileData(inParams, ctx); - } -} diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/tool/TestDataTool.java b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/tool/TestDataTool.java deleted file mode 100644 index 85230f472..000000000 --- a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/tool/TestDataTool.java +++ /dev/null @@ -1,153 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APPC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Copyright (C) 2017 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. - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.config.generator.tool; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.apache.commons.io.IOUtils; -import org.junit.Test; -import org.mockito.Mock; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; -import org.openecomp.sdnc.config.generator.pattern.TestPatternNode; -import org.openecomp.sdnc.config.generator.tool.CheckDataTool; -import org.powermock.reflect.Whitebox; - -public class TestDataTool { - @Mock - LogParserTool lp = new LogParserTool(); - - @Test - public void testCheckData() throws IOException { - String data = IOUtils.toString( - TestPatternNode.class.getClassLoader().getResourceAsStream("convert/payload_cli_config.json"), - ConfigGeneratorConstant.STRING_ENCODING); - CheckDataTool.checkData(data); - } - - @Test - public void testIsJSON() throws IOException { - String data = IOUtils.toString( - TestPatternNode.class.getClassLoader().getResourceAsStream("convert/payload_cli_config.json"), - ConfigGeneratorConstant.STRING_ENCODING); - CheckDataTool.isJSON(data); - } - - @Test - public void testIsXML() throws IOException { - String data = IOUtils.toString( - TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/xml_data.xml"), - ConfigGeneratorConstant.STRING_ENCODING); - CheckDataTool.isXML(data); - } - - @Test - public void testNode() { - CustomJsonNodeFactory c = new CustomJsonNodeFactory(); - String text = "test"; - c.textNode(text); - } - - @Test - public void testCustomText() { - CustomTextNode c = new CustomTextNode("test"); - c.toString(); - } - - @Test - public void testEscapeUtils() { - String s = "test\\"; - String st = "test\"test"; - String str = "test\'" + "test"; - String strng = "test\0"; - EscapeUtils.escapeSQL(s); - EscapeUtils.escapeSql(s); - EscapeUtils.escapeSQL(st); - EscapeUtils.escapeSQL(str); - EscapeUtils.escapeSQL(strng); - EscapeUtils.escapeSQL(null); - } - -// @Test(expected = Exception.class) - public void testgetData() throws Exception { - ArrayList argList = null; - String schema = "sdnctl"; - String tableName = "dual"; - String getselectData = "123"; - String getDataClasue = "123='123'"; - DbServiceUtil.getData(tableName, argList, schema, getselectData, getDataClasue); - } - -// @Test(expected = Exception.class) - public void testupdateDB() throws Exception { - String setCluase = null; - String schema = "sdnctl"; - String tableName = "dual"; - ArrayList inputArgs = null; - String whereClause = "123='123'"; - DbServiceUtil.updateDB(tableName, inputArgs, schema, whereClause, setCluase); - } - -// @Test(expected = Exception.class) - public void testinitDbLibService() throws Exception { - DbServiceUtil.initDbLibService(); - } - - @Test - public void testJSONTool() throws Exception { - String data = IOUtils.toString( - TestPatternNode.class.getClassLoader().getResourceAsStream("convert/payload_cli_config.json"), - ConfigGeneratorConstant.STRING_ENCODING); - JSONTool.convertToProperties(data); - List blockKeys = new ArrayList(); - blockKeys.add("vnf-type"); - blockKeys.add("request-parameters"); - JSONTool.convertToProperties(data, blockKeys); - } - - @Test - public void testLogParserTool() throws Exception { - String data = IOUtils.toString( - TestPatternNode.class.getClassLoader().getResourceAsStream("pattern/errorlog.txt"), - ConfigGeneratorConstant.STRING_ENCODING); - LogParserTool lpt = new LogParserTool(); - lpt.parseErrorLog(data); - } - - @Test - public void testMergeTool() throws Exception { - String template = "test"; - Map dataMap = new HashMap(); - MergeTool.mergeMap2TemplateData(template, dataMap); - } - - @Test - public void testcheckDateTime() throws Exception { - String line = "2017-08-20T17:40:23.100361+00:00"; - Whitebox.invokeMethod(lp, "checkDateTime", line); - } -} diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/transform/TestXSLTTransformerNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/transform/TestXSLTTransformerNode.java deleted file mode 100644 index e2e808192..000000000 --- a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/transform/TestXSLTTransformerNode.java +++ /dev/null @@ -1,56 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.transform; - -import java.nio.charset.Charset; -import java.util.HashMap; -import java.util.Map; -import org.apache.commons.io.IOUtils; -import org.junit.Test; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; -import org.openecomp.sdnc.config.generator.merge.TestMergeNode; -import org.openecomp.sdnc.config.generator.transform.XSLTTransformerNode; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; - -public class TestXSLTTransformerNode { - - private static final EELFLogger log = EELFManager.getInstance().getLogger(TestXSLTTransformerNode.class); - - @Test - public void transformData() throws Exception { - SvcLogicContext ctx = new SvcLogicContext(); - String templateData = IOUtils.toString( - TestMergeNode.class.getClassLoader().getResourceAsStream("transform/template.xsl"), - Charset.defaultCharset()); - String requestData = IOUtils.toString( - TestMergeNode.class.getClassLoader().getResourceAsStream("transform/request.xml"), - Charset.defaultCharset()); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_TEMPLATE_DATA, templateData); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_REQUEST_DATA, requestData); - XSLTTransformerNode transformerNode = new XSLTTransformerNode(); - transformerNode.transformData(inParams, ctx); - log.info("transformData Result: " + ctx.getAttribute(ConfigGeneratorConstant.OUTPUT_PARAM_TRANSFORMED_DATA)); - - } -} diff --git a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/writer/TestFileWriterNode.java b/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/writer/TestFileWriterNode.java deleted file mode 100644 index 74c17bdc6..000000000 --- a/appc-config/appc-config-generator/provider/src/test/java/org/openecomp/sdnc/config/generator/writer/TestFileWriterNode.java +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APP-C - * ================================================================================ - * 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========================================================= - */ - -package org.openecomp.sdnc.config.generator.writer; - -import static org.junit.Assert.assertEquals; -import java.util.HashMap; -import java.util.Map; -import org.junit.Test; -import org.openecomp.sdnc.config.generator.ConfigGeneratorConstant; -import org.openecomp.sdnc.config.generator.writer.FileWriterNode; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; - -public class TestFileWriterNode { - - @Test - public void writeFile() throws Exception { - FileWriterNode FileWriterNode = new FileWriterNode(); - Map inParams = new HashMap(); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_FILE_NAME, "src/test/resources/writer/testcvaas.json"); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_REQUEST_DATA, "{'name':'Name','role':'admin'}"); - inParams.put(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX, "test"); - SvcLogicContext ctx = new SvcLogicContext(); - FileWriterNode.writeFile(inParams, ctx); - assertEquals(ctx.getAttribute("test." + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS), - ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS); - } -} -- cgit 1.2.3-korg