X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fconnect%2Fnetconf%2Fschema%2Fmapping%2FNetconfMessageTransformer.java;h=02819c15c78b4408c91ff56a725e013017a0b55b;hb=8cf40f4741c70a760dadb4300946c1dc88f95611;hp=5e61dfb028e33551c72c63e7b4ff89bcf1554119;hpb=c911a187bdcd6160c1929e53466cd9de681c2098;p=controller.git diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java index 5e61dfb028..02819c15c7 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java @@ -8,12 +8,9 @@ package org.opendaylight.controller.sal.connect.netconf.schema.mapping; import com.google.common.base.Optional; - import java.util.List; import java.util.Set; - import javax.activation.UnsupportedDataTypeException; - import org.opendaylight.controller.netconf.api.NetconfMessage; import org.opendaylight.controller.sal.connect.api.MessageTransformer; import org.opendaylight.controller.sal.connect.netconf.util.NetconfMessageTransformUtil; @@ -29,6 +26,7 @@ import org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils; import org.opendaylight.yangtools.yang.data.impl.util.CompositeNodeBuilder; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; import org.opendaylight.yangtools.yang.model.api.NotificationDefinition; +import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -77,11 +75,16 @@ public class NetconfMessageTransformer implements MessageTransformer schemaForRpc = NetconfMessageTransformUtil.findSchemaForRpc(rpc, schemaContext.get()); + if(schemaForRpc.isPresent()) { + final DataNodeContainer schemaForGetConfig = NetconfMessageTransformUtil.createSchemaForRpc(schemaForRpc.get()); + w3cPayload = XmlDocumentUtils.toDocument(rpcPayload, schemaForGetConfig, codecProvider); + } else { + w3cPayload = toRpcRequestWithoutSchema(rpcPayload, codecProvider); + } } } else { - w3cPayload = XmlDocumentUtils.toDocument(rpcPayload, codecProvider); + w3cPayload = toRpcRequestWithoutSchema(rpcPayload, codecProvider); } } catch (final UnsupportedDataTypeException e) { throw new IllegalArgumentException("Unable to create message", e); @@ -90,6 +93,10 @@ public class NetconfMessageTransformer implements MessageTransformer toRpcResult(final NetconfMessage message, final QName rpc) { if(schemaContext.isPresent()) { @@ -124,6 +131,6 @@ public class NetconfMessageTransformer implements MessageTransformer