aboutsummaryrefslogtreecommitdiffstats
path: root/appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool
diff options
context:
space:
mode:
Diffstat (limited to 'appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool')
-rw-r--r--appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CheckDataTool.java84
-rw-r--r--appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/Constants.java32
-rw-r--r--appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CustomJsonNodeFactory.java32
-rw-r--r--appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/CustomTextNode.java50
-rw-r--r--appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/DbServiceUtil.java75
-rw-r--r--appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/EscapeUtils.java102
-rw-r--r--appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/JSONTool.java157
-rw-r--r--appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/LogParserTool.java94
-rw-r--r--appc-config/appc-config-generator/provider/src/main/java/org/onap/sdnc/config/generator/tool/MergeTool.java109
9 files changed, 735 insertions, 0 deletions
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<String, String> convertToProperties(String s) throws JSONException {
+ return convertToProperties(s, null);
+ }
+
+ public static Map<String, String> convertToProperties(String s,List<String> blockKeys) throws JSONException {
+ JSONObject json = new JSONObject(s);
+ Map<String, String> mm = new HashMap<String, String>();
+
+ Map<String, Object> wm = new HashMap<String, Object>();
+ Iterator<String> 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<String> 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<String, String> convertToProperties1(String s,List<String> blockKeys) throws Exception {
+ ObjectMapper objectMapper = new ObjectMapper();
+
+ JsonNode rootNode = objectMapper.readTree(s);
+
+ Map<String, String> mm = new HashMap<String, String>();
+
+ Map<String, Object> wm = new HashMap<String, Object>();
+ Iterator<String> 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<String> 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<String> recentErrors = new ArrayList<String> ();;
+ 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<Map.Entry<String, String>> entries = dataMap.entrySet().iterator();
+ while (entries.hasNext()) {
+ Map.Entry<String, String> 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<String> 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;
+
+ }
+
+}