-/*\r
- * ============LICENSE_START========================================================================\r
- * ONAP : tr-069-adapter\r
- * =================================================================================================\r
- * Copyright (C) 2020 CommScope Inc Intellectual Property.\r
- * =================================================================================================\r
- * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,\r
- * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You\r
- * may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\r
- * either express or implied. See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ===============LICENSE_END=======================================================================\r
- */\r
-\r
-package org.commscope.tr069adapter.netconf.rpc;\r
-\r
-import java.io.File;\r
-import java.io.IOException;\r
-import java.util.Optional;\r
-\r
-import org.commscope.tr069adapter.mapper.model.ErrorCodeDetails;\r
-import org.commscope.tr069adapter.mapper.model.NetConfResponse;\r
-import org.commscope.tr069adapter.netconf.boot.NetConfServiceBooter;\r
-import org.commscope.tr069adapter.netconf.config.NetConfServerProperties;\r
-import org.opendaylight.netconf.api.DocumentedException;\r
-import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity;\r
-import org.opendaylight.netconf.api.DocumentedException.ErrorTag;\r
-import org.opendaylight.netconf.api.DocumentedException.ErrorType;\r
-import org.opendaylight.netconf.api.xml.XmlElement;\r
-import org.opendaylight.netconf.api.xml.XmlNetconfConstants;\r
-import org.opendaylight.netconf.api.xml.XmlUtil;\r
-import org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation;\r
-import org.slf4j.Logger;\r
-import org.slf4j.LoggerFactory;\r
-import org.w3c.dom.Document;\r
-import org.w3c.dom.Element;\r
-import org.xml.sax.SAXException;\r
-\r
-public class GetConfigOperation extends AbstractLastNetconfOperation {\r
- private static final Logger logger = LoggerFactory.getLogger(GetConfigOperation.class);\r
-\r
- private String deviceID;\r
- private String swVersion;\r
- private String hwVersion;\r
-\r
- public GetConfigOperation(final String netconfSessionIdForReporting,\r
- final Optional<File> initialConfigXMLFile, String deviceID, String swVersion,\r
- String hwVersion) {\r
- super(netconfSessionIdForReporting);\r
- this.deviceID = deviceID;\r
- this.swVersion = swVersion;\r
- this.hwVersion = hwVersion;\r
- if (initialConfigXMLFile.isPresent()) {\r
- logger.info("File is present: {}", initialConfigXMLFile.get().getName());\r
- }\r
- }\r
-\r
- @Override\r
- protected Element handleWithNoSubsequentOperations(final Document document,\r
- final XmlElement operationElement) throws DocumentedException {\r
- final Element element = document.createElement(XmlNetconfConstants.DATA_KEY);\r
-\r
- String requestXml = XmlUtility.convertDocumentToString(operationElement);\r
- logger.debug("netconf request recevied : {}", requestXml);\r
- NetConfServerProperties config =\r
- NetConfServiceBooter.getApplicationContext().getBean(NetConfServerProperties.class);\r
-\r
- final String baseUrl = config.getMapperPath() + "/getConfig";\r
- NetConfResponse restResponse =\r
- XmlUtility.invokeMapperCall(baseUrl, requestXml, deviceID, swVersion, hwVersion);\r
-\r
- if (restResponse != null) {\r
- ErrorCodeDetails errorCode = restResponse.getErrorCode();\r
- if (errorCode != null && errorCode.getFaultCode() != null\r
- && !errorCode.getFaultCode().equalsIgnoreCase("0")) {\r
- logger.error("Error received : {} ", errorCode);\r
- throw new DocumentedException(errorCode.getErrorMessage(),\r
- ErrorType.from(errorCode.getErrorType()), ErrorTag.from(errorCode.getErrorTag()),\r
- ErrorSeverity.from(errorCode.getErrorSeverity()));\r
- } else if (restResponse.getNetconfResponseXml() != null) {\r
- Element element1 = null;\r
- try {\r
- logger.debug("Response received from mapper :{}", restResponse.getNetconfResponseXml());\r
- element1 = XmlUtil.readXmlToElement(restResponse.getNetconfResponseXml());\r
- XmlElement xmlElement = XmlElement.fromDomElement(element1);\r
- Element domElement = xmlElement.getDomElement();\r
- element.appendChild(element.getOwnerDocument().importNode(domElement, true));\r
- } catch (SAXException | IOException e1) {\r
- logger.error("Error while constructing the reponse {}", e1.toString());\r
- }\r
- }\r
- } else {\r
- logger.error("received the null response from mapper ");\r
- throw new DocumentedException("Unable to perform Operation", ErrorType.from("application"),\r
- ErrorTag.from("operation-failed"), ErrorSeverity.from("ERROR"));\r
- }\r
-\r
- return element;\r
- }\r
-\r
- @Override\r
- protected String getOperationName() {\r
- return XmlNetconfConstants.GET_CONFIG;\r
- }\r
-}\r
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : tr-069-adapter
+ * =================================================================================================
+ * Copyright (C) 2020 CommScope Inc Intellectual Property.
+ * =================================================================================================
+ * This tr-069-adapter software file is distributed by CommScope Inc 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
+ *
+ * This file 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.commscope.tr069adapter.netconf.rpc;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Optional;
+
+import org.commscope.tr069adapter.mapper.model.ErrorCodeDetails;
+import org.commscope.tr069adapter.mapper.model.NetConfResponse;
+import org.commscope.tr069adapter.netconf.boot.NetConfServiceBooter;
+import org.commscope.tr069adapter.netconf.config.NetConfServerProperties;
+import org.opendaylight.netconf.api.DocumentedException;
+import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity;
+import org.opendaylight.netconf.api.DocumentedException.ErrorTag;
+import org.opendaylight.netconf.api.DocumentedException.ErrorType;
+import org.opendaylight.netconf.api.xml.XmlElement;
+import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
+import org.opendaylight.netconf.api.xml.XmlUtil;
+import org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
+
+public class GetConfigOperation extends AbstractLastNetconfOperation {
+ private static final Logger logger = LoggerFactory.getLogger(GetConfigOperation.class);
+
+ private String deviceID;
+ private String swVersion;
+ private String hwVersion;
+
+ public GetConfigOperation(final String netconfSessionIdForReporting,
+ final Optional<File> initialConfigXMLFile, String deviceID, String swVersion,
+ String hwVersion) {
+ super(netconfSessionIdForReporting);
+ this.deviceID = deviceID;
+ this.swVersion = swVersion;
+ this.hwVersion = hwVersion;
+ if (initialConfigXMLFile.isPresent()) {
+ logger.info("File is present: {}", initialConfigXMLFile.get().getName());
+ }
+ }
+
+ @Override
+ protected Element handleWithNoSubsequentOperations(final Document document,
+ final XmlElement operationElement) throws DocumentedException {
+ final Element element = document.createElement(XmlNetconfConstants.DATA_KEY);
+
+ String requestXml = XmlUtility.convertDocumentToString(operationElement);
+ logger.debug("netconf request recevied : {}", requestXml);
+ NetConfServerProperties config =
+ NetConfServiceBooter.getApplicationContext().getBean(NetConfServerProperties.class);
+
+ final String baseUrl = config.getMapperPath() + "/getConfig";
+ NetConfResponse restResponse =
+ XmlUtility.invokeMapperCall(baseUrl, requestXml, deviceID, swVersion, hwVersion);
+
+ if (restResponse != null) {
+ ErrorCodeDetails errorCode = restResponse.getErrorCode();
+ if (errorCode != null && errorCode.getFaultCode() != null
+ && !errorCode.getFaultCode().equalsIgnoreCase("0")) {
+ logger.error("Error received : {} ", errorCode);
+ throw new DocumentedException(errorCode.getErrorMessage(),
+ ErrorType.from(errorCode.getErrorType()), ErrorTag.from(errorCode.getErrorTag()),
+ ErrorSeverity.from(errorCode.getErrorSeverity()));
+ } else if (restResponse.getNetconfResponseXml() != null) {
+ Element element1 = null;
+ try {
+ logger.debug("Response received from mapper :{}", restResponse.getNetconfResponseXml());
+ element1 = XmlUtil.readXmlToElement(restResponse.getNetconfResponseXml());
+ XmlElement xmlElement = XmlElement.fromDomElement(element1);
+ Element domElement = xmlElement.getDomElement();
+ element.appendChild(element.getOwnerDocument().importNode(domElement, true));
+ } catch (SAXException | IOException e1) {
+ logger.error("Error while constructing the reponse {}", e1.toString());
+ }
+ }
+ } else {
+ logger.error("received the null response from mapper ");
+ throw new DocumentedException("Unable to perform Operation", ErrorType.from("application"),
+ ErrorTag.from("operation-failed"), ErrorSeverity.from("ERROR"));
+ }
+
+ return element;
+ }
+
+ @Override
+ protected String getOperationName() {
+ return XmlNetconfConstants.GET_CONFIG;
+ }
+}