X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Futil%2Fmapping%2FAbstractNetconfOperation.java;fp=opendaylight%2Fnetconf%2Fnetconf-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Futil%2Fmapping%2FAbstractNetconfOperation.java;h=86081b7f81d0f342669fdb1c7124b74dbff3157b;hb=a474fa0e090124ba715dc4251944dd8532c90491;hp=5850e64a0591a4d58c320eb67330e1dc0aa55cae;hpb=20bd54c0c63f16541a0ab907165a7ea2d6165442;p=controller.git diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/mapping/AbstractNetconfOperation.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/mapping/AbstractNetconfOperation.java index 5850e64a05..86081b7f81 100644 --- a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/mapping/AbstractNetconfOperation.java +++ b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/mapping/AbstractNetconfOperation.java @@ -8,8 +8,6 @@ package org.opendaylight.controller.netconf.util.mapping; -import java.util.Map; - import org.opendaylight.controller.netconf.api.NetconfDocumentedException; import org.opendaylight.controller.netconf.api.NetconfOperationRouter; import org.opendaylight.controller.netconf.mapping.api.HandlingPriority; @@ -20,6 +18,9 @@ import org.opendaylight.controller.netconf.util.xml.XmlUtil; import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + +import java.util.Map; public abstract class AbstractNetconfOperation implements NetconfOperation { private final String netconfSessionIdForReporting; @@ -76,15 +77,23 @@ public abstract class AbstractNetconfOperation implements NetconfOperation { Map attributes = requestElement.getAttributes(); Element response = handle(document, operationElement, opRouter); - Element rpcReply = document.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, XmlNetconfConstants.RPC_REPLY_KEY); - rpcReply.appendChild(response); - for (String attrName : attributes.keySet()) { - rpcReply.setAttribute(attrName, attributes.get(attrName).getNodeValue()); + if(XmlElement.fromDomElement(response).hasNamespace()) { + rpcReply.appendChild(response); + } else { + Element responseNS = document.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, response.getNodeName()); + NodeList list = response.getChildNodes(); + while(list.getLength()!=0) { + responseNS.appendChild(list.item(0)); + } + rpcReply.appendChild(responseNS); } + for (String attrName : attributes.keySet()) { + rpcReply.setAttributeNode((Attr) document.importNode(attributes.get(attrName), true)); + } document.appendChild(rpcReply); return document; }