summaryrefslogtreecommitdiffstats
path: root/appc-config/appc-config-audit/provider/src/main/java
diff options
context:
space:
mode:
authorSkip Wonnell <kw5258@att.com>2017-08-15 19:57:50 -0500
committerPatrick Brady <pb071s@att.com>2017-08-17 22:39:26 -0700
commit5166a76913fcb658be58adffed441590979e41cf (patch)
tree90e2d274871d95591f9954eec3ae641f0134a103 /appc-config/appc-config-audit/provider/src/main/java
parent1ec4bf9a21ebdc17c1aa99985afb12d5b6ea4651 (diff)
Initial commit for appc-config-audit bundle
This Bundle is used for Auditing against a running configurition Signed-off-by: Skip Wonnell <kw5258@att.com> Issue-Id: APPC-22 Signed-off-by: Patrick Brady <pb071s@att.com> Change-Id: Id19c65e351cc377d32d6533d3fa73415019652f0
Diffstat (limited to 'appc-config/appc-config-audit/provider/src/main/java')
-rw-r--r--appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/SliAuditActivator.java62
-rw-r--r--appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/SliAuditConstant.java64
-rw-r--r--appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareCliData.java43
-rw-r--r--appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareConstants.java43
-rw-r--r--appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareDataInterface.java27
-rw-r--r--appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareJsonData.java82
-rw-r--r--appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareNode.java138
-rw-r--r--appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareXmlData.java105
-rw-r--r--appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/Parameters.java102
9 files changed, 666 insertions, 0 deletions
diff --git a/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/SliAuditActivator.java b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/SliAuditActivator.java
new file mode 100644
index 000000000..f4cfe1b37
--- /dev/null
+++ b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/SliAuditActivator.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.audit;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.openecomp.sdnc.config.audit.node.CompareNode;
+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;
+import org.openecomp.sdnc.sli.ConfigurationException;
+
+public class SliAuditActivator implements BundleActivator{
+
+ private List<ServiceRegistration> registrations = new LinkedList<ServiceRegistration>();
+
+
+ private static final EELFLogger log = EELFManager.getInstance().getLogger(SliAuditActivator.class);
+
+ @Override
+ public void start(BundleContext ctx) throws Exception
+ {
+
+ CompareNode compareNodePlugin = new CompareNode();
+ log.info("Registering service "+ compareNodePlugin.getClass().getName());
+ registrations.add(ctx.registerService(compareNodePlugin.getClass().getName(), compareNodePlugin, null));
+
+ }
+ @Override
+ public void stop(BundleContext arg0) throws Exception
+ {
+ for (ServiceRegistration registration: registrations)
+ {
+ registration.unregister();
+ registration = null;
+ }
+
+ }
+
+}
diff --git a/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/SliAuditConstant.java b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/SliAuditConstant.java
new file mode 100644
index 000000000..0bfaa1e36
--- /dev/null
+++ b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/SliAuditConstant.java
@@ -0,0 +1,64 @@
+/*-
+ * ============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.audit;
+
+public class SliAuditConstant {
+
+ 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";
+
+}
diff --git a/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareCliData.java b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareCliData.java
new file mode 100644
index 000000000..969d126bb
--- /dev/null
+++ b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareCliData.java
@@ -0,0 +1,43 @@
+/*-
+ * ============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.audit.node;
+
+public class CompareCliData implements CompareDataInterface{
+
+ String payloadX;
+ String payloadY;
+
+ public CompareCliData(String payloadX, String payloadY)
+ {
+ super();
+ this.payloadX = payloadX;
+ this.payloadY = payloadY;
+ }
+
+ @Override
+ public boolean compare() throws Exception
+ {
+ if(payloadX != null && payloadX.equals(payloadY))
+ return true;
+ else
+ return false;
+ }
+}
diff --git a/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareConstants.java b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareConstants.java
new file mode 100644
index 000000000..42b18d5c3
--- /dev/null
+++ b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareConstants.java
@@ -0,0 +1,43 @@
+/*-
+ * ============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.audit.node;
+
+public class CompareConstants {
+
+
+ public static final String FORMAT_JSON = "RESTCONF";
+ public static final String FORMAT_XML = "XML";
+ public static final String FORMAT_CLI = "CLI";
+ public static final String NETCONF_XML = "NETCONF-XML";
+ public static final String RESTCONF_XML = "RESTCONF-XML";
+
+
+ public static final String STATUS_FAILURE = "FAILURE";
+ public static final String RESPONSE_STATUS = "STATUS";
+ public static final String STATUS_SUCCESS = "SUCCESS";
+
+ public static final String ERROR_CODE = "Error-code";
+
+ public static final String ERROR_MESSAGE = "Error-Message";
+ public static final String ERROR_MESSAGE_DEATIL = "Compare Node Failed-Internal Error.See karaf log file";
+
+ public static final String NO_MATCH_MESSAGE = "The configurations do not match";
+}
diff --git a/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareDataInterface.java b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareDataInterface.java
new file mode 100644
index 000000000..95f154e2e
--- /dev/null
+++ b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareDataInterface.java
@@ -0,0 +1,27 @@
+/*-
+ * ============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.audit.node;
+
+
+public interface CompareDataInterface
+{
+ boolean compare() throws Exception;
+}
diff --git a/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareJsonData.java b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareJsonData.java
new file mode 100644
index 000000000..422ac30ac
--- /dev/null
+++ b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareJsonData.java
@@ -0,0 +1,82 @@
+/*-
+ * ============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.audit.node;
+
+import java.io.IOException;
+import java.util.Map;
+
+
+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.ObjectMapper;
+
+
+public class CompareJsonData implements CompareDataInterface {
+
+ private static final EELFLogger log = EELFManager.getInstance().getLogger(CompareJsonData.class);
+
+ String payloadX;
+ String payloadY;
+
+ public CompareJsonData(String payloadX, String payloadY)
+ {
+ this.payloadX = payloadX;
+ this.payloadY = payloadY;
+ }
+
+ @Override
+ public boolean compare() throws Exception
+ {
+
+ ObjectMapper dataMapper = new ObjectMapper();
+ boolean match = false;
+ try
+ {
+ Map<String, Object> controlData = (Map<String, Object>)(dataMapper.readValue(payloadX, Map.class));
+ Map<String, Object> testData = (Map<String, Object>)(dataMapper.readValue(payloadY, Map.class));
+
+ log.debug("Control Data :" + controlData);
+ log.debug("testData Data :" + testData);
+
+ if(controlData.equals(testData))
+ match=true;
+ }
+ catch(JsonParseException e)
+ {
+ throw new Exception(e.getMessage());
+ }
+ catch(JsonMappingException e)
+ {
+ throw new Exception(e.getMessage());
+ }
+ catch(IOException ioe)
+ {
+ throw new Exception(ioe.getMessage());
+ }
+
+ return match;
+ }
+
+
+
+}
diff --git a/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareNode.java b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareNode.java
new file mode 100644
index 000000000..4ef5e269f
--- /dev/null
+++ b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareNode.java
@@ -0,0 +1,138 @@
+/*-
+ * ============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.audit.node;
+
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import org.openecomp.sdnc.sli.SvcLogicContext;
+import org.openecomp.sdnc.sli.SvcLogicException;
+import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
+
+public class CompareNode implements SvcLogicJavaPlugin
+{
+
+ private static final EELFLogger log = EELFManager.getInstance().getLogger(CompareNode.class);
+
+ public void compare( Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException
+ {
+ log.debug("Starting Compare Node Analysis");
+
+ HashMap<String, String> status = new HashMap<String, String>();
+ Parameters params = new Parameters(inParams);
+ try
+ {
+ if(params.getCompareDataType() != null)
+ {
+ if(params.getPayloadX() !=null && params.getPayloadY() !=null)
+ {
+ status = getCompareResults(params);
+ log.debug("Compare Result : " + status);
+ }
+ else
+ {
+ status.put(CompareConstants.RESPONSE_STATUS, CompareConstants.STATUS_FAILURE);
+ status.put(CompareConstants.ERROR_CODE, "200");
+ status.put(CompareConstants.ERROR_MESSAGE, "One of the Data Received by CompareNode is Empty");
+ }
+ }
+ else
+ {
+ status.put(CompareConstants.RESPONSE_STATUS, CompareConstants.STATUS_FAILURE);
+ status.put(CompareConstants.ERROR_CODE, "200");
+ status.put(CompareConstants.ERROR_MESSAGE, "Missing compareDataType value in input request: Expecting at least one of CLI/RESTCONF/XML");
+ }
+
+ }
+ catch(Exception e)
+ {
+ status.put(CompareConstants.RESPONSE_STATUS, CompareConstants.STATUS_FAILURE);
+ status.put(CompareConstants.ERROR_CODE, "200");
+ status.put(CompareConstants.ERROR_MESSAGE, CompareConstants.ERROR_MESSAGE_DEATIL);
+ log.debug("Error in Comapre Node Execution " + e.getMessage());
+
+ }
+
+ createContextReposne(status, ctx, params.getRequestIdentifier());
+ }
+
+ private HashMap<String, String> getCompareResults(Parameters params) throws Exception
+ {
+ HashMap<String, String> resultMap = new HashMap<String, String>();
+ boolean cmpResult = false;
+ CompareDataInterface handler;
+
+
+
+ if(params.getCompareDataType().equalsIgnoreCase(CompareConstants.FORMAT_JSON))
+ handler = new CompareJsonData(params.getPayloadX(), params.getPayloadY());
+ else if((params.getCompareDataType().equalsIgnoreCase(CompareConstants.FORMAT_XML))
+ || (params.getCompareDataType().equalsIgnoreCase(CompareConstants.NETCONF_XML))
+ || (params.getCompareDataType().equalsIgnoreCase(CompareConstants.RESTCONF_XML)))
+ handler = new CompareXmlData(params.getPayloadX(), params.getPayloadY());
+ else if (params.getCompareDataType().equalsIgnoreCase(CompareConstants.FORMAT_CLI))
+ handler = new CompareCliData(params.getPayloadX(), params.getPayloadY());
+ else
+ {
+ throw new Exception("Format " + params.getCompareDataType() + " not supported");
+ }
+ try
+ {
+ log.debug("Received Format to compare : " + params.getCompareDataType());
+
+ cmpResult = handler.compare();
+ if(cmpResult)
+ {
+ resultMap.put(CompareConstants.RESPONSE_STATUS, CompareConstants.STATUS_SUCCESS);
+
+ }
+ else
+ {
+ resultMap.put(CompareConstants.RESPONSE_STATUS, CompareConstants.STATUS_FAILURE);
+ resultMap.put(CompareConstants.ERROR_CODE, "500");
+ resultMap.put(CompareConstants.ERROR_MESSAGE, CompareConstants.NO_MATCH_MESSAGE);
+ }
+ }
+ catch (Exception e)
+ {
+ throw e;
+ }
+
+ return resultMap;
+ }
+
+ private void createContextReposne(HashMap status, SvcLogicContext ctx, String requestIdentifier )
+ {
+ if(requestIdentifier == null)
+ requestIdentifier = "";
+ else
+ requestIdentifier = requestIdentifier + ".";
+
+ ctx.setAttribute(requestIdentifier.concat( CompareConstants.RESPONSE_STATUS), (String) status.get(CompareConstants.RESPONSE_STATUS));
+ ctx.setAttribute(requestIdentifier.concat(CompareConstants.ERROR_CODE), (String) status.get(CompareConstants.ERROR_CODE));
+ ctx.setAttribute(requestIdentifier.concat(CompareConstants.ERROR_MESSAGE), (String) status.get(CompareConstants.ERROR_MESSAGE));
+ }
+
+}
diff --git a/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareXmlData.java b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareXmlData.java
new file mode 100644
index 000000000..00837092f
--- /dev/null
+++ b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/CompareXmlData.java
@@ -0,0 +1,105 @@
+/*-
+ * ============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.audit.node;
+
+
+import java.io.IOException;
+import java.io.StringReader;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.custommonkey.xmlunit.Diff;
+import org.custommonkey.xmlunit.XMLUnit;
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+
+
+public class CompareXmlData implements CompareDataInterface
+{
+ private static final EELFLogger log = EELFManager.getInstance().getLogger(CompareXmlData.class);
+
+
+ String controlXml;
+ String testXml;
+
+ Document doc;
+
+ public CompareXmlData(String controlXml, String testXml) {
+ super();
+ this.controlXml = controlXml;
+ this.testXml = testXml;
+ }
+
+ @Override
+ public boolean compare() throws Exception
+ {
+
+ log.debug("controlXml : " + controlXml);
+ log.debug("testXml : " + testXml);
+
+ doSetup();
+
+ try
+ {
+ Diff diff = new Diff(getCompareDoc(controlXml), getCompareDoc(testXml));
+ if(diff.similar())
+ return true;
+ else
+ return false;
+ }
+ catch(SAXException se)
+ {
+ se.printStackTrace();
+ throw new Exception(se.getMessage());
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ throw new Exception(e.getMessage());
+ }
+ }
+
+ private void doSetup() throws ParserConfigurationException, SAXException, IOException
+ {
+
+ XMLUnit.setIgnoreAttributeOrder(true);
+ XMLUnit.setIgnoreComments(true);
+ XMLUnit.setIgnoreWhitespace(true);
+ }
+
+ public Document getCompareDoc(String inXml) throws ParserConfigurationException, SAXException, IOException
+ {
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ StringReader reader = new StringReader(inXml);
+ InputSource inputSource = new InputSource(reader);
+ Document doc = dBuilder.parse(inputSource);
+ doc.getDocumentElement().normalize();
+
+ return doc;
+ }
+}
diff --git a/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/Parameters.java b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/Parameters.java
new file mode 100644
index 000000000..e3358df11
--- /dev/null
+++ b/appc-config/appc-config-audit/provider/src/main/java/org/openecomp/sdnc/config/audit/node/Parameters.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.audit.node;
+
+
+import java.util.Map;
+
+public class Parameters
+{
+
+ String payloadX ;
+
+ public String getPayloadX() {
+ return payloadX;
+ }
+ public void setPayloadX(String payloadX) {
+ this.payloadX = payloadX;
+ }
+
+ String payloadXtype;
+
+ public String getPayloadXtype() {
+ return payloadXtype;
+ }
+ public void setPayloadXtype(String payloadXtype) {
+ this.payloadXtype = payloadXtype;
+ }
+
+ String payloadY ;
+
+ public String getPayloadY() {
+ return payloadY;
+ }
+ public void setPayloadY(String payloadY) {
+ this.payloadY = payloadY;
+ }
+
+ String payloadYtype;
+
+ public String getPayloadYtype() {
+ return payloadYtype;
+ }
+ public void setPayloadYtype(String payloadYtype) {
+ this.payloadYtype = payloadYtype;
+ }
+
+ String compareDataType;
+
+ public String getCompareDataType() {
+ return compareDataType;
+ }
+ public void setCompareDataType(String compareDataType) {
+ this.compareDataType = compareDataType;
+ }
+
+ String compareType;
+
+ public String getCompareType() {
+ return compareType;
+ }
+ public void setCompareType(String compareType) {
+ this.compareType = compareType;
+ }
+
+ String requestIdentifier;
+
+ public String getRequestIdentifier() {
+ return requestIdentifier;
+ }
+ public void setRequestIdentifier(String requestIdentifier) {
+ this.requestIdentifier = requestIdentifier;
+ }
+ public Parameters(Map<String, String> inParams)
+ {
+ this.compareType = inParams.get("compareType");
+ this.compareDataType = inParams.get("compareDataType");
+ this.payloadX= inParams.get("sourceData");
+ this.payloadY= inParams.get("targetData");
+ this.payloadXtype = inParams.get("sourceDataType");
+ this.payloadYtype = inParams.get("targetDataType");
+ this.requestIdentifier = inParams.get("requestIdentifier");
+
+ }
+}